diff --git a/CODEOWNERS b/CODEOWNERS index 2e01056deae7..1f78d3cc6af7 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -79,9 +79,6 @@ # The `application-connector-ingress` chart /resources/application-connector-ingress/ @akgalwas @janmedrek @franpog859 @Maladie @rafalpotempa @koala7659 @ralikio @everesio -# The `console` subchart -/resources/console/ @dariadomagala @parostatkiem @akucharska @Wawrzyn321 @kwiatekus - # The `dex` subchart /resources/dex/ @strekm @werdes72 @Tomasz-Smelcerz-SAP @mjakobczyk @dariusztutaj @@ -195,13 +192,6 @@ components/etcd-tls-setup-job/ @PK85 @piotrmiskiewicz @ksputo @szwedm @voigt @wo # Application broker Component /components/application-broker/ @PK85 @piotrmiskiewicz @ksputo @szwedm @voigt @wozniakjan @adamwalach @lilitgh -# Console Backend Service Component -/components/console-backend-service/ @dariadomagala @parostatkiem @akucharska @Wawrzyn321 @kwiatekus -/components/console-backend-service/internal/gqlschema @dariadomagala @parostatkiem @akucharska @Wawrzyn321 @kwiatekus @m00g3n @pPrecel @dbadura @tgorgol @rJankowski93 -/components/console-backend-service/internal/domain/*.go @dariadomagala @parostatkiem @akucharska @Wawrzyn321 @kwiatekus @m00g3n @pPrecel @dbadura @tgorgol @rJankowski93 -/components/console-backend-service/internal/domain/serverless @m00g3n @pPrecel @dbadura @tgorgol @rJankowski93 -/components/console-backend-service/internal/domain/rafter @m00g3n @pPrecel @dbadura @tgorgol @rJankowski93 - # Connector Service Component /components/connector-service/ @akgalwas @janmedrek @franpog859 @Maladie @rafalpotempa @koala7659 @ralikio @@ -287,9 +277,6 @@ components/etcd-tls-setup-job/ @PK85 @piotrmiskiewicz @ksputo @szwedm @voigt @wo # apiserver-proxy tests /tests/integration/apiserver-proxy/ @strekm @werdes72 @Tomasz-Smelcerz-SAP @mjakobczyk @dariusztutaj -# Console Backend Service tests -/tests/console-backend-service/ @dariadomagala @parostatkiem @akucharska @Wawrzyn321 @kwiatekus - # Rafter tests /tests/rafter/ @m00g3n @pPrecel @dbadura @tgorgol @rJankowski93 diff --git a/README.md b/README.md index b3ccdd7efb52..3e7100c8bbc7 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Kyma comes with the ready-to-use code snippets that you can use to test the exte ## Development Develop on your remote repository forked from the original repository in Go. -See the example that uses the [`console-backend-service`](components/console-backend-service) project located in the `components` directory but applies to any Go project. This set of instructions uses the recommended [`git workflow`](https://kyma-project.io/community/contributing/#git-workflow-git-workflow) and the general [contribution flow](https://kyma-project.io/community/contributing/#contributing-rules-contributing-rules-contribute-code-or-content). Read also the [`CONTRIBUTING.md`](CONTRIBUTING.md) document that includes the contributing rules specific for this repository. +Read also the [`CONTRIBUTING.md`](CONTRIBUTING.md) document that includes the contributing rules specific for this repository. Follow these steps: @@ -50,25 +50,16 @@ Follow these steps: Follow the steps described in the [`git-workflow.md`](https://kyma-project.io/community/contributing/03-git-workflow/) document to configure your fork. -3. Install dependencies. - - Go to the main directory of the project in your workspace location and install the required dependencies: - - ```bash - cd components/console-backend-service - dep ensure -vendor-only - ``` - -4. Build the project. +3. Build the project. Every project runs differently. Follow instructions in the main `README.md` document of the given project to build it. -5. Create a branch and start to develop. +4. Create a branch and start to develop. Do not forget about creating unit and acceptance tests if needed. For the unit tests, follow the instructions specified in the main `README.md` document of the given project. For the details concerning the acceptance tests, go to the corresponding directory inside the `tests` directory. Find the information on how to run changes on the cluster without a Docker image in the [Develop a service locally without using Docker](https://kyma-project.io/docs/kyma/latest/03-tutorials/01-develop-service-local-no-docker-kyma/) document. -6. Test your changes. +5. Test your changes. ## Kyma users diff --git a/components/application-gateway/README.md b/components/application-gateway/README.md index 8bc5d9a4e134..398cecae9baf 100644 --- a/components/application-gateway/README.md +++ b/components/application-gateway/README.md @@ -84,17 +84,6 @@ See an example in `pkg/apis/istio/v1alpha2`. 3. Go to the project root directory and run `./hack/update-codegen.sh`. The script generates a new client in `pkg/apis/client/clientset`. - -### Contract between the Application Gateway and the Console Backend Service - -The Console Backend Service must check the status of the Application Gateway instance that represents the Application. -In the current solution, the Console Backend Service iterates through services to find those which match the criteria, and then uses the health endpoint to determine the status. -The Console Backend Service has the following obligatory requirements: -- The Kubernetes service uses the `application` key, with the value as the name of the Application. -- The Kubernetes service contains one port with the `http-api-port` name. The system uses this port for the status check. -- Find the Kubernetes service in the `kyma-integration` Namespace. You can change its location in the `console-backend` chart configuration. -- The `/v1/health` endpoint returns a status of `HTTP 200`. Any other status code indicates the service is not healthy. - ### Contribution To learn how you can contribute to this project, see the [Contributing](/CONTRIBUTING.md) document. diff --git a/components/application-operator/charts/application/templates/authorization-policy.yaml b/components/application-operator/charts/application/templates/authorization-policy.yaml index 89f07717f2e7..1aef5a62f63b 100644 --- a/components/application-operator/charts/application/templates/authorization-policy.yaml +++ b/components/application-operator/charts/application/templates/authorization-policy.yaml @@ -37,14 +37,4 @@ spec: - DELETE paths: - /{{ .Release.Name }}/v1/metadata* - - from: - - source: - principals: - - cluster.local/ns/kyma-system/sa/{{ .Values.authorizationPolicy.serviceAccount.consoleBackendService }} - to: - - operation: - methods: - - GET - paths: - - /v1/health {{- end }} diff --git a/components/application-operator/charts/application/values.yaml b/components/application-operator/charts/application/values.yaml index bc76e085027c..95d8fc4d199a 100644 --- a/components/application-operator/charts/application/values.yaml +++ b/components/application-operator/charts/application/values.yaml @@ -61,10 +61,5 @@ eventPublisherProxy: name: eventing-event-publisher-proxy namespace: kyma-system -# console-backend is a ServiceAccount which is installed as a part of *core* chart -authorizationPolicy: - serviceAccount: - consoleBackendService: console-backend - podSecurityPolicy: runAsUser: 1000 diff --git a/components/console-backend-service/.dockerignore b/components/console-backend-service/.dockerignore deleted file mode 100644 index 65a3a33dba74..000000000000 --- a/components/console-backend-service/.dockerignore +++ /dev/null @@ -1,10 +0,0 @@ -** -# Allow -!internal -!pkg -!cmd -!go.mod -!go.sum -!licenses -!main.go -!Makefile \ No newline at end of file diff --git a/components/console-backend-service/.gitignore b/components/console-backend-service/.gitignore deleted file mode 100644 index ef50426131db..000000000000 --- a/components/console-backend-service/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.idea -*.iml -.vscode/ -/debug -vendor/ -.DS_Store -telepresence.log -internal/gqlschema/gqlgen -licenses/ -console-backend-service diff --git a/components/console-backend-service/CONTRIBUTING.md b/components/console-backend-service/CONTRIBUTING.md deleted file mode 100644 index 8a34ab0d99a6..000000000000 --- a/components/console-backend-service/CONTRIBUTING.md +++ /dev/null @@ -1,86 +0,0 @@ -# Overview -To contribute to this project, follow the rules from the general [CONTRIBUTING.md](https://github.com/kyma-project/community/blob/main/CONTRIBUTING.md) document in the `community` repository. -For additional, project-specific guidelines, see the respective sections of this document. - -## Contribution rules -Before you make a pull request, review the following rules. - -> **NOTE:** These rules mention terms described in the [Terminology](./docs/terminology.md) document. - -### Project structure -- Place all GraphQL types in the `gqlschema` package. Generate them with the `gqlgen.sh` script. If you need any customization, move them to separate files, modify, and include them in the `config.yml` file. -- Keep the first level of a domain package consistent. Create these files for every resource: - - `{NAME}_resolver.go`, which contains resolver type. They usually call services and convert types. - - `{NAME}_service.go`, which contains the business logic. The service uses data transfer object (DTO) type. - - `{NAME}_converter.go`, which is used for DTO to GraphQL type conversion. The type conversion for basic types, for example `string`, can be performed in a resolver. -- You can create subpackages and define their custom structure. -- Put all kind of generic utilities in the `pkg` directory. For example, see the [Gateway](./internal/domain/application) utility in the `application` domain. -- Place utilities tied to a specific domain in domain subpackages. For example, see the [Resource](./pkg/resource) utility. -- Place cross-domain utils in the `internal` directory. For example, see the [Pager](./internal/pager) utility. -- The domain resolver must be composed of resource resolvers defined in that package. -- Every domain must have the main file with the same name as the name of the domain package. For example, there must be the `servicecatalog.go` file in `servicecatalog` domain package. This is the root of the domain which should expose the `Resolver` type. Optionally, it can expose the `Config` type for passing the configuration values. For cross-domain implementations, it can contain the `Container` type which must contain the `Resolver` field and other fields needed by other packages. -- Place interfaces, which are shared between files in single domain in `interfaces.go`. - -### Implementation guidelines -Follow these rules while you develop new features for this project. - -**General implementation rules:** -- Every domain resolver which is not required to run Console Backend Service should be pluggable. It means that it should implement the `PluggableModule` interface from the [`module`](./internal/module) package. To see an example implementation, review the [Service Catalog](./internal/domain/servicecatalog) module. -- Avoid creating cross-domain packages. Do not create domain-to-domain, direct dependencies. Use interfaces defined in the [`shared`](./internal/domain/shared) package to avoid circular dependencies. -- Do not make direct dependencies between a resolver type and services. Define interfaces, which contain only used methods. Use these interface types in a constructor of a resolver type. -- Do not export domain's interfaces and types which are not used in other places. For testing purposes, use the `export_test.go` file, which exports constructors only for tests. -- If an error appears, the resolver must return a general error message, which hides the applied solutions and logic behind them. Log the details of the error using the `glog` logger. -- Avoid creating Functions in domains as they are accessible in whole domain. Create types and define their methods. -- Return pointers for objects that represents resources in services and converters. Pass objects by pointer as method arguments in converters. -- If a specific resource does not exist during `find` operation, return `nil` without an error. -- Use cache whenever possible for small pieces of data. Monitor resources usage and consider invalidating cache after some period of inactivity that lasts, for example, one day. - -**GraphQL:** -- For queries and mutations that have more than three arguments, use [input types](http://graphql.org/learn/schema/#input-types). -- Define the mutated object as a result of the mutation. -- For a query that returns a collection of objects, always return an empty array instead of `nil`. Mark all array elements as non-nullable. For example, define a query in the GraphQL schema that returns an array of service instances as `serviceInstances: [ServiceInstance!]!`. - -**Kubernetes resources:** -- For read only operations, use SharedIndexInformers, a client-side caching mechanism, which synchronize with Kubernetes API. Use them to find and list resources. SharedIndexInformers have different API from IndexInformers, but it is possible to attach multiple event handlers to them to facilitate future modifications. -- To categorize items in the cache store, add indexers for SharedIndexInformers in services. -- Use Kubernetes Go client for `create`, `update`, and `delete` operations. Do not operate on cache. - -**Acceptance tests:** -- Query all possible fields during testing queries and mutations. -- To check if nested objects are correctly resolved, perform a minimum validation and check the required fields, such as the name. - -### Naming guidelines -Use these patterns for naming GraphQL operations: -- Use the imperative mood to name mutations. For example, name a mutation that creates a new service instance `createServiceInstance`. -- Name queries with singular or plural nouns. For example, name the query that returns a single service instance `serviceInstance`. Name the query that returns all service instances `serviceInstances`. - -Use these patterns for naming types in the first level of a domain package: -- `Config` for an exported type, which stores configuration values -- `Resolver` for an exported type, which is composed of resources resolvers in the domain package -- `Container` for an exported type, which exports `Resolver` and other types required by other domains -- `{RESOURCE_NAME}Resolver` for a resolver type of a specific resource -- `{RESOURCE_NAME}Service` for a service type of a specific resource -- `{RESOURCE_NAME}Converter` for a converter type of a specific resource - -Use these patterns for naming methods in resource resolvers: -- `{RESOURCE_NAME}Query` for a query resolver -- `{RESOURCE_NAME}Mutation` for a mutation resolver -- `{RESOURCE_NAME}Subscription` for a subscription resolver - -Use these patterns for naming methods in services: -- `Create` to create a single resource -- `Find` to get a single resource -- `List` to get multiple resources -- `Update` to update a resource -- `Delete` to delete a resource -- For specific operations, use short, meaningful names. For example, a method of `instanceService` that lists instances for a specific class should be named `ListForClass`. - -Use this pattern for naming methods in converters: -- `ToGQL` for DTO to GraphQL type conversion -- For the conversion in the opposite direction, use a similar naming convention. For example, `ToK8S`. - -### Code quality -- All Go code must have unit and acceptance tests for all business logic. -- All Go code must pass `go vet ./...`. The CI build job performs the check automatically. -- Format the Go code with `gofmt`. -- Describe any new application configuration options in the [README.md](./README.md) document. diff --git a/components/console-backend-service/Dockerfile b/components/console-backend-service/Dockerfile deleted file mode 100644 index 0f6994ca48a5..000000000000 --- a/components/console-backend-service/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM eu.gcr.io/kyma-project/test-infra/buildpack-golang-toolbox:v20210402-70b4b74f as builder - -ENV BASE_APP_DIR /go/src/github.com/kyma-project/kyma/components/console-backend-service -ENV GO111MODULE on - -WORKDIR ${BASE_APP_DIR} - -COPY ./go.mod ./go.sum ./ - -# cache deps before building and copying source so that we don't need to re-download as much -# and so that source changes don't invalidate our downloaded layer -RUN go mod download - -COPY . . - -# Run tests -RUN make verify - -# Build app -RUN make build - -# Copy built app -RUN mkdir /app -RUN mv ./console-backend-service /app/main - -COPY ./licenses/ /app/licenses - -# Install certificates -FROM alpine:latest as certs -RUN apk --update add ca-certificates - -FROM scratch - -LABEL source = git@github.com:kyma-project/kyma.git -WORKDIR /app - -# Copy binary -COPY --from=builder /app /app -COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -# Run app - -# -logtostderr=true is required, as glog is stupid and tries to log to /tmp, which crashes the pod -CMD ["/app/main", "-logtostderr=true"] diff --git a/components/console-backend-service/Makefile b/components/console-backend-service/Makefile deleted file mode 100644 index a5384f818871..000000000000 --- a/components/console-backend-service/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -ENTRYPOINT := ./main.go -TAG := $(DOCKER_TAG) - -APP_NAME = console-backend-service -APP_PATH = components/$(APP_NAME) -BUILDPACK = eu.gcr.io/kyma-project/test-infra/buildpack-golang-toolbox:v20190930-d28d219 -SCRIPTS_DIR = $(realpath $(shell pwd)/../..)/common/makefiles -IMG_NAME := $(DOCKER_PUSH_REPOSITORY)$(DOCKER_PUSH_DIRECTORY)/$(APP_NAME) - -# VERIFY_IGNORE is a grep pattern to exclude files and directories from verification -VERIFY_IGNORE := /vendor\|/automock\|/testdata\|/pkg -# FILES_TO_CHECK is a command used to determine which files should be verified -FILES_TO_CHECK = find . -type f -name "*.go" | grep -v "$(VERIFY_IGNORE)" -# DIRS_TO_CHECK is a command used to determine which directories should be verified -DIRS_TO_CHECK = go list ./... | grep -v "$(VERIFY_IGNORE)" - - -release: build-image push-image - -build-image: pull-licenses - docker build -t $(APP_NAME) . -push-image: - docker tag $(APP_NAME) $(IMG_NAME):$(TAG) - docker push $(IMG_NAME):$(TAG) -ifeq ($(JOB_TYPE), postsubmit) - @echo "Sign image with Cosign" - cosign version - cosign sign -key ${KMS_KEY_URL} $(IMG_NAME):$(TAG) -else - @echo "Image signing skipped" -endif - -pull-licenses: -ifdef LICENSE_PULLER_PATH - bash $(LICENSE_PULLER_PATH) -else - mkdir -p licenses -endif - -format: imports fmt - -verify: test check-imports check-fmt - -test: - mkdir -p /tmp/artifacts - go test -coverprofile=/tmp/artifacts/cover.out ./... - @echo -n "Total coverage: " - @go tool cover -func=/tmp/artifacts/cover.out | grep total | awk '{print $$3}' - -check-imports: - @if [ -n "$$(goimports -l $$($(FILES_TO_CHECK)))" ]; then \ - echo "✗ some files contain not propery formatted imports. To repair run make imports-local"; \ - goimports -l $$($(FILES_TO_CHECK)); \ - exit 1; \ - fi; - -check-fmt: - @if [ -n "$$(gofmt -l $$($(FILES_TO_CHECK)))" ]; then \ - gofmt -l $$($(FILES_TO_CHECK)); \ - echo "✗ some files contain not propery formatted imports. To repair run make imports-local"; \ - exit 1; \ - fi; - -imports: - goimports -w -l $$($(FILES_TO_CHECK)) - -fmt: - go fmt $$($(DIRS_TO_CHECK)) - -build: - env CGO_ENABLED=0 go build -o $(APP_NAME) ./$(ENTRYPOINT) - -run: export APP_KUBECONFIG_PATH=/Users/${USER}/.kube/config -run: export APP_VERBOSE=true -run: export APP_RAFTER_ADDRESS=https://storage.${KYMA_DOMAIN} -run: export APP_RAFTER_VERIFY_SSL=false -run: export APP_APPLICATION_GATEWAY_INTEGRATION_NAMESPACE=kyma-integration -run: export APP_APPLICATION_CONNECTOR_URL=http://dummy.url -run: export APP_OIDC_ISSUER_URL=https://dex.${KYMA_DOMAIN} -run: export APP_OIDC_CLIENT_ID=kyma-client - -run: - ./console-backend-service - -watch: - CompileDaemon -build="make build" -command="make run" -graceful-kill diff --git a/components/console-backend-service/OWNERS b/components/console-backend-service/OWNERS deleted file mode 100644 index fae243fb93d4..000000000000 --- a/components/console-backend-service/OWNERS +++ /dev/null @@ -1,7 +0,0 @@ -reviewers: - - console-reviewers - - piotrmiskiewicz - - polskikiel - -approvers: - - console-approvers \ No newline at end of file diff --git a/components/console-backend-service/README.md b/components/console-backend-service/README.md deleted file mode 100644 index 6ebfafd929e7..000000000000 --- a/components/console-backend-service/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# Console Backend Service - -## Overview - -This project includes a server that exposes the GraphQL API for all Kyma UIs. It consumes the Kubernetes API using the K8S Go client. -This document describes how to use the application and how to develop new features in this project. - -> **NOTE:** The description of the application configuration, the project structure, the architecture, and other project-specific details are located in the [`docs`](./docs/README.md) directory. - -See the [GraphQL schema definition](internal/gqlschema/schema.graphql) file for the list of supported queries and mutations. - -## Prerequisites - -Use the following tools to set up the project: - -- [Go](https://golang.org) -- [Docker](https://www.docker.com/) - -## Usage - -### Run a local version - -To start the application without building the binary, set your `$KUBECONFIG` environment variable, and run: - -```bash -APP_KUBECONFIG_PATH=$KUBECONFIG APP_DEBUG_DOMAIN={kymaDomain} go run main.go -``` - -For the descriptions of the available environment variables, see the [Configuration](./docs/configuration.md) document. - -The service listens on port `3000`. Open `http://localhost:3000` to see the GraphQL console in your browser. - -### Use GraphQL console on cluster - -Before using the console on a cluster, set a valid token for all requests. Click the **Header** option at the bottom of the GraphQL console and paste this snippet: - -```json -{ - "Authorization": "Bearer {YOUR_BEARER_TOKEN}" -} -``` - -After you paste the custom HTTP header, reload the page. GraphQL console allows you to access the schema documentation and test queries, mutations, and subscriptions. - -### Build a production version - -To build the production Docker image, run this command: - -```bash -docker build {image_name}:{image_tag} -``` - -The variables are: - -- `{image_name}` - name of the output image (default: `console-backend-service`) -- `{image_tag}` - tag of the output image (default: `latest`) - -### Certificate error - -When you run the UI API Layer project, you can get the following error: - -```bash -oidc.go:222] oidc authenticator: initializing plugin: Get https://dex.kyma.local/.well-known/openid-configuration: x509: certificate signed by unknown authority -``` - -This error can occur if you use Go version 1.11.5 or lower on macOS. Try upgrading to version 1.11.6 or higher. For details, see [this](https://github.com/golang/go/issues/24652) issue. - -## Development - -### Install dependencies - -This project uses `go modules` as a dependency manager. To install all required dependencies, use the following commands: - -```bash -go mod download -go mod vendor -``` - -#### Generate code from GraphQL schema - -This project uses the [GQLGen](https://github.com/99designs/gqlgen) library, which improves development by generating code from the [GraphQL schema definition](internal/gqlschema/schema.graphql). - -1. Define types and their fields in `/internal/gqlschema/*.graphql` files using the [Schema Definition Language](http://graphql.org/learn/schema/). -1. From the project directory, run the code generator with the `go run github.com/99designs/gqlgen ./internal/domain` command. -1. Navigate to the `/internal/gqlschema/` directory. -1. Find newly generated methods in the `ResolverRoot` interface located in `./schema_gen.go`. -1. Implement resolvers in specific domains according to the project structure and rules in this guide. Use generated models from `./models_gen.go` in your business logic. If you want to customize them, move them to a new file in the `gqlschema` package and include in the `./config.yml` file. - -To use advanced features, such as custom scalars, read the [documentation](https://gqlgen.com/) of the used library. - -### Run tests - -To run all unit tests, execute the following command: - -```bash -go test ./... -``` - -### Verify the code - -To check if the code is correct and you can push it, use the `make` command. It builds the application, runs tests, checks the status of the vendored libraries, runs the static code analysis, and checks if the formatting of the code is correct. - -To automatically format the incorrect code, use the `make format` command. diff --git a/components/console-backend-service/contrib/examples/service-catalog-test-data.yaml b/components/console-backend-service/contrib/examples/service-catalog-test-data.yaml deleted file mode 100644 index 5d1b0b281049..000000000000 --- a/components/console-backend-service/contrib/examples/service-catalog-test-data.yaml +++ /dev/null @@ -1,198 +0,0 @@ -# This file defines objects which allows to make more complicated queries for ServiceBinding, ServiceBindingUsage. -# All objects are created in the `mordor` namespace. -# BEWARE: there is assumption that Application `ec-prod` already exists. - -apiVersion: applicationconnector.kyma-project.io -kind: ApplicationMapping -metadata: - # Instance of the ApplicationMapping enables - # Application in the given namespace. - # The name must be the same as the name of Application. - name: ec-prod - namespace: mordor - ---- - -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ServiceInstance -metadata: - name: promotions-service - namespace: mordor -spec: - serviceClassExternalName: promotions - servicePlanExternalName: default - parameters: - ##### - # Additional parameters can be added here, - # which may be used by the service broker. - #### - zzz: zzz - ---- - -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ServiceInstance -metadata: - name: redis-instance - namespace: mordor -spec: - serviceClassExternalName: redis - servicePlanExternalName: micro - parameters: - ##### - # Additional parameters can be added here, - # which may be used by the service broker. - #### - zzz: zzz - ---- - -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ServiceBinding -metadata: - name: redis-binding-1 - namespace: mordor -spec: - instanceRef: - name: redis-instance - ---- - -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ServiceBinding -metadata: - name: redis-binding-2 - namespace: mordor -spec: - instanceRef: - name: redis-instance - ---- - -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ServiceBinding -metadata: - name: promotions-binding-1 - namespace: mordor -spec: - instanceRef: - name: promotions-service - ---- - -apiVersion: servicecatalog.kyma-project.io/v1alpha1 -kind: ServiceBindingUsage -metadata: - name: nike-uses-redis-1 - namespace: mordor -spec: - serviceBindingRef: - name: redis-binding-1 - usedBy: - kind: Deployment - name: nike-app - ---- - -apiVersion: servicecatalog.kyma-project.io/v1alpha1 -kind: ServiceBindingUsage -metadata: - name: adidas-uses-redis-2 - namespace: mordor -spec: - serviceBindingRef: - name: redis-binding-2 - usedBy: - kind: Deployment - name: adidas-app - ---- - -apiVersion: servicecatalog.kyma-project.io/v1alpha1 -kind: ServiceBindingUsage -metadata: - name: adidas-uses-promotions-1 - namespace: mordor -spec: - serviceBindingRef: - name: promotions-binding-1 - usedBy: - kind: Deployment - name: adidas-app - ---- - -apiVersion: servicecatalog.kyma-project.io/v1alpha1 -kind: ServiceBindingUsage -metadata: - name: reebok-uses-promotions-1 - namespace: mordor -spec: - serviceBindingRef: - name: promotions-binding-1 - usedBy: - kind: Deployment - name: reebok-app - ---- - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: adidas-app - namespace: mordor -spec: - replicas: 1 - selector: - matchLabels: - app: printer - template: - metadata: - labels: - app: printer - spec: - containers: - - name: printer - image: "alpine" - command: [ "/bin/sh", "-c", "--" ] - args: [ "while sleep 10; do printenv; done;" ] - ---- - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: nike-app - namespace: mordor -spec: - replicas: 1 - template: - metadata: - labels: - app: printer - spec: - containers: - - name: printer - image: "alpine" - command: [ "/bin/sh", "-c", "--" ] - args: [ "while sleep 10; do printenv; done;" ] - ---- - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: reebok-app - namespace: mordor -spec: - replicas: 1 - template: - metadata: - labels: - app: printer - spec: - containers: - - name: printer - image: "alpine" - command: [ "/bin/sh", "-c", "--" ] - args: [ "while sleep 10; do printenv; done;" ] diff --git a/components/console-backend-service/docs/README.md b/components/console-backend-service/docs/README.md deleted file mode 100644 index 554d292b2a81..000000000000 --- a/components/console-backend-service/docs/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Documentation - -## Overview -This directory contains the following documents that relate to the project: - -- [Configuration](./configuration.md) lists environment variables and other parameters to configure the application -- [Terminology](./terminology.md) defines general terms used in the project's documentation -- [Project Structure](./project-structure.md) describes the structure of this repository -- [Architecture](./architecture.md) presents the overall architecture of this application -- [Resource Quota Status](./resource-quotas-status.md) describes the implementation of the ResourceQuotaStatus endpoint -- [Security](./security.md) describes authentication and authorization aspects of this application, includes a guide on how to secure a GraphQL action diff --git a/components/console-backend-service/docs/architecture.md b/components/console-backend-service/docs/architecture.md deleted file mode 100644 index b3df23871f49..000000000000 --- a/components/console-backend-service/docs/architecture.md +++ /dev/null @@ -1,5 +0,0 @@ -# Architecture - -The following diagram illustrates the overall architecture of this application: - -![Architecture](./assets/architecture.png) diff --git a/components/console-backend-service/docs/assets/architecture.html b/components/console-backend-service/docs/assets/architecture.html deleted file mode 100644 index 9dc12e8734e8..000000000000 --- a/components/console-backend-service/docs/assets/architecture.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - -architecture.html - - - -
- - - diff --git a/components/console-backend-service/docs/assets/architecture.png b/components/console-backend-service/docs/assets/architecture.png deleted file mode 100644 index 31a5dca822fc..000000000000 Binary files a/components/console-backend-service/docs/assets/architecture.png and /dev/null differ diff --git a/components/console-backend-service/docs/configuration.md b/components/console-backend-service/docs/configuration.md deleted file mode 100644 index 7e61936006c3..000000000000 --- a/components/console-backend-service/docs/configuration.md +++ /dev/null @@ -1,49 +0,0 @@ -# Configuration - -This document describes configuration details of the application. - -## Environment Variables - -Use the following environment variables to configure the application: - -| Name | Required | Default | Description | -|------|----------|---------|-------------| -| APP_HOST | No | `127.0.0.1` | The host on which the HTTP server listens. | -| APP_PORT | No | `3000` | The port on which the HTTP server listens. | -| APP_ALLOWED_ORIGINS | No | `*` | Origins that have access to the HTTP server. Origins must be comma-separated list of strings. | -| APP_SERVER_TIMEOUT | No | `10s` | The period of time after which the system kills active requests and stops the server. | -| APP_VERBOSE | No | No | Show detailed logs in the application. | -| APP_KUBECONFIG_PATH | No | None | The path to the `kubeconfig` file, needed for running an application outside of the cluster. | -| APP_INFORMER_RESYNC_PERIOD | No | `10m` | The period of time after which the system resynchronizes the informers. | -| APP_SYSTEM_NAMESPACES | No | `istio-system,knative-eventing,kube-public,kube-system,kyma-installer,kyma-integration,kyma-system,natss,compass-system` | The list of Namespaces that should be considered as system Namespaces. | -| APP_BURST | No| `2` | Maximum burst for throttle. | -| APP_RAFTER_ADDRESS | No | `storage.kyma.local` | The address of the content storage server. | -| APP_RAFTER_SECURE | No | `true` | Use HTTPS for the connection with the content storage server. | -| APP_RAFTER_VERIFY_SSL | No | `true` | Ignore invalid SSL certificates. | -| APP_SERVERLESS_USAGE_KIND | No | `function` | The name of the UsageKind CR for the Function CR. | -| APP_APPLICATION_GATEWAY_STATUS_REFRESH_PERIOD | No | `15s` | The period of time after which the application refreshes the Application statuses. | -| APP_APPLICATION_GATEWAY_STATUS_CALL_TIMEOUT | No | `500ms` | The timeout of the HTTP call status check. | -| APP_APPLICATION_GATEWAY_INTEGRATION_NAMESPACE | Yes | None | The namespace with gateway services. | -| APP_APPLICATION_CONNECTOR_URL | Yes | None | The address of the connector service. | -| APP_APPLICATION_CONNECTOR_CALL_HTTP_TIMEOUT | No | `500ms` | The timeout of the HTTP call. | -| APP_OIDC_ISSUER_URL | Yes | None | The URL of the OpenID issuer. Used to verify the OIDC JWT. | -| APP_OIDC_CLIENT_ID | Yes | None | The client ID for which the JWT must be issued for. | -| APP_OIDC_CA_FILE | No | host's root CA set | One of the Certificate Authorities defined in this file is used to verify the OpenID server's certificate. | -| APP_OIDC_USERNAME_CLAIM | No | `email` | The OpenID claim to use as the user name. | -| APP_OIDC_USERNAME_PREFIX | No | None | If provided, all usernames will be prefixed with this value. | -| APP_OIDC_GROUPS_CLAIM | No | `groups` | The name of a custom OpenID Connect claim for specifying user groups. | -| APP_OIDC_GROUPS_PREFIX | NO | None | If provided, all groups will be prefixed with this value. | -| APP_OIDC_SUPPORTED_SIGNING_ALGS | NO | `RS256` | Comma-separated list of the allowed JOSE asymmetric signing algorithms. Tokens with the 'alg' header value not in this list will be rejected. Values are defined by [RFC 7518](https://tools.ietf.org/html/rfc7518#section-3.1). | -| APP_TRACING_COLLECTOR_URL | YES | `http://zipkin.kyma-system:9411/api/v1/spans` | The collector URL to handle post requests. | -| APP_TRACING_DEBUG | YES | `false` | The recorder debug flag. | -| APP_TRACING_SERVICE_SPAN_NAME | YES | `console-backend-service` | The name of the service span. | - -## Configure logger verbosity level - -This application uses `glog` to log messages. Pass command line arguments described in the [glog.go](https://github.com/golang/glog/blob/master/glog.go) document to customize the log, such as log level and output. - -For example: - -```bash -go run main.go --stderrthreshold=INFO -logtostderr=false -``` diff --git a/components/console-backend-service/docs/project-structure.md b/components/console-backend-service/docs/project-structure.md deleted file mode 100644 index 297529bcb9e8..000000000000 --- a/components/console-backend-service/docs/project-structure.md +++ /dev/null @@ -1,35 +0,0 @@ -# Project structure -> **NOTE:** These rules mention terms described in the [Terminology](./terminology.md) document. - -This repository has the following structure: - -``` - . - ├── internal # Internal packages - │ ├── gqlschema # GraphQL types and schema - │ │ ├── schema.graphql # GraphQL schema defined with Schema Definition Language - │ │ ├── models_gen.go # GraphQL structs (do not modify - autogenerated file) - │ │ ├── schema_gen.go # GraphQL schema (do not modify - autogenerated file) - │ │ ├── config.yml # Custom types mapping - │ │ └── {CUSTOM_TYPE}.go # Custom types definition - │ ├── domain # Business logic and resolvers split by domains - │ │ ├── {DOMAIN_NAME} # Domain name directory - │ │ │ ├── automock # Generated interface mocks - │ │ │ ├── {RESOURCE}_resolver.go # Resolver type for a specific resource - │ │ │ ├── {RESOURCE}_service.go # Business logic for a specific resource - │ │ │ ├── {RESOURCE}_converter.go # Type conversion for a specific resource - │ │ │ └── {DOMAIN_NAME}.go # The main domain file that exports the `Resolver` composed by resource resolvers - │ │ ├── shared # Shared types for cross-domain dependencies - │ │ └── root_resolver.go # Type composed of all resolvers from all domains - │ └── ... # Other internal packages - ├── contrib # Examples, non-essential source files, configurations and other files - │ └── examples # Example API resources - ├── hack # Scripts for generating Custom Resource API - ├── acceptance # Acceptance test setup - ├── pkg # All generic utilities - ├── vendor # Dependencies managed by Dep - ├── main.go # The main entrypoint of the application - ├── Gopkg.toml # Dep manifest - └── Gopkg.lock # Dep lock (do not modify - autogenerated file) - -``` \ No newline at end of file diff --git a/components/console-backend-service/docs/resource-quotas-status.md b/components/console-backend-service/docs/resource-quotas-status.md deleted file mode 100644 index bab96ab901b4..000000000000 --- a/components/console-backend-service/docs/resource-quotas-status.md +++ /dev/null @@ -1,110 +0,0 @@ -# ResourceQuotasStatus - -[ResourceQuota](https://kubernetes.io/docs/concepts/policy/resource-quotas/) provides constraints that limit the aggregate resource consumption per Namespace. - -The example ResourceQuota values look as follows: -```bash -Name: kyma-default -Resource Used Hard --------- --- --- -limits.memory 7348440Ki 10Gi -requests.memory 3727576Ki 7Gi -``` -When the `used` values of the ResourceQuota exceed the `hard` values, the resource creation in the Namespace is blocked. - -The ResourceQuotasStatus contains the flag and the list of exceeded ResourceQuotas limits, together with a set of resources which exceed that limits. The value of the flag informs you if any ResourceQuota is exceeded in any possible way. - -The ResourceQuotasStatus detects if any ReplicaSet or StatefulSet in your Namespace is blocked by the ResourceQuota and therefore cannot progress. -To check if any ReplicaSet or StatefulSet is blocked, calculate the required number of resources to create another replica. If there are not enough resources to create another replica, return the ResourceQuotaStatus with the flag set to `true`. - -The Console calls for the ResourceQuotasStatus automatically. The calls are triggered after: -- Switching the Namespace -- Uploading a resource -- Creating a Function -- Opening Namespace's details - -## Implementation - -This section contains the steps of the ResourceQuotaStatus implementation. - -### Calculate the available resources in the Namespace - -To calculate the number of available resources in the given Namespace, list the ResourceQuotas and loop through them. -You can get the available number of resources by calculating the difference from **.spec.hard** and **.status.used** in each ResourceQuota. -For each resource limit specified in the ResourceQuotas, you must calculate the available number of resources using the ResourceQuota with the lowest **.spec.hard** value for that resource type. - -### Calculate the necessary resources to create the next replica - -To calculate how many resources you need to create the next replica, sum up the resource usage of all containers in the replica Pod. -If some resource limit is not specified directly in the replica's template, check if any LimitRange does not specify it. -In this situation, add the proper LimitRange limit to the list of necessary resources. -When the same limit is specified in the LimitRange and in the replica's template, the replica's template limit has priority. - -### Check the ReplicaSets - -List ReplicaSets in the given Namespace and loop through them. You must check every ReplicaSet which does not reach the number of desired replicas. -To achieve that, implement the logic which calculates if the ReplicaSet has enough resources to create the next replica. -When there is not enough resources to create the next replica and the number of desired replicas is not reached, return a ResourceQuotasStatus with a flag set to `true`. - -### Check the StatefulSets - -List StatefulSets in the given Namespace and loop through them. You must check every StatefulSet which does not reach the number of desired replicas. -To achieve that, implement the logic which calculates if the StatefulSet has enough resources to create the next replica. -If there is not enough resources to create the next replica and the number of replicas is not reached, return a ResourceQuotasStatus with a flag set to `true`. - -### End of checking - -When both checks have passed and the resources usage in the given Namespace did not exceed any ResourceQuota limit, return the ResourceQuotasStatus with a flag set to `false`. - -## Examples of the query and the response - -The ResourceQuotasStatus query looks as follows: -```graphql -query{ - resourceQuotasStatus(namespace:"production"){ - exceeded - exceededQuotas{ - quotaName - resourceName - affectedResources - } - } -} -``` -This query returns two types of response: exceeded and not exceeded. -Not exceeded response looks as follows: -```graphql endpoint doc - "resourceQuotasStatus": { - "exceeded": false, - "exceededQuotas": [] - } -``` -Exceeded response looks like this: -```graphql endpoint doc - "resourceQuotasStatus": { - "exceeded": true, - "exceededQuotas": [ - { - "quotaName": "kyma-default", - "resourceName": "limits.memory", - "affectedResources": [ - "ReplicaSet/redis-client-5df45c4998", - "ReplicaSet/redis-client-5df9544d7f" - ] - }, - { - "quotaName": "custom-quota", - "resourceName": "requests.memory", - "affectedResources": [ - "StatefulSet/example", - "ReplicaSet/redis-client-5df9544d7f" - ] - }, - ] - } -``` -- **exceeded** equals `true` if any ResourceQuota is exceeded. -- **exceededQuotas** contains the list of exceeded ResourceQuotas limits and set of resources which exceed the limits. The list is empty if there are no exceeded ResourceQuotas in your Namespace. -- **quotaName** represents the name of the ResourceQuota with exceeded limit. -- **resourceName** represents the name of the resource which exceeded the ResourceQuota limit. -- **affectedResources** contains the list of resources which exceed the defined **resourceName** limit from the **quotaName** ResourceQuota. diff --git a/components/console-backend-service/docs/security.md b/components/console-backend-service/docs/security.md deleted file mode 100644 index a5650f7efe3f..000000000000 --- a/components/console-backend-service/docs/security.md +++ /dev/null @@ -1,37 +0,0 @@ -# Authentication - -The application checks if the Authorization token passed by the user is signed by Dex, which is the standard way of performing authentication in Kyma. In this application, it is performed by a middleware. - -# Authorization - -## Overview - -The Console Backend Service uses a GraphQL implementation for authorization. - -## How to secure a GraphQL action - -All available GraphQL actions are defined in the [`schema.graphql`](../internal/gqlschema/schema.graphql) file. This file also contains the definition of the `@HasAccess` directive. - -The `@HasAccess` directive is used to secure the action or a field in a type. It is used as a middleware before the resolver code is executed. - -use the following query as an example on how to secure a GraphQL action: - -``` -limitRanges(namespace: String!): [LimitRange!]! @HasAccess(attributes: {resource: "limitranges", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", isChildResolver: false}) -``` - -Reference this table for details on the elements that make up a defined and secured GraphQL action: - -| Defined GraphQL action element | Description | -|----------|------| -| `limitRanges(namespace: String!)` | Name of the action, which in this case is a query, followed by a string that specifies the Namespace of the queried resources. | -| `: [LimitRange!]!` | Defines the type of object returned by the query. In this case, it's a list of LimitRanges resources. | -| `@HasAccess(attributes:` | Defines the GraphQL directive that secures access to the resource. | -| `resource: "limitranges"` | Defines the type of secured Kubernetes resource, in this case all `limitranges` resources. | -| `verb: "list"` | Defines the secured interaction type. It is related to action type, which in this case is "query". | -| `apiGroup: ""` | Defines the apiGroup to which the user must have access to get the result of this query. In this case it is empty because limitRanges is the resource built into Kubernetes, not some Custom Resource created by us. | -| `apiVersion: "v1alpha1"` | Specifies the apiVersion of the query subject. | -| `namespaceArg: "namespace"` | Specifies the name of the argument or field in the parent object from which the resource namespace is fetched. | -| `isChildResolver: false` | Must be "true" for fields nested in types which have to be secured. Determines if the `namespace` argument should be fetched from the parent object. By default, it is set to `false`. | - -If the directive is set on a field nested in a type, the value returned from a query returning that type depends on the type modifier set on the field. If the field is set as [`Non-Null`](https://graphql.org/learn/schema/#lists-and-non-null), the error is returned for users who do not have rights to access the child resource. If the field is not set as `Non-Null`, only the child field will be returned as null. diff --git a/components/console-backend-service/docs/terminology.md b/components/console-backend-service/docs/terminology.md deleted file mode 100644 index fedf0f9ce2be..000000000000 --- a/components/console-backend-service/docs/terminology.md +++ /dev/null @@ -1,7 +0,0 @@ -# Terminology - -The project documentation mentions different types of resolvers. - -- **Resolver** is a term related to GraphQL itself. It is a Function that defines what data to return for a specific [field](http://graphql.org/learn/queries/#fields). -- **Resolver type** is a custom type named `Resolver` that contains methods, which essentially are resolver Functions. -- **Resource resolver** is a resolver type that contains methods related to the specific resource. diff --git a/components/console-backend-service/go.mod b/components/console-backend-service/go.mod deleted file mode 100644 index 42c3ff159c02..000000000000 --- a/components/console-backend-service/go.mod +++ /dev/null @@ -1,51 +0,0 @@ -module github.com/kyma-project/kyma/components/console-backend-service - -go 1.16 - -require ( - github.com/99designs/gqlgen v0.11.3 - github.com/blang/semver v3.5.1+incompatible - github.com/coreos/go-oidc v2.2.1+incompatible // indirect - github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b - github.com/googleapis/gnostic v0.4.0 - github.com/gorilla/mux v1.8.0 - github.com/gorilla/websocket v1.4.2 - github.com/kubernetes-sigs/service-catalog v0.3.0 - github.com/kyma-incubator/api-gateway v0.0.0-20200930072023-5d3f2107a1ef - github.com/kyma-project/helm-broker v0.0.0-20190906085923-d07feb2d365a - github.com/kyma-project/kyma/common v0.0.0-20210422124141-42aded7dd8c6 - github.com/kyma-project/kyma/components/application-broker v0.0.0-20210112104044-ffa48907d074 - github.com/kyma-project/kyma/components/application-operator v0.0.0-20201110134855-a03ec1689c4e - github.com/kyma-project/kyma/components/eventing-controller v0.0.0-20201127140131-ec965cad1047 - github.com/kyma-project/kyma/components/function-controller v0.0.0-20210415084126-ed2c688b52ab - github.com/kyma-project/kyma/components/service-binding-usage-controller v0.0.0-20201101180833-4d45d900770d - github.com/kyma-project/rafter v0.0.0-20200402080904-a0157e52e150 - github.com/moby/moby v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible - github.com/ory/hydra-maester v0.0.19 - github.com/ory/oathkeeper-maester v0.1.0 - github.com/pkg/errors v0.9.1 - github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect - github.com/rs/cors v1.7.0 - github.com/stretchr/testify v1.7.0 - github.com/vektah/gqlparser/v2 v2.0.1 - github.com/vrischmann/envconfig v1.3.0 - gopkg.in/square/go-jose.v2 v2.4.1 // indirect - k8s.io/api v0.18.18 - k8s.io/apimachinery v0.18.18 - k8s.io/apiserver v0.18.18 - k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible - knative.dev/eventing v0.13.1 - knative.dev/pkg v0.0.0-20201026165741-2f75016c1368 - sigs.k8s.io/structured-merge-diff/v3 v3.0.1-0.20201124164700-f5fd4ea1e4c9 // indirect -) - -replace ( - github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.34.1 - github.com/coreos/etcd => github.com/coreos/etcd v3.3.24+incompatible - github.com/gorilla/websocket => github.com/gorilla/websocket v1.4.2 - golang.org/x/text => golang.org/x/text v0.3.6 - k8s.io/client-go => k8s.io/client-go v0.18.18 - k8s.io/utils => k8s.io/utils v0.0.0-20191114184206-e782cd3c129f - // kyma/components/function-controller uses new version knative.dev, with another impelmntations functions. - knative.dev/pkg => knative.dev/pkg v0.0.0-20210217160502-b7d7ff183788 -) diff --git a/components/console-backend-service/go.sum b/components/console-backend-service/go.sum deleted file mode 100644 index bf9ae49f25b7..000000000000 --- a/components/console-backend-service/go.sum +++ /dev/null @@ -1,1589 +0,0 @@ -bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0 h1:eWRCuwubtDrCJG0oSUMgnsbD4CmPFQF2ei4OFbXvwww= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeSEBLPA9YJp5bjrofdU3pIXs= -contrib.go.opencensus.io/exporter/ocagent v0.7.1-0.20200907061046-05415f1de66d/go.mod h1:IshRmMJBhDfFj5Y67nVhMYTTIze91RUeT73ipWKs/GY= -contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= -contrib.go.opencensus.io/exporter/prometheus v0.2.1-0.20200609204449-6bcf6f8577f0/go.mod h1:MjHoxkI7Ny27toPeFkRbXbzVjzIGkwOAptrAy8Mxtm8= -contrib.go.opencensus.io/exporter/stackdriver v0.12.9-0.20191108183826-59d068f8d8ff/go.mod h1:XyyafDnFOsqoxHJgTFycKZMrRUrPThLh2iYTJF6uoO0= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/zipkin v0.1.2/go.mod h1:mP5xM3rrgOjpn79MM8fZbj3gsxcuytSqtH0dxSWW1RE= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/99designs/gqlgen v0.9.3/go.mod h1:HrrG7ic9EgLPsULxsZh/Ti+p0HNWgR3XRuvnD0pb5KY= -github.com/99designs/gqlgen v0.10.2/go.mod h1:aDB7oabSAyZ4kUHLEySsLxnWrBy3lA0A2gWKU+qoHwI= -github.com/99designs/gqlgen v0.11.3 h1:oFSxl1DFS9X///uHV3y6CEfpcXWrDUxVblR4Xib2bs4= -github.com/99designs/gqlgen v0.11.3/go.mod h1:RgX5GRRdDWNkh4pBrdzNpNPFVsdoUFY2+adM6nb1N+4= -github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/DATA-DOG/go-sqlmock v1.4.1/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver/v3 v3.1.0/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/sprig/v3 v3.1.0/go.mod h1:ONGMf7UfYGAbMXCZmQLy8x3lCDIPrEZE/rU8pmrbihA= -github.com/Masterminds/squirrel v1.4.0/go.mod h1:yaPeOnPG5ZRwL9oKdTsO/prlkPbXWZlRVMQ/gGlzIuA= -github.com/Masterminds/vcs v1.13.1/go.mod h1:N09YCmOQr6RLxC6UNHzuVwAdodYbbnycGHSmwVJjcKA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/agnivade/levenshtein v1.0.3 h1:M5ZnqLOoZR8ygVq0FfkXsNOKzMCk0xRiow0R5+5VkQ0= -github.com/agnivade/levenshtein v1.0.3/go.mod h1:4SFRZbbXWLF4MU1T9Qg0pGgH3Pjs+t6ie5efyrwRJXs= -github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= -github.com/alecthomas/jsonschema v0.0.0-20180308105923-f2c93856175a/go.mod h1:qpebaTNSsyUn5rPSJMsfqEtDw71TTggXM6stUDI16HA= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alessio/shellescape v0.0.0-20190409004728-b115ca0f9053/go.mod h1:xW8sBma2LE3QxFSzCnH9qe6gAE2yO9GvQaWwX89HxbE= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/appscode/jsonpatch v0.0.0-20190108182946-7c0e3b262f30/go.mod h1:4AJxUpXUhv4N+ziTvIcWWXgeorXpxPZOfk9HdEVr96M= -github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= -github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= -github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= -github.com/asyncapi/converter-go v0.0.0-20190802111537-d8459b2bd403/go.mod h1:mpJYWYy+USNiLENQxiyGgRc3qtFPxYSWdSd/eS+R6bo= -github.com/asyncapi/converter-go v0.0.0-20190916120412-39eeca5e9df5/go.mod h1:mpJYWYy+USNiLENQxiyGgRc3qtFPxYSWdSd/eS+R6bo= -github.com/asyncapi/parser v0.0.0-20191002092055-f7b577d06d20/go.mod h1:MuJ++ZbwZV7Di4OtSGtgAe2whaMEZjYBPVnf8U/Qvo4= -github.com/avast/retry-go v2.2.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= -github.com/avast/retry-go v2.4.1+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= -github.com/avast/retry-go v2.4.3+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.34.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= -github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b/go.mod h1:ac9efd0D1fsDb3EJvhqgXRbFx7bs2wqZ10HQPeU8U/Q= -github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= -github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= -github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= -github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/c2h5oh/datasize v0.0.0-20171227191756-4eba002a5eae/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go/v2 v2.2.0/go.mod h1:3CTrpB4+u7Iaj6fd7E2Xvm5IxMdRoaAhqaRVnOr2rCU= -github.com/cloudevents/sdk-go/v2 v2.3.1/go.mod h1:4fO2UjPMYYR1/7KPJQCwTPb0lFA8zYuitkUpAZFSY1Q= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41/go.mod h1:Dq467ZllaHgAtVp4p1xUQWBrFXR9s/wyoTpG8zOJGkY= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/coreos/bbolt v1.3.1-coreos.6/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.24+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= -github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= -github.com/deislabs/oras v0.8.1/go.mod h1:Mx0rMSbBNaNfY9hjpccEnxkOqJL6KGjtxNHPLC4G4As= -github.com/denisenkom/go-mssqldb v0.0.0-20191001013358-cfbb681360f0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= -github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-gk v0.0.0-20140819190930-201884a44051/go.mod h1:qm+vckxRlDt0aOla0RYJJVeqHZlWfOm2UIxHaqPB46E= -github.com/dgryski/go-gk v0.0.0-20200319235926-a69029f61654/go.mod h1:qm+vckxRlDt0aOla0RYJJVeqHZlWfOm2UIxHaqPB46E= -github.com/dgryski/go-lttb v0.0.0-20180810165845-318fcdf10a77/go.mod h1:Va5MyIzkU0rAM92tn3hb3Anb7oz7KcnixF49+2wOMe4= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dgryski/trifles v0.0.0-20190318185328-a8d75aae118c h1:TUuUh0Xgj97tLMNtWtNvI9mIV6isjEb9lBMNv+77IGM= -github.com/dgryski/trifles v0.0.0-20190318185328-a8d75aae118c/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= -github.com/dlmiddlecote/sqlstats v1.0.0/go.mod h1:wnid52FfRm1P/Z/81xQ4pd8ayRzL9o7UWkyCNegbAQg= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/cli v0.0.0-20200130152716-5d0cf8839492/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/distribution v0.0.0-20191216044856-a8371794149d/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= -github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200203170920-46ec8731fbce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.6+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc= -github.com/evanphx/json-patch v4.0.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= -github.com/gernest/front v0.0.0-20181129160812-ed80ca338b88/go.mod h1:FwEMwQ5+xky8tbzDLj72k2RAqXnFByLNwxg+9UZDtqU= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= -github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-chi/chi v3.3.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= -github.com/go-git/go-git/v5 v5.2.0/go.mod h1:kh02eMX+wdqqxgNMEyq8YgwlIOsDOa9homkUq1PoTMs= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.51.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/zapr v0.1.0 h1:h+WVe9j6HAA01niTJPA/kKH0i7e0rLZBCwauQFcRE54= -github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.6.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= -github.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/logger v1.0.1/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= -github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= -github.com/gobuffalo/packr/v2 v2.7.1/go.mod h1:qYEvAazPaVxy7Y7KR0W8qYEE+RymX74kETFqjFoFlOc= -github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= -github.com/godror/godror v0.13.3/go.mod h1:2ouUT4kdhUBk7TAkHWD4SN0CdI0pgEQbo8FVHhbSKWg= -github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/protobuf v1.0.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/diff v0.0.0-20181124234638-500114f11e71/go.mod h1:22dM4PLscQl+Nzf64qNBurVJvfyvZELT0iRW2l/NN70= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/integrate v0.0.0-20181209220457-a422b5c0fdf2/go.mod h1:pDgmNM6seYpwvPos3q+zxlXMsbve6mOIPucUnUOrI7Y= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/mathext v0.0.0-20181121095525-8a4bf007ea55/go.mod h1:fmo8aiSEWkJeiGXUJf+sPvuDgEFgqIoZSs843ePKrGg= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= -github.com/gonum/stat v0.0.0-20181125101827-41a0da705a5b/go.mod h1:Z4GIJBJO3Wa4gD4vbwQxXXZ+WHmW6E9ixmNrwvs0iZs= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github/v27 v27.0.6/go.mod h1:/0Gr8pJ55COkmv+S/yPKCczSkUPIM/LnFyubufRNIS0= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= -github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/mako v0.0.0-20190821191249-122f8dcef9e3/go.mod h1:YzLcVlL+NqWnmUEPuhS1LxDDwGO9WNbVlEXaF4IH35g= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= -github.com/googleapis/gnostic v0.4.0 h1:BXDUo8p/DaxC+4FJY/SSx3gvnx9C1VdHNgaUkiEL5mk= -github.com/googleapis/gnostic v0.4.0/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/mux v1.6.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v0.0.0-20190222133341-cfaf5686ec79/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.3.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.4/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw= -github.com/grpc-ecosystem/grpc-gateway v1.14.8/go.mod h1:NZE8t6vs6TnwLL/ITkaK8W3ecMLGAbh2jXTclvpiwYo= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg= -github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/influxdata/tdigest v0.0.0-20180711151920-a7d76c6f093a/go.mod h1:9GkyshztGufsdPQWjH+ifgnIr3xNUL5syI70g2dzU1o= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -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/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -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-sigs/go-open-service-broker-client v0.0.0-20190909175253-906fa5f9c249/go.mod h1:s8wBC55/DEkNa3YMY1WLgpT33Ghpmw7v+waIxh15dYI= -github.com/kubernetes-sigs/go-open-service-broker-client v0.0.0-20200527163240-4406bd2cb6b8/go.mod h1:5VFrdwwxqkzCF3pL7MY5Om1btQ6UsxO87DyjZFO0s5M= -github.com/kubernetes-sigs/service-catalog v0.3.0 h1:uQaQcWnJf2qJ0ODaKHktOMN0daF+hi3inqrXzACyI1Y= -github.com/kubernetes-sigs/service-catalog v0.3.0/go.mod h1:zRfgMd1T9HuXR24Qj4GOu/TGWABVGw62MGlyHVcpWnU= -github.com/kyma-incubator/api-gateway v0.0.0-20200930072023-5d3f2107a1ef h1:YkBUaF/CdwgbdTt1eBeaiy1W/ZU/dzSRP2BBPmFm6jc= -github.com/kyma-incubator/api-gateway v0.0.0-20200930072023-5d3f2107a1ef/go.mod h1:DGeKJ2GUH1cOAxUKVbUUl55DuIX6w2DXgZjlg8UTwrU= -github.com/kyma-incubator/compass/components/director v0.0.0-20201110114731-9af1781d40a1/go.mod h1:x7sMU+n72bd2nufOpfi3tjjRhSsey1eVsu8RBuETxCg= -github.com/kyma-project/helm-broker v0.0.0-20190906085923-d07feb2d365a h1:G+lhfd6RaU+zZe5jOyWZFbjHPbJ6A61dgJpNNiXQ8b0= -github.com/kyma-project/helm-broker v0.0.0-20190906085923-d07feb2d365a/go.mod h1:VFnkD5ddzF9s8qcY12DRzYOznJJlpMbSRWGRgM4P1XA= -github.com/kyma-project/kyma/common v0.0.0-20210422124141-42aded7dd8c6 h1:kd8hNdZ6oUBMA4wF4kgAhKamljcw9dNHvtxnDqla09M= -github.com/kyma-project/kyma/common v0.0.0-20210422124141-42aded7dd8c6/go.mod h1:qehC1NoklLgorCN+9S2Ot+sqiWcPtcQ6/fKuciH7JLw= -github.com/kyma-project/kyma/components/application-broker v0.0.0-20210112104044-ffa48907d074 h1:OsUDNEe1gQnqN2g7JYDLdVrlmD1h5zRJiGBQkOlq6U4= -github.com/kyma-project/kyma/components/application-broker v0.0.0-20210112104044-ffa48907d074/go.mod h1:UtDyoqyN+m+GALGfnEhUxlmJgshY8iebtw+pk9ycNno= -github.com/kyma-project/kyma/components/application-gateway v0.0.0-20201110134855-a03ec1689c4e/go.mod h1:8puazp8j9vYntrg+lRfeu1oPrkMajCla74XU62gUaVU= -github.com/kyma-project/kyma/components/application-operator v0.0.0-20200902071617-83c683010f30/go.mod h1:caerCWyllbJsqBM4gtwWW3QsRFgRuRmqYXOqrpji/Ms= -github.com/kyma-project/kyma/components/application-operator v0.0.0-20201110134855-a03ec1689c4e h1:kc233GfsekvbBFo7LIm/miDfxX0OytByPuyQoJDRg1c= -github.com/kyma-project/kyma/components/application-operator v0.0.0-20201110134855-a03ec1689c4e/go.mod h1:+Xnzt7WWJNnwl/8OAtsne+gIutpieGZnKFzuJl8K8v0= -github.com/kyma-project/kyma/components/event-publisher-proxy v0.0.0-20201014135541-82b304ab245a/go.mod h1:SzxIlsqx8zJXNhqyUabWs8NzYcfEv1SleJ1U0+Gp6Ms= -github.com/kyma-project/kyma/components/eventing-controller v0.0.0-20201127140131-ec965cad1047 h1:P2B3a+rCwhNf+BNh733brMFXEGuIRSWVKoi+0OqZutE= -github.com/kyma-project/kyma/components/eventing-controller v0.0.0-20201127140131-ec965cad1047/go.mod h1:Cz8yeshikD5eL83zV/QoclJv+nQb8TlZn3kIP7rVe0A= -github.com/kyma-project/kyma/components/function-controller v0.0.0-20210415084126-ed2c688b52ab h1:rxHeojGxxUKrn1zm1jvTB6cVJbNMBp5f6gB9cWEss9s= -github.com/kyma-project/kyma/components/function-controller v0.0.0-20210415084126-ed2c688b52ab/go.mod h1:UN+SgGO1+s7B8IPiPGy0ui+AOp0JMUe/anR92PIMENM= -github.com/kyma-project/kyma/components/service-binding-usage-controller v0.0.0-20201101180833-4d45d900770d h1:R0se8X2J3EjTX+JfJD5shQztcWMdujgqWBQgTCOEoPI= -github.com/kyma-project/kyma/components/service-binding-usage-controller v0.0.0-20201101180833-4d45d900770d/go.mod h1:iGiifVI0VlODoLvAc+zCbehiKT8uEhJBJIIDd99oafg= -github.com/kyma-project/rafter v0.0.0-20200402080904-a0157e52e150 h1:UYawXgUZBPBe+wcSDsjpyy+mDM9Q7CugfLXix3bwbWE= -github.com/kyma-project/rafter v0.0.0-20200402080904-a0157e52e150/go.mod h1:zlQEXkFdCYTii7GGjd0jLOudgPtxgZLJy2VDXW7j54I= -github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= -github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= -github.com/lestrrat-go/jwx v0.9.0/go.mod h1:iEoxlYfZjvoGpuWwxUz+eR5e6KTJGsaRcy/YNA/UnBk= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac/go.mod h1:Frd2bnT3w5FB5q49ENTfVlztJES+1k/7lyWX2+9gq/M= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/machinebox/graphql v0.2.3-0.20181106130121-3a9253180225/go.mod h1:F+kbVMHuwrQ5tYgU9JXlnskM8nOaFxCAEolaQybkjWA= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mailru/easyjson v0.7.1-0.20191009090205-6c0755d89d1e/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= -github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= -github.com/matryer/is v1.3.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= -github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/matryer/moq v0.0.0-20200106131100-75d0ddfc0007/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= -github.com/mattbaird/jsonpatch v0.0.0-20171005235357-81af80346b1a/go.mod h1:M1qoD/MqPgTZIk0EWKB38wE28ACRfVcn+cU08jyArI0= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-oci8 v0.0.7/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mNXJwGI= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.12.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mcuadros/go-defaults v1.1.0/go.mod h1:vl9cJiNIIHISQeboDhZBUCiCOa3GkeioLe3Y95NXF6Y= -github.com/meatballhat/negroni-logrus v1.1.1-0.20191208165538-6f72cade44a3/go.mod h1:1yuzU2YqJx1Fh4UJ2nAt2rBa0rZoLxfpXQL/BXpiU0g= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.17/go.mod h1:WgzbA6oji13JREwiNsRDNfl7jYdPnmz+VEuLrA+/48M= -github.com/minio/minio-go v6.0.14+incompatible/go.mod h1:7guKYtitv8dktvNUGrhzmNlA5wrAABTQXCoesZdFQO8= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v0.0.0-20180203102830-a4e142e9c047/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= -github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/moby v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible h1:NT0cwArZg/wGdvY8pzej4tPr+9WGmDdkF8Suj+mkz2g= -github.com/moby/moby v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= -github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= -github.com/onrik/logrus v0.8.0/go.mod h1:qfe9NeZVAJfIxviw3cYkZo3kvBtLoPRJriAO8zl7qTk= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.4.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs= -github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= -github.com/ory/hydra-maester v0.0.19 h1:b8/KC2zUhb+UlWoz/QLKIer/tBAZhk1P2BLSxYUAk6c= -github.com/ory/hydra-maester v0.0.19/go.mod h1:nLN4AAm6u1Iht1INnp4fl6blbCf2wDDZ+PbTWS1aDnA= -github.com/ory/oathkeeper-maester v0.1.0 h1:xqY4Px2ubPyAS/3bl0AcI6ctW2/lrXJUHHb5gXNz97U= -github.com/ory/oathkeeper-maester v0.1.0/go.mod h1:O692MD+MJP3dx0QUV1iOcSPxczdRZEj5WauFaD1vy7U= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/peterbourgon/mergemap v0.0.0-20130613134717-e21c03b7a721/go.mod h1:jQyRpOpE/KbvPc0VKXjAqctYglwUO5W6zAcGcFfbvlo= -github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.8.0 h1:zvJNkoCFAnYFNC24FV8nW4JdRJ3GIFcLbg65lL/JDcw= -github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= -github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ= -github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= -github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rubenv/sql-migrate v0.0.0-20200616145509-8d140a17f351/go.mod h1:DCgfY80j8GYL7MLEfvcpSFvjD0L5yZq/aZUJmhZklyg= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/vfsgen v0.0.0-20180121065927-ffb13db8def0/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= -github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.3/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= -github.com/streadway/quantile v0.0.0-20150917103942-b0c588724d25/go.mod h1:lbP8tGiBjZ5YWIc2fzuRpTaz0b/53vT6PEs3QuAWzuU= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= -github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.0.1/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tsenart/go-tsz v0.0.0-20180814232043-cdeb9e1e981e/go.mod h1:SWZznP1z5Ki7hDT2ioqiFKEse8K9tU2OUvaRI0NeGQo= -github.com/tsenart/vegeta/v12 v12.8.4/go.mod h1:ZiJtwLn/9M4fTPdMY7bdbIeyNeFVE8/AHbWFqCsUuho= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/vektah/dataloaden v0.2.1-0.20190515034641-a19b9a6e7c9e/go.mod h1:/HUdMve7rvxZma+2ZELQeNh88+003LL7Pf/CZ089j8U= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vektah/gqlparser v1.2.0/go.mod h1:bkVf0FX+Stjg/MHnm8mEyubuaArhNEqfQhF+OTiAL74= -github.com/vektah/gqlparser v1.3.1 h1:8b0IcD3qZKWJQHSzynbDlrtP3IxVydZ2DZepCGofqfU= -github.com/vektah/gqlparser v1.3.1/go.mod h1:bkVf0FX+Stjg/MHnm8mEyubuaArhNEqfQhF+OTiAL74= -github.com/vektah/gqlparser/v2 v2.0.1 h1:xgl5abVnsd4hkN9rk65OJID9bfcLSMuTaTcZj777q1o= -github.com/vektah/gqlparser/v2 v2.0.1/go.mod h1:SyUiHgLATUR8BiYURfTirrTcGpcE+4XkV2se04Px1Ms= -github.com/vrischmann/envconfig v1.1.0/go.mod h1:c5DuUlkzfsnspy1g7qiqryPCsW+NjsrLsYq4zhwsoHo= -github.com/vrischmann/envconfig v1.2.0/go.mod h1:c5DuUlkzfsnspy1g7qiqryPCsW+NjsrLsYq4zhwsoHo= -github.com/vrischmann/envconfig v1.3.0 h1:4XIvQTXznxmWMnjouj0ST5lFo/WAYf5Exgl3x82crEk= -github.com/vrischmann/envconfig v1.3.0/go.mod h1:bbvxFYJdRSpXrhS63mBFtKJzkDiNkyArOLXtY6q0kuI= -github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonpointer v0.0.0-20190809123943-df4f5c81cb3b/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= -github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= -github.com/xeipuuv/gojsonschema v1.1.1-0.20190912152152-6a016cf16650/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= -github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= -github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= -github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4-0.20200608061201-1901b56b9515/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v0.0.0-20181018215023-8dc6146f7569/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/automaxprocs v1.3.0/go.mod h1:9CWT6lKIep8U41DDaPiH6eFscnTyjfTANNQNx6LrIcA= -go.uber.org/multierr v0.0.0-20180122172545-ddea229ff1df/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v0.0.0-20180814183419-67bc79d13d15/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= -golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200128174031-69ecbb4d6d5d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200429183012-4b2356b1ed79/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190912160710-24e19bdeb0f2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/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-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11 h1:lwlPPsmjDKK0J6eG6xDWd5XPehI0R024zxjDnw3esPA= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5 h1:Lm4OryKCca1vehdsWogr9N4t7NfZxLbJoc/H0w4K4S4= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/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.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180117170059-2c42eef0765b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190912141932-bc967efca4b8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3 h1:kzM6+9dur93BcC2kVlYl34cHU+TYZLanmpSJHVMmL64= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190515012406-7d7faa4812bd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191118222007-07fc4c7f2b98/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200114235610-7ae403b6b589/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= -gomodules.xyz/jsonpatch/v2 v2.1.0 h1:Phva6wqu+xR//Njw6iorylFFgn/z547tw5Ne3HZPQ+k= -gomodules.xyz/jsonpatch/v2 v2.1.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= -gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201211151036-40ec1c210f7a h1:GnJAhasbD8HiT8DZMvsEx3QLVy/X0icq/MGr0MqRJ2M= -google.golang.org/genproto v0.0.0-20201211151036-40ec1c210f7a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0 h1:raiipEjMOIC/TO2AvyTxP25XFdLxNIBwzDh3FM3XztI= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/evanphx/json-patch.v4 v4.9.0 h1:T7W7A7+DTEpLTC11pkf8yfaeRfqhRj/gOPf+LtaJdNY= -gopkg.in/evanphx/json-patch.v4 v4.9.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/gorp.v1 v1.7.2/go.mod h1:Wo3h+DBQZIxATwftsglhdD/62zRFPhGhTiu5jUJmCaw= -gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.48.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.4.1 h1:H0TmLt7/KmzlrDOpa1F+zr0Tk90PbJYBfsVUmRLrf9Y= -gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.0.0/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -helm.sh/helm/v3 v3.3.0/go.mod h1:cWRDbGk4EiIL0/+jN0GI8T7m96Cps81/ta1kcacl85g= -helm.sh/helm/v3 v3.3.1/go.mod h1:CyCGQa53/k1JFxXvXveGwtfJ4cuB9zkaBSGa5rnAiHU= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.5 h1:nI5egYTGJakVyOryqLs1cQO5dO0ksin5XXs2pspk75k= -honnef.co/go/tools v0.0.1-2020.1.5/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -istio.io/api v0.0.0-20200812202721-24be265d41c3/go.mod h1:88HN3o1fSD1jo+Z1WTLlJfMm9biopur6Ct9BFKjiB64= -istio.io/api v0.0.0-20201113155354-fcf32ac5d223/go.mod h1:88HN3o1fSD1jo+Z1WTLlJfMm9biopur6Ct9BFKjiB64= -istio.io/client-go v0.0.0-20200916161914-94f0e83444ca/go.mod h1:SO65MWt7I45dvUwuDowoiB0SVcGpfWZfUTlopvYpbZc= -istio.io/client-go v0.0.0-20201113160737-d4c1e2c0a42f/go.mod h1:zL1ZZ3ZzwTODaLfNFHvN+Flp+6xw9J8lLpDwPDubjMo= -istio.io/gogo-genproto v0.0.0-20190930162913-45029607206a/go.mod h1:OzpAts7jljZceG4Vqi5/zXy/pOg1b209T3jb7Nv5wIs= -istio.io/gogo-genproto v0.0.0-20191029161641-f7d19ec0141d/go.mod h1:OzpAts7jljZceG4Vqi5/zXy/pOg1b209T3jb7Nv5wIs= -k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= -k8s.io/api v0.0.0-20190918155943-95b840bb6a1f/go.mod h1:uWuOHnjmNrtQomJrvEBg0c0HRNyQ+8KTEERVsK0PW48= -k8s.io/api v0.0.0-20191003000013-35e20aa79eb8/go.mod h1:uWuOHnjmNrtQomJrvEBg0c0HRNyQ+8KTEERVsK0PW48= -k8s.io/api v0.17.8/go.mod h1:N++Llhs8kCixMUoCaXXAyMMPbo8dDVnh+IQ36xZV2/0= -k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78= -k8s.io/api v0.18.4/go.mod h1:lOIQAKYgai1+vz9J7YcDZwC26Z0zQewYOGWdyIPUUQ4= -k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI= -k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY= -k8s.io/api v0.18.12/go.mod h1:3sS78jmUoGHwERyMbEhxP6owcQ77UxGo+Yy+dKNWrh0= -k8s.io/api v0.18.16/go.mod h1:Ao8Yc9fa3plV/UwCMHg7mBp/xr550gdl1qjfZCNP38s= -k8s.io/api v0.18.18 h1:h+IFTkmyQ5ZwJGy3kG+JXcNYxjRgkJCXHdiFvF284D4= -k8s.io/api v0.18.18/go.mod h1:Gq0a7seDxpP8TmcLbtdKv/2kulShUvq7MH4jIh7FiWU= -k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8/go.mod h1:IxkesAMoaCRoLrPJdZNZUQp9NfZnzqaVzLhb2VEQzXE= -k8s.io/apiextensions-apiserver v0.0.0-20190918161926-8f644eb6e783/go.mod h1:xvae1SZB3E17UpV59AWc271W/Ph25N+bjPyR63X6tPY= -k8s.io/apiextensions-apiserver v0.17.8/go.mod h1:5H/i0XiKizIE9SkoAQaU/ou31JJBIffbsT0ALA18GmE= -k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY= -k8s.io/apiextensions-apiserver v0.18.4/go.mod h1:NYeyeYq4SIpFlPxSAB6jHPIdvu3hL0pc36wuRChybio= -k8s.io/apiextensions-apiserver v0.18.6/go.mod h1:lv89S7fUysXjLZO7ke783xOwVTm6lKizADfvUM/SS/M= -k8s.io/apiextensions-apiserver v0.18.8/go.mod h1:7f4ySEkkvifIr4+BRrRWriKKIJjPyg9mb/p63dJKnlM= -k8s.io/apiextensions-apiserver v0.18.12 h1:b0jTgW/qwqZBMIJTMxkLvvAtNRDZboG5yZiIbOFgQv8= -k8s.io/apiextensions-apiserver v0.18.12/go.mod h1:nihADkPed1L37Vxpz2/BrtxO9mCtINH23aNtUe/CRLo= -k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= -k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655/go.mod h1:nL6pwRT8NgfF8TT68DBI8uEePRt89cSvoXUVqbkWHq4= -k8s.io/apimachinery v0.17.0/go.mod h1:b9qmWdKlLuU9EBh+06BtLcSf/Mu89rWL33naRxs1uZg= -k8s.io/apimachinery v0.17.3/go.mod h1:gxLnyZcGNdZTCLnq3fgzyg2A5BVCHTNDFrw8AmuJ+0g= -k8s.io/apimachinery v0.17.8/go.mod h1:Lg8zZ5iC/O8UjCqW6DNhcQG2m4TdjF9kwG3891OWbbA= -k8s.io/apimachinery v0.18.1/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA= -k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA= -k8s.io/apimachinery v0.18.4/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= -k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= -k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig= -k8s.io/apimachinery v0.18.10/go.mod h1:PF5taHbXgTEJLU+xMypMmYTXTWPJ5LaW8bfsisxnEXk= -k8s.io/apimachinery v0.18.12/go.mod h1:PF5taHbXgTEJLU+xMypMmYTXTWPJ5LaW8bfsisxnEXk= -k8s.io/apimachinery v0.18.16/go.mod h1:PF5taHbXgTEJLU+xMypMmYTXTWPJ5LaW8bfsisxnEXk= -k8s.io/apimachinery v0.18.18 h1:gKUaOQ0LVklTxXJUs4MbUmGQF8tuthnkhhPyXLZEbQw= -k8s.io/apimachinery v0.18.18/go.mod h1:z3HWT24PKvOWfgF+z68R7+Jj761mphku1J34CGG9NDc= -k8s.io/apiserver v0.0.0-20190918160949-bfa5e2e684ad/go.mod h1:XPCXEwhjaFN29a8NldXA901ElnKeKLrLtREO9ZhFyhg= -k8s.io/apiserver v0.17.8/go.mod h1:XU2YBi1I/v/P1R5lb0lEwSQ1rnXE01k7yxVtdIWH4Lo= -k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw= -k8s.io/apiserver v0.18.4/go.mod h1:q+zoFct5ABNnYkGIaGQ3bcbUNdmPyOCoEBcg51LChY8= -k8s.io/apiserver v0.18.6/go.mod h1:Zt2XvTHuaZjBz6EFYzpp+X4hTmgWGy8AthNVnTdm3Wg= -k8s.io/apiserver v0.18.8/go.mod h1:12u5FuGql8Cc497ORNj79rhPdiXQC4bf53X/skR/1YM= -k8s.io/apiserver v0.18.12/go.mod h1:uFOeW4LlxS6KDgLWy3n3gh0DhC6m41QIFgL33ouk+4w= -k8s.io/apiserver v0.18.18 h1:UJwCH9mV1MGMb8eEJOK2iA+24dPFD1miiHDnPFhnIoI= -k8s.io/apiserver v0.18.18/go.mod h1:zRDMDGbnC4UYe8sIN/1LpvuYkzhQWUcym4kaRbeYSgQ= -k8s.io/cli-runtime v0.18.2/go.mod h1:yfFR2sQQzDsV0VEKGZtrJwEy4hLZ2oj4ZIfodgxAHWQ= -k8s.io/cli-runtime v0.18.4/go.mod h1:9/hS/Cuf7NVzWR5F/5tyS6xsnclxoPLVtwhnkJG1Y4g= -k8s.io/cli-runtime v0.18.8/go.mod h1:7EzWiDbS9PFd0hamHHVoCY4GrokSTPSL32MA4rzIu0M= -k8s.io/client-go v0.18.18 h1:UBrr6T0aE58M7xRN1/yKk/c7pPaZDxGje7IR3DBSYZE= -k8s.io/client-go v0.18.18/go.mod h1:QwpPMoXp10trnFR4Dd+VRrkqbTqokwu0BgkJ63v/iRE= -k8s.io/code-generator v0.0.0-20190912054826-cd179ad6a269/go.mod h1:V5BD6M4CyaN5m+VthcclXWsVcT1Hu+glwa1bi3MIsyE= -k8s.io/code-generator v0.17.8/go.mod h1:iiHz51+oTx+Z9D0vB3CH3O4HDDPWrvZyUgUYaIE9h9M= -k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc= -k8s.io/code-generator v0.18.4/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c= -k8s.io/code-generator v0.18.6/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c= -k8s.io/code-generator v0.18.8/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c= -k8s.io/code-generator v0.18.12/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c= -k8s.io/component-base v0.0.0-20190918160511-547f6c5d7090/go.mod h1:933PBGtQFJky3TEwYx4aEPZ4IxqhWh3R6DCmzqIn1hA= -k8s.io/component-base v0.17.8/go.mod h1:xfNNdTAMsYzdiAa8vXnqDhRVSEgkfza0iMt0FrZDY7s= -k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM= -k8s.io/component-base v0.18.4/go.mod h1:7jr/Ef5PGmKwQhyAz/pjByxJbC58mhKAhiaDu0vXfPk= -k8s.io/component-base v0.18.6/go.mod h1:knSVsibPR5K6EW2XOjEHik6sdU5nCvKMrzMt2D4In14= -k8s.io/component-base v0.18.8/go.mod h1:00frPRDas29rx58pPCxNkhUfPbwajlyyvu8ruNgSErU= -k8s.io/component-base v0.18.12/go.mod h1:pRGKXsx2KWfsJqlDi4sbCc1jpaB87rXIIqupjhr5wj0= -k8s.io/component-base v0.18.18 h1:P83feOyr/gMGp6SOJd9gJlAfzZyGbVu1E6R9laOrZD4= -k8s.io/component-base v0.18.18/go.mod h1:XVfzMcAcLKfIMo+oimumWDRwCC/oxPK42457AKXrUj8= -k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200205140755-e0e292d8aa12/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= -k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= -k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= -k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= -k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29 h1:NeQXVJ2XFSkRoPzRo8AId01ZER+j8oV4SZADT4iBOXQ= -k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29/go.mod h1:F+5wygcW0wmRTnM3cOgIqGivxkwSWIWT5YdsDbeAOaU= -k8s.io/kubectl v0.18.4/go.mod h1:EzB+nfeUWk6fm6giXQ8P4Fayw3dsN+M7Wjy23mTRtB0= -k8s.io/kubectl v0.18.8/go.mod h1:PlEgIAjOMua4hDFTEkVf+W5M0asHUKfE4y7VDZkpLHM= -k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/metrics v0.18.4/go.mod h1:luze4fyI9JG4eLDZy0kFdYEebqNfi0QrG4xNEbPkHOs= -k8s.io/metrics v0.18.8/go.mod h1:j7JzZdiyhLP2BsJm/Fzjs+j5Lb1Y7TySjhPWqBPwRXA= -k8s.io/utils v0.0.0-20191114184206-e782cd3c129f h1:GiPwtSzdP43eI1hpPCbROQCCIgCuiMMNF8YUVLF3vJo= -k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -knative.dev/eventing v0.12.0/go.mod h1:UxweNv8yXhsdHJitcb9R6rmfNaUD2DFi9GWwNRyIs58= -knative.dev/eventing v0.13.1 h1:2jnxea7XtqFX8dMFu9cZ7ocMuQV5ZnXX+6tLF6AbYGo= -knative.dev/eventing v0.13.1/go.mod h1:UxweNv8yXhsdHJitcb9R6rmfNaUD2DFi9GWwNRyIs58= -knative.dev/hack v0.0.0-20201214230143-4ed1ecb8db24/go.mod h1:PHt8x8yX5Z9pPquBEfIj0X66f8iWkWfR0S/sarACJrI= -knative.dev/pkg v0.0.0-20210217160502-b7d7ff183788 h1:cAJhicFIoAcL/oMR2HpNz9rOXBJjPPCRS+h5oVe07Ak= -knative.dev/pkg v0.0.0-20210217160502-b7d7ff183788/go.mod h1:hckgW978SdzPA2H5EDvRPY8xsnPuDZLJLbPf8Jte7Q0= -launchpad.net/gocheck v0.0.0-20140225173054-000000000087/go.mod h1:hj7XX3B/0A+80Vse0e+BUHsHMTEhd0O4cpUHr/e/BUM= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= -pgregory.net/rapid v0.3.3/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/letsencrypt v0.0.3/go.mod h1:buyQKZ6IXrRnB7TdkHP0RyEybLx18HHyOSoTyoOLqNY= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7 h1:uuHDyjllyzRyCIvvn0OBjiRB0SgBZGqHNYAmjR7fO50= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0= -sigs.k8s.io/controller-runtime v0.2.0-beta.2/go.mod h1:TSH2R0nSz4WAlUUlNnOFcOR/VUhfwBLlmtq2X6AiQCA= -sigs.k8s.io/controller-runtime v0.4.0/go.mod h1:ApC79lpY3PHW9xj/w9pj+lYkLgwAAUZwfXkME1Lajns= -sigs.k8s.io/controller-runtime v0.5.8/go.mod h1:UI/unU7Q+mo/rWBrND0NAaVNj/Xjh/+aqSv/M3njpmo= -sigs.k8s.io/controller-runtime v0.6.0/go.mod h1:CpYf5pdNY/B352A1TFLAS2JVSlnGQ5O2cftPHndTroo= -sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E= -sigs.k8s.io/controller-runtime v0.6.5 h1:DSRu6E4FBeVwd/p8niskCVWnX5TSC6ZT9L/OIWOBK7s= -sigs.k8s.io/controller-runtime v0.6.5/go.mod h1:WlZNXcM0++oyaQt4B7C2lEE5JYRs8vJUzRP4N4JpdAY= -sigs.k8s.io/controller-tools v0.2.4/go.mod h1:m/ztfQNocGYBgTTCmFdnK94uVvgxeZeE3LtJvd/jIzA= -sigs.k8s.io/kind v0.7.0/go.mod h1:An/AbWHT6pA/Lm0Og8j3ukGhfJP3RiVN/IBU6Lo3zl8= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= -sigs.k8s.io/structured-merge-diff v0.0.0-20190817042607-6149e4549fca h1:6dsH6AYQWbyZmtttJNe8Gq1cXOeS1BdV3eW37zHilAQ= -sigs.k8s.io/structured-merge-diff v0.0.0-20190817042607-6149e4549fca/go.mod h1:IIgPezJWb76P0hotTxzDbWsMYB8APh18qZnxkomBpxA= -sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7mRH6DGaRcixXEJXTsE= -sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= -sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= -sigs.k8s.io/structured-merge-diff/v3 v3.0.1-0.20200706213357-43c19bbb7fba h1:AAbnc5KQuTWKuh2QSnyghKIOTFzB0Jayv7/OFDn3Cy4= -sigs.k8s.io/structured-merge-diff/v3 v3.0.1-0.20200706213357-43c19bbb7fba/go.mod h1:V06abazjHneE37ZdSY/UUwPVgcJMKI/jU5XGUjgIKoc= -sigs.k8s.io/structured-merge-diff/v3 v3.0.1-0.20201124164700-f5fd4ea1e4c9 h1:aQn+bP3hsnER21VpkPthyiJQGGPA1LuxV2r3dXMkQEI= -sigs.k8s.io/structured-merge-diff/v3 v3.0.1-0.20201124164700-f5fd4ea1e4c9/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= -sigs.k8s.io/testing_frameworks v0.1.1/go.mod h1:VVBKrHmJ6Ekkfz284YKhQePcdycOzNH9qL6ht1zEr/U= -sigs.k8s.io/testing_frameworks v0.1.2/go.mod h1:ToQrwSC3s8Xf/lADdZp3Mktcql9CG0UAmdJG9th5i0w= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sourcegraph.com/sourcegraph/appdash v0.0.0-20180110180208-2cc67fd64755/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= -sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/components/console-backend-service/gqlgen.yml b/components/console-backend-service/gqlgen.yml deleted file mode 100644 index 8dd051c0cc4c..000000000000 --- a/components/console-backend-service/gqlgen.yml +++ /dev/null @@ -1,155 +0,0 @@ -schema: internal/gqlschema/*.graphql - -# Let gqlgen know where to put the generated server -exec: - filename: internal/gqlschema/schema_gen.go - package: gqlschema - -# Let gqlgen know where to the generated models (if any) -model: - filename: internal/gqlschema/models_gen.go - package: gqlschema - -resolver: - layout: follow-schema - dir: internal/domain - package: domain - -# Optional turns on binding to field names by tag provided -struct_tag: json - -# Tell gqlgen about any existing models you want to reuse for -# graphql. These normally come from the db or a remote api. -models: - JSON: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.JSON" - Labels: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Labels" - Timestamp: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Timestamp" - Settings: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Settings" - ApplicationMappingService: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ApplicationMappingService" - AssetGroup: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AssetGroup" - fields: - assets: - resolver: true - ClusterAssetGroup: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterAssetGroup" - fields: - assets: - resolver: true - Asset: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Asset" - fields: - files: - resolver: true - ClusterAsset: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterAsset" - fields: - files: - resolver: true - ServiceInstance: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceInstance" - fields: - bindable: - resolver: true - serviceBindings: - resolver: true - serviceBindingUsages: - resolver: true - servicePlan: - resolver: true - serviceClass: - resolver: true - clusterServicePlan: - resolver: true - clusterServiceClass: - resolver: true - ServiceClass: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceClass" - fields: - plans: - resolver: true - instances: - resolver: true - activated: - resolver: true - clusterAssetGroup: - resolver: true - assetGroup: - resolver: true - ClusterServiceClass: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterServiceClass" - fields: - plans: - resolver: true - instances: - resolver: true - activated: - resolver: true - clusterAssetGroup: - resolver: true - ServicePlan: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServicePlan" - fields: - clusterAssetGroup: - resolver: true - assetGroup: - resolver: true - ClusterServicePlan: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterServicePlan" - fields: - clusterAssetGroup: - resolver: true - Application: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Application" - fields: - enabledInNamespaces: - resolver: true - enabledMappingServices: - resolver: true - status: - resolver: true - ServiceBinding: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBinding" - fields: - secret: - resolver: true - ServiceBindingUsage: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBindingUsage" - fields: - serviceBinding: - resolver: true - Deployment: - fields: - boundServiceInstanceNames: - resolver: true - DeploymentStatus: - EventActivation: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.EventActivation" - fields: - events: - resolver: true - Namespace: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Namespace" - fields: - applications: - resolver: true - deployments: - resolver: true - pods: - resolver: true - NamespaceListItem: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.NamespaceListItem" - fields: - applicationsCount: - resolver: true - podsCount: - resolver: true - healthyPodsCount: - resolver: true - APIRuleAccessStrategyInput: - model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.APIRuleAccessStrategyInput" diff --git a/components/console-backend-service/hack/boilerplate.go.txt b/components/console-backend-service/hack/boilerplate.go.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/components/console-backend-service/hack/gqlgen.go b/components/console-backend-service/hack/gqlgen.go deleted file mode 100644 index 2c2f586e3119..000000000000 --- a/components/console-backend-service/hack/gqlgen.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build ignore - -package main - -import "github.com/99designs/gqlgen/cmd" - -func main() { - cmd.Execute() -} diff --git a/components/console-backend-service/hack/update-codegen.sh b/components/console-backend-service/hack/update-codegen.sh deleted file mode 100755 index d3857b898178..000000000000 --- a/components/console-backend-service/hack/update-codegen.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -set -o errexit -set -o nounset -set -o pipefail - - -SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/.. -CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ${GOPATH}/src/k8s.io/code-generator)} -ROOT_PKG="github.com/kyma-project/kyma/components/console-backend-service/pkg" -API_TYPE_VERSION="ui:v1alpha1" - -go install ./vendor/k8s.io/code-generator/cmd/{defaulter-gen,client-gen,lister-gen,informer-gen,deepcopy-gen} - -./vendor/k8s.io/code-generator/generate-groups.sh all \ - ${ROOT_PKG}/client ${ROOT_PKG}/apis \ - ${API_TYPE_VERSION} \ - --go-header-file ${SCRIPT_ROOT}/hack/boilerplate.go.txt diff --git a/components/console-backend-service/internal/apierror/errors.go b/components/console-backend-service/internal/apierror/errors.go deleted file mode 100644 index 5997dee8fe7f..000000000000 --- a/components/console-backend-service/internal/apierror/errors.go +++ /dev/null @@ -1,101 +0,0 @@ -package apierror - -import ( - "fmt" -) - -type APIError struct { - status Status - message string -} - -var _ error = &APIError{} - -func (e *APIError) Error() string { - return e.message -} - -func (e *APIError) Status() Status { - return e.status -} - -type ErrorField string - -type ErrorFieldAggregate []ErrorField - -func (agg ErrorFieldAggregate) String() string { - if len(agg) == 0 { - return "" - } - if len(agg) == 1 { - return fmt.Sprintf("%s", agg[0]) - } - result := fmt.Sprintf("[%s", agg[0]) - for i := 1; i < len(agg); i++ { - result += fmt.Sprintf(", %s", agg[i]) - } - result += "]" - return result -} - -type Status int - -const ( - Unknown Status = iota - Invalid -) - -func NewInvalid(kind fmt.Stringer, errs ErrorFieldAggregate) *APIError { - message := "" - if kind != nil { - message += fmt.Sprintf("%s ", kind) - } else { - message += "Resource " - } - message += "is invalid" - if len(errs) > 0 { - message += fmt.Sprintf(": %v", errs) - } - - return &APIError{ - status: Invalid, - message: message, - } -} - -func NewInvalidField(path string, value string, detail string) ErrorField { - message := "" - if path != "" { - message += fmt.Sprintf("`%s` ", path) - } - message += "field " - if value != "" { - message += fmt.Sprintf("(%s) ", value) - } - message += "is invalid" - if detail != "" { - message += fmt.Sprintf(": %s", detail) - } - return ErrorField(message) -} - -func NewMissingField(path string) ErrorField { - message := fmt.Sprintf("`%s` field is missing", path) - return ErrorField(message) -} - -func IsInvalid(err error) bool { - return statusForError(err) == Invalid -} - -func statusForError(err error) Status { - type errorWithStatus interface { - Status() Status - } - - if err, ok := err.(errorWithStatus); ok { - return err.Status() - } - - return Unknown -} diff --git a/components/console-backend-service/internal/apierror/errors_test.go b/components/console-backend-service/internal/apierror/errors_test.go deleted file mode 100644 index 9b956707839d..000000000000 --- a/components/console-backend-service/internal/apierror/errors_test.go +++ /dev/null @@ -1,134 +0,0 @@ -package apierror_test - -import ( - "errors" - "fmt" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -type testKind int - -const ( - someTestKind testKind = iota -) - -func (k testKind) String() string { - return "Test Kind" -} - -func TestNewInvalid(t *testing.T) { - var testCases = []struct { - caseName string - kind fmt.Stringer - aggregate apierror.ErrorFieldAggregate - }{ - {"EmptyAggregate", someTestKind, apierror.ErrorFieldAggregate{}}, - {"NotEmptyAggregate", someTestKind, apierror.ErrorFieldAggregate{ - apierror.NewMissingField("apiVersion"), - apierror.NewInvalidField("kind", "", ""), - }}, - {"EmptyResource", nil, apierror.ErrorFieldAggregate{}}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - result := apierror.NewInvalid(testCase.kind, testCase.aggregate) - - require.NotNil(t, result) - assert.True(t, apierror.IsInvalid(result)) - assert.NotEmpty(t, result.Error()) - }) - } -} - -func TestNewInvalidField(t *testing.T) { - var testCases = []struct { - caseName string - path string - value string - detail string - }{ - {"AllParamsProvided", "kind", "Pood", "Resource name shouldn't be changed"}, - {"NoPath", "", "Pood", "Resource name shouldn't be changed"}, - {"NoValue", "kind", "", "Resource name shouldn't be changed"}, - {"NoDetail", "kind", "Pood", ""}, - {"NoArgs", "", "", ""}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - result := apierror.NewInvalidField(testCase.path, testCase.value, testCase.detail) - - require.NotNil(t, result) - assert.NotEmpty(t, result) - }) - } -} - -func TestNewMissingField(t *testing.T) { - var testCases = []struct { - caseName string - path string - }{ - {"WithPath", "kind"}, - {"NoPath", ""}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - result := apierror.NewMissingField(testCase.path) - - require.NotNil(t, result) - assert.NotEmpty(t, result) - }) - } -} - -func TestErrorFieldAggregate_String(t *testing.T) { - var testCases = []struct { - caseName string - aggregate apierror.ErrorFieldAggregate - expectEmpty bool - }{ - {"Empty", apierror.ErrorFieldAggregate{}, true}, - {"Single", apierror.ErrorFieldAggregate{ - apierror.NewMissingField("kind"), - }, false}, - {"Multiple", apierror.ErrorFieldAggregate{ - apierror.NewMissingField("kind"), - apierror.NewMissingField("apiVersion"), - }, false}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - result := testCase.aggregate.String() - - assert.Equal(t, testCase.expectEmpty, len(result) == 0) - }) - } -} - -func TestIsInvalid(t *testing.T) { - var testCases = []struct { - caseName string - given error - expected bool - }{ - {"Internal", apierror.NewInvalid(someTestKind, nil), true}, - {"Generic", errors.New("generic"), false}, - {"Nil", nil, false}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - result := apierror.IsInvalid(testCase.given) - - assert.Equal(t, testCase.expected, result) - }) - } -} diff --git a/components/console-backend-service/internal/authn/middleware.go b/components/console-backend-service/internal/authn/middleware.go deleted file mode 100644 index 5a04e068d30f..000000000000 --- a/components/console-backend-service/internal/authn/middleware.go +++ /dev/null @@ -1,73 +0,0 @@ -package authn - -import ( - "context" - "net/http" - - "github.com/pkg/errors" - - "strings" - - "github.com/golang/glog" - "k8s.io/apiserver/pkg/authentication/authenticator" - "k8s.io/apiserver/pkg/authentication/user" -) - -var userInfoCtxKey = &contextKey{"userInfo"} - -type contextKey struct { - name string -} - -func AuthMiddleware(a authenticator.Request) func(http.Handler) http.Handler { - return func(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - defer func() { - if err := r.Body.Close(); err != nil { - glog.Errorf("Closing body failed due to an error: %s", err) - } - }() - wsProtocolHeader := r.Header.Get("sec-websocket-protocol") - if wsProtocolHeader != "" { - wsProtocolParts := strings.Split(wsProtocolHeader, ",") - if len(wsProtocolParts) > 2 { - http.Error(w, "sec-websocket-protocol malformed", http.StatusBadRequest) - return - } - if len(wsProtocolParts) == 2 { - wsProtocol, wsToken := strings.TrimSpace(wsProtocolParts[0]), strings.TrimSpace(wsProtocolParts[1]) - r.Header.Set("Authorization", "Bearer "+wsToken) - r.Header.Set("sec-websocket-protocol", wsProtocol) - } - } - - u, ok, err := a.AuthenticateRequest(r) - if err != nil { - glog.Errorf("Unable to authenticate the request due to an error: %v", err) - } - if !ok || err != nil { - http.Error(w, "Unauthorized", http.StatusUnauthorized) - return - } - ctx := WithUserInfoContext(r.Context(), u.User) - r = r.WithContext(ctx) - next.ServeHTTP(w, r) - }) - } -} - -func UserInfoForContext(ctx context.Context) (user.Info, error) { - raw := ctx.Value(userInfoCtxKey) - if raw == nil { - return &user.DefaultInfo{}, errors.New("Unable to find user info in request context") - } - userInfo, ok := raw.(user.Info) - if !ok { - return &user.DefaultInfo{}, errors.New("User info from request context does not comply with user.Info interface") - } - return userInfo, nil -} - -func WithUserInfoContext(ctx context.Context, userInfo user.Info) context.Context { - return context.WithValue(ctx, userInfoCtxKey, userInfo) -} diff --git a/components/console-backend-service/internal/authn/middleware_test.go b/components/console-backend-service/internal/authn/middleware_test.go deleted file mode 100644 index ec0ca98b1c25..000000000000 --- a/components/console-backend-service/internal/authn/middleware_test.go +++ /dev/null @@ -1,209 +0,0 @@ -package authn - -import ( - "net/http" - "net/http/httptest" - "strings" - "testing" - - "k8s.io/apiserver/pkg/authentication/authenticator" - - "github.com/stretchr/testify/assert" - - "github.com/pkg/errors" - "k8s.io/apiserver/pkg/authentication/user" -) - -func TestAuthMiddleware(t *testing.T) { - - userInfo := user.DefaultInfo{Name: "Test User", UID: "deadbeef", Groups: []string{"admins", "testers"}} - - t.Run("When HTTP request is unauthorised", func(t *testing.T) { - reject := &mockAuthenticator{Authorised: false} - middleware := AuthMiddleware(reject) - next := &mockHandler{} - response := httptest.NewRecorder() - middleware(next).ServeHTTP(response, newHttpRequest()) - - t.Run("Then authorizer is called with token", func(t *testing.T) { - assert.True(t, reject.Called) - assert.Equal(t, "Bearer token", reject.LastReq.Header.Get("authorization")) - }) - t.Run("Then next handler is not called", func(t *testing.T) { - assert.False(t, next.Called) - }) - t.Run("Then request is rejected with status code unauthorised", func(t *testing.T) { - assert.Equal(t, http.StatusUnauthorized, response.Code) - }) - }) - - t.Run("When authentication error occurs on HTTP request", func(t *testing.T) { - erroneous := &mockAuthenticator{Err: errors.New("failure")} - middleware := AuthMiddleware(erroneous) - next := &mockHandler{} - response := httptest.NewRecorder() - middleware(next).ServeHTTP(response, newHttpRequest()) - - t.Run("Then authorizer is called with token", func(t *testing.T) { - assert.True(t, erroneous.Called) - assert.Equal(t, "Bearer token", erroneous.LastReq.Header.Get("authorization")) - }) - t.Run("Then next handler is not called", func(t *testing.T) { - assert.False(t, next.Called) - }) - t.Run("Then request is rejected with status code unauthorised", func(t *testing.T) { - assert.Equal(t, http.StatusUnauthorized, response.Code) - }) - }) - - t.Run("When HTTP request is authenticated", func(t *testing.T) { - authenticated := &mockAuthenticator{Authorised: true, UserInfo: &userInfo} - middleware := AuthMiddleware(authenticated) - next := &mockHandler{} - response := httptest.NewRecorder() - response.Code = 0 - middleware(next).ServeHTTP(response, newHttpRequest()) - - t.Run("Then authorizer is called with token", func(t *testing.T) { - assert.True(t, authenticated.Called) - assert.Equal(t, "Bearer token", authenticated.LastReq.Header.Get("authorization")) - }) - t.Run("Then next handler is called", func(t *testing.T) { - assert.True(t, next.Called) - }) - t.Run("Then status code is not set", func(t *testing.T) { - assert.Equal(t, 0, response.Code) - }) - t.Run("Then user.Info is added to the context", func(t *testing.T) { - userInfoFromCtx, err := UserInfoForContext(next.r.Context()) - assert.Equal(t, &userInfo, userInfoFromCtx) - assert.Nil(t, err) - }) - }) - - t.Run("When websocket request has malformed protocol header", func(t *testing.T) { - authenticated := &mockAuthenticator{Authorised: true, UserInfo: &userInfo} - middleware := AuthMiddleware(authenticated) - next := &mockHandler{} - response := httptest.NewRecorder() - response.Code = 0 - middleware(next).ServeHTTP(response, newMalformedWebsocketRequest()) - - t.Run("Must not call authorizer", func(t *testing.T) { - assert.False(t, authenticated.Called) - }) - t.Run("Then next handler is not called", func(t *testing.T) { - assert.False(t, next.Called) - }) - t.Run("Then request is rejected with status bad request", func(t *testing.T) { - assert.Equal(t, http.StatusBadRequest, response.Code) - }) - }) - - t.Run("When Websocket request is unauthorised", func(t *testing.T) { - reject := &mockAuthenticator{Authorised: false} - middleware := AuthMiddleware(reject) - next := &mockHandler{} - response := httptest.NewRecorder() - middleware(next).ServeHTTP(response, newWebsocketRequest()) - - t.Run("Then authorizer is called with token", func(t *testing.T) { - assert.True(t, reject.Called) - assert.Equal(t, "Bearer token", reject.LastReq.Header.Get("authorization")) - }) - t.Run("Then next handler is not called", func(t *testing.T) { - assert.False(t, next.Called) - }) - t.Run("Then request is rejected with status code unauthorised", func(t *testing.T) { - assert.Equal(t, http.StatusUnauthorized, response.Code) - }) - }) - - t.Run("When authentication error occurs on Websocket request", func(t *testing.T) { - erroneous := &mockAuthenticator{Err: errors.New("failure")} - middleware := AuthMiddleware(erroneous) - next := &mockHandler{} - response := httptest.NewRecorder() - middleware(next).ServeHTTP(response, newWebsocketRequest()) - - t.Run("Then authorizer is called with token", func(t *testing.T) { - assert.True(t, erroneous.Called) - assert.Equal(t, "Bearer token", erroneous.LastReq.Header.Get("authorization")) - }) - t.Run("Then next handler is not called", func(t *testing.T) { - assert.False(t, next.Called) - }) - t.Run("Then request is rejected with status code unauthorised", func(t *testing.T) { - assert.Equal(t, http.StatusUnauthorized, response.Code) - }) - }) - - t.Run("When Websocket request is authenticated", func(t *testing.T) { - authenticated := &mockAuthenticator{Authorised: true, UserInfo: &userInfo} - middleware := AuthMiddleware(authenticated) - next := &mockHandler{} - response := httptest.NewRecorder() - response.Code = 0 - middleware(next).ServeHTTP(response, newWebsocketRequest()) - - t.Run("Then authorizer is called with token", func(t *testing.T) { - assert.True(t, authenticated.Called) - assert.Equal(t, "Bearer token", authenticated.LastReq.Header.Get("authorization")) - }) - t.Run("Then next handler is called", func(t *testing.T) { - assert.True(t, next.Called) - }) - t.Run("Then status code is not set", func(t *testing.T) { - assert.Equal(t, 0, response.Code) - }) - t.Run("Then user.Info is added to the context", func(t *testing.T) { - userInfoFromCtx, err := UserInfoForContext(next.r.Context()) - assert.Equal(t, &userInfo, userInfoFromCtx) - assert.Nil(t, err) - }) - }) -} - -type mockAuthenticator struct { - UserInfo user.Info - Authorised bool - Err error - LastReq *http.Request - Called bool -} - -func (a *mockAuthenticator) AuthenticateRequest(req *http.Request) (*authenticator.Response, bool, error) { - a.Called = true - a.LastReq = req - return &authenticator.Response{User: a.UserInfo}, a.Authorised, a.Err -} - -type mockHandler struct { - Called bool - w http.ResponseWriter - r *http.Request -} - -func (h *mockHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - h.w = w - h.r = r - h.Called = true -} - -func newHttpRequest() *http.Request { - req := httptest.NewRequest("POST", "/graphql", strings.NewReader("")) - req.Header.Set("authorization", "Bearer token") - return req -} - -func newMalformedWebsocketRequest() *http.Request { - req := httptest.NewRequest("GET", "/graphql", strings.NewReader("")) - req.Header.Set("sec-websocket-protocol", "graphql, token, smth") - return req -} - -func newWebsocketRequest() *http.Request { - req := httptest.NewRequest("GET", "/graphql", strings.NewReader("")) - req.Header.Set("sec-websocket-protocol", "graphql, token") - return req -} diff --git a/components/console-backend-service/internal/authn/oidc.go b/components/console-backend-service/internal/authn/oidc.go deleted file mode 100644 index a16834ac7bb4..000000000000 --- a/components/console-backend-service/internal/authn/oidc.go +++ /dev/null @@ -1,38 +0,0 @@ -package authn - -import ( - "k8s.io/apiserver/pkg/authentication/authenticator" - "k8s.io/apiserver/pkg/authentication/request/bearertoken" - "k8s.io/apiserver/plugin/pkg/authenticator/token/oidc" -) - -// OIDCConfig represents configuration used for JWT request authentication -type OIDCConfig struct { - IssuerURL string `envconfig:"default=https://dex.kyma.local"` - ClientID string `envconfig:"default=kyma-client"` - CAFile string `envconfig:"optional"` - UsernameClaim string `envconfig:"default=email"` - UsernamePrefix string `envconfig:"optional"` - GroupsClaim string `envconfig:"default=groups"` - GroupsPrefix string `envconfig:"optional"` - SupportedSigningAlgs []string `envconfig:"default=RS256"` -} - -// NewOIDCAuthenticator returns OIDC authenticator -func NewOIDCAuthenticator(config *OIDCConfig) (authenticator.Request, error) { - tokenAuthenticator, err := oidc.New(oidc.Options{ - IssuerURL: config.IssuerURL, - ClientID: config.ClientID, - CAFile: config.CAFile, - UsernameClaim: config.UsernameClaim, - UsernamePrefix: config.UsernamePrefix, - GroupsClaim: config.GroupsClaim, - GroupsPrefix: config.GroupsPrefix, - SupportedSigningAlgs: config.SupportedSigningAlgs, - }) - if err != nil { - return nil, err - } - - return bearertoken.New(tokenAuthenticator), nil -} diff --git a/components/console-backend-service/internal/authz/auth.go b/components/console-backend-service/internal/authz/auth.go deleted file mode 100644 index d04316134b5e..000000000000 --- a/components/console-backend-service/internal/authz/auth.go +++ /dev/null @@ -1,213 +0,0 @@ -package authz - -import ( - "context" - "reflect" - "strings" - "time" - - extractor "github.com/kyma-project/kyma/components/console-backend-service/internal/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/99designs/gqlgen/graphql" - "github.com/pkg/errors" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/apiserver/pkg/authorization/authorizerfactory" - "k8s.io/client-go/discovery" - authorizationclient "k8s.io/client-go/kubernetes/typed/authorization/v1" -) - -type Authorizer struct { - // authorizer determines whether a given authorization.Attributes is allowed - authorizer.Authorizer -} - -type SARCacheConfig struct { - AllowCacheTTL time.Duration `envconfig:"default=5m"` - DenyCacheTTL time.Duration `envconfig:"default=30s"` -} - -func NewAuthorizer(client authorizationclient.SubjectAccessReviewInterface, cacheConfig SARCacheConfig) (authorizer.Authorizer, error) { - if client == nil { - return nil, errors.New("no client provided, cannot use webhook authorization") - } - authorizerConfig := authorizerfactory.DelegatingAuthorizerConfig{ - SubjectAccessReviewClient: client, - AllowCacheTTL: cacheConfig.AllowCacheTTL, - DenyCacheTTL: cacheConfig.DenyCacheTTL, - } - a, err := authorizerConfig.New() - - return &Authorizer{a}, err -} - -type extractedAttributes struct { - Name string - Namespace string - Resource string - APIGroup string - APIVersion string -} - -// PrepareAttributes prepares attributes for authorization -func PrepareAttributes(ctx context.Context, u user.Info, attributes gqlschema.ResourceAttributes, obj interface{}, client discovery.DiscoveryInterface) (authorizer.Attributes, error) { - resolverCtx := graphql.GetFieldContext(ctx) - - // make sure resource information is taken either from directive or from field - err := validateAttributes(attributes) - if err != nil { - return nil, errors.Wrap(err, "while validating resource attributes") - } - - var extracted extractedAttributes - if attributes.IsChildResolver { - extracted, err = extractAttributesFromChildResolver(obj, attributes) - } else { - extracted, err = extractAttributes(attributes, resolverCtx, client) - } - if err != nil { - return nil, errors.Wrap(err, "while extracting attributes") - } - - if attributes.ResourceArg == nil { - extracted.Resource = *attributes.Resource - extracted.APIVersion = *attributes.APIVersion - extracted.APIGroup = *attributes.APIGroup - } - - return authorizer.AttributesRecord{ - User: u, - Verb: attributes.Verb, - Namespace: extracted.Namespace, - APIGroup: extracted.APIGroup, - APIVersion: extracted.APIVersion, - Resource: extracted.Resource, - Subresource: attributes.Subresource, - Name: extracted.Name, - ResourceRequest: true, - }, nil -} - -func validateAttributes(attributes gqlschema.ResourceAttributes) error { - if attributes.ResourceArg != nil { - if attributes.Resource != nil || attributes.APIVersion != nil || attributes.APIGroup != nil { - return errors.New("resource information shouldn't be both passed directly and extracted from field at the same time") - } - if attributes.IsChildResolver { - return errors.New("resource information can't be extracted from passed object") - } - } else { - if attributes.Resource == nil || attributes.APIVersion == nil || attributes.APIGroup == nil { - return errors.New("resource information is missing, it should be either passed directly or extracted from field") - } - } - - return nil -} - -func extractAttributesFromChildResolver(obj interface{}, attributes gqlschema.ResourceAttributes) (extractedAttributes, error) { - var extracted extractedAttributes - - val := reflect.Indirect(reflect.ValueOf(obj)) - - for i := 0; i < val.NumField(); i++ { - fieldName := val.Type().Field(i).Name - - if attributes.NameArg != nil { - if nameArg := *attributes.NameArg; fieldName == nameArg { - // if field does not contain string - if val.Field(i).Kind() != reflect.String { - return extractedAttributes{}, errors.New("there are problems with receiving name value from passed object") - } - extracted.Name = val.Field(i).String() - } - } - - if attributes.NamespaceArg != nil { - if namespaceArg := *attributes.NamespaceArg; fieldName == namespaceArg { - // if field does not contain string - if val.Field(i).Kind() != reflect.String { - return extractedAttributes{}, errors.New("there are problems with receiving namespace value from passed object") - } - extracted.Namespace = val.Field(i).String() - } - } - } - - if attributes.NameArg != nil && extracted.Name == "" { - return extractedAttributes{}, errors.New("name field in passed object not found") - } - if attributes.NamespaceArg != nil && extracted.Namespace == "" { - return extractedAttributes{}, errors.New("namespace field in passed object not found") - } - - return extracted, nil -} - -func extractAttributes(attributes gqlschema.ResourceAttributes, resolverCtx *graphql.ResolverContext, client discovery.DiscoveryInterface) (extractedAttributes, error) { - var extracted extractedAttributes - - if attributes.NameArg != nil { - name, err := extractValue(resolverCtx.Args[*attributes.NameArg], "name") - if err != nil { - return extractedAttributes{}, err - } - extracted.Name = name - } - - if attributes.NamespaceArg != nil { - namespace, err := extractValue(resolverCtx.Args[*attributes.NamespaceArg], "namespace") - if err != nil { - return extractedAttributes{}, err - } - extracted.Namespace = namespace - } - - if attributes.ResourceArg != nil { - resourceJSON, ok := resolverCtx.Args[*attributes.ResourceArg].(gqlschema.JSON) - if !ok { - return extractedAttributes{}, errors.New("resource in arguments found, but can't be converted to JSON") - } - resourceMeta, err := extractor.ExtractResourceMeta(resourceJSON) - if err != nil { - return extractedAttributes{}, errors.Wrap(err, "exile extracting meta information from resource meta") - } - split := strings.Split(resourceMeta.APIVersion, "/") - switch len(split) { - case 2: - extracted.APIGroup = split[0] - extracted.APIVersion = split[1] - case 1: - extracted.APIGroup = "" - extracted.APIVersion = split[0] - default: - return extractedAttributes{}, errors.Errorf("resource apiVersion %q is invalid. Expected either one or no `/` delimiter", resourceMeta.APIVersion) - } - extracted.Resource, err = extractor.GetPluralNameFromKind(resourceMeta.Kind, resourceMeta.APIVersion, client) - if err != nil { - return extractedAttributes{}, errors.Wrap(err, "while getting resource's plural name") - } - } - - return extracted, nil -} - -func extractValue(arg interface{}, valueName string) (string, error) { - var value string - switch v := arg.(type) { - case string: - value = v - case *string: - if v == nil { - return "", nil - } - value = *v - default: - return "", errors.Errorf("%s in arguments found, but can't be converted to string", valueName) - } - if value == "" { - return "", errors.Errorf("%s in arguments not found", valueName) - } - return value, nil -} diff --git a/components/console-backend-service/internal/authz/auth_test.go b/components/console-backend-service/internal/authz/auth_test.go deleted file mode 100644 index 2ddac0daf162..000000000000 --- a/components/console-backend-service/internal/authz/auth_test.go +++ /dev/null @@ -1,192 +0,0 @@ -package authz - -import ( - "testing" - - fakedisc "k8s.io/client-go/discovery/fake" - "k8s.io/client-go/kubernetes/fake" - - "github.com/stretchr/testify/require" - - "github.com/stretchr/testify/assert" -) - -type exampleType struct { - MyNamespace string -} - -func TestPrepareAttributes(t *testing.T) { - - t.Run("When no arg is required", func(t *testing.T) { - - gqlAttributes := noArgsAttributes(withoutChildResolverSet) - authAttributes, err := PrepareAttributes(noArgsContext(), &userInfo, gqlAttributes, exampleType{}, nil) - - t.Run("Then no error occured", func(t *testing.T) { - require.Nil(t, err) - }) - - verifyCommonAttributes(t, authAttributes) - - t.Run("Then namespace is empty", func(t *testing.T) { - assert.Empty(t, authAttributes.GetNamespace()) - }) - t.Run("Then name is empty", func(t *testing.T) { - assert.Empty(t, authAttributes.GetName()) - }) - - }) - - t.Run("When arguments like name or namespace are required", func(t *testing.T) { - t.Run("resolver is not a child resolver", func(t *testing.T) { - - gqlAttributes := withArgsAttributes(withoutChildResolverSet) - - t.Run("and arguments are provided", func(t *testing.T) { - authAttributes, err := PrepareAttributes(withArgsContext(resourceJSON), &userInfo, gqlAttributes, exampleType{}, nil) - - t.Run("Then no error occured", func(t *testing.T) { - require.Nil(t, err) - }) - - verifyCommonAttributes(t, authAttributes) - - t.Run("Then namespace is set", func(t *testing.T) { - assert.Equal(t, namespace, authAttributes.GetNamespace()) - }) - t.Run("Then name is set", func(t *testing.T) { - assert.Equal(t, name, authAttributes.GetName()) - }) - }) - - t.Run("and arguments are not provided", func(t *testing.T) { - authAttributes, err := PrepareAttributes(noArgsContext(), &userInfo, gqlAttributes, exampleType{}, nil) - - t.Run("Then error should be returned", func(t *testing.T) { - require.Error(t, err) - }) - t.Run("Then authAttributes is empty", func(t *testing.T) { - assert.Nil(t, authAttributes) - }) - }) - }) - - t.Run("resolver is a child resolver", func(t *testing.T) { - - gqlAttributes := withNamespaceArgAttributes(withChildResolverSet) - - t.Run("and arguments in parent exists", func(t *testing.T) { - authAttributes, err := PrepareAttributes(noArgsContext(), &userInfo, gqlAttributes, exampleType{namespace}, nil) - - t.Run("Then no error should be returned", func(t *testing.T) { - assert.Nil(t, err) - }) - - verifyCommonAttributes(t, authAttributes) - - t.Run("Then namespace should be set", func(t *testing.T) { - assert.Equal(t, namespace, authAttributes.GetNamespace()) - }) - }) - - t.Run("and no arguments in parent exists", func(t *testing.T) { - authAttributes, err := PrepareAttributes(noArgsContext(), &userInfo, gqlAttributes, exampleType{}, nil) - - t.Run("Then error should be returned", func(t *testing.T) { - assert.Error(t, err) - }) - t.Run("Then authAttributes is empty", func(t *testing.T) { - assert.Nil(t, authAttributes) - }) - }) - }) - }) - - t.Run("When resource meta information are required", func(t *testing.T) { - t.Run("resource meta is known", func(t *testing.T) { - t.Run("and resourceArg is provided", func(t *testing.T) { - gqlAttributes := withRedundantResourceArgAttributes(withoutChildResolverSet) - authAttributes, err := PrepareAttributes(withArgsContext(resourceJSON), &userInfo, gqlAttributes, exampleType{}, nil) - - t.Run("Then error should be returned", func(t *testing.T) { - assert.Error(t, err) - }) - t.Run("Then authAttributes is empty", func(t *testing.T) { - assert.Nil(t, authAttributes) - }) - }) - }) - - t.Run("resource meta has to be extracted", func(t *testing.T) { - t.Run("and resolver is a child resolver", func(t *testing.T) { - gqlAttributes := withResourceArgAttributes(withChildResolverSet) - authAttributes, err := PrepareAttributes(withArgsContext(resourceJSON), &userInfo, gqlAttributes, exampleType{}, nil) - - t.Run("Then error should be returned", func(t *testing.T) { - assert.Error(t, err) - }) - t.Run("Then authAttributes is empty", func(t *testing.T) { - assert.Nil(t, authAttributes) - }) - }) - t.Run("resolver is not a child resolver", func(t *testing.T) { - t.Run("resourceArg is provided", func(t *testing.T) { - t.Run("and resource api group is not empty", func(t *testing.T) { - gqlAttributes := withResourceArgAttributes(withoutChildResolverSet) - clientset := fake.NewSimpleClientset() - fakeDiscovery, ok := clientset.Discovery().(*fakedisc.FakeDiscovery) - if !ok { - t.Fatalf("couldn't convert Discovery() to *FakeDiscovery") - } - - fakeDiscovery.Fake.Resources = fakeResources - authAttributes, err := PrepareAttributes(withArgsContext(resourceJSON), &userInfo, gqlAttributes, exampleType{}, fakeDiscovery) - - t.Run("Then no error should be returned", func(t *testing.T) { - assert.Nil(t, err) - }) - - verifyCommonAttributes(t, authAttributes) - }) - - t.Run("and resource api group is empty", func(t *testing.T) { - gqlAttributes := withResourceArgAttributes(withoutChildResolverSet) - clientset := fake.NewSimpleClientset() - fakeDiscovery, ok := clientset.Discovery().(*fakedisc.FakeDiscovery) - if !ok { - t.Fatalf("couldn't convert Discovery() to *FakeDiscovery") - } - - fakeDiscovery.Fake.Resources = fakeResources - authAttributes, err := PrepareAttributes(withArgsContext(noGroupResourceJSON), &userInfo, gqlAttributes, exampleType{}, fakeDiscovery) - - t.Run("Then no error should be returned", func(t *testing.T) { - assert.Nil(t, err) - }) - - t.Run("Then API group should be empty", func(t *testing.T) { - assert.Empty(t, authAttributes.GetAPIGroup()) - }) - - t.Run("Then API version should be set", func(t *testing.T) { - assert.Equal(t, apiVersion, authAttributes.GetAPIVersion()) - }) - }) - }) - - t.Run("and resourceArg is not provided", func(t *testing.T) { - gqlAttributes := noResourceAttributes(withChildResolverSet) - authAttributes, err := PrepareAttributes(withArgsContext(resourceJSON), &userInfo, gqlAttributes, exampleType{}, nil) - - t.Run("Then error should be returned", func(t *testing.T) { - assert.Error(t, err) - }) - t.Run("Then authAttributes is empty", func(t *testing.T) { - assert.Nil(t, authAttributes) - }) - }) - }) - }) - - }) -} diff --git a/components/console-backend-service/internal/authz/fixture_test.go b/components/console-backend-service/internal/authz/fixture_test.go deleted file mode 100644 index 1e01caa3310c..000000000000 --- a/components/console-backend-service/internal/authz/fixture_test.go +++ /dev/null @@ -1,204 +0,0 @@ -package authz - -import ( - "context" - "fmt" - "testing" - - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/stretchr/testify/assert" - - "github.com/99designs/gqlgen/graphql" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/apiserver/pkg/authorization/authorizer" -) - -const ( - verb = "list" - subresource = "logs" - namespace = "x-system" - name = "x-deployment" - kind = "Deployment" -) - -var ( - apiGroup = "apps" - apiVersion = "v1" - groupVersion = fmt.Sprintf("%s/%s", apiGroup, apiVersion) - resource = "deployments" - resourceArg = "MyResource" - namespaceArg = "MyNamespace" - nameArg = "MyName" - userInfo = user.DefaultInfo{Name: "Test User", UID: "deadbeef", Groups: []string{"admins", "testers"}} - resourceJSON = gqlschema.JSON{ - "apiVersion": groupVersion, - "kind": kind, - "metadata": map[string]interface{}{ - "name": name, - "namespace": namespace, - }, - } - noGroupResourceJSON = gqlschema.JSON{ - "apiVersion": apiVersion, - "kind": kind, - "metadata": map[string]interface{}{ - "name": name, - "namespace": namespace, - }, - } - fakeResources = []*v1.APIResourceList{ - { - TypeMeta: v1.TypeMeta{}, - GroupVersion: groupVersion, - APIResources: []v1.APIResource{ - { - Name: resource, - Kind: kind, - }, - }, - }, - { - TypeMeta: v1.TypeMeta{}, - GroupVersion: apiVersion, - APIResources: []v1.APIResource{ - { - Name: resource, - Kind: kind, - }, - }, - }, - } -) - -type ChildResolverSetting bool - -const ( - withChildResolverSet = true - withoutChildResolverSet = false -) - -func noArgsAttributes(isChildResolver ChildResolverSetting) gqlschema.ResourceAttributes { - return gqlschema.ResourceAttributes{ - Verb: verb, - APIGroup: &apiGroup, - APIVersion: &apiVersion, - Resource: &resource, - ResourceArg: nil, - Subresource: subresource, - NameArg: nil, - NamespaceArg: nil, - IsChildResolver: bool(isChildResolver), - } -} - -func withArgsAttributes(isChildResolver ChildResolverSetting) gqlschema.ResourceAttributes { - return gqlschema.ResourceAttributes{ - Verb: verb, - APIGroup: &apiGroup, - APIVersion: &apiVersion, - Resource: &resource, - ResourceArg: nil, - Subresource: subresource, - NameArg: &nameArg, - NamespaceArg: &namespaceArg, - IsChildResolver: bool(isChildResolver), - } -} - -func withNamespaceArgAttributes(isChildResolver ChildResolverSetting) gqlschema.ResourceAttributes { - return gqlschema.ResourceAttributes{ - Verb: verb, - APIGroup: &apiGroup, - APIVersion: &apiVersion, - Resource: &resource, - ResourceArg: nil, - Subresource: subresource, - NameArg: nil, - NamespaceArg: &namespaceArg, - IsChildResolver: bool(isChildResolver), - } -} - -func withResourceArgAttributes(isChildResolver ChildResolverSetting) gqlschema.ResourceAttributes { - return gqlschema.ResourceAttributes{ - Verb: verb, - APIGroup: nil, - APIVersion: nil, - Resource: nil, - ResourceArg: &resourceArg, - Subresource: subresource, - NameArg: nil, - NamespaceArg: nil, - IsChildResolver: bool(isChildResolver), - } -} - -func noResourceAttributes(isChildResolver ChildResolverSetting) gqlschema.ResourceAttributes { - return gqlschema.ResourceAttributes{ - Verb: verb, - APIGroup: nil, - APIVersion: nil, - Resource: nil, - ResourceArg: nil, - Subresource: subresource, - NameArg: nil, - NamespaceArg: nil, - IsChildResolver: bool(isChildResolver), - } -} - -func withRedundantResourceArgAttributes(isChildResolver ChildResolverSetting) gqlschema.ResourceAttributes { - return gqlschema.ResourceAttributes{ - Verb: verb, - APIGroup: &apiGroup, - APIVersion: &apiVersion, - Resource: &resource, - ResourceArg: &resourceArg, - Subresource: subresource, - NameArg: nil, - NamespaceArg: nil, - IsChildResolver: bool(isChildResolver), - } -} - -func noArgsContext() context.Context { - resolver := graphql.FieldContext{Args: map[string]interface{}{}} - return graphql.WithFieldContext(context.Background(), &resolver) -} - -func withArgsContext(resource gqlschema.JSON) context.Context { - resolver := graphql.FieldContext{Args: map[string]interface{}{ - namespaceArg: namespace, - nameArg: name, - resourceArg: resource, - }} - return graphql.WithFieldContext(context.Background(), &resolver) -} - -func verifyCommonAttributes(t *testing.T, authAttributes authorizer.Attributes) { - require.NotNil(t, authAttributes) - t.Run("Then user is set", func(t *testing.T) { - assert.Equal(t, &userInfo, authAttributes.GetUser()) - }) - t.Run("Then verb is set", func(t *testing.T) { - assert.Equal(t, verb, authAttributes.GetVerb()) - }) - t.Run("Then API group is set", func(t *testing.T) { - assert.Equal(t, apiGroup, authAttributes.GetAPIGroup()) - }) - t.Run("Then API version is set", func(t *testing.T) { - assert.Equal(t, apiVersion, authAttributes.GetAPIVersion()) - }) - t.Run("Then resource is set", func(t *testing.T) { - assert.Equal(t, resource, authAttributes.GetResource()) - }) - t.Run("Then subresource is set", func(t *testing.T) { - assert.Equal(t, subresource, authAttributes.GetSubresource()) - }) - t.Run("Then ResourceRequest is true", func(t *testing.T) { - assert.True(t, authAttributes.IsResourceRequest()) - }) -} diff --git a/components/console-backend-service/internal/authz/rbac.go b/components/console-backend-service/internal/authz/rbac.go deleted file mode 100644 index 327ca7210b4c..000000000000 --- a/components/console-backend-service/internal/authz/rbac.go +++ /dev/null @@ -1,42 +0,0 @@ -package authz - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/authn" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/99designs/gqlgen/graphql" - "github.com/golang/glog" - "github.com/pkg/errors" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/client-go/discovery" -) - -type RBACDirective func(ctx context.Context, obj interface{}, next graphql.Resolver, attributes gqlschema.ResourceAttributes) (res interface{}, err error) - -func NewRBACDirective(a authorizer.Authorizer, client discovery.DiscoveryInterface) RBACDirective { - return func(ctx context.Context, obj interface{}, next graphql.Resolver, attributes gqlschema.ResourceAttributes) (res interface{}, err error) { - u, err := authn.UserInfoForContext(ctx) - if err != nil { - glog.Errorf("Error while receiving user information: %v", err) - return nil, errors.New("access denied due to problems on the server side") - } - - attrs, err := PrepareAttributes(ctx, u, attributes, obj, client) - if err != nil { - glog.Errorf("Error while obtaining attributes for authorization: %v", err) - return nil, errors.New("access denied due to problems on the server side") - } - authorized, _, err := a.Authorize(ctx, attrs) - - if authorized != authorizer.DecisionAllow { - if err != nil { - glog.Errorf("Error during authorization: %v", err) - } - return nil, errors.New("access denied") - } - - return next(ctx) - } -} diff --git a/components/console-backend-service/internal/authz/rbac_test.go b/components/console-backend-service/internal/authz/rbac_test.go deleted file mode 100644 index 73808af27ecf..000000000000 --- a/components/console-backend-service/internal/authz/rbac_test.go +++ /dev/null @@ -1,102 +0,0 @@ -package authz - -import ( - "context" - "testing" - - "k8s.io/client-go/kubernetes/fake" - - "github.com/stretchr/testify/assert" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/authn" - "k8s.io/apiserver/pkg/authorization/authorizer" -) - -func TestNewRBACDirective(t *testing.T) { - ctx := authn.WithUserInfoContext(withArgsContext(resourceJSON), &userInfo) - - t.Run("When decision is 'allow'", func(t *testing.T) { - authorizerMock := &mockAuthorizer{decision: authorizer.DecisionAllow} - resolver := &mockResolver{} - - attributes := withArgsAttributes(withoutChildResolverSet) - - clientset := fake.NewSimpleClientset() - directive := NewRBACDirective(authorizerMock, clientset.Discovery()) - - _, err := directive(ctx, 0, resolver.Mock, attributes) - - t.Run("Then authorizer is called with proper attributes", func(t *testing.T) { - verifyCommonAttributes(t, authorizerMock.lastCallAttributes) - }) - t.Run("Then next resolver is called with input context", func(t *testing.T) { - assert.Equal(t, ctx, resolver.lastCallContext) - }) - t.Run("Then no error is returned", func(t *testing.T) { - assert.Nil(t, err) - }) - }) - - t.Run("When decision is 'deny'", func(t *testing.T) { - authorizerMock := &mockAuthorizer{decision: authorizer.DecisionDeny} - resolver := &mockResolver{} - attributes := withArgsAttributes(withoutChildResolverSet) - - clientset := fake.NewSimpleClientset() - directive := NewRBACDirective(authorizerMock, clientset.Discovery()) - - _, err := directive(ctx, 0, resolver.Mock, attributes) - - t.Run("Then authorizer is called with proper attributes", func(t *testing.T) { - verifyCommonAttributes(t, authorizerMock.lastCallAttributes) - }) - t.Run("Then next resolver is not called", func(t *testing.T) { - assert.Equal(t, nil, resolver.lastCallContext) - }) - t.Run("Then error is returned", func(t *testing.T) { - assert.NotNil(t, err) - }) - }) - - t.Run("When decision is 'no opinion'", func(t *testing.T) { - authorizerMock := &mockAuthorizer{decision: authorizer.DecisionNoOpinion} - resolver := &mockResolver{} - attributes := withArgsAttributes(withoutChildResolverSet) - - clientset := fake.NewSimpleClientset() - directive := NewRBACDirective(authorizerMock, clientset.Discovery()) - - _, err := directive(ctx, 0, resolver.Mock, attributes) - - t.Run("Then authorizer is called with proper attributes", func(t *testing.T) { - verifyCommonAttributes(t, authorizerMock.lastCallAttributes) - }) - t.Run("Then next resolver is not called", func(t *testing.T) { - assert.Equal(t, nil, resolver.lastCallContext) - }) - t.Run("Then error is returned", func(t *testing.T) { - assert.NotNil(t, err) - }) - }) -} - -type mockAuthorizer struct { - authorizer.Authorizer - - decision authorizer.Decision - lastCallAttributes authorizer.Attributes -} - -func (a *mockAuthorizer) Authorize(ctx context.Context, attrs authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { - a.lastCallAttributes = attrs - return a.decision, "", nil -} - -type mockResolver struct { - lastCallContext context.Context -} - -func (r *mockResolver) Mock(ctx context.Context) (interface{}, error) { - r.lastCallContext = ctx - return 0, nil -} diff --git a/components/console-backend-service/internal/domain/apigateway.resolvers.go b/components/console-backend-service/internal/domain/apigateway.resolvers.go deleted file mode 100644 index 3531743a6801..000000000000 --- a/components/console-backend-service/internal/domain/apigateway.resolvers.go +++ /dev/null @@ -1,49 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-incubator/api-gateway/api/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func (r *aPIRuleResolver) JSON(ctx context.Context, obj *v1alpha1.APIRule) (gqlschema.JSON, error) { - return r.ag.JsonField(ctx, obj) -} - -func (r *aPIRuleResolver) OwnerSubscription(ctx context.Context, obj *v1alpha1.APIRule) (*v1.OwnerReference, error) { - return r.ag.GetOwnerSubscription(ctx, obj), nil -} - -func (r *mutationResolver) CreateAPIRule(ctx context.Context, name string, namespace string, params v1alpha1.APIRuleSpec) (*v1alpha1.APIRule, error) { - return r.ag.CreateAPIRule(ctx, name, namespace, params) -} - -func (r *mutationResolver) UpdateAPIRule(ctx context.Context, name string, namespace string, generation int, params v1alpha1.APIRuleSpec) (*v1alpha1.APIRule, error) { - return r.ag.UpdateAPIRule(ctx, name, namespace, int64(generation), params) -} - -func (r *mutationResolver) DeleteAPIRule(ctx context.Context, name string, namespace string) (*v1alpha1.APIRule, error) { - return r.ag.DeleteAPIRule(ctx, name, namespace) -} - -func (r *queryResolver) APIRules(ctx context.Context, namespace string, serviceName *string, hostname *string) ([]*v1alpha1.APIRule, error) { - return r.ag.APIRulesQuery(ctx, namespace, serviceName, hostname) -} - -func (r *queryResolver) APIRule(ctx context.Context, name string, namespace string) (*v1alpha1.APIRule, error) { - return r.ag.APIRuleQuery(ctx, name, namespace) -} - -func (r *subscriptionResolver) APIRuleEvent(ctx context.Context, namespace string, serviceName *string) (<-chan *gqlschema.APIRuleEvent, error) { - return r.ag.APIRuleEventSubscription(ctx, namespace, serviceName) -} - -// APIRule returns gqlschema.APIRuleResolver implementation. -func (r *Resolver) APIRule() gqlschema.APIRuleResolver { return &aPIRuleResolver{r} } - -type aPIRuleResolver struct{ *Resolver } diff --git a/components/console-backend-service/internal/domain/apigateway/apirule.go b/components/console-backend-service/internal/domain/apigateway/apirule.go deleted file mode 100644 index 43baf64b9db3..000000000000 --- a/components/console-backend-service/internal/domain/apigateway/apirule.go +++ /dev/null @@ -1,23 +0,0 @@ -package apigateway - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -type Resolver struct { - *resource.Module -} - -func New(factory *resource.GenericServiceFactory) *Resolver { - module := resource.NewModule("apigateway", factory, resource.ServiceCreators{ - apiRulesGroupVersionResource: NewService, - }) - - return &Resolver{ - Module: module, - } -} - -func (r *Resolver) Service() *resource.GenericService { - return r.Module.Service(apiRulesGroupVersionResource) -} diff --git a/components/console-backend-service/internal/domain/apigateway/resolver.go b/components/console-backend-service/internal/domain/apigateway/resolver.go deleted file mode 100644 index 3e9e6fef3b30..000000000000 --- a/components/console-backend-service/internal/domain/apigateway/resolver.go +++ /dev/null @@ -1,135 +0,0 @@ -package apigateway - -import ( - "context" - "errors" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/kyma-incubator/api-gateway/api/v1alpha1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type APIRuleList []*v1alpha1.APIRule - -func (l *APIRuleList) Append() interface{} { - e := &v1alpha1.APIRule{} - *l = append(*l, e) - return e -} - -func (r *Resolver) APIRulesQuery(ctx context.Context, namespace string, serviceName *string, hostname *string) ([]*v1alpha1.APIRule, error) { - items := APIRuleList{} - var err error - if serviceName != nil && hostname != nil { - err = r.Service().ListByIndex(apiRulesServiceAndHostnameIndex, apiRulesServiceAndHostnameIndexKey(namespace, serviceName, hostname), &items) - } else if hostname != nil { - err = r.Service().ListByIndex(apiRulesHostnameIndex, apiRulesHostnameIndexKey(namespace, hostname), &items) - } else if serviceName != nil { - err = r.Service().ListByIndex(apiRulesServiceIndex, apiRulesServiceIndexKey(namespace, serviceName), &items) - } else { - err = r.Service().ListInNamespace(namespace, &items) - } - return items, err -} - -func (r *Resolver) APIRuleQuery(ctx context.Context, name string, namespace string) (*v1alpha1.APIRule, error) { - var result *v1alpha1.APIRule - err := r.Service().GetInNamespace(name, namespace, &result) - - return result, err -} - -func (r *Resolver) GetOwnerSubscription(ctx context.Context, rule *v1alpha1.APIRule) *metav1.OwnerReference { - if rule.OwnerReferences == nil { - return nil - } - - for _, ownerRef := range rule.OwnerReferences { - if ownerRef.Kind == "Subscription" { - return &ownerRef - } - } - - return nil -} - -func (r *Resolver) CreateAPIRule(ctx context.Context, name string, namespace string, params v1alpha1.APIRuleSpec) (*v1alpha1.APIRule, error) { - apiRule := &v1alpha1.APIRule{ - TypeMeta: metav1.TypeMeta{ - APIVersion: apiRulesGroupVersionResource.GroupVersion().String(), - Kind: apiRulesKind, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: params, - } - result := &v1alpha1.APIRule{} - err := r.Service().Create(apiRule, result) - return result, err -} - -func (r *Resolver) APIRuleEventSubscription(ctx context.Context, namespace string, serviceName *string) (<-chan *gqlschema.APIRuleEvent, error) { - channel := make(chan *gqlschema.APIRuleEvent, 1) - filter := func(apiRule v1alpha1.APIRule) bool { - namespaceMatches := apiRule.Namespace == namespace - serviceNameMatches := serviceName == nil || *serviceName == *apiRule.Spec.Service.Name - return namespaceMatches && serviceNameMatches - } - - unsubscribe, err := r.Service().Subscribe(NewEventHandler(channel, filter)) - if err != nil { - return nil, err - } - - go func() { - defer close(channel) - defer unsubscribe() - <-ctx.Done() - }() - - return channel, nil -} - -func (r *Resolver) UpdateAPIRule(ctx context.Context, name string, namespace string, generation int64, newSpec v1alpha1.APIRuleSpec) (*v1alpha1.APIRule, error) { - result := &v1alpha1.APIRule{} - err := r.Service().UpdateInNamespace(name, namespace, result, func() error { - if result.Generation > generation { - return errors.New("resource already modified") - } - - subscription := r.GetOwnerSubscription(ctx, result) - if subscription != nil { - return errors.New(fmt.Sprintf("API Rule is owned by %s", subscription.Name)) - } - - result.Spec = newSpec - return nil - }) - return result, err -} - -func (r *Resolver) DeleteAPIRule(ctx context.Context, name string, namespace string) (*v1alpha1.APIRule, error) { - result := &v1alpha1.APIRule{} - err := r.Service().GetInNamespace(name, namespace, &result) - if err != nil { - return nil, err - } - subscription := r.GetOwnerSubscription(ctx, result) - if subscription != nil { - return nil, errors.New(fmt.Sprintf("API Rule is owned by %s", subscription.Name)) - } - - err = r.Service().DeleteInNamespace(namespace, name, result) - return result, err -} - -func (r *Resolver) JsonField(ctx context.Context, obj *v1alpha1.APIRule) (gqlschema.JSON, error) { - return resource.ToJson(obj) -} diff --git a/components/console-backend-service/internal/domain/apigateway/service.go b/components/console-backend-service/internal/domain/apigateway/service.go deleted file mode 100644 index e47a36fe9239..000000000000 --- a/components/console-backend-service/internal/domain/apigateway/service.go +++ /dev/null @@ -1,101 +0,0 @@ -package apigateway - -import ( - "github.com/kyma-incubator/api-gateway/api/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" -) - -var apiRulesKind = "APIRule" -var apiRulesGroupVersionResource = schema.GroupVersionResource{ - Version: v1alpha1.GroupVersion.Version, - Group: v1alpha1.GroupVersion.Group, - Resource: "apirules", -} - -var apiRulesServiceIndex = "service" - -func apiRulesServiceIndexKey(namespace string, serviceName *string) string { - return namespace + ":" + *serviceName -} - -var apiRulesHostnameIndex = "hostname" - -func apiRulesHostnameIndexKey(namespace string, hostname *string) string { - return namespace + ":" + *hostname -} - -var apiRulesServiceAndHostnameIndex = "service-hostname" - -func apiRulesServiceAndHostnameIndexKey(namespace string, serviceName *string, hostname *string) string { - return namespace + ":" + *serviceName + ":" + *hostname -} - -type Service struct { - *resource.Service -} - -func NewService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - service := serviceFactory.ForResource(apiRulesGroupVersionResource) - err := service.AddIndexers(cache.Indexers{ - apiRulesServiceIndex: func(obj interface{}) ([]string, error) { - rule := &v1alpha1.APIRule{} - err := resource.FromUnstructured(obj.(*unstructured.Unstructured), rule) - if err != nil { - return nil, err - } - return []string{apiRulesServiceIndexKey(rule.Namespace, rule.Spec.Service.Name)}, nil - }, - apiRulesHostnameIndex: func(obj interface{}) ([]string, error) { - rule := &v1alpha1.APIRule{} - err := resource.FromUnstructured(obj.(*unstructured.Unstructured), rule) - if err != nil { - return nil, err - } - return []string{apiRulesHostnameIndexKey(rule.Namespace, rule.Spec.Service.Host)}, nil - }, - apiRulesServiceAndHostnameIndex: func(obj interface{}) ([]string, error) { - rule := &v1alpha1.APIRule{} - err := resource.FromUnstructured(obj.(*unstructured.Unstructured), rule) - if err != nil { - return nil, err - } - return []string{apiRulesServiceAndHostnameIndexKey(rule.Namespace, rule.Spec.Service.Name, rule.Spec.Service.Host)}, nil - }, - }) - return service, err -} - -func NewEventHandler(channel chan<- *gqlschema.APIRuleEvent, filter func(v1alpha1.APIRule) bool) resource.EventHandlerProvider { - return func() resource.EventHandler { - return &EventHandler{ - channel: channel, - filter: filter, - res: &v1alpha1.APIRule{}, - } - } -} - -type EventHandler struct { - channel chan<- *gqlschema.APIRuleEvent - filter func(v1alpha1.APIRule) bool - res *v1alpha1.APIRule -} - -func (h *EventHandler) K8sResource() interface{} { - return h.res -} - -func (h *EventHandler) ShouldNotify() bool { - return h.filter(*h.res) -} - -func (h *EventHandler) Notify(eventType gqlschema.SubscriptionEventType) { - h.channel <- &gqlschema.APIRuleEvent{ - Type: eventType, - APIRule: h.res, - } -} diff --git a/components/console-backend-service/internal/domain/apigateway/service_test.go b/components/console-backend-service/internal/domain/apigateway/service_test.go deleted file mode 100644 index 7c0dd9be86a1..000000000000 --- a/components/console-backend-service/internal/domain/apigateway/service_test.go +++ /dev/null @@ -1,376 +0,0 @@ -package apigateway - -import ( - "context" - "testing" - - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - rulev1alpha1 "github.com/ory/oathkeeper-maester/api/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - - "github.com/kyma-incubator/api-gateway/api/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestApiRuleService_List(t *testing.T) { - - name1 := "test-apiRule1" - namespace := "test-namespace" - hostname := "test-hostname1" - serviceName := "test-service-name1" - servicePort1 := uint32(8080) - gateway1 := "gateway1" - - name2 := "test-apiRule2" - servicePort2 := uint32(8080) - gateway2 := "gateway2" - - name3 := "test-apiRule3" - servicePort3 := uint32(8080) - gateway3 := "gateway3" - - defaultGeneration := int64(0) - - t.Run("Should filter by namespace", func(t *testing.T) { - apiRule1 := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - apiRule2 := fixTestApiRule(name2, "different-namespace", hostname, serviceName, servicePort2, gateway2, defaultGeneration) - apiRule3 := fixTestApiRule(name3, namespace, hostname, serviceName, servicePort3, gateway3, defaultGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, apiRule1, apiRule2, apiRule3) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.APIRulesQuery(context.Background(), namespace, nil, nil) - - require.NoError(t, err) - assert.ElementsMatch(t, []*v1alpha1.APIRule{ - apiRule1, apiRule3, - }, result) - }) - - t.Run("Should filter by namespace and hostname", func(t *testing.T) { - apiRule1 := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - apiRule2 := fixTestApiRule(name2, "different-namespace", hostname, serviceName, servicePort2, gateway2, defaultGeneration) - apiRule3 := fixTestApiRule(name3, namespace, "different-hostname", serviceName, servicePort3, gateway3, defaultGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, apiRule1, apiRule2, apiRule3) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.APIRulesQuery(context.Background(), namespace, nil, &hostname) - - require.NoError(t, err) - assert.ElementsMatch(t, []*v1alpha1.APIRule{ - apiRule1, - }, result) - }) - - t.Run("Should filter by namespace and serviceName", func(t *testing.T) { - apiRule1 := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - apiRule2 := fixTestApiRule(name2, "different-namespace", hostname, serviceName, servicePort2, gateway2, defaultGeneration) - apiRule3 := fixTestApiRule(name3, namespace, hostname, "different-service-name", servicePort3, gateway3, defaultGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, apiRule1, apiRule2, apiRule3) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.APIRulesQuery(context.Background(), namespace, &serviceName, nil) - - require.NoError(t, err) - assert.ElementsMatch(t, []*v1alpha1.APIRule{ - apiRule1, - }, result) - }) - - t.Run("Should filter by namespace serviceName and hostname", func(t *testing.T) { - apiRule1 := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - apiRule2 := fixTestApiRule(name2, "different-namespace", hostname, serviceName, servicePort2, gateway2, defaultGeneration) - apiRule3 := fixTestApiRule(name3, namespace, hostname, "different-service-name", servicePort3, gateway3, defaultGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, apiRule1, apiRule2, apiRule3) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.APIRulesQuery(context.Background(), namespace, &serviceName, &hostname) - - require.NoError(t, err) - assert.ElementsMatch(t, []*v1alpha1.APIRule{ - apiRule1, - }, result) - }) -} - -func TestApiService_Find(t *testing.T) { - name1 := "test-apiRule1" - namespace := "test-namespace" - hostname := "test-hostname1" - serviceName := "test-service-name1" - servicePort1 := uint32(8080) - gateway1 := "gateway1" - defaultGeneration := int64(0) - - t.Run("Should find an APIRule", func(t *testing.T) { - apiRule1 := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, apiRule1) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.APIRuleQuery(context.Background(), apiRule1.Name, namespace) - - require.NoError(t, err) - assert.Equal(t, apiRule1, result) - }) - - t.Run("Should return error if not found", func(t *testing.T) { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - _, err = service.APIRuleQuery(context.Background(), name1, namespace) - - require.Error(t, err) - }) -} - -func TestApiService_Create(t *testing.T) { - name1 := "test-apiRule1" - namespace := "test-namespace" - hostname := "test-hostname1" - serviceName := "test-service-name1" - servicePort1 := uint32(8080) - gateway1 := "gateway1" - defaultGeneration := int64(0) - - newRule := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - - t.Run("Should create an APIRule", func(t *testing.T) { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme) - require.NoError(t, err) - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.CreateAPIRule(context.Background(), newRule.Name, newRule.Namespace, newRule.Spec) - - require.NoError(t, err) - assert.Equal(t, newRule, result) - }) - - t.Run("Should throw an error if APIRule already exists", func(t *testing.T) { - existingApiRule := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, existingApiRule) - require.NoError(t, err) - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - _, err = service.CreateAPIRule(context.Background(), newRule.Name, newRule.Namespace, newRule.Spec) - - require.Error(t, err) - }) - -} - -func TestApiRuleService_Update(t *testing.T) { - name1 := "test-apiRule1" - namespace := "test-namespace" - hostname := "test-hostname1" - serviceName := "test-service-name1" - servicePort1 := uint32(8080) - gateway1 := "gateway1" - defaultGeneration := int64(0) - - newRule := fixTestApiRule(name1, namespace, "new-hostname", serviceName, servicePort1, gateway1, defaultGeneration) - - t.Run("Should update an APIRule", func(t *testing.T) { - existingApiRule := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, existingApiRule) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.UpdateAPIRule(context.Background(), newRule.Name, newRule.Namespace, newRule.Generation, newRule.Spec) - - require.NoError(t, err) - newRule := fixTestApiRule(name1, namespace, "new-hostname", serviceName, servicePort1, gateway1, defaultGeneration) - assert.Equal(t, *newRule.Spec.Service.Host, *result.Spec.Service.Host) - }) - - t.Run("Should throw an error if APIRule doesn't exists", func(t *testing.T) { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - _, err = service.UpdateAPIRule(context.Background(), newRule.Name, newRule.Namespace, newRule.Generation, newRule.Spec) - - require.Error(t, err) - }) - - t.Run("Should throw an error on updating already modified APIRule", func(t *testing.T) { - existingGeneration := int64(2) - updateGeneration := int64(1) - - existingApiRule := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, existingGeneration) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, existingApiRule) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - _, err = service.UpdateAPIRule(context.Background(), newRule.Name, newRule.Namespace, updateGeneration, newRule.Spec) - - require.Error(t, err) - }) - - t.Run("Should throw an error on updating readonly APIRule", func(t *testing.T) { - existingApiRule := fixTestApiRule(name1, namespace, hostname, serviceName, servicePort1, gateway1, defaultGeneration) - existingApiRule.OwnerReferences = []v1.OwnerReference{{ - Kind: "Subscription", - Name: "sup", - }} - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, existingApiRule) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - _, err = service.UpdateAPIRule(context.Background(), newRule.Name, newRule.Namespace, defaultGeneration, newRule.Spec) - - require.Error(t, err) - }) -} - -// Apaprently watch does not work with fake client - -//func TestApiRuleService_Subscribe(t *testing.T) { -// name := "test-apiRule1" -// namespace := "test-namespace" -// servicePort1 := uint32(8080) -// -// newRule := fixTestApiRule(name, namespace, "new-hostname", "service", servicePort1, "gateway", defaultGeneration) -// -// serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme) -// require.NoError(t, err) -// -// service := New(serviceFactory) -// err = service.Enable() -// require.NoError(t, err) -// serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) -// -// ctx, cancel := context.WithCancel(context.Background()) -// channel, err := service.APIRuleEventSubscription(ctx, namespace, nil) -// require.NoError(t, err) -// created, err := service.CreateAPIRule(context.Background(), newRule.Name, newRule.Namespace, newRule.Spec) -// require.NoError(t, err) -// -// var event *gqlschema.APIRuleEvent -// timeout := time.After(1 * time.Second) -// select { -// case event = <-channel: -// break -// case <-timeout: -// break -// } -// require.NotNil(t, event) -// -// assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, event.Type) -// assert.Equal(t, created, event.APIRule) -// -// cancel() -// _, opened := <-channel -// assert.False(t, opened) -//} - -func fixTestApiRule(ruleName string, namespace string, hostName string, serviceName string, servicePort uint32, gateway string, generation int64) *v1alpha1.APIRule { - return &v1alpha1.APIRule{ - TypeMeta: v1.TypeMeta{ - APIVersion: "gateway.kyma-project.io/v1alpha1", - Kind: "APIRule", - }, - ObjectMeta: v1.ObjectMeta{ - Name: ruleName, - Namespace: namespace, - Generation: generation, - }, - Spec: v1alpha1.APIRuleSpec{ - Service: &v1alpha1.Service{ - Host: &hostName, - Name: &serviceName, - Port: &servicePort, - }, - Gateway: &gateway, - Rules: []v1alpha1.Rule{ - { - Path: "*", - Methods: []string{"GET"}, - AccessStrategies: []*rulev1alpha1.Authenticator{ - { - Handler: &rulev1alpha1.Handler{ - Name: "allow", - Config: &runtime.RawExtension{ - Raw: []byte("{}"), - }, - }, - }, - }, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/application/app_converter.go b/components/console-backend-service/internal/domain/application/app_converter.go deleted file mode 100644 index cf2e7f48b5ae..000000000000 --- a/components/console-backend-service/internal/domain/application/app_converter.go +++ /dev/null @@ -1,71 +0,0 @@ -package application - -import ( - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type applicationConverter struct{} - -func (c *applicationConverter) ToGQL(in *v1alpha1.Application) *gqlschema.Application { - if in == nil { - return &gqlschema.Application{} - } - - var appServices []gqlschema.ApplicationService - - for _, svc := range in.Spec.Services { - dmSvc := gqlschema.ApplicationService{ - ID: svc.ID, - DisplayName: svc.DisplayName, - LongDescription: svc.LongDescription, - ProviderDisplayName: svc.ProviderDisplayName, - Tags: svc.Tags, - Entries: c.mapEntriesCRToDTO(svc.Entries), - } - - appServices = append(appServices, dmSvc) - } - labels := in.Spec.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - dto := &gqlschema.Application{ - Name: in.Name, - Labels: labels, - Description: in.Spec.Description, - Services: appServices, - } - - if in.Spec.CompassMetadata != nil { - dto.CompassMetadata = &gqlschema.CompassMetadata{ - ApplicationID: in.Spec.CompassMetadata.ApplicationID, - } - } - - return dto -} - -func (c *applicationConverter) mapEntriesCRToDTO(entries []v1alpha1.Entry) []*gqlschema.ApplicationEntry { - dtos := make([]*gqlschema.ApplicationEntry, 0, len(entries)) - for _, entry := range entries { - switch entry.Type { - case "API": - dtos = append(dtos, &gqlschema.ApplicationEntry{ - Type: entry.Type, - AccessLabel: c.ptrString(entry.AccessLabel), - GatewayURL: c.ptrString(entry.GatewayUrl), - }) - case "Events": - dtos = append(dtos, &gqlschema.ApplicationEntry{ - Type: entry.Type, - }) - } - } - return dtos -} - -// ptrString returns a pointer to the string value passed in. -func (*applicationConverter) ptrString(v string) *string { - return &v -} diff --git a/components/console-backend-service/internal/domain/application/app_converter_test.go b/components/console-backend-service/internal/domain/application/app_converter_test.go deleted file mode 100644 index fefc7f4109be..000000000000 --- a/components/console-backend-service/internal/domain/application/app_converter_test.go +++ /dev/null @@ -1,98 +0,0 @@ -package application - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestApplicationConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - fix := v1alpha1.Application{ - ObjectMeta: metav1.ObjectMeta{ - Name: "re", - }, - Spec: v1alpha1.ApplicationSpec{ - Description: "EC description", - Services: []v1alpha1.Service{ - { - ID: "123", - DisplayName: "name", - Tags: []string{"tag1", "tag2"}, - LongDescription: "desc", - ProviderDisplayName: "name", - Entries: []v1alpha1.Entry{ - { - Type: "API", - GatewayUrl: "url", - AccessLabel: "label", - }, - { - Type: "Event", - }, - }, - Labels: map[string]string{ - "Key-1": "value-1", - }, - }, - }, - CompassMetadata: &v1alpha1.CompassMetadata{ - ApplicationID: "1234567890", - }, - }, - } - - converter := &applicationConverter{} - - // when - dto := converter.ToGQL(&fix) - - // then - assert.Equal(t, dto.Description, fix.Spec.Description) - assert.Equal(t, dto.Name, fix.Name) - - require.Len(t, dto.Services, 1) - assert.Equal(t, dto.Services[0].ID, fix.Spec.Services[0].ID) - assert.Equal(t, dto.Services[0].Tags, fix.Spec.Services[0].Tags) - assert.Equal(t, dto.Services[0].DisplayName, fix.Spec.Services[0].DisplayName) - assert.Equal(t, dto.Services[0].LongDescription, fix.Spec.Services[0].LongDescription) - assert.Equal(t, dto.Services[0].ProviderDisplayName, fix.Spec.Services[0].ProviderDisplayName) - - require.Len(t, dto.Services[0].Entries, 1) - assert.Equal(t, dto.Services[0].Entries[0].Type, fix.Spec.Services[0].Entries[0].Type) - assert.Equal(t, dto.Services[0].Entries[0].AccessLabel, &fix.Spec.Services[0].Entries[0].AccessLabel) - assert.Equal(t, dto.Services[0].Entries[0].GatewayURL, &fix.Spec.Services[0].Entries[0].GatewayUrl) - - require.Len(t, dto.Labels, len(fix.Spec.Labels)) - for k, v := range fix.Spec.Labels { - gotLabel, found := dto.Labels[k] - - assert.True(t, found) - assert.Equal(t, v, gotLabel) - } - assert.Equal(t, dto.CompassMetadata.ApplicationID, fix.Spec.CompassMetadata.ApplicationID) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &applicationConverter{} - result := converter.ToGQL(&v1alpha1.Application{}) - expected := &gqlschema.Application{ - Labels: gqlschema.Labels{}, - } - - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &applicationConverter{} - result := converter.ToGQL(nil) - - assert.Empty(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/application/app_mapping_converter.go b/components/console-backend-service/internal/domain/application/app_mapping_converter.go deleted file mode 100644 index bd07970737bf..000000000000 --- a/components/console-backend-service/internal/domain/application/app_mapping_converter.go +++ /dev/null @@ -1,38 +0,0 @@ -package application - -import ( - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type applicationMappingConverter struct{} - -func (amc *applicationMappingConverter) transformApplicationMappingServiceToGQL(services []mappingTypes.ApplicationMappingService) []*gqlschema.ApplicationMappingService { - if services == nil { - return nil - } - - ms := []*gqlschema.ApplicationMappingService{} - for _, service := range services { - var ams gqlschema.ApplicationMappingService - ams.ID = service.ID - ms = append(ms, &ams) - } - - return ms -} - -func (amc *applicationMappingConverter) transformApplicationMappingServiceFromGQL(services []*gqlschema.ApplicationMappingService) []mappingTypes.ApplicationMappingService { - if services == nil { - return nil - } - - ms := []mappingTypes.ApplicationMappingService{} - for _, service := range services { - var ams mappingTypes.ApplicationMappingService - ams.ID = service.ID - ms = append(ms, ams) - } - - return ms -} diff --git a/components/console-backend-service/internal/domain/application/app_mapping_converter_test.go b/components/console-backend-service/internal/domain/application/app_mapping_converter_test.go deleted file mode 100644 index f45507ef5d72..000000000000 --- a/components/console-backend-service/internal/domain/application/app_mapping_converter_test.go +++ /dev/null @@ -1,51 +0,0 @@ -package application - -import ( - "testing" - - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" -) - -func TestApplicationMappingConverter_transformApplicationMappingServiceToGQL(t *testing.T) { - // Given - amc := applicationMappingConverter{} - fixAms := []mappingTypes.ApplicationMappingService{ - { - ID: "63410f90-6401-4123-878b-3ddf1112dc06", - }, - { - ID: "d2ea2944-0d53-4035-8dce-02d929e4665e", - }, - } - - // When - result := amc.transformApplicationMappingServiceToGQL(fixAms) - - // Then - assert.Len(t, result, 2) - assert.Contains(t, result, &gqlschema.ApplicationMappingService{ID: "63410f90-6401-4123-878b-3ddf1112dc06"}) - assert.Contains(t, result, &gqlschema.ApplicationMappingService{ID: "d2ea2944-0d53-4035-8dce-02d929e4665e"}) -} - -func TestApplicationMappingConverter_transformApplicationMappingServiceFromGQL(t *testing.T) { - // Given - amc := applicationMappingConverter{} - fixAms := []*gqlschema.ApplicationMappingService{ - { - ID: "aa943f0d-d69b-4855-9adb-66d8f3373c33", - }, - { - ID: "3f1fd883-a630-43bf-847d-8bf6585bb3c5", - }, - } - - // When - result := amc.transformApplicationMappingServiceFromGQL(fixAms) - - // Then - assert.Len(t, result, 2) - assert.Contains(t, result, mappingTypes.ApplicationMappingService{ID: "3f1fd883-a630-43bf-847d-8bf6585bb3c5"}) - assert.Contains(t, result, mappingTypes.ApplicationMappingService{ID: "aa943f0d-d69b-4855-9adb-66d8f3373c33"}) -} diff --git a/components/console-backend-service/internal/domain/application/app_resolver.go b/components/console-backend-service/internal/domain/application/app_resolver.go deleted file mode 100644 index f257937aaed3..000000000000 --- a/components/console-backend-service/internal/domain/application/app_resolver.go +++ /dev/null @@ -1,327 +0,0 @@ -package application - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/extractor" - - "github.com/golang/glog" - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - appTypes "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" -) - -//go:generate mockery -name=appSvc -output=automock -outpkg=automock -case=underscore -type appSvc interface { - ListInNamespace(namespace string) ([]*appTypes.Application, error) - ListNamespacesFor(appName string) ([]string, error) - Find(name string) (*appTypes.Application, error) - List(params pager.PagingParams) ([]*appTypes.Application, error) - Update(name string, description string, labels gqlschema.Labels) (*appTypes.Application, error) - Create(name string, description string, labels gqlschema.Labels) (*appTypes.Application, error) - Delete(name string) error - Disable(namespace, name string) error - Enable(namespace, name string, services []*gqlschema.ApplicationMappingService) (*mappingTypes.ApplicationMapping, error) - UpdateApplicationMapping(namespace, name string, services []*gqlschema.ApplicationMappingService) (*mappingTypes.ApplicationMapping, error) - ListApplicationMapping(name string) ([]*mappingTypes.ApplicationMapping, error) - GetConnectionURL(application string) (string, error) - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -//go:generate mockery -name=statusGetter -output=automock -outpkg=automock -case=underscore -type statusGetter interface { - GetStatus(reName string) gateway.Status -} - -type applicationResolver struct { - appSvc appSvc - appConverter applicationConverter - appMappingConverter applicationMappingConverter - statusGetter statusGetter -} - -func NewApplicationResolver(appSvc appSvc, statusGetter statusGetter) *applicationResolver { - return &applicationResolver{ - appSvc: appSvc, - statusGetter: statusGetter, - appConverter: applicationConverter{}, - appMappingConverter: applicationMappingConverter{}, - } -} - -func (r *applicationResolver) ApplicationQuery(ctx context.Context, name string) (*gqlschema.Application, error) { - application, err := r.appSvc.Find(name) - - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s", pretty.Application)) - return nil, gqlerror.New(err, pretty.Application, gqlerror.WithName(name)) - } - if application == nil { - return nil, nil - } - - gqlApp := r.appConverter.ToGQL(application) - return gqlApp, nil -} - -func (r *applicationResolver) ApplicationsQuery(ctx context.Context, namespace *string, first *int, offset *int) ([]*gqlschema.Application, error) { - var items []*appTypes.Application - var err error - - if namespace == nil { // retrieve all - items, err = r.appSvc.List(pager.PagingParams{First: first, Offset: offset}) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing all %s", pretty.Applications)) - return nil, gqlerror.New(err, pretty.Applications) - } - } else { // retrieve only for given namespace - // TODO: Add support for paging. - items, err = r.appSvc.ListInNamespace(*namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s for namespace %v", pretty.Applications, namespace)) - return nil, gqlerror.New(err, pretty.Applications, gqlerror.WithNamespace(*namespace)) - } - } - - res := make([]*gqlschema.Application, 0) - for _, item := range items { - res = append(res, r.appConverter.ToGQL(item)) - } - - return res, nil -} - -func (r *applicationResolver) ApplicationEventSubscription(ctx context.Context) (<-chan *gqlschema.ApplicationEvent, error) { - channel := make(chan *gqlschema.ApplicationEvent, 1) - appListener := listener.NewApplication(channel, &r.appConverter, extractor.ApplicationUnstructuredExtractor{}) - - r.appSvc.Subscribe(appListener) - go func() { - defer close(channel) - defer r.appSvc.Unsubscribe(appListener) - <-ctx.Done() - }() - - return channel, nil -} - -func (r *applicationResolver) CreateApplication(ctx context.Context, name string, description *string, qglLabels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) { - desc, labels := r.returnWithDefaults(description, qglLabels) - _, err := r.appSvc.Create(name, desc, labels) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s `%s`", pretty.Application, name)) - return nil, gqlerror.New(err, pretty.Application, gqlerror.WithName(name)) - } - return &gqlschema.ApplicationMutationOutput{ - Name: name, - Labels: labels, - Description: desc, - }, nil -} - -func (r *applicationResolver) DeleteApplication(ctx context.Context, name string) (*gqlschema.DeleteApplicationOutput, error) { - err := r.appSvc.Delete(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s`", pretty.Application, name)) - return nil, gqlerror.New(err, pretty.Application, gqlerror.WithName(name)) - } - return &gqlschema.DeleteApplicationOutput{Name: name}, nil -} - -func (r *applicationResolver) UpdateApplication(ctx context.Context, name string, description *string, qglLabels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) { - desc, labels := r.returnWithDefaults(description, qglLabels) - _, err := r.appSvc.Update(name, desc, labels) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s`", pretty.Application, name)) - return nil, gqlerror.New(err, pretty.Application, gqlerror.WithName(name)) - } - return &gqlschema.ApplicationMutationOutput{ - Name: name, - Labels: labels, - Description: desc, - }, nil -} - -func (r *applicationResolver) ConnectorServiceQuery(ctx context.Context, application string) (*gqlschema.ConnectorService, error) { - url, err := r.appSvc.GetConnectionURL(application) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for %s '%s'", pretty.ConnectorService, pretty.Application, application)) - return nil, gqlerror.New(err, pretty.ConnectorService) - } - - dto := &gqlschema.ConnectorService{ - URL: url, - } - - return dto, nil -} - -func (r *applicationResolver) EnableApplicationMutation(ctx context.Context, application string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) { - services = r.configureServices(allServices, services) - em, err := r.appSvc.Enable(namespace, application, services) - if err != nil { - glog.Error(errors.Wrapf(err, "while enabling %s", pretty.Application)) - return nil, gqlerror.New(err, pretty.ApplicationMapping, gqlerror.WithName(application), gqlerror.WithNamespace(namespace)) - } - - return &gqlschema.ApplicationMapping{ - Namespace: em.Namespace, - Application: em.Name, - AllServices: allServices, - Services: r.appMappingConverter.transformApplicationMappingServiceToGQL(em.Spec.Services), - }, nil -} - -func (r *applicationResolver) OverloadApplicationMutation(ctx context.Context, application string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) { - services = r.configureServices(allServices, services) - em, err := r.appSvc.UpdateApplicationMapping(namespace, application, services) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s", pretty.ApplicationMapping)) - return nil, gqlerror.New(err, pretty.ApplicationMapping, gqlerror.WithName(application), gqlerror.WithNamespace(namespace)) - } - - return &gqlschema.ApplicationMapping{ - Namespace: em.Namespace, - Application: em.Name, - AllServices: allServices, - Services: r.appMappingConverter.transformApplicationMappingServiceToGQL(em.Spec.Services), - }, nil -} - -func (r *applicationResolver) configureServices(allServices *bool, services []*gqlschema.ApplicationMappingService) []*gqlschema.ApplicationMappingService { - var all bool - - if allServices == nil { - all = true - } else { - all = *allServices - } - - if all { - services = nil - } else { - if services == nil { - services = []*gqlschema.ApplicationMappingService{} - } - } - - return services -} - -func (r *applicationResolver) DisableApplicationMutation(ctx context.Context, application string, namespace string) (*gqlschema.ApplicationMapping, error) { - err := r.appSvc.Disable(namespace, application) - if err != nil { - glog.Error(errors.Wrapf(err, "while disabling %s", pretty.Application)) - return nil, gqlerror.New(err, pretty.ApplicationMapping, gqlerror.WithName(application), gqlerror.WithNamespace(namespace)) - } - - return &gqlschema.ApplicationMapping{ - Namespace: namespace, - Application: application, - }, nil -} - -func (r *applicationResolver) ApplicationEnabledInNamespacesField(ctx context.Context, obj *gqlschema.Application) ([]string, error) { - if obj == nil { - glog.Error(fmt.Errorf("while resolving 'EnabledInNamespaces' field obj is empty")) - return []string{}, gqlerror.NewInternal() - } - - items, err := r.appSvc.ListNamespacesFor(obj.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s for %s %q", pretty.Namespaces, pretty.Application, obj.Name)) - return []string{}, gqlerror.New(err, pretty.Namespaces) - } - return items, nil -} - -func (r *applicationResolver) ApplicationEnabledMappingServices(ctx context.Context, obj *gqlschema.Application) ([]*gqlschema.EnabledMappingService, error) { - collection := []*gqlschema.EnabledMappingService{} - - if obj == nil { - glog.Error(fmt.Errorf("while resolving 'EnabledMappingServices' field obj is empty")) - return collection, gqlerror.NewInternal() - } - - items, err := r.appSvc.ListApplicationMapping(obj.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s for %s %q", pretty.ApplicationMapping, pretty.Application, obj.Name)) - return collection, gqlerror.New(err, pretty.ApplicationMapping) - } - - for _, mapping := range items { - ems := &gqlschema.EnabledMappingService{} - - ems.Namespace = mapping.Namespace - ems.AllServices = mapping.IsAllApplicationServicesEnabled() - if !ems.AllServices { - ems.Services = r.findEnabledApplicationService(obj.Services, mapping) - } - collection = append(collection, ems) - } - - return collection, nil -} - -func (r *applicationResolver) findEnabledApplicationService(appServices []gqlschema.ApplicationService, mapping *mappingTypes.ApplicationMapping) []*gqlschema.EnabledApplicationService { - nameFinder := func(appServices []gqlschema.ApplicationService, id string) (string, bool) { - for _, val := range appServices { - if val.ID == id { - return val.DisplayName, true - } - } - - return "", false - } - - result := []*gqlschema.EnabledApplicationService{} - for _, srv := range mapping.Spec.Services { - es := &gqlschema.EnabledApplicationService{} - es.ID = srv.ID - name, exist := nameFinder(appServices, srv.ID) - if exist { - es.Exist = true - es.DisplayName = name - } else { - es.Exist = false - } - - result = append(result, es) - } - - return result -} - -func (r *applicationResolver) ApplicationStatusField(ctx context.Context, app *gqlschema.Application) (gqlschema.ApplicationStatus, error) { - status := r.statusGetter.GetStatus(app.Name) - switch status { - case gateway.StatusServing: - return gqlschema.ApplicationStatusServing, nil - case gateway.StatusNotServing: - return gqlschema.ApplicationStatusNotServing, nil - case gateway.StatusNotConfigured: - return gqlschema.ApplicationStatusGatewayNotConfigured, nil - default: - return gqlschema.ApplicationStatus(""), gqlerror.NewInternal(gqlerror.WithDetails("unknown status")) - } -} - -func (r *applicationResolver) returnWithDefaults(description *string, gqlLabels gqlschema.Labels) (desc string, labels gqlschema.Labels) { - if description != nil { - desc = *description - } - if gqlLabels != nil { - labels = gqlLabels - } - - return desc, labels -} diff --git a/components/console-backend-service/internal/domain/application/app_resolver_test.go b/components/console-backend-service/internal/domain/application/app_resolver_test.go deleted file mode 100644 index f7c8872c76cc..000000000000 --- a/components/console-backend-service/internal/domain/application/app_resolver_test.go +++ /dev/null @@ -1,540 +0,0 @@ -package application_test - -import ( - "context" - "fmt" - "testing" - "time" - - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestApplicationStatusSuccess(t *testing.T) { - for tn, tc := range map[string]struct { - givenStatus gateway.Status - expectedStatus gqlschema.ApplicationStatus - }{ - "serving": { - givenStatus: gateway.StatusServing, - expectedStatus: gqlschema.ApplicationStatusServing, - }, - "not serving": { - givenStatus: gateway.StatusNotServing, - expectedStatus: gqlschema.ApplicationStatusNotServing, - }, - "not configured": { - givenStatus: gateway.StatusNotConfigured, - expectedStatus: gqlschema.ApplicationStatusGatewayNotConfigured, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - statusGetterStub := automock.NewStatusGetter() - statusGetterStub.On("GetStatus", "ec-prod").Return(tc.givenStatus, nil) - resolver := application.NewApplicationResolver(nil, statusGetterStub) - - // when - status, err := resolver.ApplicationStatusField(context.Background(), &gqlschema.Application{ - Name: "ec-prod", - }) - - // then - require.NoError(t, err) - assert.Equal(t, tc.expectedStatus, status) - }) - } -} - -func TestApplicationStatusFail(t *testing.T) { - // given - statusGetterStub := automock.NewStatusGetter() - statusGetterStub.On("GetStatus", "ec-prod").Return(gateway.Status("fake"), nil) - resolver := application.NewApplicationResolver(nil, statusGetterStub) - - // when - _, err := resolver.ApplicationStatusField(context.Background(), &gqlschema.Application{ - Name: "ec-prod", - }) - - // then - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) -} - -func TestApplicationResolver_CreateApplication(t *testing.T) { - // GIVEN - for tn, tc := range map[string]struct { - givenDesc *string - givenLabels gqlschema.Labels - expectedDesc string - expectedLabels gqlschema.Labels - }{ - "nothing provided": {}, - "fully parametrized": { - givenDesc: ptrStr("desc"), - givenLabels: gqlschema.Labels{ - "lol": "test", - }, - expectedDesc: "desc", - expectedLabels: gqlschema.Labels{ - "lol": "test", - }, - }, - "only desc provided": { - givenDesc: ptrStr("desc"), - expectedDesc: "desc", - }, - "only labels provided": { - givenLabels: gqlschema.Labels{ - "lol": "test", - }, - expectedLabels: gqlschema.Labels{ - "lol": "test", - }, - }, - } { - t.Run(tn, func(t *testing.T) { - fixName := "fix-name" - appSvc := automock.NewApplicationSvc() - defer appSvc.AssertExpectations(t) - appSvc.On("Create", fixName, tc.expectedDesc, tc.expectedLabels).Return(&v1alpha1.Application{ - ObjectMeta: v1.ObjectMeta{ - Name: fixName, - }, - Spec: v1alpha1.ApplicationSpec{ - Description: tc.expectedDesc, - Labels: tc.expectedLabels, - }, - }, nil) - - resolver := application.NewApplicationResolver(appSvc, nil) - - // WHEN - out, err := resolver.CreateApplication(context.Background(), fixName, tc.givenDesc, tc.givenLabels) - - // THEN - require.NoError(t, err) - assert.Equal(t, fixName, out.Name) - assert.Equal(t, tc.expectedDesc, out.Description) - assert.Equal(t, tc.expectedLabels, out.Labels) - }) - } -} - -func TestApplicationResolver_CreateApplication_Error(t *testing.T) { - // GIVEN - fixName := "fix-name" - appSvc := automock.NewApplicationSvc() - appSvc.On("Create", fixName, "", gqlschema.Labels(nil)).Return(nil, errors.New("fix")) - - // WHEN - resolver := application.NewApplicationResolver(appSvc, nil) - _, err := resolver.CreateApplication(context.Background(), fixName, nil, nil) - - // THEN - assert.EqualError(t, err, fmt.Sprintf("internal error [name: \"%s\"]", fixName)) -} - -func TestApplicationResolver_DeleteApplication(t *testing.T) { - // GIVEN - fixName := "fix" - appSvc := automock.NewApplicationSvc() - defer appSvc.AssertExpectations(t) - appSvc.On("Delete", fixName).Return(nil) - - resolver := application.NewApplicationResolver(appSvc, nil) - - // WHEN - out, err := resolver.DeleteApplication(context.Background(), fixName) - - // THEN - require.NoError(t, err) - assert.Equal(t, fixName, out.Name) -} - -func TestApplicationResolver_DeleteApplication_Error(t *testing.T) { - // GIVEN - fixName := "fix-name" - appSvc := automock.NewApplicationSvc() - defer appSvc.AssertExpectations(t) - appSvc.On("Delete", fixName).Return(errors.New("fix")) - - resolver := application.NewApplicationResolver(appSvc, nil) - - // WHEN - _, err := resolver.DeleteApplication(context.Background(), fixName) - - // THEN - assert.EqualError(t, err, fmt.Sprintf("internal error [name: \"%s\"]", fixName)) -} - -func TestApplicationResolver_UpdateApplication(t *testing.T) { - // GIVEN - fixName := "fix-name" - appSvc := automock.NewApplicationSvc() - defer appSvc.AssertExpectations(t) - - resolver := application.NewApplicationResolver(appSvc, nil) - - for tn, tc := range map[string]struct { - givenDesc *string - givenLabels gqlschema.Labels - expectedDesc string - expectedLabels gqlschema.Labels - }{ - "nothing provided": {}, - "fully parametrized": { - givenDesc: ptrStr("desc"), - givenLabels: gqlschema.Labels{ - "lol": "test", - }, - expectedDesc: "desc", - expectedLabels: gqlschema.Labels{ - "lol": "test", - }, - }, - "only desc provided": { - givenDesc: ptrStr("desc"), - expectedDesc: "desc", - }, - "only labels provided": { - givenLabels: gqlschema.Labels{ - "lol": "test", - }, - expectedLabels: gqlschema.Labels{ - "lol": "test", - }, - }, - } { - t.Run(tn, func(t *testing.T) { - appSvc.On("Update", fixName, tc.expectedDesc, tc.expectedLabels).Return(&v1alpha1.Application{ - ObjectMeta: v1.ObjectMeta{ - Name: fixName, - }, - Spec: v1alpha1.ApplicationSpec{ - Description: tc.expectedDesc, - Labels: tc.expectedLabels, - }, - }, nil) - - // WHEN - out, err := resolver.UpdateApplication(context.Background(), fixName, tc.givenDesc, tc.givenLabels) - - // THEN - require.NoError(t, err) - assert.Equal(t, fixName, out.Name) - assert.Equal(t, tc.expectedDesc, out.Description) - assert.Equal(t, tc.expectedLabels, out.Labels) - }) - } -} - -func TestApplicationResolver_UpdateApplication_Error(t *testing.T) { - fixName := "fix-name" - appSvc := automock.NewApplicationSvc() - defer appSvc.AssertExpectations(t) - appSvc.On("Update", fixName, "", gqlschema.Labels(nil)).Return(nil, errors.New("fix")) - - resolver := application.NewApplicationResolver(appSvc, nil) - _, err := resolver.UpdateApplication(context.Background(), fixName, nil, nil) - - assert.EqualError(t, err, fmt.Sprintf("internal error [name: \"%s\"]", fixName)) -} - -func TestConnectorServiceQuerySuccess(t *testing.T) { - // given - var ( - fixAppName = "app-name" - fixURL = "http://some-url-with-token" - fixGQLObj = &gqlschema.ConnectorService{ - URL: "http://some-url-with-token", - } - ) - - serviceMock := automock.NewApplicationSvc() - defer serviceMock.AssertExpectations(t) - serviceMock.On("GetConnectionURL", fixAppName).Return(fixURL, nil) - - resolver := application.NewApplicationResolver(serviceMock, nil) - - // when - gotURLObj, err := resolver.ConnectorServiceQuery(context.Background(), fixAppName) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLObj, gotURLObj) -} - -func TestConnectorServiceQueryFail(t *testing.T) { - // given - var ( - fixAppName = "" - fixErr = errors.New("something went wrong") - ) - - serviceMock := automock.NewApplicationSvc() - defer serviceMock.AssertExpectations(t) - serviceMock.On("GetConnectionURL", fixAppName).Return("", fixErr) - - resolver := application.NewApplicationResolver(serviceMock, nil) - - // when - gotURLObj, err := resolver.ConnectorServiceQuery(context.Background(), fixAppName) - - // then - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Zero(t, gotURLObj) -} - -func TestApplicationResolver_ApplicationEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - appSvc := automock.NewApplicationSvc() - appSvc.On("Subscribe", mock.Anything).Once() - appSvc.On("Unsubscribe", mock.Anything).Once() - resolver := application.NewApplicationResolver(appSvc, nil) - - _, err := resolver.ApplicationEventSubscription(ctx) - - require.NoError(t, err) - appSvc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - appSvc := automock.NewApplicationSvc() - appSvc.On("Subscribe", mock.Anything).Once() - appSvc.On("Unsubscribe", mock.Anything).Once() - resolver := application.NewApplicationResolver(appSvc, nil) - - channel, err := resolver.ApplicationEventSubscription(ctx) - <-channel - - require.NoError(t, err) - appSvc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} - -func TestApplicationResolver_EnableApplicationMutation(t *testing.T) { - fixNamespace := "fix-namespace" - fixName := "fix-name" - trueVal := true - falseVal := false - - for name, tc := range map[string]struct { - allServices *bool - services []*gqlschema.ApplicationMappingService - amExpected []mappingTypes.ApplicationMappingService - expected []*gqlschema.ApplicationMappingService - }{ - "nil Allservices, nil service list": { - allServices: nil, - services: nil, - amExpected: nil, - expected: nil, - }, - "true Allservices, nil service list": { - allServices: &trueVal, - services: nil, - amExpected: nil, - expected: nil, - }, - "false Allservices, nil service list": { - allServices: &falseVal, - services: nil, - amExpected: []mappingTypes.ApplicationMappingService{}, - expected: []*gqlschema.ApplicationMappingService{}, - }, - "nil Allservices, empty service list": { - allServices: nil, - services: []*gqlschema.ApplicationMappingService{}, - amExpected: nil, - expected: nil, - }, - "true Allservices, empty service list": { - allServices: &trueVal, - services: []*gqlschema.ApplicationMappingService{}, - amExpected: nil, - expected: nil, - }, - "false Allservices, empty service list": { - allServices: &falseVal, - services: []*gqlschema.ApplicationMappingService{}, - amExpected: []mappingTypes.ApplicationMappingService{}, - expected: []*gqlschema.ApplicationMappingService{}, - }, - "nil Allservices, not empty service list": { - allServices: nil, - services: []*gqlschema.ApplicationMappingService{ - { - ID: "30a09ece-ea06-42cd-ba6b-79f0c88675a0", - }, - }, - amExpected: nil, - expected: nil, - }, - "true Allservices, not empty service list": { - allServices: &trueVal, - services: []*gqlschema.ApplicationMappingService{ - { - ID: "30a09ece-ea06-42cd-ba6b-79f0c88675a0", - }, - }, - amExpected: nil, - expected: nil, - }, - "false Allservices, not empty service list": { - allServices: &falseVal, - services: []*gqlschema.ApplicationMappingService{ - { - ID: "30a09ece-ea06-42cd-ba6b-79f0c88675a0", - }, - }, - amExpected: []mappingTypes.ApplicationMappingService{ - { - ID: "30a09ece-ea06-42cd-ba6b-79f0c88675a0", - }, - }, - expected: []*gqlschema.ApplicationMappingService{ - { - ID: "30a09ece-ea06-42cd-ba6b-79f0c88675a0", - }, - }, - }, - } { - t.Run(name, func(t *testing.T) { - // GIVEN - appSvc := automock.NewApplicationSvc() - defer appSvc.AssertExpectations(t) - appSvc.On("Enable", fixNamespace, fixName, tc.expected).Return(&mappingTypes.ApplicationMapping{ - ObjectMeta: v1.ObjectMeta{ - Name: fixName, - Namespace: fixNamespace, - }, - Spec: mappingTypes.ApplicationMappingSpec{ - Services: tc.amExpected, - }, - }, nil) - resolver := application.NewApplicationResolver(appSvc, nil) - - // WHEN - out, err := resolver.EnableApplicationMutation(context.Background(), fixName, fixNamespace, tc.allServices, tc.services) - require.NoError(t, err) - - // THEN - if tc.allServices == nil || *tc.allServices { - assert.Nil(t, out.Services) - } else { - assert.Len(t, out.Services, len(tc.expected)) - } - }) - } -} - -func TestApplicationResolver_ApplicationEnabledMappingServices(t *testing.T) { - // GIVEN - const ( - serviceIdOne = "abe498d4-dc37-46f1-9f87-db1ddd55b409" - serviceIdTwo = "952404e7-f7b9-44ac-9f5d-eeb695c3c46e" - serviceIdThree = "afcd698b-968c-4d1c-a3c8-5d96968a139e" - serviceIdFour = "eccbfd17-00e0-440c-b047-119bfcfa56ed" - serviceNameOne = "service-name-one" - serviceNameTwo = "service-name-two" - serviceNameThree = "service-name-three" - fixNamespace = "fix-namespace" - ) - app := &gqlschema.Application{ - Name: "fix-name", - Services: []gqlschema.ApplicationService{ - { - ID: serviceIdOne, - DisplayName: serviceNameOne, - }, - { - ID: serviceIdTwo, - DisplayName: serviceNameTwo, - }, - { - ID: serviceIdThree, - DisplayName: serviceNameThree, - }, - }, - } - appSvc := automock.NewApplicationSvc() - defer appSvc.AssertExpectations(t) - appSvc.On("ListApplicationMapping", app.Name).Return([]*mappingTypes.ApplicationMapping{ - { - ObjectMeta: v1.ObjectMeta{ - Name: app.Name, - Namespace: fixNamespace, - }, - Spec: mappingTypes.ApplicationMappingSpec{ - Services: []mappingTypes.ApplicationMappingService{ - { - ID: serviceIdThree, - }, - { - ID: serviceIdOne, - }, - { - ID: serviceIdTwo, - }, - { - ID: serviceIdFour, - }, - }, - }, - }, - }, nil) - resolver := application.NewApplicationResolver(appSvc, nil) - - // WHEN - out, err := resolver.ApplicationEnabledMappingServices(context.Background(), app) - require.NoError(t, err) - - // THEN - assert.Len(t, out, 1) - assert.Equal(t, out[0].Namespace, fixNamespace) - assert.False(t, out[0].AllServices) - assert.Len(t, out[0].Services, 4) - assert.Contains(t, out[0].Services, &gqlschema.EnabledApplicationService{ - ID: serviceIdOne, - Exist: true, - DisplayName: serviceNameOne, - }) - assert.Contains(t, out[0].Services, &gqlschema.EnabledApplicationService{ - ID: serviceIdTwo, - Exist: true, - DisplayName: serviceNameTwo, - }) - assert.Contains(t, out[0].Services, &gqlschema.EnabledApplicationService{ - ID: serviceIdThree, - Exist: true, - DisplayName: serviceNameThree, - }) - assert.Contains(t, out[0].Services, &gqlschema.EnabledApplicationService{ - ID: serviceIdFour, - Exist: false, - DisplayName: "", - }) -} - -func ptrStr(str string) *string { - return &str -} diff --git a/components/console-backend-service/internal/domain/application/app_service.go b/components/console-backend-service/internal/domain/application/app_service.go deleted file mode 100644 index 93425a687bfb..000000000000 --- a/components/console-backend-service/internal/domain/application/app_service.go +++ /dev/null @@ -1,427 +0,0 @@ -package application - -import ( - "context" - "encoding/json" - "fmt" - "io" - "net/http" - "regexp" - - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - res "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/iosafety" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/extractor" - "github.com/pkg/errors" - apiErrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/tools/cache" -) - -const ( - appMappingNameIndex = "mapping-name" - // This regex comes from the k8s resource name validation and has been checked against traversal attack - // https://github.com/kubernetes/kubernetes/blob/v1.10.1/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L126 - appNameRegex = `^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$` - maxUpdateRetries = 5 - applicationHeader = "Application" -) - -type notifier interface { - AddListener(observer resource.Listener) - DeleteListener(observer resource.Listener) -} - -// applicationService provides listing namespaces along with Applications. -// It provides also Applications enabling/disabling in given namespace. -type applicationService struct { - aCli dynamic.NamespaceableResourceInterface - appInformer cache.SharedIndexInformer - - mCli dynamic.NamespaceableResourceInterface - mappingInformer cache.SharedIndexInformer - - connectorSvcURL string - httpClient *http.Client - appNameRegex *regexp.Regexp - notifier notifier - extractor extractor.ApplicationUnstructuredExtractor - mappingExtractor extractor.ApplicationMappingUnstructuredExtractor - - appMappingConverter applicationMappingConverter -} - -func newApplicationService(cfg Config, aCli dynamic.NamespaceableResourceInterface, mCli dynamic.NamespaceableResourceInterface, mInformer cache.SharedIndexInformer, appInformer cache.SharedIndexInformer) (*applicationService, error) { - err := mInformer.AddIndexers(cache.Indexers{ - appMappingNameIndex: func(obj interface{}) ([]string, error) { - m := &mappingTypes.ApplicationMapping{} - u, err := res.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting applicationMapping obj to unstructured") - } - err = res.FromUnstructured(u, m) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to applicationMapping") - } - return []string{m.Name}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - notifier := resource.NewNotifier() - appInformer.AddEventHandler(notifier) - - regex, err := regexp.Compile(appNameRegex) - if err != nil { - return nil, errors.Wrapf(err, "while compiling %s regex", appNameRegex) - } - return &applicationService{ - mCli: mCli, - mappingInformer: mInformer, - - aCli: aCli, - appInformer: appInformer, - - connectorSvcURL: cfg.Connector.URL, - httpClient: &http.Client{ - Timeout: cfg.Connector.HTTPCallTimeout, - }, - notifier: notifier, - appNameRegex: regex, - extractor: extractor.ApplicationUnstructuredExtractor{}, - - appMappingConverter: applicationMappingConverter{}, - }, nil -} - -func (svc *applicationService) Create(name string, description string, labels gqlschema.Labels) (*v1alpha1.Application, error) { - u, err := svc.extractor.ToUnstructured(&v1alpha1.Application{ - TypeMeta: metav1.TypeMeta{ - Kind: "Application", - APIVersion: "applicationconnector.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: v1alpha1.ApplicationSpec{ - Labels: labels, - Description: description, - Services: []v1alpha1.Service{}, - }, - }) - if err != nil { - return &v1alpha1.Application{}, err - } - - created, err := svc.aCli.Create(context.Background(), u, metav1.CreateOptions{}) - - if err != nil { - return &v1alpha1.Application{}, err - } - return svc.extractor.FromUnstructured(created) -} - -func (svc *applicationService) Update(name string, description string, labels gqlschema.Labels) (*v1alpha1.Application, error) { - var lastErr error - for i := 0; i < maxUpdateRetries; i++ { - app, err := svc.Find(name) - if err != nil { - return nil, errors.Wrapf(err, "while getting %s [%s]", pretty.Application, name) - } - if app == nil { - return nil, apiErrors.NewNotFound(schema.GroupResource{ - Group: "applicationconnector.kyma-project.io", - Resource: "applications", - }, name) - } - app.Spec.Description = description - app.Spec.Labels = labels - - unstructuredApp, err := svc.extractor.ToUnstructured(app) - if err != nil { - return &v1alpha1.Application{}, err - } - - updated, err := svc.aCli.Update(context.Background(), unstructuredApp, metav1.UpdateOptions{}) - switch { - case err == nil: - return svc.extractor.FromUnstructured(updated) - case apiErrors.IsConflict(err): - lastErr = err - continue - default: - return nil, errors.Wrapf(err, "while updating %s [%s]", pretty.Application, name) - } - } - return nil, errors.Wrapf(lastErr, "couldn't update %s [%s], after %d retries", pretty.Application, name, maxUpdateRetries) -} - -func (svc *applicationService) Delete(name string) error { - return svc.aCli.Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *applicationService) ListNamespacesFor(appName string) ([]string, error) { - mappingObjs, err := svc.mappingInformer.GetIndexer().ByIndex(appMappingNameIndex, appName) - if err != nil { - return nil, errors.Wrapf(err, "while listing %s by index %q with key %q", pretty.ApplicationMapping, appMappingNameIndex, appName) - } - - nsList := make([]string, 0, len(mappingObjs)) - for _, item := range mappingObjs { - unstructured, err := res.ToUnstructured(item) - if err != nil { - return nil, errors.Wrapf(err, "while converting mappingObj to unstructured") - } - appMapping := &mappingTypes.ApplicationMapping{} - err = res.FromUnstructured(unstructured, appMapping) - if err != nil { - return nil, errors.Wrapf(err, "while converting ApplicationMapping from unstructured") - } - nsList = append(nsList, appMapping.Namespace) - } - - return nsList, nil -} - -func (svc *applicationService) Find(name string) (*v1alpha1.Application, error) { - item, exists, err := svc.appInformer.GetStore().GetByKey(name) - - if err != nil || !exists { - return nil, err - } - - app, ok := item.(*unstructured.Unstructured) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: 'Application' in version 'v1alpha1'", item) - } - - return svc.extractor.FromUnstructured(app) -} - -func (svc *applicationService) List(params pager.PagingParams) ([]*v1alpha1.Application, error) { - items, err := pager.From(svc.appInformer.GetStore()).Limit(params) - if err != nil { - return nil, errors.Wrapf(err, "while listing %s with paging params [first: %v] [offset: %v]", pretty.Application, params.First, params.Offset) - } - - res := make([]*v1alpha1.Application, 0, len(items)) - for _, item := range items { - re, err := svc.extractor.Do(item) - if err != nil { - return nil, fmt.Errorf("cannot convert item to 'v1alpha1.Application': %v", item) - } - - res = append(res, re) - } - - return res, nil -} - -func (svc *applicationService) ListInNamespace(namespace string) ([]*v1alpha1.Application, error) { - mappings, err := svc.mappingInformer.GetIndexer().ByIndex("namespace", namespace) - if err != nil { - return nil, errors.Wrapf(err, "while listing %s", pretty.ApplicationMapping) - } - - res := make([]*v1alpha1.Application, 0) - for _, item := range mappings { - - mapping, err := svc.mappingExtractor.Do(item) - if err != nil { - return nil, fmt.Errorf("cannot convert item to 'applicationMapping': %v", item) - } - - // Application CR is cluster wide so the key is only the name - item, exists, err := svc.appInformer.GetIndexer().GetByKey(mapping.Name) - if err != nil { - return nil, errors.Wrapf(err, "while getting %s with key %s", pretty.Application, mapping.Name) - } - - if !exists { - glog.Warningf("Found %s %q in namespaces %q but %s with name %q does not exists", pretty.ApplicationMapping, mapping.Name, mapping.Namespace, pretty.Application, mapping.Name) - continue - } - - app, err := svc.extractor.Do(item) - if err != nil { - return nil, fmt.Errorf("cannot convert item to 'v1alpha1.Application': %v", item) - } - - //TODO: Write test to make sure that this is a real deep copy - deepCopy := app.DeepCopy() - res = append(res, deepCopy) - } - return res, nil -} - -// Enable enables Application in given namespace by creating ApplicationMapping -func (svc *applicationService) Enable(namespace, name string, services []*gqlschema.ApplicationMappingService) (*mappingTypes.ApplicationMapping, error) { - mappingServices := svc.appMappingConverter.transformApplicationMappingServiceFromGQL(services) - m, err := svc.mappingExtractor.ToUnstructured(&mappingTypes.ApplicationMapping{ - TypeMeta: metav1.TypeMeta{ - Kind: "ApplicationMapping", - APIVersion: "applicationconnector.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: mappingTypes.ApplicationMappingSpec{ - Services: mappingServices, - }, - }) - - if err != nil { - return &mappingTypes.ApplicationMapping{}, err - } - - created, err := svc.mCli.Namespace(namespace).Create(context.Background(), m, metav1.CreateOptions{}) - - if err != nil { - return &mappingTypes.ApplicationMapping{}, err - } - return svc.mappingExtractor.FromUnstructured(created) -} - -// UpdateApplicationMapping updates ApplicationMapping based on its name and namespace -func (svc *applicationService) UpdateApplicationMapping(namespace, name string, services []*gqlschema.ApplicationMappingService) (*mappingTypes.ApplicationMapping, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.mappingInformer.GetStore().GetByKey(key) - if err != nil { - return nil, errors.Wrapf(err, "while fetching %s", pretty.ApplicationMapping) - } - if !exists { - return nil, errors.Wrapf(err, "mapping %s not found", pretty.ApplicationMapping) - } - - em, err := svc.mappingExtractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "while converting %s", pretty.ApplicationMapping) - } - - emUpdate := em.DeepCopy() - emUpdate.Spec.Services = svc.appMappingConverter.transformApplicationMappingServiceFromGQL(services) - - u, err := svc.mappingExtractor.ToUnstructured(emUpdate) - if err != nil { - return nil, err - } - - updated, err := svc.mCli.Namespace(namespace).Update(context.Background(), u, metav1.UpdateOptions{}) - - if err != nil { - return nil, errors.Wrapf(err, "while updating %s [%s]", pretty.ApplicationMapping, name) - } - - return svc.mappingExtractor.FromUnstructured(updated) -} - -// ListApplicationMapping return list of ApplicationMapping from all namespaces base on name -func (svc *applicationService) ListApplicationMapping(name string) ([]*mappingTypes.ApplicationMapping, error) { - - mappings := svc.mappingInformer.GetStore().List() - - result := make([]*mappingTypes.ApplicationMapping, 0) - for _, item := range mappings { - mapping, err := svc.mappingExtractor.Do(item) - if err != nil { - return nil, fmt.Errorf("cannot convert item to 'applicationMapping': %v", item) - } - if mapping.Name == name { - result = append(result, mapping) - } - } - - return result, nil -} - -// Disable disables Application in given namespace by removing ApplicationMapping -func (svc *applicationService) Disable(namespace, name string) error { - return svc.mCli.Namespace(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *applicationService) GetConnectionURL(appName string) (string, error) { - if ok := svc.appNameRegex.MatchString(appName); !ok { - return "", fmt.Errorf("%s name %q does not match regex: %s", pretty.Application, appName, appNameRegex) - } - reqURL := fmt.Sprintf("%s/v1/applications/tokens", svc.connectorSvcURL) - - req, err := http.NewRequest(http.MethodPost, reqURL, nil) - if err != nil { - return "", errors.Wrap(err, "while creating HTTP request") - } - - req.Header.Set(applicationHeader, appName) - - resp, err := svc.httpClient.Do(req) - if err != nil { - return "", errors.Wrap(err, "while making HTTP call") - } - defer svc.drainAndCloseBody(resp.Body) - - if resp.StatusCode != http.StatusCreated { - cause := svc.extractErrorCause(resp.Body) - return "", errors.Wrapf(cause, "while requesting connection URL obtained unexpected status code %d", resp.StatusCode) - } - - connectorURL, err := svc.extractConnectionURL(resp.Body) - if err != nil { - return "", errors.Wrap(err, "while extracting connection URL from body") - } - - return connectorURL, nil -} - -func (svc *applicationService) extractConnectionURL(body io.ReadCloser) (string, error) { - var dto struct { - URL string `json:"url"` - } - if err := json.NewDecoder(body).Decode(&dto); err != nil { - return "", errors.Wrap(err, "while decoding json") - } - - return dto.URL, nil -} - -func (svc *applicationService) extractErrorCause(body io.ReadCloser) error { - var dto struct { - Error string `json:"error"` - } - if err := json.NewDecoder(body).Decode(&dto); err != nil { - return errors.Wrap(err, "while decoding json to get error msg from body") - } - - return errors.New(dto.Error) -} - -func (svc *applicationService) drainAndCloseBody(body io.ReadCloser) { - err := iosafety.DrainReader(body) - if err != nil { - glog.Errorf("Unable to drain body reader. Cause: %v", err) - } - err = body.Close() - if err != nil { - glog.Errorf("Unable to close body reader. Cause: %v", err) - } -} - -func (svc *applicationService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *applicationService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/application/app_service_test.go b/components/console-backend-service/internal/domain/application/app_service_test.go deleted file mode 100644 index 2629381a6494..000000000000 --- a/components/console-backend-service/internal/domain/application/app_service_test.go +++ /dev/null @@ -1,795 +0,0 @@ -package application_test - -import ( - "context" - "errors" - "fmt" - "net/http" - "net/http/httptest" - "strings" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/client-go/dynamic" - - "github.com/golang/glog" - - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - appTypes "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - apiErrors "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - dynamicFake "k8s.io/client-go/dynamic/fake" - k8sTesting "k8s.io/client-go/testing" - "k8s.io/client-go/tools/cache" -) - -func TestServiceListNamespacesForApplicationSuccess(t *testing.T) { - // given - const fixMappingName = "test-mapping" - fixMapping := fixApplicationMappingCR(fixMappingName, "production") - - aCli, aInformer := setupApplicationServices(t) - mCli, mInformer := setupMappingServices(t, fixMapping) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - // when - nsList, err := svc.ListNamespacesFor(fixMappingName) - - // then - require.NoError(t, err) - - require.Len(t, nsList, 1) - assert.Equal(t, nsList[0], fixMapping.Namespace) -} - -func TestServiceFindApplicationSuccess(t *testing.T) { - // given - appName := "testExample" - - fixApp := fixApplicationCR("testExample") - - aCli, aInformer := setupApplicationServices(t, fixApp) - mCli, mInformer := setupMappingServices(t) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - // when - app, err := svc.Find(appName) - - // then - require.NoError(t, err) - assert.Equal(t, fixApp, app) -} - -func TestServiceFindApplicationFail(t *testing.T) { - // given - appName := "testExample" - - aCli, aInformer := setupApplicationServices(t) - mCli, mInformer := setupMappingServices(t) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - // when - app, err := svc.Find(appName) - - // then - require.NoError(t, err) - assert.Nil(t, app) -} - -func TestServiceListAllApplicationsSuccess(t *testing.T) { - // given - fixAppA := fixApplicationCR("app-name-a") - fixAppB := fixApplicationCR("app-name-b") - - aCli, aInformer := setupApplicationServices(t, fixAppA, fixAppB) - mCli, mInformer := setupMappingServices(t) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - // when - nsList, err := svc.List(pager.PagingParams{}) - - // then - require.NoError(t, err) - - require.Len(t, nsList, 2) - assert.Contains(t, nsList, fixAppB) - assert.Contains(t, nsList, fixAppA) -} - -func TestServiceListApplicationsInNamespaceSuccess(t *testing.T) { - // given - const fixNamespace = "prod" - - fixAppA := fixApplicationCR("app-name-a") - fixAppB := fixApplicationCR("app-name-b") - fixMappingAppA := fixApplicationMappingCR("app-name-a", fixNamespace) - fixMappingAppB := fixApplicationMappingCR("app-name-b", fixNamespace) - - aCli, aInformer := setupApplicationServices(t, fixAppA, fixAppB) - mCli, mInformer := setupMappingServices(t, fixMappingAppA, fixMappingAppB) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - // when - nsList, err := svc.ListInNamespace(fixNamespace) - - // then - require.NoError(t, err) - - require.Len(t, nsList, 2) - assert.Contains(t, nsList, fixAppA) - assert.Contains(t, nsList, fixAppB) -} - -func TestApplicationService_ListApplicationMapping(t *testing.T) { - // given - const ( - fixNamespace = "prod" - fixOtherNamespace = "other" - fixAppName = "app-name-a" - ) - - fixApp := fixApplicationCR(fixAppName) - - fixMappingAppA := fixApplicationMappingCR(fixAppName, fixNamespace) - fixMappingAppAo := fixApplicationMappingCR(fixAppName, fixOtherNamespace) - fixMappingAppB := fixApplicationMappingCR("app-name-b", fixNamespace) - fixMappingAppBo := fixApplicationMappingCR("app-name-b", fixOtherNamespace) - - aCli, aInformer := setupApplicationServices(t, fixApp) - mCli, mInformer := setupMappingServices(t, fixMappingAppA, fixMappingAppAo, fixMappingAppB, fixMappingAppBo) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - // when - list, err := svc.ListApplicationMapping(fixAppName) - require.NoError(t, err) - - // then - assert.Len(t, list, 2) - assert.Contains(t, list, fixMappingAppA) - assert.Contains(t, list, fixMappingAppAo) -} - -func TestGetConnectionURLSuccess(t *testing.T) { - // given - testServer := newTestServer(`{"url": "http://gotURL-with-token", "token": "token"}`, http.StatusCreated) - defer testServer.Close() - - cfg := application.Config{ - Connector: application.ConnectorSvcCfg{ - URL: testServer.URL, - }, - } - - svc, err := application.NewApplicationService(cfg, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - // when - gotURL, err := svc.GetConnectionURL("fixApplicationName") - - // then - require.NoError(t, err) - assert.Equal(t, "http://gotURL-with-token", gotURL) -} - -func TestGetConnectionURLFailure(t *testing.T) { - t.Run("Should return an error in case of improper application name", func(t *testing.T) { - // given - cfg := application.Config{ - Connector: application.ConnectorSvcCfg{ - URL: "connectorURL", - }, - } - - svc, err := application.NewApplicationService(cfg, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - // when - gotURL, err := svc.GetConnectionURL("invalid/ApplicationName") - - // then - require.Error(t, err) - assert.Empty(t, gotURL) - assert.EqualError(t, err, `Application name "invalid/ApplicationName" does not match regex: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$`) - }) - - t.Run("Should return an error in case of 403 status code", func(t *testing.T) { - // given - testServer := newTestServer(`{"code": 403, "error": "Invalid token."}`, http.StatusForbidden) - defer testServer.Close() - - cfg := application.Config{ - Connector: application.ConnectorSvcCfg{ - URL: testServer.URL, - }, - } - - svc, err := application.NewApplicationService(cfg, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - // when - gotURL, err := svc.GetConnectionURL("fixApplication") - - // then - require.Error(t, err) - assert.Empty(t, gotURL) - assert.EqualError(t, err, `while requesting connection URL obtained unexpected status code 403: Invalid token.`) - }) - - t.Run("Should return an error in case of invalid json format", func(t *testing.T) { - // given - testServer := newTestServer("something", http.StatusCreated) - defer testServer.Close() - - cfg := application.Config{ - Connector: application.ConnectorSvcCfg{ - URL: testServer.URL, - }, - } - - svc, err := application.NewApplicationService(cfg, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - // when - gotURL, err := svc.GetConnectionURL("fixApplication") - - // then - require.Error(t, err) - assert.Empty(t, gotURL) - assert.EqualError(t, err, `while extracting connection URL from body: while decoding json: invalid character 's' looking for beginning of value`) - }) -} - -func TestApplicationService_Create(t *testing.T) { - // GIVEN - fixName := "fix-name" - fixDesc := "desc" - fixLabels := map[string]string{ - "fix": "lab", - } - dynamicClient, err := newDynamicClient() - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - svc, err := application.NewApplicationService(application.Config{}, aCli, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - // WHEN - app, err := svc.Create(fixName, fixDesc, fixLabels) - - // THEN - require.NoError(t, err) - assert.Equal(t, app.Name, fixName) - assert.Equal(t, app.Spec.Description, fixDesc) - assert.Equal(t, app.Spec.Labels, fixLabels) -} - -func TestApplicationService_Delete(t *testing.T) { - // GIVEN - fixName := "fix-name" - dynamicClient, err := newDynamicClient(fixApplicationCR(fixName)) - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - svc, err := application.NewApplicationService(application.Config{}, aCli, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - // WHEN - err = svc.Delete(fixName) - - // THEN - require.NoError(t, err) - _, err = aCli.Get(context.Background(), fixName, v1.GetOptions{}) - assert.True(t, apiErrors.IsNotFound(err)) -} - -func TestApplicationService_Update(t *testing.T) { - // GIVEN - fixName := "fix-name" - fixDesc := "desc" - fixLabels := map[string]string{ - "fix": "lab", - } - - // Application - dynamicClient, err := newDynamicClient(fixApplicationCR(fixName)) - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - aInformer := createApplicationFakeInformer(dynamicClient) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - svc, err := application.NewApplicationService(application.Config{}, aCli, nil, newDummyInformer(), aInformer) - require.NoError(t, err) - - // WHEN - app, err := svc.Update(fixName, fixDesc, fixLabels) - - // THEN - require.NoError(t, err) - assert.Equal(t, fixLabels, app.Spec.Labels) - assert.Equal(t, fixDesc, app.Spec.Description) -} - -func TestApplicationService_Update_ErrorInRetryLoop(t *testing.T) { - // GIVEN - fixName := "fix-name" - fixDesc := "desc" - fixLabels := map[string]string{ - "fix": "lab", - } - - // Application - dynamicClient, err := newDynamicClient(fixApplicationCR(fixName)) - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - aInformer := createApplicationFakeInformer(dynamicClient) - - dynamicClient.PrependReactor("update", "applications", func(action k8sTesting.Action) (handled bool, ret runtime.Object, err error) { - return true, nil, errors.New("fix") - }) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - svc, err := application.NewApplicationService(application.Config{}, aCli, nil, newDummyInformer(), aInformer) - require.NoError(t, err) - - // WHEN - _, err = svc.Update(fixName, fixDesc, fixLabels) - - // THEN - assert.EqualError(t, err, fmt.Sprintf("while updating %s [%s]: fix", pretty.Application, fixName)) -} - -func TestApplicationService_Update_SuccessAfterRetry(t *testing.T) { - // GIVEN - fixName := "fix-name" - fixDesc := "desc" - fixLabels := map[string]string{ - "fix": "lab", - } - - // Application - dynamicClient, err := newDynamicClient(fixApplicationCR(fixName)) - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - aInformer := createApplicationFakeInformer(dynamicClient) - - i := 0 - dynamicClient.PrependReactor("update", "applications", func(action k8sTesting.Action) (handled bool, ret runtime.Object, err error) { - if i < 3 { - i++ - return true, nil, apiErrors.NewConflict(schema.GroupResource{}, "", errors.New("fix")) - } - return false, fixApplicationCR(fixName), nil - }) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, aInformer) - - svc, err := application.NewApplicationService(application.Config{}, aCli, nil, newDummyInformer(), aInformer) - require.NoError(t, err) - - // WHEN - app, err := svc.Update(fixName, fixDesc, fixLabels) - - // THEN - require.NoError(t, err) - assert.Equal(t, fixLabels, app.Spec.Labels) - assert.Equal(t, fixDesc, app.Spec.Description) -} - -func TestApplicationService_Enable(t *testing.T) { - fixNamespace := "fix-namespace" - fixName := "fix-name" - - t.Run("Should return ApplicationMapping with one service", func(t *testing.T) { - // GIVEN - - dynamicClient, err := newDynamicClient() - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - mCli := createMappingDynamicClient(dynamicClient) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - serviceID := "173626e3-4a8b-4d65-8847-a0bf31e674e8" - services := []*gqlschema.ApplicationMappingService{ - { - ID: serviceID, - }, - } - - // WHEN - am, err := svc.Enable(fixNamespace, fixName, services) - - // THEN - assert.NoError(t, err) - assert.Equal(t, "ApplicationMapping", am.Kind) - assert.Equal(t, fixNamespace, am.Namespace) - assert.Equal(t, fixName, am.Name) - assert.Len(t, am.Spec.Services, 1) - assert.Equal(t, serviceID, am.Spec.Services[0].ID) - }) - - t.Run("Should return ApplicationMapping with services list", func(t *testing.T) { - // GIVEN - dynamicClient, err := newDynamicClient() - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - mCli := createMappingDynamicClient(dynamicClient) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - services := []*gqlschema.ApplicationMappingService{} - - // WHEN - am, err := svc.Enable(fixNamespace, fixName, services) - - // THEN - assert.NoError(t, err) - assert.Equal(t, "ApplicationMapping", am.Kind) - assert.Equal(t, fixNamespace, am.Namespace) - assert.Equal(t, fixName, am.Name) - assert.Len(t, am.Spec.Services, 0) - }) - - t.Run("Should return ApplicationMapping with NIL services list", func(t *testing.T) { - // GIVEN - dynamicClient, err := newDynamicClient() - require.NoError(t, err) - aCli := createApplicationDynamicClient(dynamicClient) - mCli := createMappingDynamicClient(dynamicClient) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - // WHEN - am, err := svc.Enable(fixNamespace, fixName, nil) - - // THEN - assert.NoError(t, err) - assert.Equal(t, "ApplicationMapping", am.Kind) - assert.Equal(t, fixNamespace, am.Namespace) - assert.Equal(t, fixName, am.Name) - assert.Nil(t, am.Spec.Services) - }) -} - -func TestApplicationService_UpdateApplicationMapping(t *testing.T) { - fixNamespace := "fix-namespace" - fixName := "fix-name" - - t.Run("Should return updated ApplicationMapping with two services", func(t *testing.T) { - // GIVEN - fixAppMapping := fixApplicationMappingCR(fixName, fixNamespace) - - applicationDynamicClient, err := newDynamicClient() - require.NoError(t, err) - aCli := createApplicationDynamicClient(applicationDynamicClient) - - mappingDynamicClient, err := newDynamicClient(fixAppMapping) - require.NoError(t, err) - mCli := createMappingDynamicClient(mappingDynamicClient) - - aInformer := createApplicationFakeInformer(applicationDynamicClient) - mInformer := createMappingFakeInformer(mappingDynamicClient) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - - serviceIDOne := "47f8ec38-7bee-400a-8e3e-fcf238e4d916" - serviceIDTwo := "63d1125b-1451-4122-82f1-54e482248b33" - newServices := []*gqlschema.ApplicationMappingService{ - { - ID: serviceIDOne, - }, - { - ID: serviceIDTwo, - }, - } - - // WHEN - am, err := svc.UpdateApplicationMapping(fixNamespace, fixName, newServices) - - // THEN - assert.NoError(t, err) - assert.Equal(t, "ApplicationMapping", am.Kind) - assert.Equal(t, fixNamespace, am.Namespace) - assert.Equal(t, fixName, am.Name) - assert.Len(t, am.Spec.Services, 2) - assert.Equal(t, serviceIDOne, am.Spec.Services[0].ID) - assert.Equal(t, serviceIDTwo, am.Spec.Services[1].ID) - }) - - t.Run("Should return updated ApplicationMapping with empty services list", func(t *testing.T) { - // GIVEN - fixAppMapping := fixApplicationMappingCR(fixName, fixNamespace) - - applicationDynamicClient, err := newDynamicClient() - require.NoError(t, err) - aCli := createApplicationDynamicClient(applicationDynamicClient) - - mappingDynamicClient, err := newDynamicClient(fixAppMapping) - require.NoError(t, err) - mCli := createMappingDynamicClient(mappingDynamicClient) - - aInformer := createApplicationFakeInformer(applicationDynamicClient) - mInformer := createMappingFakeInformer(mappingDynamicClient) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - - newServices := []*gqlschema.ApplicationMappingService{} - - // WHEN - am, err := svc.UpdateApplicationMapping(fixNamespace, fixName, newServices) - - // THEN - assert.NoError(t, err) - assert.Equal(t, "ApplicationMapping", am.Kind) - assert.Equal(t, fixNamespace, am.Namespace) - assert.Equal(t, fixName, am.Name) - assert.Len(t, am.Spec.Services, 0) - }) - - t.Run("Should return updated ApplicationMapping with NIL services list", func(t *testing.T) { - // GIVEN - fixAppMapping := fixApplicationMappingCR(fixName, fixNamespace) - - applicationDynamicClient, err := newDynamicClient() - require.NoError(t, err) - aCli := createApplicationDynamicClient(applicationDynamicClient) - - mappingDynamicClient, err := newDynamicClient(fixAppMapping) - require.NoError(t, err) - mCli := createMappingDynamicClient(mappingDynamicClient) - - aInformer := createApplicationFakeInformer(applicationDynamicClient) - mInformer := createMappingFakeInformer(mappingDynamicClient) - - svc, err := application.NewApplicationService(application.Config{}, aCli, mCli, mInformer, aInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, mInformer) - - // WHEN - am, err := svc.UpdateApplicationMapping(fixNamespace, fixName, nil) - - // THEN - assert.NoError(t, err) - assert.Equal(t, "ApplicationMapping", am.Kind) - assert.Equal(t, fixNamespace, am.Namespace) - assert.Equal(t, fixName, am.Name) - assert.Nil(t, am.Spec.Services) - }) -} - -func TestApplicationService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - appListener := listener.NewApplication(nil, nil, nil) - svc.Subscribe(appListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - appLister := listener.NewApplication(nil, nil, nil) - - svc.Subscribe(appLister) - svc.Subscribe(appLister) - }) - - t.Run("Multiple", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - appListerA := listener.NewApplication(nil, nil, nil) - appListerB := listener.NewApplication(nil, nil, nil) - - svc.Subscribe(appListerA) - svc.Subscribe(appListerB) - }) - - t.Run("Nil", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - svc.Subscribe(nil) - }) -} - -func TestApplicationService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - appLister := listener.NewApplication(nil, nil, nil) - svc.Subscribe(appLister) - - svc.Unsubscribe(appLister) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - appLister := listener.NewApplication(nil, nil, nil) - svc.Subscribe(appLister) - svc.Subscribe(appLister) - - svc.Unsubscribe(appLister) - }) - - t.Run("Multiple", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - appListerA := listener.NewApplication(nil, nil, nil) - appListerB := listener.NewApplication(nil, nil, nil) - svc.Subscribe(appListerA) - svc.Subscribe(appListerB) - - svc.Unsubscribe(appListerA) - }) - - t.Run("Nil", func(t *testing.T) { - svc, err := application.NewApplicationService(application.Config{}, nil, nil, newDummyInformer(), newDummyInformer()) - require.NoError(t, err) - - svc.Unsubscribe(nil) - }) -} - -func newDummyInformer() cache.SharedIndexInformer { - return cache.NewSharedIndexInformer(&cache.ListWatch{}, nil, 0, cache.Indexers{}) -} - -func newTestServer(data string, statusCode int) *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - header := w.Header() - csp := []string{"default-src: 'self'", "font-src: 'fonts.googleapis.com'", "frame-src: 'none'"} - header.Set("Content-Security-Policy", strings.Join(csp, "; ")) - w.WriteHeader(statusCode) - _, err := fmt.Fprintln(w, data) - if err != nil { - glog.Errorf("Unable to write response body. Cause: %v", err) - } - })) -} - -func fixApplicationMappingCR(name, ns string) *mappingTypes.ApplicationMapping { - return &mappingTypes.ApplicationMapping{ - TypeMeta: metav1.TypeMeta{ - Kind: "ApplicationMapping", - APIVersion: "applicationconnector.kyma-project.io/v1alpha1", - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: ns, - }, - } - -} - -func fixApplicationCR(name string) *appTypes.Application { - return &appTypes.Application{ - TypeMeta: metav1.TypeMeta{ - Kind: "Application", - APIVersion: "applicationconnector.kyma-project.io/v1alpha1", - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - }, - } -} - -func createApplicationDynamicClient(dynamicClient dynamic.Interface) dynamic.NamespaceableResourceInterface { - return dynamicClient.Resource(schema.GroupVersionResource{ - Version: appTypes.SchemeGroupVersion.Version, - Group: appTypes.SchemeGroupVersion.Group, - Resource: "applications", - }) -} - -func createMappingDynamicClient(dynamicClient dynamic.Interface) dynamic.NamespaceableResourceInterface { - return dynamicClient.Resource(schema.GroupVersionResource{ - Version: mappingTypes.SchemeGroupVersion.Version, - Group: mappingTypes.SchemeGroupVersion.Group, - Resource: "applicationmappings", - }) -} - -func createApplicationFakeInformer(dynamic dynamic.Interface) cache.SharedIndexInformer { - appInformerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamic, informerResyncPeriod) - return appInformerFactory.ForResource(schema.GroupVersionResource{ - Version: appTypes.SchemeGroupVersion.Version, - Group: appTypes.SchemeGroupVersion.Group, - Resource: "applications", - }).Informer() -} - -func createMappingFakeInformer(dynamic dynamic.Interface) cache.SharedIndexInformer { - mappingInformerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamic, informerResyncPeriod) - return mappingInformerFactory.ForResource(schema.GroupVersionResource{ - Version: mappingTypes.SchemeGroupVersion.Version, - Group: mappingTypes.SchemeGroupVersion.Group, - Resource: "applicationmappings", - }).Informer() -} - -func newDynamicClient(objects ...runtime.Object) (*dynamicFake.FakeDynamicClient, error) { - scheme := runtime.NewScheme() - err := appTypes.AddToScheme(scheme) - if err != nil { - return &dynamicFake.FakeDynamicClient{}, err - } - err = mappingTypes.AddToScheme(scheme) - if err != nil { - return &dynamicFake.FakeDynamicClient{}, err - } - result := make([]runtime.Object, len(objects)) - for i, obj := range objects { - converted, _ := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - result[i] = &unstructured.Unstructured{Object: converted} - } - return dynamicFake.NewSimpleDynamicClient(scheme, result...), nil -} - -func setupApplicationServices(t *testing.T, applications ...runtime.Object) (dynamic.NamespaceableResourceInterface, cache.SharedIndexInformer) { - applicationDynamicClient, err := newDynamicClient(applications...) - require.NoError(t, err) - aCli := createApplicationDynamicClient(applicationDynamicClient) - aInformer := createApplicationFakeInformer(applicationDynamicClient) - return aCli, aInformer -} - -func setupMappingServices(t *testing.T, mappings ...runtime.Object) (dynamic.NamespaceableResourceInterface, cache.SharedIndexInformer) { - mappingDynamicClient, err := newDynamicClient(mappings...) - require.NoError(t, err) - mCli := createMappingDynamicClient(mappingDynamicClient) - mInformer := createMappingFakeInformer(mappingDynamicClient) - return mCli, mInformer -} diff --git a/components/console-backend-service/internal/domain/application/application.go b/components/console-backend-service/internal/domain/application/application.go deleted file mode 100644 index adb47465210e..000000000000 --- a/components/console-backend-service/internal/domain/application/application.go +++ /dev/null @@ -1,217 +0,0 @@ -package application - -import ( - "context" - "time" - - "k8s.io/apimachinery/pkg/runtime/schema" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - - "k8s.io/client-go/kubernetes" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/pkg/errors" - "k8s.io/client-go/rest" - - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - "k8s.io/client-go/dynamic" - k8sClient "k8s.io/client-go/kubernetes" - - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/disabled" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" -) - -//go:generate failery -name=ApplicationLister -case=underscore -output disabled -outpkg disabled -type ApplicationLister interface { - ListInNamespace(namespace string) ([]*v1alpha1.Application, error) - ListNamespacesFor(appName string) ([]string, error) -} - -type applicationRetriever struct { - ApplicationLister shared.ApplicationLister -} - -func (r *applicationRetriever) Application() shared.ApplicationLister { - return r.ApplicationLister -} - -type Config struct { - Gateway gateway.Config - Connector ConnectorSvcCfg -} - -type ConnectorSvcCfg struct { - URL string `envconfig:"optional"` - HTTPCallTimeout time.Duration `envconfig:"default=500ms"` -} - -type PluggableContainer struct { - *module.Pluggable - cfg *resolverConfig - - Resolver Resolver - ApplicationRetriever *applicationRetriever - mappingInformerFactory dynamicinformer.DynamicSharedInformerFactory - appInformerFactory dynamicinformer.DynamicSharedInformerFactory - gatewayService *gateway.Service -} - -func New(restConfig *rest.Config, reCfg Config, informerResyncPeriod time.Duration, rafterRetriever shared.RafterRetriever) (*PluggableContainer, error) { - mappingCli, err := dynamic.NewForConfig(restConfig) - if err != nil { - return nil, errors.Wrap(err, "while initializing application broker Clientset") - } - - appCli, err := dynamic.NewForConfig(restConfig) - if err != nil { - return nil, errors.Wrap(err, "while initializing application operator Clientset") - } - - k8sCli, err := kubernetes.NewForConfig(restConfig) - if err != nil { - return nil, errors.Wrap(err, "while initializing application K8s Clientset") - } - - container := &PluggableContainer{ - cfg: &resolverConfig{ - appClient: appCli, - mappingClient: mappingCli, - k8sCli: k8sCli, - cfg: reCfg, - informerResyncPeriod: informerResyncPeriod, - rafterRetriever: rafterRetriever, - }, - Pluggable: module.NewPluggable("application"), - ApplicationRetriever: &applicationRetriever{}, - } - err = container.Disable() - if err != nil { - return nil, err - } - - return container, nil -} - -func (r *PluggableContainer) Enable() error { - informerResyncPeriod := r.cfg.informerResyncPeriod - mappingCli := r.cfg.mappingClient - appCli := r.cfg.appClient - kCli := r.cfg.k8sCli - - reCfg := r.cfg.cfg - - // Application - r.appInformerFactory = dynamicinformer.NewDynamicSharedInformerFactory(appCli, informerResyncPeriod) - appInformer := r.appInformerFactory.ForResource(schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "applications", - }).Informer() - - appClient := appCli.Resource(schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "applications", - }) - - // ApplicationMapping - r.mappingInformerFactory = dynamicinformer.NewDynamicSharedInformerFactory(mappingCli, informerResyncPeriod) - mappingInformer := r.mappingInformerFactory.ForResource(schema.GroupVersionResource{ - Version: mappingTypes.SchemeGroupVersion.Version, - Group: mappingTypes.SchemeGroupVersion.Group, - Resource: "applicationmappings", - }).Informer() - - mappingClient := mappingCli.Resource(schema.GroupVersionResource{ - Version: mappingTypes.SchemeGroupVersion.Version, - Group: mappingTypes.SchemeGroupVersion.Group, - Resource: "applicationmappings", - }) - - appService, err := newApplicationService(reCfg, appClient, mappingClient, mappingInformer, appInformer) - if err != nil { - return errors.Wrap(err, "while creating Application Service") - } - - gatewayService, err := gateway.New(kCli, reCfg.Gateway, informerResyncPeriod) - if err != nil { - return errors.Wrap(err, "while creating Gateway Service") - } - r.gatewayService = gatewayService - - // EventActivations - eventActivationInformer := r.appInformerFactory.ForResource(schema.GroupVersionResource{ - Version: mappingTypes.SchemeGroupVersion.Version, - Group: mappingTypes.SchemeGroupVersion.Group, - Resource: "eventactivations", - }).Informer() - - eventActivationService := newEventActivationService(eventActivationInformer) - - r.Pluggable.EnableAndSyncCache(func(stopCh chan struct{}) { - r.mappingInformerFactory.Start(stopCh) - r.mappingInformerFactory.WaitForCacheSync(stopCh) - - r.gatewayService.Start(stopCh) - - r.appInformerFactory.Start(stopCh) - r.appInformerFactory.WaitForCacheSync(stopCh) - - r.Resolver = &domainResolver{ - applicationResolver: NewApplicationResolver(appService, gatewayService), - eventActivationResolver: newEventActivationResolver(eventActivationService, r.cfg.rafterRetriever), - } - r.ApplicationRetriever.ApplicationLister = appService - }) - - return nil -} - -func (r *PluggableContainer) Disable() error { - r.Pluggable.Disable(func(disabledErr error) { - r.Resolver = disabled.NewResolver(disabledErr) - r.ApplicationRetriever.ApplicationLister = disabled.NewApplicationLister(disabledErr) - r.gatewayService = nil - r.appInformerFactory = nil - r.mappingInformerFactory = nil - }) - - return nil -} - -type resolverConfig struct { - cfg Config - mappingClient dynamic.Interface - appClient dynamic.Interface - k8sCli k8sClient.Interface - informerResyncPeriod time.Duration - rafterRetriever shared.RafterRetriever -} - -//go:generate failery -name=Resolver -case=underscore -output disabled -outpkg disabled -type Resolver interface { - ApplicationQuery(ctx context.Context, name string) (*gqlschema.Application, error) - ApplicationsQuery(ctx context.Context, namespace *string, first *int, offset *int) ([]*gqlschema.Application, error) - ApplicationEventSubscription(ctx context.Context) (<-chan *gqlschema.ApplicationEvent, error) - CreateApplication(ctx context.Context, name string, description *string, qglLabels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) - DeleteApplication(ctx context.Context, name string) (*gqlschema.DeleteApplicationOutput, error) - UpdateApplication(ctx context.Context, name string, description *string, qglLabels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) - ConnectorServiceQuery(ctx context.Context, application string) (*gqlschema.ConnectorService, error) - EnableApplicationMutation(ctx context.Context, application string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) - OverloadApplicationMutation(ctx context.Context, application string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) - DisableApplicationMutation(ctx context.Context, application string, namespace string) (*gqlschema.ApplicationMapping, error) - ApplicationEnabledInNamespacesField(ctx context.Context, obj *gqlschema.Application) ([]string, error) - ApplicationEnabledMappingServices(ctx context.Context, obj *gqlschema.Application) ([]*gqlschema.EnabledMappingService, error) - ApplicationStatusField(ctx context.Context, app *gqlschema.Application) (gqlschema.ApplicationStatus, error) - EventActivationsQuery(ctx context.Context, namespace string) ([]*gqlschema.EventActivation, error) - EventActivationEventsField(ctx context.Context, eventActivation *gqlschema.EventActivation) ([]*gqlschema.EventActivationEvent, error) -} - -type domainResolver struct { - *applicationResolver - *eventActivationResolver -} diff --git a/components/console-backend-service/internal/domain/application/application_test.go b/components/console-backend-service/internal/domain/application/application_test.go deleted file mode 100644 index c8b57538392a..000000000000 --- a/components/console-backend-service/internal/domain/application/application_test.go +++ /dev/null @@ -1,61 +0,0 @@ -package application_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "k8s.io/client-go/rest" -) - -const testTimes = 3 -const informerResyncPeriod = 10 * time.Second - -func TestPluggableContainer(t *testing.T) { - appCfg := application.Config{ - Gateway: gateway.Config{ - StatusRefreshPeriod: 1 * time.Second, - }, - } - pluggable, err := application.New(&rest.Config{}, appCfg, informerResyncPeriod, nil) - require.NoError(t, err) - - pluggable.SetFakeClient() - - for i := 0; i < testTimes; i++ { - require.NotPanics(t, func() { - err := pluggable.Enable() - - require.NoError(t, err) - <-pluggable.Pluggable.SyncCh - - checkExportedFields(t, pluggable, true) - }) - require.NotPanics(t, func() { - err := pluggable.Disable() - require.NoError(t, err) - - checkExportedFields(t, pluggable, false) - }) - } -} - -func checkExportedFields(t *testing.T, resolver *application.PluggableContainer, enabled bool) { - assert.NotNil(t, resolver.Resolver) - require.NotNil(t, resolver.ApplicationRetriever) - assert.NotNil(t, resolver.ApplicationRetriever.Application()) - - ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) - defer cancel() - val, err := resolver.Resolver.ApplicationsQuery(ctx, nil, nil, nil) - if enabled { - require.NoError(t, err) - } else { - require.Nil(t, val) - require.Error(t, err) - } -} diff --git a/components/console-backend-service/internal/domain/application/automock/app_svc.go b/components/console-backend-service/internal/domain/application/automock/app_svc.go deleted file mode 100644 index 02a38be7714d..000000000000 --- a/components/console-backend-service/internal/domain/application/automock/app_svc.go +++ /dev/null @@ -1,287 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - applicationconnectorv1alpha1 "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1alpha1 "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" -) - -// appSvc is an autogenerated mock type for the appSvc type -type appSvc struct { - mock.Mock -} - -// Create provides a mock function with given fields: name, description, labels -func (_m *appSvc) Create(name string, description string, labels gqlschema.Labels) (*v1alpha1.Application, error) { - ret := _m.Called(name, description, labels) - - var r0 *v1alpha1.Application - if rf, ok := ret.Get(0).(func(string, string, gqlschema.Labels) *v1alpha1.Application); ok { - r0 = rf(name, description, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Application) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, gqlschema.Labels) error); ok { - r1 = rf(name, description, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: name -func (_m *appSvc) Delete(name string) error { - ret := _m.Called(name) - - var r0 error - if rf, ok := ret.Get(0).(func(string) error); ok { - r0 = rf(name) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Disable provides a mock function with given fields: namespace, name -func (_m *appSvc) Disable(namespace string, name string) error { - ret := _m.Called(namespace, name) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(namespace, name) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Enable provides a mock function with given fields: namespace, name, services -func (_m *appSvc) Enable(namespace string, name string, services []*gqlschema.ApplicationMappingService) (*applicationconnectorv1alpha1.ApplicationMapping, error) { - ret := _m.Called(namespace, name, services) - - var r0 *applicationconnectorv1alpha1.ApplicationMapping - if rf, ok := ret.Get(0).(func(string, string, []*gqlschema.ApplicationMappingService) *applicationconnectorv1alpha1.ApplicationMapping); ok { - r0 = rf(namespace, name, services) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*applicationconnectorv1alpha1.ApplicationMapping) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []*gqlschema.ApplicationMappingService) error); ok { - r1 = rf(namespace, name, services) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Find provides a mock function with given fields: name -func (_m *appSvc) Find(name string) (*v1alpha1.Application, error) { - ret := _m.Called(name) - - var r0 *v1alpha1.Application - if rf, ok := ret.Get(0).(func(string) *v1alpha1.Application); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Application) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// GetConnectionURL provides a mock function with given fields: _a0 -func (_m *appSvc) GetConnectionURL(_a0 string) (string, error) { - ret := _m.Called(_a0) - - var r0 string - if rf, ok := ret.Get(0).(func(string) string); ok { - r0 = rf(_a0) - } else { - r0 = ret.Get(0).(string) - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(_a0) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: params -func (_m *appSvc) List(params pager.PagingParams) ([]*v1alpha1.Application, error) { - ret := _m.Called(params) - - var r0 []*v1alpha1.Application - if rf, ok := ret.Get(0).(func(pager.PagingParams) []*v1alpha1.Application); ok { - r0 = rf(params) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.Application) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(pager.PagingParams) error); ok { - r1 = rf(params) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListApplicationMapping provides a mock function with given fields: name -func (_m *appSvc) ListApplicationMapping(name string) ([]*applicationconnectorv1alpha1.ApplicationMapping, error) { - ret := _m.Called(name) - - var r0 []*applicationconnectorv1alpha1.ApplicationMapping - if rf, ok := ret.Get(0).(func(string) []*applicationconnectorv1alpha1.ApplicationMapping); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*applicationconnectorv1alpha1.ApplicationMapping) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListInNamespace provides a mock function with given fields: namespace -func (_m *appSvc) ListInNamespace(namespace string) ([]*v1alpha1.Application, error) { - ret := _m.Called(namespace) - - var r0 []*v1alpha1.Application - if rf, ok := ret.Get(0).(func(string) []*v1alpha1.Application); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.Application) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListNamespacesFor provides a mock function with given fields: appName -func (_m *appSvc) ListNamespacesFor(appName string) ([]string, error) { - ret := _m.Called(appName) - - var r0 []string - if rf, ok := ret.Get(0).(func(string) []string); ok { - r0 = rf(appName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(appName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *appSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *appSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Update provides a mock function with given fields: name, description, labels -func (_m *appSvc) Update(name string, description string, labels gqlschema.Labels) (*v1alpha1.Application, error) { - ret := _m.Called(name, description, labels) - - var r0 *v1alpha1.Application - if rf, ok := ret.Get(0).(func(string, string, gqlschema.Labels) *v1alpha1.Application); ok { - r0 = rf(name, description, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Application) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, gqlschema.Labels) error); ok { - r1 = rf(name, description, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// UpdateApplicationMapping provides a mock function with given fields: namespace, name, services -func (_m *appSvc) UpdateApplicationMapping(namespace string, name string, services []*gqlschema.ApplicationMappingService) (*applicationconnectorv1alpha1.ApplicationMapping, error) { - ret := _m.Called(namespace, name, services) - - var r0 *applicationconnectorv1alpha1.ApplicationMapping - if rf, ok := ret.Get(0).(func(string, string, []*gqlschema.ApplicationMappingService) *applicationconnectorv1alpha1.ApplicationMapping); ok { - r0 = rf(namespace, name, services) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*applicationconnectorv1alpha1.ApplicationMapping) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []*gqlschema.ApplicationMappingService) error); ok { - r1 = rf(namespace, name, services) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/application/automock/event_activation_lister.go b/components/console-backend-service/internal/domain/application/automock/event_activation_lister.go deleted file mode 100644 index 79d5ba629a3c..000000000000 --- a/components/console-backend-service/internal/domain/application/automock/event_activation_lister.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - v1alpha1 "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - mock "github.com/stretchr/testify/mock" -) - -// eventActivationLister is an autogenerated mock type for the eventActivationLister type -type eventActivationLister struct { - mock.Mock -} - -// List provides a mock function with given fields: namespace -func (_m *eventActivationLister) List(namespace string) ([]*v1alpha1.EventActivation, error) { - ret := _m.Called(namespace) - - var r0 []*v1alpha1.EventActivation - if rf, ok := ret.Get(0).(func(string) []*v1alpha1.EventActivation); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.EventActivation) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/application/automock/export.go b/components/console-backend-service/internal/domain/application/automock/export.go deleted file mode 100644 index eb8daba49e73..000000000000 --- a/components/console-backend-service/internal/domain/application/automock/export.go +++ /dev/null @@ -1,15 +0,0 @@ -package automock - -// EventActivation - -func NewEventActivationLister() *eventActivationLister { - return new(eventActivationLister) -} - -func NewApplicationSvc() *appSvc { - return new(appSvc) -} - -func NewStatusGetter() *statusGetter { - return new(statusGetter) -} diff --git a/components/console-backend-service/internal/domain/application/automock/status_getter.go b/components/console-backend-service/internal/domain/application/automock/status_getter.go deleted file mode 100644 index 135d64d1a430..000000000000 --- a/components/console-backend-service/internal/domain/application/automock/status_getter.go +++ /dev/null @@ -1,27 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gateway "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" - mock "github.com/stretchr/testify/mock" -) - -// statusGetter is an autogenerated mock type for the statusGetter type -type statusGetter struct { - mock.Mock -} - -// GetStatus provides a mock function with given fields: reName -func (_m *statusGetter) GetStatus(reName string) gateway.Status { - ret := _m.Called(reName) - - var r0 gateway.Status - if rf, ok := ret.Get(0).(func(string) gateway.Status); ok { - r0 = rf(reName) - } else { - r0 = ret.Get(0).(gateway.Status) - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/application/disabled/application_lister.go b/components/console-backend-service/internal/domain/application/disabled/application_lister.go deleted file mode 100644 index 5dca0f73b56f..000000000000 --- a/components/console-backend-service/internal/domain/application/disabled/application_lister.go +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import v1alpha1 "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - -// ApplicationLister is an autogenerated failing mock type for the ApplicationLister type -type ApplicationLister struct { - err error -} - -// NewApplicationLister creates a new ApplicationLister type instance -func NewApplicationLister(err error) *ApplicationLister { - return &ApplicationLister{err: err} -} - -// ListInNamespace provides a failing mock function with given fields: namespace -func (_m *ApplicationLister) ListInNamespace(namespace string) ([]*v1alpha1.Application, error) { - var r0 []*v1alpha1.Application - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ListNamespacesFor provides a failing mock function with given fields: appName -func (_m *ApplicationLister) ListNamespacesFor(appName string) ([]string, error) { - var r0 []string - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/application/disabled/resolver.go b/components/console-backend-service/internal/domain/application/disabled/resolver.go deleted file mode 100644 index cd85090099d8..000000000000 --- a/components/console-backend-service/internal/domain/application/disabled/resolver.go +++ /dev/null @@ -1,154 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - context "context" - - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -// Resolver is an autogenerated failing mock type for the Resolver type -type Resolver struct { - err error -} - -// NewResolver creates a new Resolver type instance -func NewResolver(err error) *Resolver { - return &Resolver{err: err} -} - -// ApplicationEnabledInNamespacesField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ApplicationEnabledInNamespacesField(ctx context.Context, obj *gqlschema.Application) ([]string, error) { - var r0 []string - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ApplicationEnabledMappingServices provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ApplicationEnabledMappingServices(ctx context.Context, obj *gqlschema.Application) ([]*gqlschema.EnabledMappingService, error) { - var r0 []*gqlschema.EnabledMappingService - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ApplicationEventSubscription provides a failing mock function with given fields: ctx -func (_m *Resolver) ApplicationEventSubscription(ctx context.Context) (<-chan *gqlschema.ApplicationEvent, error) { - var r0 <-chan *gqlschema.ApplicationEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ApplicationQuery provides a failing mock function with given fields: ctx, name -func (_m *Resolver) ApplicationQuery(ctx context.Context, name string) (*gqlschema.Application, error) { - var r0 *gqlschema.Application - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ApplicationStatusField provides a failing mock function with given fields: ctx, app -func (_m *Resolver) ApplicationStatusField(ctx context.Context, app *gqlschema.Application) (gqlschema.ApplicationStatus, error) { - var r0 gqlschema.ApplicationStatus - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ApplicationsQuery provides a failing mock function with given fields: ctx, namespace, first, offset -func (_m *Resolver) ApplicationsQuery(ctx context.Context, namespace *string, first *int, offset *int) ([]*gqlschema.Application, error) { - var r0 []*gqlschema.Application - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ConnectorServiceQuery provides a failing mock function with given fields: ctx, _a1 -func (_m *Resolver) ConnectorServiceQuery(ctx context.Context, _a1 string) (*gqlschema.ConnectorService, error) { - var r0 *gqlschema.ConnectorService - var r1 error - r1 = _m.err - - return r0, r1 -} - -// CreateApplication provides a failing mock function with given fields: ctx, name, description, qglLabels -func (_m *Resolver) CreateApplication(ctx context.Context, name string, description *string, qglLabels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) { - var r0 *gqlschema.ApplicationMutationOutput - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteApplication provides a failing mock function with given fields: ctx, name -func (_m *Resolver) DeleteApplication(ctx context.Context, name string) (*gqlschema.DeleteApplicationOutput, error) { - var r0 *gqlschema.DeleteApplicationOutput - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DisableApplicationMutation provides a failing mock function with given fields: ctx, _a1, namespace -func (_m *Resolver) DisableApplicationMutation(ctx context.Context, _a1 string, namespace string) (*gqlschema.ApplicationMapping, error) { - var r0 *gqlschema.ApplicationMapping - var r1 error - r1 = _m.err - - return r0, r1 -} - -// EnableApplicationMutation provides a failing mock function with given fields: ctx, _a1, namespace, allServices, services -func (_m *Resolver) EnableApplicationMutation(ctx context.Context, _a1 string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) { - var r0 *gqlschema.ApplicationMapping - var r1 error - r1 = _m.err - - return r0, r1 -} - -// EventActivationEventsField provides a failing mock function with given fields: ctx, eventActivation -func (_m *Resolver) EventActivationEventsField(ctx context.Context, eventActivation *gqlschema.EventActivation) ([]*gqlschema.EventActivationEvent, error) { - var r0 []*gqlschema.EventActivationEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// EventActivationsQuery provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) EventActivationsQuery(ctx context.Context, namespace string) ([]*gqlschema.EventActivation, error) { - var r0 []*gqlschema.EventActivation - var r1 error - r1 = _m.err - - return r0, r1 -} - -// OverloadApplicationMutation provides a failing mock function with given fields: ctx, _a1, namespace, allServices, services -func (_m *Resolver) OverloadApplicationMutation(ctx context.Context, _a1 string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) { - var r0 *gqlschema.ApplicationMapping - var r1 error - r1 = _m.err - - return r0, r1 -} - -// UpdateApplication provides a failing mock function with given fields: ctx, name, description, qglLabels -func (_m *Resolver) UpdateApplication(ctx context.Context, name string, description *string, qglLabels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) { - var r0 *gqlschema.ApplicationMutationOutput - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/application/eventactivation_converter.go b/components/console-backend-service/internal/domain/application/eventactivation_converter.go deleted file mode 100644 index 796f9fb50d57..000000000000 --- a/components/console-backend-service/internal/domain/application/eventactivation_converter.go +++ /dev/null @@ -1,131 +0,0 @@ -package application - -import ( - "strings" - - "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type eventActivationConverter struct{} - -func (c *eventActivationConverter) ToGQL(in *v1alpha1.EventActivation) *gqlschema.EventActivation { - if in == nil { - return nil - } - - return &gqlschema.EventActivation{ - Name: in.Name, - DisplayName: in.Spec.DisplayName, - SourceID: in.Spec.SourceID, - } -} - -func (c *eventActivationConverter) ToGQLs(in []*v1alpha1.EventActivation) []*gqlschema.EventActivation { - var result []*gqlschema.EventActivation - for _, item := range in { - converted := c.ToGQL(item) - if converted != nil { - result = append(result, converted) - } - } - - return result -} - -func (c *eventActivationConverter) ToGQLEvents(in *spec.AsyncAPISpec) []*gqlschema.EventActivationEvent { - if in == nil { - return nil - } - - var events []*gqlschema.EventActivationEvent - for k, channel := range in.Data.Channels { - if !c.isSubscribeEvent(channel) { - continue - } - - eventType, version := c.getEventVersionedType(k) - events = append(events, &gqlschema.EventActivationEvent{ - EventType: eventType, - Version: version, - Description: c.getSummary(channel), - Schema: c.getPayload(channel), - }) - } - - return events -} - -func (c *eventActivationConverter) getEventVersionedType(in string) (string, string) { - versionedType := strings.Replace(in, "/", ".", -1) - lastDotIndex := strings.LastIndex(versionedType, ".") - if lastDotIndex < 0 { - return versionedType, "" - } - - eventType := versionedType[:lastDotIndex] - version := versionedType[(lastDotIndex + 1):] - - return eventType, version -} - -func (c *eventActivationConverter) isSubscribeEvent(in interface{}) bool { - _, exists := c.convertToMap(in)["subscribe"] - return exists -} - -func (c *eventActivationConverter) getSummary(in interface{}) string { - message := c.getMessage(in) - if message == nil { - return "" - } - - summary, exists := message["summary"] - if !exists { - return "" - } - - result, ok := summary.(string) - if !ok { - return "" - } - - return result -} - -func (c *eventActivationConverter) getPayload(in interface{}) map[string]interface{} { - message := c.getMessage(in) - if message == nil { - return nil - } - - payload, exists := message["payload"] - if !exists { - return nil - } - - return c.convertToMap(payload) -} - -func (c *eventActivationConverter) getMessage(in interface{}) map[string]interface{} { - subscribe, exists := c.convertToMap(in)["subscribe"] - if !exists { - return map[string]interface{}{} - } - - message, exists := c.convertToMap(subscribe)["message"] - if !exists { - return map[string]interface{}{} - } - return c.convertToMap(message) -} - -func (c *eventActivationConverter) convertToMap(in interface{}) map[string]interface{} { - result, ok := in.(map[string]interface{}) - if !ok { - return map[string]interface{}{} - } - - return result -} diff --git a/components/console-backend-service/internal/domain/application/eventactivation_converter_test.go b/components/console-backend-service/internal/domain/application/eventactivation_converter_test.go deleted file mode 100644 index 946745135ffb..000000000000 --- a/components/console-backend-service/internal/domain/application/eventactivation_converter_test.go +++ /dev/null @@ -1,210 +0,0 @@ -package application - -import ( - "testing" - - "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestEventActivationConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := &eventActivationConverter{} - - result := converter.ToGQL(fixEventActivation()) - - assert.Equal(t, &gqlschema.EventActivation{ - Name: "name", - DisplayName: "test", - SourceID: "picco-bello", - }, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &eventActivationConverter{} - - result := converter.ToGQL(nil) - - assert.Nil(t, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &eventActivationConverter{} - converter.ToGQL(&v1alpha1.EventActivation{}) - }) -} - -func TestEventActivationConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - eventActivations := []*v1alpha1.EventActivation{ - fixEventActivation(), - fixEventActivation(), - } - - converter := eventActivationConverter{} - result := converter.ToGQLs(eventActivations) - - assert.Len(t, result, 2) - assert.Equal(t, "name", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var eventActivations []*v1alpha1.EventActivation - - converter := eventActivationConverter{} - result := converter.ToGQLs(eventActivations) - - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - eventActivations := []*v1alpha1.EventActivation{ - nil, - fixEventActivation(), - nil, - } - - converter := eventActivationConverter{} - result := converter.ToGQLs(eventActivations) - - assert.Len(t, result, 1) - assert.Equal(t, "name", result[0].Name) - }) -} - -func TestEventActivationConverter_ToGQLEvents(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := &eventActivationConverter{} - - result := converter.ToGQLEvents(fixAsyncApiSpec()) - - assert.Len(t, result, 2) - assert.Contains(t, result, &gqlschema.EventActivationEvent{ - EventType: "sell", - Version: "v1", - Description: "desc", - Schema: gqlschema.JSON{ - "type": "string", - }, - }) - assert.Contains(t, result, &gqlschema.EventActivationEvent{ - EventType: "sell", - Version: "v2", - Description: "desc", - Schema: gqlschema.JSON{ - "type": "object", - "properties": map[string]interface{}{ - "name": map[string]interface{}{ - "type": "string", - }, - }, - }, - }) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &eventActivationConverter{} - - result := converter.ToGQL(nil) - - assert.Empty(t, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &eventActivationConverter{} - - result := converter.ToGQL(&v1alpha1.EventActivation{}) - - assert.Empty(t, result) - }) - - t.Run("Without topics", func(t *testing.T) { - converter := &eventActivationConverter{} - asyncApi := fixAsyncApiSpec() - asyncApi.Data.Channels = map[string]interface{}{} - - result := converter.ToGQLEvents(asyncApi) - - assert.Empty(t, result) - }) - - t.Run("Channels without version", func(t *testing.T) { - converter := &eventActivationConverter{} - - result := converter.ToGQLEvents(fixAsyncApiSpecWithoutVersion()) - - assert.Len(t, result, 1) - assert.Contains(t, result, &gqlschema.EventActivationEvent{ - EventType: "sell", - Version: "", - Description: "desc", - }) - }) -} - -func fixEventActivation() *v1alpha1.EventActivation { - return &v1alpha1.EventActivation{ - Spec: v1alpha1.EventActivationSpec{ - DisplayName: "test", - SourceID: "picco-bello", - }, - ObjectMeta: v1.ObjectMeta{ - Name: "name", - }, - } -} - -func fixAsyncApiSpec() *spec.AsyncAPISpec { - return &spec.AsyncAPISpec{ - Data: spec.AsyncAPISpecData{ - AsyncAPI: "1.0.0", - Channels: map[string]interface{}{ - "sell.v1": map[string]interface{}{ - "subscribe": map[string]interface{}{ - "message": map[string]interface{}{ - "summary": "desc", - "payload": map[string]interface{}{ - "type": "string", - }, - }, - }, - }, - "sell.v2": map[string]interface{}{ - "subscribe": map[string]interface{}{ - "message": map[string]interface{}{ - "summary": "desc", - "payload": map[string]interface{}{ - "type": "object", - "properties": map[string]interface{}{ - "name": map[string]interface{}{ - "type": "string", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func fixAsyncApiSpecWithoutVersion() *spec.AsyncAPISpec { - return &spec.AsyncAPISpec{ - Data: spec.AsyncAPISpecData{ - AsyncAPI: "2.0.0", - Channels: map[string]interface{}{ - "sell": map[string]interface{}{ - "subscribe": map[string]interface{}{ - "message": map[string]interface{}{ - "summary": "desc", - }, - }, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/application/eventactivation_resolver.go b/components/console-backend-service/internal/domain/application/eventactivation_resolver.go deleted file mode 100644 index c3ff36b51e7c..000000000000 --- a/components/console-backend-service/internal/domain/application/eventactivation_resolver.go +++ /dev/null @@ -1,83 +0,0 @@ -package application - -import ( - "context" - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/pkg/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - rafterPretty "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -type eventActivationResolver struct { - service eventActivationLister - converter *eventActivationConverter - rafterRetriever shared.RafterRetriever -} - -//go:generate mockery -name=eventActivationLister -output=automock -outpkg=automock -case=underscore -type eventActivationLister interface { - List(namespace string) ([]*v1alpha1.EventActivation, error) -} - -func newEventActivationResolver(service eventActivationLister, rafterRetriever shared.RafterRetriever) *eventActivationResolver { - return &eventActivationResolver{ - service: service, - converter: &eventActivationConverter{}, - rafterRetriever: rafterRetriever, - } -} - -func (r *eventActivationResolver) EventActivationsQuery(ctx context.Context, namespace string) ([]*gqlschema.EventActivation, error) { - items, err := r.service.List(namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s in `%s` namespace", pretty.EventActivations, namespace)) - return nil, gqlerror.New(err, pretty.EventActivations, gqlerror.WithNamespace(namespace)) - } - - return r.converter.ToGQLs(items), nil -} - -func (r *eventActivationResolver) EventActivationEventsField(ctx context.Context, eventActivation *gqlschema.EventActivation) ([]*gqlschema.EventActivationEvent, error) { - if eventActivation == nil { - glog.Errorf("EventActivation cannot be empty in order to resolve events field") - return nil, gqlerror.NewInternal() - } - - types := []string{"asyncapi", "asyncApi", "asyncapispec", "asyncApiSpec", "events", "async-api"} - items, err := r.rafterRetriever.ClusterAsset().ListForClusterAssetGroupByType(eventActivation.Name, types) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", rafterPretty.ClusterAssets, pretty.EventActivation, eventActivation.Name)) - return nil, gqlerror.New(err, rafterPretty.ClusterAssets) - } - - if len(items) == 0 || items[0].Status.Phase != v1beta1.AssetReady || len(items[0].Status.AssetRef.Files) == 0 { - return nil, nil - } - - assetRef := items[0].Status.AssetRef - asyncApiSpec, err := r.rafterRetriever.Specification().AsyncAPI(assetRef.BaseURL, assetRef.Files[0].Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while fetching and decoding `AsyncApiSpec` for %s %s", pretty.EventActivation, eventActivation.Name)) - return nil, gqlerror.New(err, rafterPretty.ClusterAsset) - } - - if asyncApiSpec.Data.AsyncAPI != "2.0.0" { - details := fmt.Sprintf("not supported version `%s` of %s", asyncApiSpec.Data.AsyncAPI, "AsyncApiSpec") - glog.Error(details) - return nil, gqlerror.NewInternal(gqlerror.WithDetails(details)) - } - - return r.converter.ToGQLEvents(asyncApiSpec), nil -} diff --git a/components/console-backend-service/internal/domain/application/eventactivation_resolver_test.go b/components/console-backend-service/internal/domain/application/eventactivation_resolver_test.go deleted file mode 100644 index e85838d6199d..000000000000 --- a/components/console-backend-service/internal/domain/application/eventactivation_resolver_test.go +++ /dev/null @@ -1,256 +0,0 @@ -package application_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/automock" - rafterMock "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - - "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestEventActivationResolver_EventActivationsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - eventActivation1 := fixEventActivation("test", "event1") - eventActivation2 := fixEventActivation("test", "event2") - - svc := automock.NewEventActivationLister() - svc.On("List", "test").Return([]*v1alpha1.EventActivation{ - eventActivation1, - eventActivation2, - }, nil) - defer svc.AssertExpectations(t) - - resolver := application.NewEventActivationResolver(svc, nil) - result, err := resolver.EventActivationsQuery(nil, "test") - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Contains(t, result, fixGQLEventActivation("event1")) - assert.Contains(t, result, fixGQLEventActivation("event2")) - }) - - t.Run("Not found", func(t *testing.T) { - svc := automock.NewEventActivationLister() - svc.On("List", "test").Return([]*v1alpha1.EventActivation{}, nil) - defer svc.AssertExpectations(t) - - resolver := application.NewEventActivationResolver(svc, nil) - result, err := resolver.EventActivationsQuery(nil, "test") - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewEventActivationLister() - svc.On("List", "test").Return(nil, errors.New("trol")) - defer svc.AssertExpectations(t) - - resolver := application.NewEventActivationResolver(svc, nil) - _, err := resolver.EventActivationsQuery(nil, "test") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestEventActivationResolver_EventActivationEventsField(t *testing.T) { - asyncApiBaseUrl := "example.com" - asyncApiFileName := "asyncApiSpec.json" - clusterAssets := []*v1beta1.ClusterAsset{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - }, - Status: v1beta1.ClusterAssetStatus{ - CommonAssetStatus: v1beta1.CommonAssetStatus{ - Phase: v1beta1.AssetReady, - AssetRef: v1beta1.AssetStatusRef{ - BaseURL: asyncApiBaseUrl, - Files: []v1beta1.AssetFile{ - { - Name: asyncApiFileName, - }, - }, - }, - }, - }, - }, - } - types := []string{"asyncapi", "asyncApi", "asyncapispec", "asyncApiSpec", "events", "async-api"} - - t.Run("Success", func(t *testing.T) { - asyncApiSpec := &spec.AsyncAPISpec{ - Data: spec.AsyncAPISpecData{ - AsyncAPI: "2.0.0", - Channels: map[string]interface{}{ - "sell.v1": map[string]interface{}{ - "subscribe": map[string]interface{}{ - "message": map[string]interface{}{ - "summary": "desc", - }, - }, - }, - "sell.v2": map[string]interface{}{ - "subscribe": map[string]interface{}{ - "message": map[string]interface{}{ - "summary": "desc", - }, - }, - }, - }, - }, - } - - clusterAssetGetter := new(rafterMock.ClusterAssetGetter) - clusterAssetGetter.On("ListForClusterAssetGroupByType", "test", types).Return(clusterAssets, nil) - defer clusterAssetGetter.AssertExpectations(t) - - specificationGetter := new(rafterMock.SpecificationGetter) - specificationGetter.On("AsyncAPI", asyncApiBaseUrl, asyncApiFileName).Return(asyncApiSpec, nil) - defer specificationGetter.AssertExpectations(t) - - retriever := new(rafterMock.RafterRetriever) - retriever.On("ClusterAsset").Return(clusterAssetGetter) - retriever.On("Specification").Return(specificationGetter) - - resolver := application.NewEventActivationResolver(nil, retriever) - result, err := resolver.EventActivationEventsField(nil, fixGQLEventActivation("test")) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Contains(t, result, fixGQLEventActivationEvent("sell", "v1", "desc")) - assert.Contains(t, result, fixGQLEventActivationEvent("sell", "v2", "desc")) - }) - - t.Run("Not found", func(t *testing.T) { - clusterAssetGetter := new(rafterMock.ClusterAssetGetter) - clusterAssetGetter.On("ListForClusterAssetGroupByType", "test", types).Return(nil, nil) - defer clusterAssetGetter.AssertExpectations(t) - - assetStoreRetriever := new(rafterMock.RafterRetriever) - assetStoreRetriever.On("ClusterAsset").Return(clusterAssetGetter) - - resolver := application.NewEventActivationResolver(nil, assetStoreRetriever) - result, err := resolver.EventActivationEventsField(nil, fixGQLEventActivation("test")) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("Not ready", func(t *testing.T) { - asset := v1beta1.ClusterAsset{} - asset.Status.Phase = v1beta1.AssetFailed - - clusterAssetGetter := new(rafterMock.ClusterAssetGetter) - clusterAssetGetter.On("ListForClusterAssetGroupByType", "test", types).Return([]*v1beta1.ClusterAsset{&asset}, nil) - defer clusterAssetGetter.AssertExpectations(t) - - assetStoreRetriever := new(rafterMock.RafterRetriever) - assetStoreRetriever.On("ClusterAsset").Return(clusterAssetGetter) - - resolver := application.NewEventActivationResolver(nil, assetStoreRetriever) - result, err := resolver.EventActivationEventsField(nil, fixGQLEventActivation("test")) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("No files", func(t *testing.T) { - asset := v1beta1.ClusterAsset{} - asset.Status.Phase = v1beta1.AssetReady - - clusterAssetGetter := new(rafterMock.ClusterAssetGetter) - clusterAssetGetter.On("ListForClusterAssetGroupByType", "test", types).Return([]*v1beta1.ClusterAsset{&asset}, nil) - defer clusterAssetGetter.AssertExpectations(t) - - assetStoreRetriever := new(rafterMock.RafterRetriever) - assetStoreRetriever.On("ClusterAsset").Return(clusterAssetGetter) - - resolver := application.NewEventActivationResolver(nil, assetStoreRetriever) - result, err := resolver.EventActivationEventsField(nil, fixGQLEventActivation("test")) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("Invalid version", func(t *testing.T) { - asyncApiSpec := &spec.AsyncAPISpec{ - Data: spec.AsyncAPISpecData{ - AsyncAPI: "1.0.1", - }, - } - - clusterAssetGetter := new(rafterMock.ClusterAssetGetter) - clusterAssetGetter.On("ListForClusterAssetGroupByType", "test", types).Return(clusterAssets, nil) - defer clusterAssetGetter.AssertExpectations(t) - - specificationGetter := new(rafterMock.SpecificationGetter) - specificationGetter.On("AsyncAPI", asyncApiBaseUrl, asyncApiFileName).Return(asyncApiSpec, nil) - defer specificationGetter.AssertExpectations(t) - - retriever := new(rafterMock.RafterRetriever) - retriever.On("ClusterAsset").Return(clusterAssetGetter) - retriever.On("Specification").Return(specificationGetter) - - resolver := application.NewEventActivationResolver(nil, retriever) - _, err := resolver.EventActivationEventsField(nil, fixGQLEventActivation("test")) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) - - t.Run("Nil", func(t *testing.T) { - getter := new(rafterMock.ClusterAssetGetter) - - retriever := new(rafterMock.RafterRetriever) - retriever.On("ClusterAsset").Return(getter) - - resolver := application.NewEventActivationResolver(nil, retriever) - _, err := resolver.EventActivationEventsField(nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) - - t.Run("Error", func(t *testing.T) { - getter := new(rafterMock.ClusterAssetGetter) - getter.On("ListForClusterAssetGroupByType", "test", types).Return(nil, errors.New("nope")) - defer getter.AssertExpectations(t) - - retriever := new(rafterMock.RafterRetriever) - retriever.On("ClusterAsset").Return(getter) - - resolver := application.NewEventActivationResolver(nil, retriever) - _, err := resolver.EventActivationEventsField(nil, fixGQLEventActivation("test")) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func fixGQLEventActivation(name string) *gqlschema.EventActivation { - return &gqlschema.EventActivation{ - Name: name, - DisplayName: "aha!", - SourceID: "picco-bello", - } -} - -func fixGQLEventActivationEvent(eventType, version, desc string) *gqlschema.EventActivationEvent { - return &gqlschema.EventActivationEvent{ - EventType: eventType, - Version: version, - Description: desc, - } -} diff --git a/components/console-backend-service/internal/domain/application/eventactivation_service.go b/components/console-backend-service/internal/domain/application/eventactivation_service.go deleted file mode 100644 index e522f7afc720..000000000000 --- a/components/console-backend-service/internal/domain/application/eventactivation_service.go +++ /dev/null @@ -1,55 +0,0 @@ -package application - -import ( - "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - res "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" - "k8s.io/client-go/tools/cache" -) - -type eventActivationService struct { - informer cache.SharedIndexInformer -} - -func newEventActivationService(informer cache.SharedIndexInformer) *eventActivationService { - return &eventActivationService{ - informer: informer, - } -} - -func (svc *eventActivationService) List(namespace string) ([]*v1alpha1.EventActivation, error) { - items, err := svc.informer.GetIndexer().ByIndex("namespace", namespace) - if err != nil { - return nil, err - } - - return svc.toEventActivations(items) -} - -func (svc *eventActivationService) toEventActivation(item interface{}) (*v1alpha1.EventActivation, error) { - unstructured, err := res.ToUnstructured(item) - if err != nil { - return nil, errors.Wrapf(err, "while converting item to unstructured") - } - eventActivation := &v1alpha1.EventActivation{} - err = res.FromUnstructured(unstructured, eventActivation) - if err != nil { - return nil, errors.Wrapf(err, "while converting EventActivation from unstructured") - } - - return eventActivation, nil -} - -func (svc *eventActivationService) toEventActivations(items []interface{}) ([]*v1alpha1.EventActivation, error) { - var eventActivations []*v1alpha1.EventActivation - for _, item := range items { - eventActivation, err := svc.toEventActivation(item) - if err != nil { - return nil, err - } - - eventActivations = append(eventActivations, eventActivation) - } - - return eventActivations, nil -} diff --git a/components/console-backend-service/internal/domain/application/eventactivation_service_test.go b/components/console-backend-service/internal/domain/application/eventactivation_service_test.go deleted file mode 100644 index c446e69cbf32..000000000000 --- a/components/console-backend-service/internal/domain/application/eventactivation_service_test.go +++ /dev/null @@ -1,95 +0,0 @@ -package application_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - dynamicFake "k8s.io/client-go/dynamic/fake" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/tools/cache" -) - -func TestEventActivationService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - eventActivation1 := fixEventActivation("test", "test1") - eventActivation2 := fixEventActivation("test", "test2") - eventActivation3 := fixEventActivation("nope", "test3") - - dynamicClient, err := createDynamicClient(eventActivation1, eventActivation2, eventActivation3) - require.NoError(t, err) - informer := createFakeInformer(dynamicClient) - - svc := application.NewEventActivationService(informer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - items, err := svc.List("test") - - require.NoError(t, err) - assert.Len(t, items, 2) - assert.ElementsMatch(t, items, []*v1alpha1.EventActivation{eventActivation1, eventActivation2}) - }) - - t.Run("Not found", func(t *testing.T) { - dynamicClient, err := createDynamicClient() - require.NoError(t, err) - informer := createFakeInformer(dynamicClient) - svc := application.NewEventActivationService(informer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - items, err := svc.List("test") - - require.NoError(t, err) - assert.Len(t, items, 0) - }) -} - -func fixEventActivation(namespace, name string) *v1alpha1.EventActivation { - return &v1alpha1.EventActivation{ - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - TypeMeta: v1.TypeMeta{ - Kind: "EventActivation", - APIVersion: "applicationconnector.kyma-project.io/v1alpha1", - }, - Spec: v1alpha1.EventActivationSpec{ - SourceID: "picco-bello", - DisplayName: "aha!", - }, - } -} - -func createFakeInformer(dynamic dynamic.Interface) cache.SharedIndexInformer { - informerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamic, informerResyncPeriod) - return informerFactory.ForResource(schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "eventactivations", - }).Informer() -} - -func createDynamicClient(objects ...runtime.Object) (*dynamicFake.FakeDynamicClient, error) { - scheme := runtime.NewScheme() - err := v1alpha1.AddToScheme(scheme) - if err != nil { - return &dynamicFake.FakeDynamicClient{}, err - } - result := make([]runtime.Object, len(objects)) - for i, obj := range objects { - converted, _ := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - result[i] = &unstructured.Unstructured{Object: converted} - } - return dynamicFake.NewSimpleDynamicClient(scheme, result...), nil -} diff --git a/components/console-backend-service/internal/domain/application/export_test.go b/components/console-backend-service/internal/domain/application/export_test.go deleted file mode 100644 index a4165f50d004..000000000000 --- a/components/console-backend-service/internal/domain/application/export_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package application - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/dynamic/fake" - k8sClient "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/tools/cache" -) - -func NewApplicationService(cfg Config, aCli dynamic.NamespaceableResourceInterface, mCli dynamic.NamespaceableResourceInterface, mInformer cache.SharedIndexInformer, appInformer cache.SharedIndexInformer) (*applicationService, error) { - return newApplicationService(cfg, aCli, mCli, mInformer, appInformer) -} - -func NewEventActivationService(informer cache.SharedIndexInformer) *eventActivationService { - return newEventActivationService(informer) -} - -func NewEventActivationResolver(service eventActivationLister, rafterRetriever shared.RafterRetriever) *eventActivationResolver { - return newEventActivationResolver(service, rafterRetriever) -} - -func (r *PluggableContainer) SetFakeClient() { - scheme := runtime.NewScheme() - r.cfg.mappingClient = fake.NewSimpleDynamicClient(scheme) - r.cfg.appClient = fake.NewSimpleDynamicClient(scheme) - r.cfg.k8sCli = k8sClient.NewSimpleClientset() -} diff --git a/components/console-backend-service/internal/domain/application/extractor/application.go b/components/console-backend-service/internal/domain/application/extractor/application.go deleted file mode 100644 index 2f8f5b8819ca..000000000000 --- a/components/console-backend-service/internal/domain/application/extractor/application.go +++ /dev/null @@ -1,92 +0,0 @@ -package extractor - -import ( - mappingTypes "github.com/kyma-project/kyma/components/application-broker/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -type ApplicationUnstructuredExtractor struct{} - -func (ext ApplicationUnstructuredExtractor) Do(obj interface{}) (*v1alpha1.Application, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext ApplicationUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.Application, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext ApplicationUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.Application, error) { - if obj == nil { - return nil, nil - } - - var application v1alpha1.Application - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &application) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.Application, obj.Object) - } - - return &application, nil -} - -type ApplicationMappingUnstructuredExtractor struct{} - -func (ext ApplicationMappingUnstructuredExtractor) Do(obj interface{}) (*mappingTypes.ApplicationMapping, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext ApplicationMappingUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.ApplicationMapping, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext ApplicationMappingUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*mappingTypes.ApplicationMapping, error) { - if obj == nil { - return nil, nil - } - - var applicationMapping mappingTypes.ApplicationMapping - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &applicationMapping) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.ApplicationMapping, obj.Object) - } - - return &applicationMapping, nil -} diff --git a/components/console-backend-service/internal/domain/application/extractor/application_test.go b/components/console-backend-service/internal/domain/application/extractor/application_test.go deleted file mode 100644 index 45d6facafd96..000000000000 --- a/components/console-backend-service/internal/domain/application/extractor/application_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package extractor_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/extractor" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestApplicationUnstructuredExtractor_Do(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := extractor.ApplicationUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1alpha1.SchemeGroupVersion.String(), "Application", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1alpha1.Application{ - TypeMeta: metav1.TypeMeta{ - Kind: "Application", - APIVersion: "applicationconnector.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := extractor.ApplicationUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := extractor.ApplicationUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/application/gateway/automock/expect.go b/components/console-backend-service/internal/domain/application/gateway/automock/expect.go deleted file mode 100644 index ede983c95470..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/automock/expect.go +++ /dev/null @@ -1,9 +0,0 @@ -package automock - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" -) - -func (gl *gatewayServiceLister) ReturnOnGetGatewayServices(result []gateway.ServiceData) { - gl.On("ListGatewayServices").Return(result) -} diff --git a/components/console-backend-service/internal/domain/application/gateway/automock/export.go b/components/console-backend-service/internal/domain/application/gateway/automock/export.go deleted file mode 100644 index e6c70b9b330c..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/automock/export.go +++ /dev/null @@ -1,5 +0,0 @@ -package automock - -func NewGatewayServiceLister() *gatewayServiceLister { - return new(gatewayServiceLister) -} diff --git a/components/console-backend-service/internal/domain/application/gateway/automock/gateway_service_lister.go b/components/console-backend-service/internal/domain/application/gateway/automock/gateway_service_lister.go deleted file mode 100644 index 19bc3877ea00..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/automock/gateway_service_lister.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gateway "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" - mock "github.com/stretchr/testify/mock" -) - -// gatewayServiceLister is an autogenerated mock type for the gatewayServiceLister type -type gatewayServiceLister struct { - mock.Mock -} - -// ListGatewayServices provides a mock function with given fields: -func (_m *gatewayServiceLister) ListGatewayServices() []gateway.ServiceData { - ret := _m.Called() - - var r0 []gateway.ServiceData - if rf, ok := ret.Get(0).(func() []gateway.ServiceData); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]gateway.ServiceData) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/application/gateway/config.go b/components/console-backend-service/internal/domain/application/gateway/config.go deleted file mode 100644 index 160cea3d9333..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/config.go +++ /dev/null @@ -1,9 +0,0 @@ -package gateway - -import "time" - -type Config struct { - StatusRefreshPeriod time.Duration `envconfig:"default=15s"` - StatusCallTimeout time.Duration `envconfig:"default=500ms"` - IntegrationNamespace string `envconfig:"default=kyma-integration"` -} diff --git a/components/console-backend-service/internal/domain/application/gateway/export_test.go b/components/console-backend-service/internal/domain/application/gateway/export_test.go deleted file mode 100644 index 93b383ffd333..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/export_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package gateway - -import ( - "time" - - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" -) - -func NewStatusWatcher(gatewayServiceLister gatewayServiceLister, httpTimeout time.Duration) *gatewayStatusWatcher { - return newStatusWatcher(gatewayServiceLister, httpTimeout) -} - -func NewProvider(corev1Interface corev1.CoreV1Interface, integrationNamespace string, informerResyncPeriod time.Duration) *provider { - return newProvider(corev1Interface, integrationNamespace, informerResyncPeriod) -} diff --git a/components/console-backend-service/internal/domain/application/gateway/provider.go b/components/console-backend-service/internal/domain/application/gateway/provider.go deleted file mode 100644 index f856d6b602e4..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/provider.go +++ /dev/null @@ -1,126 +0,0 @@ -package gateway - -import ( - "context" - "fmt" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - - "github.com/golang/glog" - "github.com/pkg/errors" - apiv1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/watch" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/cache" -) - -const ( - // NOTE: if you are not familiar with the concept then please read contract described in comment below - applicationLabelName = "application" - externalAPIPortName = "http-api-port" -) - -/* -The contract, which describes, how to find service for given Application: - -1. K8s service is labelled with key `applicationLabelName`, value is the name of the Application -2. K8s Service contains one port with name “http-api-port” and this port is used for status check. -3. K8s Service is in the kyma-integration namespace (this can be changed in console-backend-service chart configuration) -4. The endpoint is /v1/health, and we are expecting HTTP 200, any other status code means service is not healthy. -*/ -type provider struct { - informer cache.SharedIndexInformer -} - -type ServiceData struct { - // Host is a host, which is used to do HTTP call for status check, for example ec-default.production.svc.cluster.local:8080 - Host string - - // ApplicationName is the name of Application, taken from the `applicationLabelName` label value - ApplicationName string -} - -func newProvider(corev1Interface corev1.CoreV1Interface, integrationNamespace string, informerResyncPeriod time.Duration) *provider { - svcInterface := corev1Interface.Services(integrationNamespace) - - svcInformer := cache.NewSharedIndexInformer(&cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return svcInterface.List(context.Background(), options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return svcInterface.Watch(context.Background(), options) - }, - }, &apiv1.Service{}, - informerResyncPeriod, - cache.Indexers{}, - ) - - return &provider{ - informer: svcInformer, - } -} - -func (p *provider) ListGatewayServices() []ServiceData { - objects := p.informer.GetStore().List() - - result := make([]ServiceData, 0) - for _, obj := range objects { - svc, ok := obj.(*apiv1.Service) - if !ok { - continue - } - - appName, found := p.extractApplicationName(svc) - if found { - h, err := p.host(svc) - if err != nil { - glog.Errorf("Could not find correct port in %s service %s", pretty.Application, svc.Name) - } - result = append(result, ServiceData{ - Host: h, - ApplicationName: appName, - }) - } - } - return result -} - -func (p *provider) WaitForCacheSync(stopCh <-chan struct{}) { - defer utilruntime.HandleCrash() - - go p.informer.Run(stopCh) - if !cache.WaitForCacheSync(stopCh, p.informer.HasSynced) { - glog.Error("Timeout occurred on waiting for gateway api service caches to sync.") - return - } -} - -func (p *provider) extractApplicationName(obj *apiv1.Service) (string, bool) { - for k, v := range obj.Labels { - if k == applicationLabelName && v != "" { - return v, true - } - } - return "", false -} - -func (p *provider) servicePort(obj *apiv1.Service) (int32, error) { - for _, port := range obj.Spec.Ports { - if port.Name == externalAPIPortName { - return port.Port, nil - } - } - return 0, fmt.Errorf("Could not find port with name %s", externalAPIPortName) -} - -func (p *provider) host(obj *apiv1.Service) (string, error) { - port, err := p.servicePort(obj) - if err != nil { - return "", errors.Wrap(err, "while creating host") - } - return fmt.Sprintf("%s.%s.svc.cluster.local:%d", obj.Name, obj.Namespace, port), nil -} diff --git a/components/console-backend-service/internal/domain/application/gateway/provider_test.go b/components/console-backend-service/internal/domain/application/gateway/provider_test.go deleted file mode 100644 index 6efc4b4e495c..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/provider_test.go +++ /dev/null @@ -1,96 +0,0 @@ -package gateway_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" - "github.com/stretchr/testify/assert" - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/client-go/kubernetes/fake" -) - -func TestGatewayServiceProvider(t *testing.T) { - // GIVEN - fakeClientSet := fake.NewSimpleClientset( - fixService("other1", "kyma-integration"), - fixAppService("prod", "kyma-integration", "ec-prod"), - fixAppService("stage", "kyma-integration", "ec-stage"), - fixService("other1", "kyma-system"), - fixAppService("invalid-ec", "kyma-system", "ec-invalid"), - fixPod(), - ) - core := fakeClientSet.CoreV1() - svc := gateway.NewProvider(core, "kyma-integration", time.Hour) - stopCh := make(chan struct{}) - svc.WaitForCacheSync(stopCh) - - // WHEN - items := svc.ListGatewayServices() - - // THEN - assert.Len(t, items, 2) - assert.Contains(t, items, gateway.ServiceData{ - Host: "prod.kyma-integration.svc.cluster.local:80", - ApplicationName: "ec-prod", - }) - assert.Contains(t, items, gateway.ServiceData{ - Host: "stage.kyma-integration.svc.cluster.local:80", - ApplicationName: "ec-stage", - }) -} - -func fixPod() *apiv1.Pod { - return &apiv1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "dummy-pod", - Namespace: "kyma-integration", - }, - Spec: apiv1.PodSpec{}, - } -} - -func fixService(name, namespace string) *apiv1.Service { - return &apiv1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: apiv1.ServiceSpec{ - Selector: map[string]string{"app": "svc"}, - Ports: []apiv1.ServicePort{ - { - Name: "http", - Protocol: "TCP", - Port: 80, - TargetPort: intstr.IntOrString{Type: intstr.Int, IntVal: 8080}, - }, - }, - }, - } -} - -func fixAppService(name, namespace, appName string) *apiv1.Service { - return &apiv1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: map[string]string{ - "application": appName, - }, - }, - Spec: apiv1.ServiceSpec{ - Selector: map[string]string{"app": "svc"}, - Ports: []apiv1.ServicePort{ - { - Name: "http-api-port", - Protocol: "TCP", - Port: 80, - TargetPort: intstr.IntOrString{Type: intstr.Int, IntVal: 8080}, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/application/gateway/service.go b/components/console-backend-service/internal/domain/application/gateway/service.go deleted file mode 100644 index 604c6f51d3d1..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/service.go +++ /dev/null @@ -1,39 +0,0 @@ -package gateway - -import ( - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/executor" - "k8s.io/client-go/kubernetes" -) - -// Service gives a functionality to provide gateway status. It hides implementation details -// and exports necessary methods. -type Service struct { - provider *provider - statusWatcher *gatewayStatusWatcher - - cfg Config -} - -func New(k8sCli kubernetes.Interface, reCfg Config, informerResyncPeriod time.Duration) (*Service, error) { - gatewaySvcProvider := newProvider(k8sCli.CoreV1(), reCfg.IntegrationNamespace, informerResyncPeriod) - watcher := newStatusWatcher(gatewaySvcProvider, reCfg.StatusCallTimeout) - - return &Service{ - provider: gatewaySvcProvider, - statusWatcher: watcher, - cfg: reCfg, - }, nil -} - -func (svc *Service) Start(stopCh <-chan struct{}) { - svc.provider.WaitForCacheSync(stopCh) - executor.NewPeriodic(svc.cfg.StatusRefreshPeriod, func(stopCh <-chan struct{}) { - svc.statusWatcher.Refresh(stopCh) - }).Run(stopCh) -} - -func (svc *Service) GetStatus(appName string) Status { - return svc.statusWatcher.GetStatus(appName) -} diff --git a/components/console-backend-service/internal/domain/application/gateway/status_watcher.go b/components/console-backend-service/internal/domain/application/gateway/status_watcher.go deleted file mode 100644 index cc6ce88db6ea..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/status_watcher.go +++ /dev/null @@ -1,120 +0,0 @@ -package gateway - -import ( - "fmt" - "net/http" - "sync" - "time" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/iosafety" -) - -type Status string - -const ( - StatusNotServing Status = "NotServing" - StatusServing Status = "Serving" - StatusNotConfigured Status = "GatewayNotConfigured" -) - -//go:generate mockery -name=gatewayServiceLister -output=automock -outpkg=automock -case=underscore -type gatewayServiceLister interface { - ListGatewayServices() []ServiceData -} - -type gatewayStatusWatcher struct { - gatewayServiceLister gatewayServiceLister - healthiness map[string]bool - - mu sync.RWMutex - httpTimeout time.Duration - - httpClient *http.Client -} - -func newStatusWatcher(gatewayServiceLister gatewayServiceLister, httpTimeout time.Duration) *gatewayStatusWatcher { - httpClient := &http.Client{ - Timeout: httpTimeout, - } - return &gatewayStatusWatcher{ - gatewayServiceLister: gatewayServiceLister, - httpTimeout: httpTimeout, - healthiness: map[string]bool{}, - httpClient: httpClient, - } -} - -// GetStatus returns status of the Application -func (s *gatewayStatusWatcher) GetStatus(appName string) Status { - s.mu.RLock() - defer s.mu.RUnlock() - - healthy, exists := s.healthiness[appName] - if !exists { - return StatusNotConfigured - } - - if !healthy { - return StatusNotServing - } - - return StatusServing -} - -func (s *gatewayStatusWatcher) Refresh(stopCh <-chan struct{}) { - items := s.gatewayServiceLister.ListGatewayServices() - - localHealthiness := map[string]bool{} - for _, item := range items { - select { - case <-stopCh: - return - default: - } - - healthy, err := s.isHealthy(fmt.Sprintf("http://%s/v1/health", item.Host)) - if err != nil { - //glog.Warningf("Application %s health check failed (%s), error: %s", - // item.ApplicationName, item.Host, err.Error()) - } - localHealthiness[item.ApplicationName] = healthy - } - - s.swapStatusData(localHealthiness) -} - -func (s *gatewayStatusWatcher) swapStatusData(localStatusMap map[string]bool) { - s.mu.Lock() - defer s.mu.Unlock() - - s.healthiness = localStatusMap -} - -func (s *gatewayStatusWatcher) isHealthy(url string) (bool, error) { - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return false, err - } - - resp, err := s.httpClient.Do(req) - if err != nil { - return false, err - } - defer func() { - err := iosafety.DrainReader(resp.Body) - if err != nil { - glog.Errorf("Unable to drain body reader. Cause: %v", err) - } - err = resp.Body.Close() - if err != nil { - glog.Errorf("Unable to close body reader. Cause: %v", err) - } - }() - - if resp.StatusCode != http.StatusOK { - return false, fmt.Errorf("expect HTTP status code %d got HTTP status code %d", http.StatusOK, resp.StatusCode) - } - - return true, nil -} diff --git a/components/console-backend-service/internal/domain/application/gateway/status_watcher_test.go b/components/console-backend-service/internal/domain/application/gateway/status_watcher_test.go deleted file mode 100644 index 5d943270326f..000000000000 --- a/components/console-backend-service/internal/domain/application/gateway/status_watcher_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package gateway_test - -import ( - "net/http" - "net/http/httptest" - "net/url" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/gateway/automock" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestGatewayStatusWatcher_GetStatusNotServing(t *testing.T) { - // GIVEN - gtwLister := automock.NewGatewayServiceLister() - gtwLister.ReturnOnGetGatewayServices([]gateway.ServiceData{ - {Host: "ec-prod.production.svc.cluster.local:8080", ApplicationName: "ec-prod"}, - }) - // the host is not existing, set http timeout to very short period to not wait too much - svc := gateway.NewStatusWatcher(gtwLister, time.Millisecond) - stopCh := make(chan struct{}) - - // WHEN - svc.Refresh(stopCh) - - // THEN - assert.Equal(t, svc.GetStatus("ec-prod"), gateway.StatusNotServing) -} - -func TestGatewayStatusWatcher_GetStatusServing(t *testing.T) { - // GIVEN - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusOK) - })) - defer ts.Close() - u, err := url.Parse(ts.URL) - require.NoError(t, err) - gtwLister := automock.NewGatewayServiceLister() - gtwLister.ReturnOnGetGatewayServices([]gateway.ServiceData{ - {Host: u.Host, ApplicationName: "ec-prod"}, - }) - - svc := gateway.NewStatusWatcher(gtwLister, 200*time.Millisecond) - stopCh := make(chan struct{}) - - // WHEN - svc.Refresh(stopCh) - - // THEN - assert.Equal(t, svc.GetStatus("ec-prod"), gateway.StatusServing) -} - -func TestGatewayStatusWatcher_GetStatusNotConfigured(t *testing.T) { - // GIVEN - gtwLister := automock.NewGatewayServiceLister() - gtwLister.ReturnOnGetGatewayServices([]gateway.ServiceData{ - {Host: "ec-prod.production.svc.cluster.local:8080", ApplicationName: "ec-prod"}, - }) - // the host is not existing, set http timeout to very short period to not wait too much - svc := gateway.NewStatusWatcher(gtwLister, time.Millisecond) - stopCh := make(chan struct{}) - - // WHEN - svc.Refresh(stopCh) - - // THEN - assert.Equal(t, svc.GetStatus("not-existing"), gateway.StatusNotConfigured) -} diff --git a/components/console-backend-service/internal/domain/application/listener/app.go b/components/console-backend-service/internal/domain/application/listener/app.go deleted file mode 100644 index 1ebeca4fc7b1..000000000000 --- a/components/console-backend-service/internal/domain/application/listener/app.go +++ /dev/null @@ -1,70 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - api "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -//go:generate mockery -name=appConverter -output=automock -outpkg=automock -case=underscore -type appConverter interface { - ToGQL(in *api.Application) *gqlschema.Application -} - -//go:generate mockery -name=extractor -output=automock -outpkg=automock -case=underscore -type extractor interface { - Do(interface{}) (*api.Application, error) -} - -type Application struct { - channel chan<- *gqlschema.ApplicationEvent - converter appConverter - extractor extractor -} - -func NewApplication(channel chan<- *gqlschema.ApplicationEvent, converter appConverter, extractor extractor) *Application { - return &Application{ - channel: channel, - converter: converter, - extractor: extractor, - } -} - -func (l *Application) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Application) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Application) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Application) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - convertedApp, err := l.extractor.Do(object) - if err != nil { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *Application", object)) - return - } - - if convertedApp == nil { - return - } - - l.notify(eventType, convertedApp) -} - -func (l *Application) notify(eventType gqlschema.SubscriptionEventType, application *api.Application) { - gqlApplication := l.converter.ToGQL(application) - - event := &gqlschema.ApplicationEvent{ - Type: eventType, - Application: gqlApplication, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/application/listener/app_test.go b/components/console-backend-service/internal/domain/application/listener/app_test.go deleted file mode 100644 index f43fcd699ca5..000000000000 --- a/components/console-backend-service/internal/domain/application/listener/app_test.go +++ /dev/null @@ -1,183 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - - api "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" -) - -func TestApplicationListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlApplication := new(gqlschema.Application) - extractor := automock.NewExtractor() - unstructuredApi := new(unstructured.Unstructured) - - application := new(api.Application) - extractor.On("Do", unstructuredApi).Return(application, nil).Once() - - converter := automock.NewGQLApplicationConverter() - - channel := make(chan *gqlschema.ApplicationEvent, 1) - defer close(channel) - converter.On("ToGQL", application).Return(gqlApplication, nil).Once() - defer converter.AssertExpectations(t) - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(channel, converter, extractor) - - // when - applicationListener.OnAdd(unstructuredApi) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlApplication, result.Application) - }) - - t.Run("Nil", func(t *testing.T) { - // given - extractor := automock.NewExtractor() - - extractor.On("Do", nil).Return(nil, nil).Once() - - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(nil, nil, extractor) - - // when - applicationListener.OnAdd(nil) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - extractor := automock.NewExtractor() - - invalid := new(struct{}) - extractor.On("Do", invalid).Return(nil, errors.New("Error")).Once() - - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(nil, nil, extractor) - - // when - applicationListener.OnAdd(invalid) - }) -} - -func TestApplicationListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlApplication := new(gqlschema.Application) - extractor := automock.NewExtractor() - unstructuredApi := new(unstructured.Unstructured) - - application := new(api.Application) - extractor.On("Do", unstructuredApi).Return(application, nil).Once() - - converter := automock.NewGQLApplicationConverter() - - channel := make(chan *gqlschema.ApplicationEvent, 1) - defer close(channel) - converter.On("ToGQL", application).Return(gqlApplication, nil).Once() - defer converter.AssertExpectations(t) - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(channel, converter, extractor) - - // when - applicationListener.OnDelete(unstructuredApi) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlApplication, result.Application) - - }) - - t.Run("Nil", func(t *testing.T) { - // given - extractor := automock.NewExtractor() - extractor.On("Do", nil).Return(nil, nil).Once() - - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(nil, nil, extractor) - - // when - applicationListener.OnDelete(nil) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - extractor := automock.NewExtractor() - invalid := new(struct{}) - extractor.On("Do", invalid).Return(nil, errors.New("Error")).Once() - - defer extractor.AssertExpectations(t) - - applicationListener := listener.NewApplication(nil, nil, extractor) - - // when - applicationListener.OnDelete(invalid) - }) -} - -func TestApplicationListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlApplication := new(gqlschema.Application) - extractor := automock.NewExtractor() - unstructuredApi := new(unstructured.Unstructured) - - application := new(api.Application) - extractor.On("Do", unstructuredApi).Return(application, nil).Once() - - converter := automock.NewGQLApplicationConverter() - - channel := make(chan *gqlschema.ApplicationEvent, 1) - defer close(channel) - converter.On("ToGQL", application).Return(gqlApplication, nil).Once() - defer converter.AssertExpectations(t) - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(channel, converter, extractor) - - // when - applicationListener.OnUpdate(unstructuredApi, unstructuredApi) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlApplication, result.Application) - - }) - - t.Run("Nil", func(t *testing.T) { - // given - extractor := automock.NewExtractor() - - extractor.On("Do", nil).Return(nil, nil).Once() - - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(nil, nil, extractor) - - // when - applicationListener.OnUpdate(nil, nil) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - extractor := automock.NewExtractor() - invalid := new(struct{}) - - extractor.On("Do", invalid).Return(nil, errors.New("Error")).Once() - - defer extractor.AssertExpectations(t) - applicationListener := listener.NewApplication(nil, nil, extractor) - - // when - applicationListener.OnUpdate(invalid, invalid) - }) -} diff --git a/components/console-backend-service/internal/domain/application/listener/automock/app_converter.go b/components/console-backend-service/internal/domain/application/listener/automock/app_converter.go deleted file mode 100644 index feacb0c0aaed..000000000000 --- a/components/console-backend-service/internal/domain/application/listener/automock/app_converter.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" -) - -// appConverter is an autogenerated mock type for the appConverter type -type appConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *appConverter) ToGQL(in *v1alpha1.Application) *gqlschema.Application { - ret := _m.Called(in) - - var r0 *gqlschema.Application - if rf, ok := ret.Get(0).(func(*v1alpha1.Application) *gqlschema.Application); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Application) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/application/listener/automock/export.go b/components/console-backend-service/internal/domain/application/listener/automock/export.go deleted file mode 100644 index d2fcebf77789..000000000000 --- a/components/console-backend-service/internal/domain/application/listener/automock/export.go +++ /dev/null @@ -1,9 +0,0 @@ -package automock - -func NewGQLApplicationConverter() *appConverter { - return new(appConverter) -} - -func NewExtractor() *extractor { - return new(extractor) -} diff --git a/components/console-backend-service/internal/domain/application/listener/automock/extractor.go b/components/console-backend-service/internal/domain/application/listener/automock/extractor.go deleted file mode 100644 index 13f50265a07a..000000000000 --- a/components/console-backend-service/internal/domain/application/listener/automock/extractor.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - v1alpha1 "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - mock "github.com/stretchr/testify/mock" -) - -// extractor is an autogenerated mock type for the extractor type -type extractor struct { - mock.Mock -} - -// Do provides a mock function with given fields: _a0 -func (_m *extractor) Do(_a0 interface{}) (*v1alpha1.Application, error) { - ret := _m.Called(_a0) - - var r0 *v1alpha1.Application - if rf, ok := ret.Get(0).(func(interface{}) *v1alpha1.Application); ok { - r0 = rf(_a0) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Application) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(interface{}) error); ok { - r1 = rf(_a0) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/application/pretty/kind.go b/components/console-backend-service/internal/domain/application/pretty/kind.go deleted file mode 100644 index 92ee9a8882f3..000000000000 --- a/components/console-backend-service/internal/domain/application/pretty/kind.go +++ /dev/null @@ -1,40 +0,0 @@ -package pretty - -type Kind int - -const ( - EventActivation Kind = iota - EventActivations - EventActivationEvents - Application - Applications - ConnectorService - Namespace - Namespaces - ApplicationMapping -) - -func (k Kind) String() string { - switch k { - case EventActivation: - return "Event Activation" - case EventActivations: - return "Event Activations" - case EventActivationEvents: - return "Event Activation Events" - case Application: - return "Application" - case Applications: - return "Applications" - case ConnectorService: - return "Connector Service" - case Namespace: - return "Namespace" - case Namespaces: - return "Namespaces" - case ApplicationMapping: - return "ApplicationMapping" - default: - return "" - } -} diff --git a/components/console-backend-service/internal/domain/bebEventing/resolver.go b/components/console-backend-service/internal/domain/bebEventing/resolver.go deleted file mode 100644 index 4379a390bc0a..000000000000 --- a/components/console-backend-service/internal/domain/bebEventing/resolver.go +++ /dev/null @@ -1,155 +0,0 @@ -package bebEventing - -import ( - "context" - "fmt" - - "github.com/pkg/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type EventSubscriptionList []*v1alpha1.Subscription - -func (l *EventSubscriptionList) Append() interface{} { - e := &v1alpha1.Subscription{} - *l = append(*l, e) - return e -} - -func (r *Resolver) EventSubscriptionsQuery(ctx context.Context, ownerName string, namespace string) ([]*v1alpha1.Subscription, error) { - items := EventSubscriptionList{} - err := r.Service().ListByIndex(eventSubscriptionServiceIndex, eventSubscriptionServiceIndexKey(namespace, ownerName), &items) - return items, err -} - -func (r *Resolver) CreateEventSubscription(ctx context.Context, namespace string, name string, params gqlschema.EventSubscriptionSpecInput) (*v1alpha1.Subscription, error) { - sourceName, err := r.getBEBSourceName() - if err != nil { - return nil, errors.Wrapf(err, "while fetching sourceName") - } - spec := r.createSpec(params, namespace, sourceName) - eventSubscription := &v1alpha1.Subscription{ - TypeMeta: metav1.TypeMeta{ - APIVersion: subscriptionsGroupVersionResource.GroupVersion().String(), - Kind: subscriptionsKind, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - OwnerReferences: []metav1.OwnerReference{ - *params.OwnerRef, - }, - }, - Spec: spec, - } - - result := &v1alpha1.Subscription{} - err = r.Service().Create(eventSubscription, result) - return result, err -} - -func (r *Resolver) UpdateEventSubscription(ctx context.Context, namespace string, name string, params gqlschema.EventSubscriptionSpecInput) (*v1alpha1.Subscription, error) { - if len(params.Filters) == 0 { - return r.DeleteEventSubscription(ctx, namespace, name) - } - - result := &v1alpha1.Subscription{} - sourceName, err := r.getBEBSourceName() - if err != nil { - return nil, errors.Wrapf(err, "while fetching sourceName") - } - err = r.Service().UpdateInNamespace(name, namespace, result, func() error { - result.Spec = r.createSpec(params, namespace, sourceName) - return nil - }) - return result, err -} - -func (r *Resolver) DeleteEventSubscription(ctx context.Context, namespace string, name string) (*v1alpha1.Subscription, error) { - result := &v1alpha1.Subscription{} - err := r.Service().DeleteInNamespace(namespace, name, result) - return result, err -} - -func (r *Resolver) SubscribeEventSubscription(ctx context.Context, ownerName, namespace string) (<-chan *gqlschema.SubscriptionEvent, error) { - channel := make(chan *gqlschema.SubscriptionEvent, 1) - filter := func(subscription v1alpha1.Subscription) bool { - namespaceMatches := subscription.ObjectMeta.Namespace == namespace - ownerNameMatches := len(subscription.ObjectMeta.OwnerReferences) != 0 && subscription.ObjectMeta.OwnerReferences[0].Name == ownerName - return namespaceMatches && ownerNameMatches - } - - unsubscribe, err := r.Service().Subscribe(NewEventHandler(channel, filter)) - if err != nil { - return nil, err - } - - go func() { - defer close(channel) - defer unsubscribe() - <-ctx.Done() - }() - - return channel, nil -} - -func (r *Resolver) getBEBSourceName() (string, error) { - secrets, err := r.client.CoreV1().Secrets("kyma-system").Get(context.Background(), "eventing", metav1.GetOptions{}) - - if err != nil { - return "", err - } - - sourceName := secrets.Data["authentication.bebNamespace"] - return string(sourceName), nil -} - -func (r *Resolver) createSpec(params gqlschema.EventSubscriptionSpecInput, namespace string, sourceName string) v1alpha1.SubscriptionSpec { - protocolSettings := &v1alpha1.ProtocolSettings{ - ContentMode: "", - ExemptHandshake: true, - Qos: "AT-LEAST-ONCE", - WebhookAuth: nil, - } - - bebFilters := &v1alpha1.BebFilters{ - Dialect: "beb,", - Filters: r.createBebFilters(params.Filters, sourceName), - } - - spec := v1alpha1.SubscriptionSpec{ - Protocol: "BEB", - ProtocolSettings: protocolSettings, - Sink: fmt.Sprintf("http://%s.%s.svc.cluster.local", params.OwnerRef.Name, namespace), - Filter: bebFilters, - } - return spec -} - -func (r *Resolver) createBebFilters(filters []*gqlschema.FiltersInput, sourceName string) []*v1alpha1.BebFilter { - - eventSource := v1alpha1.Filter{ - Type: "exact", - Property: "source", - Value: sourceName, - } - - var bebFilters []*v1alpha1.BebFilter - - for _, filter := range filters { - eventType := v1alpha1.Filter{ - Type: "exact", - Property: "type", - Value: fmt.Sprintf("sap.kyma.custom.%s.%s.%s", filter.ApplicationName, filter.EventName, filter.Version), - } - bebFilters = append(bebFilters, &v1alpha1.BebFilter{ - EventSource: &eventSource, - EventType: &eventType, - }) - } - - return bebFilters -} diff --git a/components/console-backend-service/internal/domain/bebEventing/service.go b/components/console-backend-service/internal/domain/bebEventing/service.go deleted file mode 100644 index 5e9be06efe0b..000000000000 --- a/components/console-backend-service/internal/domain/bebEventing/service.go +++ /dev/null @@ -1,76 +0,0 @@ -package bebEventing - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" -) - -var subscriptionsKind = "Subscription" -var subscriptionsGroupVersionResource = schema.GroupVersionResource{ - Version: "v1alpha1", - Group: "eventing.kyma-project.io", - Resource: "subscriptions", -} - -var eventSubscriptionServiceIndex = "service" - -func eventSubscriptionServiceIndexKey(namespace string, serviceName string) string { - return namespace + ":" + serviceName -} - -type Service struct { - *resource.Service -} - -func NewService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - service := serviceFactory.ForResource(subscriptionsGroupVersionResource) - err := service.AddIndexers(cache.Indexers{ - eventSubscriptionServiceIndex: func(obj interface{}) ([]string, error) { - subscription := &v1alpha1.Subscription{} - err := resource.FromUnstructured(obj.(*unstructured.Unstructured), subscription) - if err != nil { - return nil, err - } - if len(subscription.ObjectMeta.OwnerReferences) == 0 { - return nil, nil - } - return []string{eventSubscriptionServiceIndexKey(subscription.ObjectMeta.Namespace, subscription.ObjectMeta.OwnerReferences[0].Name)}, nil - }, - }) - return service, err -} - -func NewEventHandler(channel chan<- *gqlschema.SubscriptionEvent, filter func(subscription v1alpha1.Subscription) bool) resource.EventHandlerProvider { - return func() resource.EventHandler { - return &EventHandler{ - channel: channel, - filter: filter, - res: &v1alpha1.Subscription{}, - } - } -} - -type EventHandler struct { - channel chan<- *gqlschema.SubscriptionEvent - filter func(v1alpha1.Subscription) bool - res *v1alpha1.Subscription -} - -func (h *EventHandler) K8sResource() interface{} { - return h.res -} - -func (h *EventHandler) ShouldNotify() bool { - return h.filter(*h.res) -} - -func (h *EventHandler) Notify(eventType gqlschema.SubscriptionEventType) { - h.channel <- &gqlschema.SubscriptionEvent{ - Type: eventType, - Subscription: h.res, - } -} diff --git a/components/console-backend-service/internal/domain/bebEventing/service_test.go b/components/console-backend-service/internal/domain/bebEventing/service_test.go deleted file mode 100644 index a2b59e1030eb..000000000000 --- a/components/console-backend-service/internal/domain/bebEventing/service_test.go +++ /dev/null @@ -1,270 +0,0 @@ -package bebEventing - -import ( - "context" - "testing" - "time" - - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/kubernetes/fake" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - coreV1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - dynamicFake "k8s.io/client-go/dynamic/fake" - - "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestBebEventingService_Query(t *testing.T) { - t.Run("Should filter by namespace and owner name", func(t *testing.T) { - subscription1 := fixTestSubscription("test-sub-1", "default", "owner-1") - subscription2 := fixTestSubscription("test-sub-2", "default", "owner-2") - - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme, subscription1, subscription2) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.EventSubscriptionsQuery(context.Background(), "owner-2", "default") - - require.NoError(t, err) - assert.ElementsMatch(t, []*v1alpha1.Subscription{ - subscription2, - }, result) - }) - - t.Run("Should return empty array if not found", func(t *testing.T) { - subscription1 := fixTestSubscription("test-sub-1", "default", "owner-1") - - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme, subscription1) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.EventSubscriptionsQuery(context.Background(), "owner-1", "custom") - - require.NoError(t, err) - assert.Empty(t, result) - }) -} - -func TestBebEventingService_Create(t *testing.T) { - t.Run("Should create", func(t *testing.T) { - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - params := fixTestSpecInput("owner-name") - - result, err := service.CreateEventSubscription(context.Background(), "default", "test-sub-1", params) - - require.NoError(t, err) - require.Equal(t, "owner-name", result.ObjectMeta.OwnerReferences[0].Name) - require.Equal(t, "default", result.ObjectMeta.Namespace) - require.Equal(t, "test-sub-1", result.ObjectMeta.Name) - require.Equal(t, "sap.kyma.custom.app.test-passed.v1", result.Spec.Filter.Filters[0].EventType.Value) - require.Equal(t, "test-secret-data", result.Spec.Filter.Filters[0].EventSource.Value) - }) - - t.Run("Should return error for duplicates", func(t *testing.T) { - subscription1 := fixTestSubscription("test-sub-1", "default", "owner-1") - - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme, subscription1) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - params := fixTestSpecInput("owner-name") - - _, err = service.CreateEventSubscription(context.Background(), "default", "test-sub-1", params) - - require.Error(t, err) - }) -} - -func TestBebEventingService_Update(t *testing.T) { - t.Run("Should update", func(t *testing.T) { - subscription1 := fixTestSubscription("test-sub-1", "default", "owner-1") - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme, subscription1) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - updatedFilters := []*gqlschema.FiltersInput{ - { - ApplicationName: "app-2", - Version: "v2", - EventName: "test", - }, - } - params := fixTestSpecInput("owner-1") - params.Filters = updatedFilters - - result, err := service.UpdateEventSubscription(context.Background(), "default", "test-sub-1", params) - - require.NoError(t, err) - - filter := result.Spec.Filter.Filters[0] - assert.Equal(t, "sap.kyma.custom.app-2.test.v2", filter.EventType.Value) - }) - - t.Run("Should return error if not found", func(t *testing.T) { - subscription1 := fixTestSubscription("test-sub-1", "default", "owner-1") - - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme, subscription1) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - params := fixTestSpecInput("owner-name") - - _, err = service.UpdateEventSubscription(context.Background(), "default", "test-sub-2", params) - - require.Error(t, err) - }) -} - -func TestBebEventingService_Delete(t *testing.T) { - t.Run("Should delete", func(t *testing.T) { - subscription1 := fixTestSubscription("test-sub-1", "default", "owner-1") - subscription2 := fixTestSubscription("test-sub-2", "default", "owner-2") - - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme, subscription1, subscription2) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.DeleteEventSubscription(context.Background(), "default", "test-sub-2") - - require.NoError(t, err) - assert.Equal(t, subscription2, result) - }) - - t.Run("Should return error if not found", func(t *testing.T) { - subscription1 := fixTestSubscription("test-sub-1", "default", "owner-1") - - serviceFactory, kubeClient, err := NewFakeGenericServiceFactory(v1alpha1.AddToScheme, subscription1) - require.NoError(t, err) - - service := New(serviceFactory, kubeClient) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.DeleteEventSubscription(context.Background(), "custom", "test-sub-1") - - require.Error(t, err) - assert.Empty(t, result) - }) -} - -func fixTestSpecInput(ownerName string) gqlschema.EventSubscriptionSpecInput { - params := gqlschema.EventSubscriptionSpecInput{ - Filters: []*gqlschema.FiltersInput{ - { - ApplicationName: "app", - Version: "v1", - EventName: "test-passed", - }, - }, - OwnerRef: &v1.OwnerReference{ - APIVersion: "serverless.kyma-project.io/v1alpha", - Kind: "Function", - Name: ownerName, - }, - } - return params -} - -func fixTestSubscription(name, namespace, ownerName string) *v1alpha1.Subscription { - return &v1alpha1.Subscription{ - TypeMeta: v1.TypeMeta{ - Kind: "Subscription", - APIVersion: "eventing.kyma-project.io/v1alpha1", - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: namespace, - OwnerReferences: []v1.OwnerReference{ - { - APIVersion: "serverless.kyma-project.io/v1alpha", - Kind: "Function", - Name: ownerName, - }, - }, - }, - } -} - -// we can't use the fakeResource version, as it accepts only runtime.Object array - and Subscription isn't a runtime.Object -// moreover we need to mock k8s client with beb secret -func NewFakeGenericServiceFactory(addToScheme func(*runtime.Scheme) error, objects ...*v1alpha1.Subscription) (*resource.GenericServiceFactory, kubernetes.Interface, error) { - secret := &coreV1.Secret{ - TypeMeta: v1.TypeMeta{ - Kind: "Secret", - APIVersion: "v1", - }, - ObjectMeta: v1.ObjectMeta{ - Name: "eventing", - Namespace: "kyma-system", - }, - Data: map[string][]byte{ - "authentication.bebNamespace": []byte("test-secret-data"), - }, - } - - scheme := runtime.NewScheme() - err := addToScheme(scheme) - if err != nil { - return nil, nil, err - } - - result := make([]runtime.Object, len(objects)) - for i, obj := range objects { - result[i], err = resource.ToUnstructured(obj) - if err != nil { - return nil, nil, err - } - } - - client := dynamicFake.NewSimpleDynamicClient(scheme, result...) - informerFactory := dynamicinformer.NewDynamicSharedInformerFactory(client, time.Second) - kubeClient := fake.NewSimpleClientset(secret) - return resource.NewGenericServiceFactory(client, informerFactory), kubeClient, nil -} diff --git a/components/console-backend-service/internal/domain/bebEventing/subscription.go b/components/console-backend-service/internal/domain/bebEventing/subscription.go deleted file mode 100644 index e24521c0e230..000000000000 --- a/components/console-backend-service/internal/domain/bebEventing/subscription.go +++ /dev/null @@ -1,26 +0,0 @@ -package bebEventing - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "k8s.io/client-go/kubernetes" -) - -type Resolver struct { - *resource.Module - client kubernetes.Interface -} - -func New(factory *resource.GenericServiceFactory, client kubernetes.Interface) *Resolver { - module := resource.NewModule("eventing", factory, resource.ServiceCreators{ - subscriptionsGroupVersionResource: NewService, - }) - - return &Resolver{ - Module: module, - client: client, - } -} - -func (r *Resolver) Service() *resource.GenericService { - return r.Module.Service(subscriptionsGroupVersionResource) -} diff --git a/components/console-backend-service/internal/domain/bebeventing.resolvers.go b/components/console-backend-service/internal/domain/bebeventing.resolvers.go deleted file mode 100644 index dff67b6207d2..000000000000 --- a/components/console-backend-service/internal/domain/bebeventing.resolvers.go +++ /dev/null @@ -1,31 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1" -) - -func (r *mutationResolver) CreateSubscription(ctx context.Context, name string, namespace string, params gqlschema.EventSubscriptionSpecInput) (*v1alpha1.Subscription, error) { - return r.bebEventing.CreateEventSubscription(ctx, namespace, name, params) -} - -func (r *mutationResolver) UpdateSubscription(ctx context.Context, name string, namespace string, params gqlschema.EventSubscriptionSpecInput) (*v1alpha1.Subscription, error) { - return r.bebEventing.UpdateEventSubscription(ctx, namespace, name, params) -} - -func (r *mutationResolver) DeleteSubscription(ctx context.Context, name string, namespace string) (*v1alpha1.Subscription, error) { - return r.bebEventing.DeleteEventSubscription(ctx, namespace, name) -} - -func (r *queryResolver) EventSubscriptions(ctx context.Context, ownerName string, namespace string) ([]*v1alpha1.Subscription, error) { - return r.bebEventing.EventSubscriptionsQuery(ctx, ownerName, namespace) -} - -func (r *subscriptionResolver) SubscriptionSubscription(ctx context.Context, ownerName string, namespace string) (<-chan *gqlschema.SubscriptionEvent, error) { - return r.bebEventing.SubscribeEventSubscription(ctx, ownerName, namespace) -} diff --git a/components/console-backend-service/internal/domain/eventing.resolvers.go b/components/console-backend-service/internal/domain/eventing.resolvers.go deleted file mode 100644 index 0223a65af4ec..000000000000 --- a/components/console-backend-service/internal/domain/eventing.resolvers.go +++ /dev/null @@ -1,61 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v11 "k8s.io/apimachinery/pkg/apis/meta/v1" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" -) - -func (r *mutationResolver) CreateTrigger(ctx context.Context, namespace string, trigger gqlschema.TriggerCreateInput, ownerRef []*v11.OwnerReference) (*v1alpha1.Trigger, error) { - return r.eventing.CreateTrigger(ctx, namespace, trigger, ownerRef) -} - -func (r *mutationResolver) CreateManyTriggers(ctx context.Context, namespace string, triggers []*gqlschema.TriggerCreateInput, ownerRef []*v11.OwnerReference) ([]*v1alpha1.Trigger, error) { - return r.eventing.CreateTriggers(ctx, namespace, triggers, ownerRef) -} - -func (r *mutationResolver) DeleteTrigger(ctx context.Context, namespace string, triggerName string) (*v1alpha1.Trigger, error) { - return r.eventing.DeleteTrigger(ctx, namespace, triggerName) -} - -func (r *mutationResolver) DeleteManyTriggers(ctx context.Context, namespace string, triggerNames []string) ([]*v1alpha1.Trigger, error) { - return r.eventing.DeleteTriggers(ctx, namespace, triggerNames) -} - -func (r *queryResolver) Triggers(ctx context.Context, namespace string, serviceName string) ([]*v1alpha1.Trigger, error) { - return r.eventing.TriggersQuery(ctx, namespace, serviceName) -} - -func (r *subscriptionResolver) TriggerEvent(ctx context.Context, namespace string, serviceName string) (<-chan *gqlschema.TriggerEvent, error) { - return r.eventing.TriggerEventSubscription(ctx, namespace, serviceName) -} - -func (r *triggerResolver) Status(ctx context.Context, obj *v1alpha1.Trigger) (*gqlschema.TriggerStatus, error) { - return r.eventing.StatusField(ctx, obj) -} - -func (r *triggerSpecResolver) Filter(ctx context.Context, obj *v1alpha1.TriggerSpec) (gqlschema.JSON, error) { - return r.eventing.FilterField(ctx, obj) -} - -func (r *triggerSpecResolver) Port(ctx context.Context, obj *v1alpha1.TriggerSpec) (uint32, error) { - return r.eventing.PortField(ctx, obj) -} - -func (r *triggerSpecResolver) Path(ctx context.Context, obj *v1alpha1.TriggerSpec) (string, error) { - return r.eventing.PathField(ctx, obj) -} - -// Trigger returns gqlschema.TriggerResolver implementation. -func (r *Resolver) Trigger() gqlschema.TriggerResolver { return &triggerResolver{r} } - -// TriggerSpec returns gqlschema.TriggerSpecResolver implementation. -func (r *Resolver) TriggerSpec() gqlschema.TriggerSpecResolver { return &triggerSpecResolver{r} } - -type triggerResolver struct{ *Resolver } -type triggerSpecResolver struct{ *Resolver } diff --git a/components/console-backend-service/internal/domain/eventing/resolver.go b/components/console-backend-service/internal/domain/eventing/resolver.go deleted file mode 100644 index 6d7748ffb2ba..000000000000 --- a/components/console-backend-service/internal/domain/eventing/resolver.go +++ /dev/null @@ -1,238 +0,0 @@ -package eventing - -import ( - "context" - "fmt" - "net" - "regexp" - "strconv" - - "github.com/pkg/errors" - "knative.dev/pkg/apis" - - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - duckv1 "knative.dev/pkg/apis/duck/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type TriggerList []*v1alpha1.Trigger - -func (l *TriggerList) Append() interface{} { - e := &v1alpha1.Trigger{} - *l = append(*l, e) - return e -} - -func (r *Resolver) TriggersQuery(ctx context.Context, namespace string, serviceName string) ([]*v1alpha1.Trigger, error) { - items := TriggerList{} - - err := r.Service().ListByIndex(triggerIndexKey, createTriggerIndexKey(namespace, serviceName), &items) - - return items, err -} - -func (r *Resolver) StatusField(ctx context.Context, obj *v1alpha1.Trigger) (*gqlschema.TriggerStatus, error) { - gqlStatus := &gqlschema.TriggerStatus{ - Status: gqlschema.TriggerStatusTypeReady, - } - for _, condition := range obj.Status.Conditions { - if condition.IsFalse() { - gqlStatus.Reason = append(gqlStatus.Reason, condition.Message) - gqlStatus.Status = gqlschema.TriggerStatusTypeFailed - } else if condition.IsUnknown() { - gqlStatus.Reason = append(gqlStatus.Reason, condition.Message) - if gqlStatus.Status != gqlschema.TriggerStatusTypeFailed { - gqlStatus.Status = gqlschema.TriggerStatusTypeUnknown - } - } - } - return gqlStatus, nil -} - -func (r *Resolver) FilterField(ctx context.Context, obj *v1alpha1.TriggerSpec) (gqlschema.JSON, error) { - attr := make(map[string]interface{}) - - if obj.Filter == nil || obj.Filter.Attributes == nil { - return attr, nil - } - for key, value := range *obj.Filter.Attributes { - attr[key] = value - } - - return attr, nil -} - -func (r *Resolver) PortField(ctx context.Context, obj *v1alpha1.TriggerSpec) (uint32, error) { - const defaultPort = uint32(80) - if obj.Subscriber.URI != nil { - _, portString, err := net.SplitHostPort(obj.Subscriber.URI.Host) - if err != nil { - return 0, errors.Wrap(err, "while extracting port") - } - port, err := strconv.Atoi(portString) - if err != nil { - return 0, errors.Wrap(err, "while converting port") - } - return uint32(port), nil - } else { - return defaultPort, nil - } -} - -func (r *Resolver) PathField(ctx context.Context, obj *v1alpha1.TriggerSpec) (string, error) { - const defaultPath = "/" - if obj.Subscriber.URI != nil { - return obj.Subscriber.URI.Path, nil - } else { - return defaultPath, nil - } -} - -func (r *Resolver) CreateTrigger(ctx context.Context, namespace string, in gqlschema.TriggerCreateInput, ownerRef []*v1.OwnerReference) (*v1alpha1.Trigger, error) { - trigger, err := r.buildTrigger(namespace, in, ownerRef) - - if err != nil { - return nil, err - } - - result := &v1alpha1.Trigger{} - err = r.Service().Create(trigger, result) - return result, err -} - -func (r *Resolver) CreateTriggers(ctx context.Context, namespace string, triggers []*gqlschema.TriggerCreateInput, ref []*v1.OwnerReference) ([]*v1alpha1.Trigger, error) { - items := TriggerList{} - for _, trigger := range triggers { - result, err := r.CreateTrigger(ctx, namespace, *trigger, ref) - if err != nil { - return items, err - } - items = append(items, result) - } - return items, nil -} - -func (r *Resolver) DeleteTrigger(ctx context.Context, namespace string, name string) (*v1alpha1.Trigger, error) { - result := &v1alpha1.Trigger{} - err := r.Service().DeleteInNamespace(namespace, name, result) - return result, err -} - -func (r *Resolver) DeleteTriggers(ctx context.Context, namespace string, names []string) ([]*v1alpha1.Trigger, error) { - items := TriggerList{} - for _, triggerName := range names { - result, err := r.DeleteTrigger(ctx, namespace, triggerName) - if err != nil { - return items, err - } - items = append(items, result) - } - return items, nil -} - -func (r *Resolver) TriggerEventSubscription(ctx context.Context, namespace, serviceName string) (<-chan *gqlschema.TriggerEvent, error) { - channel := make(chan *gqlschema.TriggerEvent, 1) - filter := func(trigger v1alpha1.Trigger) bool { - namespaceMatches := trigger.Namespace == namespace - if trigger.Spec.Subscriber.Ref != nil { - return namespaceMatches && trigger.Spec.Subscriber.Ref.Name == serviceName - } else { - name, err := extractServiceNameFromUri(*trigger.Spec.Subscriber.URI) - return err == nil && namespaceMatches && name == serviceName - } - } - - unsubscribe, err := r.Service().Subscribe(NewEventHandler(channel, filter)) - if err != nil { - return nil, err - } - - go func() { - defer close(channel) - defer unsubscribe() - <-ctx.Done() - }() - - return channel, nil -} - -func (r *Resolver) solveFilters(json gqlschema.JSON) *v1alpha1.TriggerFilter { - filters := make(v1alpha1.TriggerFilterAttributes) - if json == nil { - return nil - } - - for key, value := range json { - filters[key] = fmt.Sprint(value) - } - return &v1alpha1.TriggerFilter{ - Attributes: &filters, - } -} - -func (r *Resolver) buildTrigger(namespace string, in gqlschema.TriggerCreateInput, ownerRef []*v1.OwnerReference) (*v1alpha1.Trigger, error) { - in = *r.checkTriggerName(&in) - - meta := v1alpha1.SchemeGroupVersion.WithKind("Trigger") - - port := in.Subscriber.Port - if port == nil { - defaultPort := uint32(80) - port = &defaultPort - } - path := in.Subscriber.Path - if path == nil { - defaultPath := "/" - path = &defaultPath - } - - uriString := fmt.Sprintf("http://%s.%s.svc.cluster.local:%d%s", in.Subscriber.Ref.Name, namespace, *port, *path) - uri, err := apis.ParseURL(uriString) - if err != nil { - return nil, errors.Wrap(err, "while creating trigger subscriber uri") - } - trigger := &v1alpha1.Trigger{ - TypeMeta: v1.TypeMeta{ - Kind: meta.Kind, - APIVersion: meta.GroupVersion().String(), - }, - ObjectMeta: v1.ObjectMeta{ - Name: *in.Name, - Namespace: namespace, - OwnerReferences: []v1.OwnerReference{}, - }, - Spec: v1alpha1.TriggerSpec{ - Broker: in.Broker, - Filter: r.solveFilters(in.FilterAttributes), - Subscriber: duckv1.Destination{ - URI: uri, - }, - }, - } - - for _, ref := range ownerRef { - trigger.OwnerReferences = append(trigger.OwnerReferences, *ref) - } - - return trigger, nil -} - -func (r *Resolver) checkTriggerName(trigger *gqlschema.TriggerCreateInput) *gqlschema.TriggerCreateInput { - if trigger.Name == nil || *trigger.Name == "" { - name := r.generateName() - trigger.Name = &name - } - return trigger -} - -func extractServiceNameFromUri(url apis.URL) (string, error) { - r := regexp.MustCompile("(.*)\\.(?:.+)svc\\.cluster\\.local") - result := r.FindStringSubmatch(url.Host) - if len(result) < 2 { - return "", errors.Errorf("cannot find port in %s", url.Host) - } - return result[1], nil -} diff --git a/components/console-backend-service/internal/domain/eventing/service.go b/components/console-backend-service/internal/domain/eventing/service.go deleted file mode 100644 index 9389244e277b..000000000000 --- a/components/console-backend-service/internal/domain/eventing/service.go +++ /dev/null @@ -1,87 +0,0 @@ -package eventing - -import ( - "fmt" - "net" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - "knative.dev/pkg/apis" -) - -var triggersKind = "Trigger" - -var triggersGroupVersionResource = schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "triggers", -} - -var triggerIndexKey = "ref" - -func createTriggerIndexKey(namespace, serviceName string) string { - return fmt.Sprintf("%s.%s.svc.cluster.local", serviceName, namespace) -} - -func createTriggerUriIndexKey(uri apis.URL) string { - host, _, _ := net.SplitHostPort(uri.Host) - return host -} - -type Service struct { - *resource.Service -} - -func NewService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - service := serviceFactory.ForResource(triggersGroupVersionResource) - err := service.AddIndexers(cache.Indexers{ - triggerIndexKey: func(obj interface{}) ([]string, error) { - trigger := &v1alpha1.Trigger{} - err := resource.FromUnstructured(obj.(*unstructured.Unstructured), trigger) - if err != nil { - return nil, err - } - if trigger.Spec.Subscriber.Ref != nil { - return []string{createTriggerIndexKey(trigger.Namespace, trigger.Spec.Subscriber.Ref.Name)}, nil - } else { - return []string{createTriggerUriIndexKey(*trigger.Spec.Subscriber.URI)}, nil - } - }, - }) - return service, err -} - -func NewEventHandler(channel chan<- *gqlschema.TriggerEvent, filter func(trigger v1alpha1.Trigger) bool) resource.EventHandlerProvider { - return func() resource.EventHandler { - return &EventHandler{ - channel: channel, - filter: filter, - res: &v1alpha1.Trigger{}, - } - } -} - -type EventHandler struct { - channel chan<- *gqlschema.TriggerEvent - filter func(v1alpha1.Trigger) bool - res *v1alpha1.Trigger -} - -func (h *EventHandler) K8sResource() interface{} { - return h.res -} - -func (h *EventHandler) ShouldNotify() bool { - return h.filter(*h.res) -} - -func (h *EventHandler) Notify(eventType gqlschema.SubscriptionEventType) { - h.channel <- &gqlschema.TriggerEvent{ - Type: eventType, - Trigger: h.res, - } -} diff --git a/components/console-backend-service/internal/domain/eventing/service_test.go b/components/console-backend-service/internal/domain/eventing/service_test.go deleted file mode 100644 index 57767957cb3e..000000000000 --- a/components/console-backend-service/internal/domain/eventing/service_test.go +++ /dev/null @@ -1,287 +0,0 @@ -package eventing - -import ( - "context" - "fmt" - "testing" - - "knative.dev/pkg/apis" - - "github.com/stretchr/testify/assert" - "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - duckv1 "knative.dev/pkg/apis/duck/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - - "github.com/stretchr/testify/require" -) - -func TestTriggersService_List(t *testing.T) { - t.Run("Should filter by namespace and name", func(t *testing.T) { - const namespace = "default" - const serviceName = "serviceName" - - trigger1 := createMockTrigger("trigger 1", namespace, serviceName) - trigger2 := createMockTrigger("trigger 2", "other-namespace", "other-service") - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, trigger1, trigger2) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.TriggersQuery(context.Background(), namespace, serviceName) - - require.NoError(t, err) - - assert.Equal(t, 1, len(result)) - assert.Equal(t, trigger1.Namespace, result[0].Namespace) - }) - - t.Run("Should filter triggers with either Ref and URI", func(t *testing.T) { - const namespace = "default" - const serviceName = "serviceName" - - refTrigger := createMockTriggerWithDestination("refTrigger", namespace, duckv1.Destination{ - Ref: &duckv1.KReference{ - Kind: "Service", - Namespace: namespace, - Name: serviceName, - APIVersion: "", - }, - URI: nil, - }) - - urlString := fmt.Sprintf("https://%s.%s.svc.cluster.local:80", serviceName, namespace) - url, err := apis.ParseURL(urlString) - - require.NoError(t, err) - uriTrigger := createMockTriggerWithDestination("uriTrigger", namespace, duckv1.Destination{ - Ref: nil, - URI: url, - }) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, refTrigger, uriTrigger) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - result, err := service.TriggersQuery(context.Background(), namespace, serviceName) - - require.NoError(t, err) - assert.Equal(t, 2, len(result)) - }) -} - -func TestTriggersService_Create(t *testing.T) { - const namespace = "default" - const serviceName = "service-name" - - t.Run("Should create", func(t *testing.T) { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme) - require.NoError(t, err) - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - var name = "trigger" - trigger, err := service.CreateTrigger(context.Background(), namespace, createMockTriggerInput(name, namespace, serviceName), nil) - - require.NoError(t, err) - assert.Equal(t, trigger.Name, name) - assert.Equal(t, trigger.Namespace, namespace) - }) - - t.Run("Should return error if trigger already exists", func(t *testing.T) { - const name = "trigger 1" - existingTrigger := createMockTrigger(name, namespace, serviceName) - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, existingTrigger) - require.NoError(t, err) - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - _, err = service.CreateTrigger(context.Background(), namespace, createMockTriggerInput(name, namespace, serviceName), nil) - - require.Error(t, err) - }) - - t.Run("Should create many", func(t *testing.T) { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme) - require.NoError(t, err) - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - input1 := createMockTriggerInput("trigger 1", namespace, serviceName) - input2 := createMockTriggerInput("trigger 2", namespace, serviceName) - inputs := []*gqlschema.TriggerCreateInput{&input1, &input2} - - triggers, err := service.CreateTriggers(context.Background(), "default", inputs, nil) - - require.NoError(t, err) - require.Equal(t, 2, len(triggers)) - }) -} - -func TestTriggersService_Delete(t *testing.T) { - const serviceName = "service-name" - const namespace = "default" - - t.Run("Should delete", func(t *testing.T) { - trigger1 := createMockTrigger("trigger 1", namespace, serviceName) - trigger2 := createMockTrigger("trigger 2", "other-namespace", serviceName) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, trigger1, trigger2) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - deletedTrigger, err := service.DeleteTrigger(context.Background(), namespace, trigger1.Name) - - require.NoError(t, err) - assert.Equal(t, trigger1.Name, deletedTrigger.Name) - }) - - t.Run("Should return error if trigger does not exist", func(t *testing.T) { - trigger1 := createMockTrigger("trigger 1", namespace, serviceName) - trigger2 := createMockTrigger("trigger 2", "other-namespace", serviceName) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, trigger1, trigger2) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - _, err = service.DeleteTrigger(context.Background(), namespace, trigger2.Name) - - require.Error(t, err) - }) - - t.Run("Should delete many", func(t *testing.T) { - trigger1 := createMockTrigger("trigger 1", namespace, serviceName) - trigger2 := createMockTrigger("trigger 2", namespace, serviceName) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, trigger1, trigger2) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - names := []string{trigger1.Name, trigger2.Name} - deletedTriggers, err := service.DeleteTriggers(context.Background(), namespace, names) - - require.NoError(t, err) - assert.Equal(t, 2, len(deletedTriggers)) - }) - - t.Run("Should return error if some triggers are not found", func(t *testing.T) { - trigger1 := createMockTrigger("trigger 1", namespace, serviceName) - trigger2 := createMockTrigger("trigger 2", "other-namespace", serviceName) - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, trigger1, trigger2) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - names := []string{trigger1.Name, trigger2.Name} - _, err = service.DeleteTriggers(context.Background(), namespace, names) - - require.Error(t, err) - }) -} - -func createMockTrigger(name, namespace, serviceName string) *v1alpha1.Trigger { - return &v1alpha1.Trigger{ - TypeMeta: v1.TypeMeta{ - APIVersion: "eventing.knative.dev/v1alpha1", - Kind: "Trigger", - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.TriggerSpec{ - Broker: "default", - Filter: nil, - Subscriber: duckv1.Destination{ - Ref: &duckv1.KReference{ - Kind: "Service", - Namespace: namespace, - Name: serviceName, - APIVersion: "", - }, - URI: nil, - }, - }, - Status: v1alpha1.TriggerStatus{}, - } -} - -func createMockTriggerWithDestination(name, namespace string, subscriber duckv1.Destination) *v1alpha1.Trigger { - return &v1alpha1.Trigger{ - TypeMeta: v1.TypeMeta{ - APIVersion: "eventing.knative.dev/v1alpha1", - Kind: "Trigger", - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.TriggerSpec{ - Broker: "default", - Filter: nil, - Subscriber: subscriber, - }, - Status: v1alpha1.TriggerStatus{}, - } -} - -func createMockTriggerInput(name, namespace, serviceName string) gqlschema.TriggerCreateInput { - return gqlschema.TriggerCreateInput{ - Name: &name, - Broker: "default", - FilterAttributes: nil, - Subscriber: &gqlschema.SubscriberInput{ - Ref: &duckv1.KReference{ - Kind: "Service", - Namespace: namespace, - Name: serviceName, - APIVersion: "", - }, - Port: nil, - Path: nil, - }, - } -} diff --git a/components/console-backend-service/internal/domain/eventing/trigger.go b/components/console-backend-service/internal/domain/eventing/trigger.go deleted file mode 100644 index 9fc08714bbf2..000000000000 --- a/components/console-backend-service/internal/domain/eventing/trigger.go +++ /dev/null @@ -1,26 +0,0 @@ -package eventing - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/name" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -type Resolver struct { - *resource.Module - generateName func() string -} - -func New(factory *resource.GenericServiceFactory) *Resolver { - module := resource.NewModule("eventing", factory, resource.ServiceCreators{ - triggersGroupVersionResource: NewService, - }) - - return &Resolver{ - Module: module, - generateName: name.Generate, - } -} - -func (r *Resolver) Service() *resource.GenericService { - return r.Module.Service(triggersGroupVersionResource) -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/authorization_v1_interface.go b/components/console-backend-service/internal/domain/k8s/automock/authorization_v1_interface.go deleted file mode 100644 index 00662f911830..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/authorization_v1_interface.go +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import mock "github.com/stretchr/testify/mock" -import rest "k8s.io/client-go/rest" -import v1 "k8s.io/client-go/kubernetes/typed/authorization/v1" - -// AuthorizationV1Interface is an autogenerated mock type for the AuthorizationV1Interface type -type AuthorizationV1Interface struct { - mock.Mock -} - -// LocalSubjectAccessReviews provides a mock function with given fields: namespace -func (_m *AuthorizationV1Interface) LocalSubjectAccessReviews(namespace string) v1.LocalSubjectAccessReviewInterface { - ret := _m.Called(namespace) - - var r0 v1.LocalSubjectAccessReviewInterface - if rf, ok := ret.Get(0).(func(string) v1.LocalSubjectAccessReviewInterface); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(v1.LocalSubjectAccessReviewInterface) - } - } - - return r0 -} - -// RESTClient provides a mock function with given fields: -func (_m *AuthorizationV1Interface) RESTClient() rest.Interface { - ret := _m.Called() - - var r0 rest.Interface - if rf, ok := ret.Get(0).(func() rest.Interface); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(rest.Interface) - } - } - - return r0 -} - -// SelfSubjectAccessReviews provides a mock function with given fields: -func (_m *AuthorizationV1Interface) SelfSubjectAccessReviews() v1.SelfSubjectAccessReviewInterface { - ret := _m.Called() - - var r0 v1.SelfSubjectAccessReviewInterface - if rf, ok := ret.Get(0).(func() v1.SelfSubjectAccessReviewInterface); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(v1.SelfSubjectAccessReviewInterface) - } - } - - return r0 -} - -// SelfSubjectRulesReviews provides a mock function with given fields: -func (_m *AuthorizationV1Interface) SelfSubjectRulesReviews() v1.SelfSubjectRulesReviewInterface { - ret := _m.Called() - - var r0 v1.SelfSubjectRulesReviewInterface - if rf, ok := ret.Get(0).(func() v1.SelfSubjectRulesReviewInterface); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(v1.SelfSubjectRulesReviewInterface) - } - } - - return r0 -} - -// SubjectAccessReviews provides a mock function with given fields: -func (_m *AuthorizationV1Interface) SubjectAccessReviews() v1.SubjectAccessReviewInterface { - ret := _m.Called() - - var r0 v1.SubjectAccessReviewInterface - if rf, ok := ret.Get(0).(func() v1.SubjectAccessReviewInterface); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(v1.SubjectAccessReviewInterface) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/config_map_svc.go b/components/console-backend-service/internal/domain/k8s/automock/config_map_svc.go deleted file mode 100644 index 06e0ef26355e..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/config_map_svc.go +++ /dev/null @@ -1,109 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// configMapSvc is an autogenerated mock type for the configMapSvc type -type configMapSvc struct { - mock.Mock -} - -// Delete provides a mock function with given fields: name, namespace -func (_m *configMapSvc) Delete(name string, namespace string) error { - ret := _m.Called(name, namespace) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(name, namespace) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: name, namespace -func (_m *configMapSvc) Find(name string, namespace string) (*v1.ConfigMap, error) { - ret := _m.Called(name, namespace) - - var r0 *v1.ConfigMap - if rf, ok := ret.Get(0).(func(string, string) *v1.ConfigMap); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.ConfigMap) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *configMapSvc) List(namespace string, pagingParams pager.PagingParams) ([]*v1.ConfigMap, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1.ConfigMap - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1.ConfigMap); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.ConfigMap) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *configMapSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *configMapSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Update provides a mock function with given fields: name, namespace, update -func (_m *configMapSvc) Update(name string, namespace string, update v1.ConfigMap) (*v1.ConfigMap, error) { - ret := _m.Called(name, namespace, update) - - var r0 *v1.ConfigMap - if rf, ok := ret.Get(0).(func(string, string, v1.ConfigMap) *v1.ConfigMap); ok { - r0 = rf(name, namespace, update) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.ConfigMap) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, v1.ConfigMap) error); ok { - r1 = rf(name, namespace, update) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/deployment_getter.go b/components/console-backend-service/internal/domain/k8s/automock/deployment_getter.go deleted file mode 100644 index 1164550bfd6f..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/deployment_getter.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - v1 "k8s.io/api/apps/v1" -) - -// deploymentGetter is an autogenerated mock type for the deploymentGetter type -type deploymentGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name, namespace -func (_m *deploymentGetter) Find(name string, namespace string) (*v1.Deployment, error) { - ret := _m.Called(name, namespace) - - var r0 *v1.Deployment - if rf, ok := ret.Get(0).(func(string, string) *v1.Deployment); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Deployment) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/deployment_lister.go b/components/console-backend-service/internal/domain/k8s/automock/deployment_lister.go deleted file mode 100644 index 529588cc389e..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/deployment_lister.go +++ /dev/null @@ -1,91 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import mock "github.com/stretchr/testify/mock" -import resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" -import v1 "k8s.io/api/apps/v1" - -// deploymentLister is an autogenerated mock type for the deploymentLister type -type deploymentLister struct { - mock.Mock -} - -// Find provides a mock function with given fields: name, namespace -func (_m *deploymentLister) Find(name string, namespace string) (*v1.Deployment, error) { - ret := _m.Called(name, namespace) - - var r0 *v1.Deployment - if rf, ok := ret.Get(0).(func(string, string) *v1.Deployment); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Deployment) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace -func (_m *deploymentLister) List(namespace string) ([]*v1.Deployment, error) { - ret := _m.Called(namespace) - - var r0 []*v1.Deployment - if rf, ok := ret.Get(0).(func(string) []*v1.Deployment); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.Deployment) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListWithoutFunctions provides a mock function with given fields: namespace -func (_m *deploymentLister) ListWithoutFunctions(namespace string) ([]*v1.Deployment, error) { - ret := _m.Called(namespace) - - var r0 []*v1.Deployment - if rf, ok := ret.Get(0).(func(string) []*v1.Deployment); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.Deployment) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *deploymentLister) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *deploymentLister) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/discovery_interface.go b/components/console-backend-service/internal/domain/k8s/automock/discovery_interface.go deleted file mode 100644 index 90a2b2b2394c..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/discovery_interface.go +++ /dev/null @@ -1,228 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - openapi_v2 "github.com/googleapis/gnostic/OpenAPIv2" - mock "github.com/stretchr/testify/mock" - - rest "k8s.io/client-go/rest" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - version "k8s.io/apimachinery/pkg/version" -) - -// DiscoveryInterface is an autogenerated mock type for the DiscoveryInterface type -type DiscoveryInterface struct { - mock.Mock -} - -// OpenAPISchema provides a mock function with given fields: -func (_m *DiscoveryInterface) OpenAPISchema() (*openapi_v2.Document, error) { - ret := _m.Called() - - var r0 *openapi_v2.Document - if rf, ok := ret.Get(0).(func() *openapi_v2.Document); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*openapi_v2.Document) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// RESTClient provides a mock function with given fields: -func (_m *DiscoveryInterface) RESTClient() rest.Interface { - ret := _m.Called() - - var r0 rest.Interface - if rf, ok := ret.Get(0).(func() rest.Interface); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(rest.Interface) - } - } - - return r0 -} - -// ServerGroups provides a mock function with given fields: -func (_m *DiscoveryInterface) ServerGroups() (*v1.APIGroupList, error) { - ret := _m.Called() - - var r0 *v1.APIGroupList - if rf, ok := ret.Get(0).(func() *v1.APIGroupList); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.APIGroupList) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ServerGroupsAndResources provides a mock function with given fields: -func (_m *DiscoveryInterface) ServerGroupsAndResources() ([]*v1.APIGroup, []*v1.APIResourceList, error) { - ret := _m.Called() - - var r0 []*v1.APIGroup - if rf, ok := ret.Get(0).(func() []*v1.APIGroup); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.APIGroup) - } - } - - var r1 []*v1.APIResourceList - if rf, ok := ret.Get(1).(func() []*v1.APIResourceList); ok { - r1 = rf() - } else { - if ret.Get(1) != nil { - r1 = ret.Get(1).([]*v1.APIResourceList) - } - } - - var r2 error - if rf, ok := ret.Get(2).(func() error); ok { - r2 = rf() - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// ServerPreferredNamespacedResources provides a mock function with given fields: -func (_m *DiscoveryInterface) ServerPreferredNamespacedResources() ([]*v1.APIResourceList, error) { - ret := _m.Called() - - var r0 []*v1.APIResourceList - if rf, ok := ret.Get(0).(func() []*v1.APIResourceList); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.APIResourceList) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ServerPreferredResources provides a mock function with given fields: -func (_m *DiscoveryInterface) ServerPreferredResources() ([]*v1.APIResourceList, error) { - ret := _m.Called() - - var r0 []*v1.APIResourceList - if rf, ok := ret.Get(0).(func() []*v1.APIResourceList); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.APIResourceList) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ServerResources provides a mock function with given fields: -func (_m *DiscoveryInterface) ServerResources() ([]*v1.APIResourceList, error) { - ret := _m.Called() - - var r0 []*v1.APIResourceList - if rf, ok := ret.Get(0).(func() []*v1.APIResourceList); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.APIResourceList) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ServerResourcesForGroupVersion provides a mock function with given fields: groupVersion -func (_m *DiscoveryInterface) ServerResourcesForGroupVersion(groupVersion string) (*v1.APIResourceList, error) { - ret := _m.Called(groupVersion) - - var r0 *v1.APIResourceList - if rf, ok := ret.Get(0).(func(string) *v1.APIResourceList); ok { - r0 = rf(groupVersion) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.APIResourceList) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(groupVersion) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ServerVersion provides a mock function with given fields: -func (_m *DiscoveryInterface) ServerVersion() (*version.Info, error) { - ret := _m.Called() - - var r0 *version.Info - if rf, ok := ret.Get(0).(func() *version.Info); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*version.Info) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/export.go b/components/console-backend-service/internal/domain/k8s/automock/export.go deleted file mode 100644 index bd26660c5129..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/export.go +++ /dev/null @@ -1,81 +0,0 @@ -package automock - -func NewDeploymentLister() *deploymentLister { - return new(deploymentLister) -} - -func NewStatefulSetLister() *statefulSetLister { - return new(statefulSetLister) -} - -func NewReplicaSetLister() *replicaSetLister { - return new(replicaSetLister) -} - -func NewDeploymentGetter() *deploymentGetter { - return new(deploymentGetter) -} - -func NewPodSvc() *podSvc { - return new(podSvc) -} - -func NewSecretSvc() *secretSvc { - return new(secretSvc) -} - -func NewGQLPodConverter() *gqlPodConverter { - return new(gqlPodConverter) -} - -func NewGQLSecretConverter() *gqlSecretConverter { - return new(gqlSecretConverter) -} - -func NewResourceSvc() *resourceSvc { - return new(resourceSvc) -} - -func NewGQLResourceConverter() *gqlResourceConverter { - return new(gqlResourceConverter) -} - -func NewReplicaSetSvc() *replicaSetSvc { - return new(replicaSetSvc) -} - -func NewGqlReplicaSetConverter() *gqlReplicaSetConverter { - return new(gqlReplicaSetConverter) -} - -func NewGqlServiceConverter() *gqlServiceConverter { - return new(gqlServiceConverter) -} - -func NewServiceSvc() *serviceSvc { - return new(serviceSvc) -} - -func NewGqlConfigMapConverter() *gqlConfigMapConverter { - return new(gqlConfigMapConverter) -} - -func NewConfigMapSvc() *configMapSvc { - return new(configMapSvc) -} - -func NewSelfSubjectRulesSvc() *selfSubjectRulesSvc { - return new(selfSubjectRulesSvc) -} - -func NewSelfSubjectRulesConverter() *gqlSelfSubjectRulesConverter { - return new(gqlSelfSubjectRulesConverter) -} - -func NewNamespaceSvc() *namespaceSvc { - return new(namespaceSvc) -} - -func NewGqlVersionInfoConverter() *gqlVersionInfoConverter { - return new(gqlVersionInfoConverter) -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_config_map_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_config_map_converter.go deleted file mode 100644 index d92ae2668aef..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_config_map_converter.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlConfigMapConverter is an autogenerated mock type for the gqlConfigMapConverter type -type gqlConfigMapConverter struct { - mock.Mock -} - -// GQLJSONToConfigMap provides a mock function with given fields: in -func (_m *gqlConfigMapConverter) GQLJSONToConfigMap(in gqlschema.JSON) (v1.ConfigMap, error) { - ret := _m.Called(in) - - var r0 v1.ConfigMap - if rf, ok := ret.Get(0).(func(gqlschema.JSON) v1.ConfigMap); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(v1.ConfigMap) - } - - var r1 error - if rf, ok := ret.Get(1).(func(gqlschema.JSON) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlConfigMapConverter) ToGQL(in *v1.ConfigMap) (*gqlschema.ConfigMap, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ConfigMap - if rf, ok := ret.Get(0).(func(*v1.ConfigMap) *gqlschema.ConfigMap); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ConfigMap) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.ConfigMap) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlConfigMapConverter) ToGQLs(in []*v1.ConfigMap) ([]*gqlschema.ConfigMap, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ConfigMap - if rf, ok := ret.Get(0).(func([]*v1.ConfigMap) []*gqlschema.ConfigMap); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ConfigMap) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1.ConfigMap) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_pod_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_pod_converter.go deleted file mode 100644 index e218451f822d..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_pod_converter.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlPodConverter is an autogenerated mock type for the gqlPodConverter type -type gqlPodConverter struct { - mock.Mock -} - -// GQLJSONToPod provides a mock function with given fields: in -func (_m *gqlPodConverter) GQLJSONToPod(in gqlschema.JSON) (v1.Pod, error) { - ret := _m.Called(in) - - var r0 v1.Pod - if rf, ok := ret.Get(0).(func(gqlschema.JSON) v1.Pod); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(v1.Pod) - } - - var r1 error - if rf, ok := ret.Get(1).(func(gqlschema.JSON) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlPodConverter) ToGQL(in *v1.Pod) (*gqlschema.Pod, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Pod - if rf, ok := ret.Get(0).(func(*v1.Pod) *gqlschema.Pod); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Pod) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.Pod) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlPodConverter) ToGQLs(in []*v1.Pod) ([]*gqlschema.Pod, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.Pod - if rf, ok := ret.Get(0).(func([]*v1.Pod) []*gqlschema.Pod); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.Pod) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1.Pod) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_replica_set_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_replica_set_converter.go deleted file mode 100644 index 508641e546cc..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_replica_set_converter.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/apps/v1" -) - -// gqlReplicaSetConverter is an autogenerated mock type for the gqlReplicaSetConverter type -type gqlReplicaSetConverter struct { - mock.Mock -} - -// GQLJSONToReplicaSet provides a mock function with given fields: in -func (_m *gqlReplicaSetConverter) GQLJSONToReplicaSet(in gqlschema.JSON) (v1.ReplicaSet, error) { - ret := _m.Called(in) - - var r0 v1.ReplicaSet - if rf, ok := ret.Get(0).(func(gqlschema.JSON) v1.ReplicaSet); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(v1.ReplicaSet) - } - - var r1 error - if rf, ok := ret.Get(1).(func(gqlschema.JSON) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlReplicaSetConverter) ToGQL(in *v1.ReplicaSet) (*gqlschema.ReplicaSet, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ReplicaSet - if rf, ok := ret.Get(0).(func(*v1.ReplicaSet) *gqlschema.ReplicaSet); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ReplicaSet) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.ReplicaSet) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlReplicaSetConverter) ToGQLs(in []*v1.ReplicaSet) ([]*gqlschema.ReplicaSet, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ReplicaSet - if rf, ok := ret.Get(0).(func([]*v1.ReplicaSet) []*gqlschema.ReplicaSet); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ReplicaSet) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1.ReplicaSet) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_resource_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_resource_converter.go deleted file mode 100644 index ab88d169d41e..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_resource_converter.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - types "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" -) - -// gqlResourceConverter is an autogenerated mock type for the gqlResourceConverter type -type gqlResourceConverter struct { - mock.Mock -} - -// BodyToGQLJSON provides a mock function with given fields: in -func (_m *gqlResourceConverter) BodyToGQLJSON(in []byte) (gqlschema.JSON, error) { - ret := _m.Called(in) - - var r0 gqlschema.JSON - if rf, ok := ret.Get(0).(func([]byte) gqlschema.JSON); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(gqlschema.JSON) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]byte) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// GQLJSONToResource provides a mock function with given fields: in -func (_m *gqlResourceConverter) GQLJSONToResource(in gqlschema.JSON) (types.Resource, error) { - ret := _m.Called(in) - - var r0 types.Resource - if rf, ok := ret.Get(0).(func(gqlschema.JSON) types.Resource); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(types.Resource) - } - - var r1 error - if rf, ok := ret.Get(1).(func(gqlschema.JSON) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_secret_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_secret_converter.go deleted file mode 100644 index 30bb1eb89579..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_secret_converter.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlSecretConverter is an autogenerated mock type for the gqlSecretConverter type -type gqlSecretConverter struct { - mock.Mock -} - -// GQLJSONToSecret provides a mock function with given fields: in -func (_m *gqlSecretConverter) GQLJSONToSecret(in gqlschema.JSON) (v1.Secret, error) { - ret := _m.Called(in) - - var r0 v1.Secret - if rf, ok := ret.Get(0).(func(gqlschema.JSON) v1.Secret); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(v1.Secret) - } - - var r1 error - if rf, ok := ret.Get(1).(func(gqlschema.JSON) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlSecretConverter) ToGQL(in *v1.Secret) (*gqlschema.Secret, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Secret - if rf, ok := ret.Get(0).(func(*v1.Secret) *gqlschema.Secret); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Secret) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.Secret) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlSecretConverter) ToGQLs(in []*v1.Secret) ([]*gqlschema.Secret, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.Secret - if rf, ok := ret.Get(0).(func([]*v1.Secret) []*gqlschema.Secret); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.Secret) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1.Secret) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_self_subject_rules_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_self_subject_rules_converter.go deleted file mode 100644 index e9dab1c0671e..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_self_subject_rules_converter.go +++ /dev/null @@ -1,62 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/authorization/v1" -) - -// gqlSelfSubjectRulesConverter is an autogenerated mock type for the gqlSelfSubjectRulesConverter type -type gqlSelfSubjectRulesConverter struct { - mock.Mock -} - -// ToBytes provides a mock function with given fields: in -func (_m *gqlSelfSubjectRulesConverter) ToBytes(in *v1.SelfSubjectRulesReview) ([]byte, error) { - ret := _m.Called(in) - - var r0 []byte - if rf, ok := ret.Get(0).(func(*v1.SelfSubjectRulesReview) []byte); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.SelfSubjectRulesReview) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlSelfSubjectRulesConverter) ToGQL(in *v1.SelfSubjectRulesReview) ([]*gqlschema.ResourceRule, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ResourceRule - if rf, ok := ret.Get(0).(func(*v1.SelfSubjectRulesReview) []*gqlschema.ResourceRule); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ResourceRule) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.SelfSubjectRulesReview) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_service_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_service_converter.go deleted file mode 100644 index bb0dce703885..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_service_converter.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlServiceConverter is an autogenerated mock type for the gqlServiceConverter type -type gqlServiceConverter struct { - mock.Mock -} - -// GQLJSONToService provides a mock function with given fields: in -func (_m *gqlServiceConverter) GQLJSONToService(in gqlschema.JSON) (v1.Service, error) { - ret := _m.Called(in) - - var r0 v1.Service - if rf, ok := ret.Get(0).(func(gqlschema.JSON) v1.Service); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(v1.Service) - } - - var r1 error - if rf, ok := ret.Get(1).(func(gqlschema.JSON) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlServiceConverter) ToGQL(in *v1.Service) (*gqlschema.Service, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Service - if rf, ok := ret.Get(0).(func(*v1.Service) *gqlschema.Service); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Service) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.Service) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlServiceConverter) ToGQLs(in []*v1.Service) ([]*gqlschema.Service, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.Service - if rf, ok := ret.Get(0).(func([]*v1.Service) []*gqlschema.Service); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.Service) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1.Service) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/gql_version_info_converter.go b/components/console-backend-service/internal/domain/k8s/automock/gql_version_info_converter.go deleted file mode 100644 index 5d236e40eae1..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/gql_version_info_converter.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/apps/v1" -) - -// gqlVersionInfoConverter is an autogenerated mock type for the gqlVersionInfoConverter type -type gqlVersionInfoConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlVersionInfoConverter) ToGQL(in *v1.Deployment) *gqlschema.VersionInfo { - ret := _m.Called(in) - - var r0 *gqlschema.VersionInfo - if rf, ok := ret.Get(0).(func(*v1.Deployment) *gqlschema.VersionInfo); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.VersionInfo) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/namespace_svc.go b/components/console-backend-service/internal/domain/k8s/automock/namespace_svc.go deleted file mode 100644 index 7532b85ae844..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/namespace_svc.go +++ /dev/null @@ -1,134 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1 "k8s.io/api/core/v1" -) - -// namespaceSvc is an autogenerated mock type for the namespaceSvc type -type namespaceSvc struct { - mock.Mock -} - -// Create provides a mock function with given fields: name, labels -func (_m *namespaceSvc) Create(name string, labels gqlschema.Labels) (*v1.Namespace, error) { - ret := _m.Called(name, labels) - - var r0 *v1.Namespace - if rf, ok := ret.Get(0).(func(string, gqlschema.Labels) *v1.Namespace); ok { - r0 = rf(name, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Namespace) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, gqlschema.Labels) error); ok { - r1 = rf(name, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: name -func (_m *namespaceSvc) Delete(name string) error { - ret := _m.Called(name) - - var r0 error - if rf, ok := ret.Get(0).(func(string) error); ok { - r0 = rf(name) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: name -func (_m *namespaceSvc) Find(name string) (*v1.Namespace, error) { - ret := _m.Called(name) - - var r0 *v1.Namespace - if rf, ok := ret.Get(0).(func(string) *v1.Namespace); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Namespace) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: -func (_m *namespaceSvc) List() ([]*v1.Namespace, error) { - ret := _m.Called() - - var r0 []*v1.Namespace - if rf, ok := ret.Get(0).(func() []*v1.Namespace); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.Namespace) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *namespaceSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *namespaceSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Update provides a mock function with given fields: name, labels -func (_m *namespaceSvc) Update(name string, labels gqlschema.Labels) (*v1.Namespace, error) { - ret := _m.Called(name, labels) - - var r0 *v1.Namespace - if rf, ok := ret.Get(0).(func(string, gqlschema.Labels) *v1.Namespace); ok { - r0 = rf(name, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Namespace) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, gqlschema.Labels) error); ok { - r1 = rf(name, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/pod_svc.go b/components/console-backend-service/internal/domain/k8s/automock/pod_svc.go deleted file mode 100644 index c4d6d4e4149a..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/pod_svc.go +++ /dev/null @@ -1,109 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// podSvc is an autogenerated mock type for the podSvc type -type podSvc struct { - mock.Mock -} - -// Delete provides a mock function with given fields: name, namespace -func (_m *podSvc) Delete(name string, namespace string) error { - ret := _m.Called(name, namespace) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(name, namespace) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: name, namespace -func (_m *podSvc) Find(name string, namespace string) (*v1.Pod, error) { - ret := _m.Called(name, namespace) - - var r0 *v1.Pod - if rf, ok := ret.Get(0).(func(string, string) *v1.Pod); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Pod) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *podSvc) List(namespace string, pagingParams pager.PagingParams) ([]*v1.Pod, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1.Pod - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1.Pod); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.Pod) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *podSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *podSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Update provides a mock function with given fields: name, namespace, update -func (_m *podSvc) Update(name string, namespace string, update v1.Pod) (*v1.Pod, error) { - ret := _m.Called(name, namespace, update) - - var r0 *v1.Pod - if rf, ok := ret.Get(0).(func(string, string, v1.Pod) *v1.Pod); ok { - r0 = rf(name, namespace, update) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Pod) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, v1.Pod) error); ok { - r1 = rf(name, namespace, update) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/replica_set_lister.go b/components/console-backend-service/internal/domain/k8s/automock/replica_set_lister.go deleted file mode 100644 index d4ebd240bc0d..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/replica_set_lister.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - v1 "k8s.io/api/apps/v1" -) - -// replicaSetLister is an autogenerated mock type for the replicaSetLister type -type replicaSetLister struct { - mock.Mock -} - -// ListReplicaSets provides a mock function with given fields: namespace -func (_m *replicaSetLister) ListReplicaSets(namespace string) ([]*v1.ReplicaSet, error) { - ret := _m.Called(namespace) - - var r0 []*v1.ReplicaSet - if rf, ok := ret.Get(0).(func(string) []*v1.ReplicaSet); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.ReplicaSet) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/replica_set_svc.go b/components/console-backend-service/internal/domain/k8s/automock/replica_set_svc.go deleted file mode 100644 index 32841024576d..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/replica_set_svc.go +++ /dev/null @@ -1,97 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - mock "github.com/stretchr/testify/mock" - v1 "k8s.io/api/apps/v1" -) - -// replicaSetSvc is an autogenerated mock type for the replicaSetSvc type -type replicaSetSvc struct { - mock.Mock -} - -// Delete provides a mock function with given fields: name, namespace -func (_m *replicaSetSvc) Delete(name string, namespace string) error { - ret := _m.Called(name, namespace) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(name, namespace) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: name, namespace -func (_m *replicaSetSvc) Find(name string, namespace string) (*v1.ReplicaSet, error) { - ret := _m.Called(name, namespace) - - var r0 *v1.ReplicaSet - if rf, ok := ret.Get(0).(func(string, string) *v1.ReplicaSet); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.ReplicaSet) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *replicaSetSvc) List(namespace string, pagingParams pager.PagingParams) ([]*v1.ReplicaSet, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1.ReplicaSet - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1.ReplicaSet); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.ReplicaSet) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Update provides a mock function with given fields: name, namespace, update -func (_m *replicaSetSvc) Update(name string, namespace string, update v1.ReplicaSet) (*v1.ReplicaSet, error) { - ret := _m.Called(name, namespace, update) - - var r0 *v1.ReplicaSet - if rf, ok := ret.Get(0).(func(string, string, v1.ReplicaSet) *v1.ReplicaSet); ok { - r0 = rf(name, namespace, update) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.ReplicaSet) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, v1.ReplicaSet) error); ok { - r1 = rf(name, namespace, update) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/resource_svc.go b/components/console-backend-service/internal/domain/k8s/automock/resource_svc.go deleted file mode 100644 index fe0f26dbea30..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/resource_svc.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - types "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" - mock "github.com/stretchr/testify/mock" -) - -// resourceSvc is an autogenerated mock type for the resourceSvc type -type resourceSvc struct { - mock.Mock -} - -// Create provides a mock function with given fields: namespace, resource -func (_m *resourceSvc) Create(namespace string, resource types.Resource) (*types.Resource, error) { - ret := _m.Called(namespace, resource) - - var r0 *types.Resource - if rf, ok := ret.Get(0).(func(string, types.Resource) *types.Resource); ok { - r0 = rf(namespace, resource) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*types.Resource) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, types.Resource) error); ok { - r1 = rf(namespace, resource) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/secret_svc.go b/components/console-backend-service/internal/domain/k8s/automock/secret_svc.go deleted file mode 100644 index 8cf2a031e16f..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/secret_svc.go +++ /dev/null @@ -1,109 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// secretSvc is an autogenerated mock type for the secretSvc type -type secretSvc struct { - mock.Mock -} - -// Delete provides a mock function with given fields: name, namespace -func (_m *secretSvc) Delete(name string, namespace string) error { - ret := _m.Called(name, namespace) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(name, namespace) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: name, namespace -func (_m *secretSvc) Find(name string, namespace string) (*v1.Secret, error) { - ret := _m.Called(name, namespace) - - var r0 *v1.Secret - if rf, ok := ret.Get(0).(func(string, string) *v1.Secret); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Secret) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, params -func (_m *secretSvc) List(namespace string, params pager.PagingParams) ([]*v1.Secret, error) { - ret := _m.Called(namespace, params) - - var r0 []*v1.Secret - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1.Secret); ok { - r0 = rf(namespace, params) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.Secret) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, params) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *secretSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *secretSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Update provides a mock function with given fields: name, namespace, update -func (_m *secretSvc) Update(name string, namespace string, update v1.Secret) (*v1.Secret, error) { - ret := _m.Called(name, namespace, update) - - var r0 *v1.Secret - if rf, ok := ret.Get(0).(func(string, string, v1.Secret) *v1.Secret); ok { - r0 = rf(name, namespace, update) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Secret) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, v1.Secret) error); ok { - r1 = rf(name, namespace, update) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/self_subject_rules_svc.go b/components/console-backend-service/internal/domain/k8s/automock/self_subject_rules_svc.go deleted file mode 100644 index 3e95cd6358ca..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/self_subject_rules_svc.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - context "context" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/authorization/v1" -) - -// selfSubjectRulesSvc is an autogenerated mock type for the selfSubjectRulesSvc type -type selfSubjectRulesSvc struct { - mock.Mock -} - -// Create provides a mock function with given fields: ctx, ssrr -func (_m *selfSubjectRulesSvc) Create(ctx context.Context, ssrr []byte) (*v1.SelfSubjectRulesReview, error) { - ret := _m.Called(ctx, ssrr) - - var r0 *v1.SelfSubjectRulesReview - if rf, ok := ret.Get(0).(func(context.Context, []byte) *v1.SelfSubjectRulesReview); ok { - r0 = rf(ctx, ssrr) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.SelfSubjectRulesReview) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(context.Context, []byte) error); ok { - r1 = rf(ctx, ssrr) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/service_svc.go b/components/console-backend-service/internal/domain/k8s/automock/service_svc.go deleted file mode 100644 index f83ef15c8379..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/service_svc.go +++ /dev/null @@ -1,109 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// serviceSvc is an autogenerated mock type for the serviceSvc type -type serviceSvc struct { - mock.Mock -} - -// Delete provides a mock function with given fields: name, namespace -func (_m *serviceSvc) Delete(name string, namespace string) error { - ret := _m.Called(name, namespace) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(name, namespace) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: name, namespace -func (_m *serviceSvc) Find(name string, namespace string) (*v1.Service, error) { - ret := _m.Called(name, namespace) - - var r0 *v1.Service - if rf, ok := ret.Get(0).(func(string, string) *v1.Service); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Service) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, excludedLabels, pagingParams -func (_m *serviceSvc) List(namespace string, excludedLabels []string, pagingParams pager.PagingParams) ([]*v1.Service, error) { - ret := _m.Called(namespace, excludedLabels, pagingParams) - - var r0 []*v1.Service - if rf, ok := ret.Get(0).(func(string, []string, pager.PagingParams) []*v1.Service); ok { - r0 = rf(namespace, excludedLabels, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.Service) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, []string, pager.PagingParams) error); ok { - r1 = rf(namespace, excludedLabels, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *serviceSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *serviceSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Update provides a mock function with given fields: name, namespace, update -func (_m *serviceSvc) Update(name string, namespace string, update v1.Service) (*v1.Service, error) { - ret := _m.Called(name, namespace, update) - - var r0 *v1.Service - if rf, ok := ret.Get(0).(func(string, string, v1.Service) *v1.Service); ok { - r0 = rf(name, namespace, update) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1.Service) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, v1.Service) error); ok { - r1 = rf(name, namespace, update) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/automock/stateful_set_lister.go b/components/console-backend-service/internal/domain/k8s/automock/stateful_set_lister.go deleted file mode 100644 index 799b7cda8aac..000000000000 --- a/components/console-backend-service/internal/domain/k8s/automock/stateful_set_lister.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - v1 "k8s.io/api/apps/v1" -) - -// statefulSetLister is an autogenerated mock type for the statefulSetLister type -type statefulSetLister struct { - mock.Mock -} - -// ListStatefulSets provides a mock function with given fields: namespace -func (_m *statefulSetLister) ListStatefulSets(namespace string) ([]*v1.StatefulSet, error) { - ret := _m.Called(namespace) - - var r0 []*v1.StatefulSet - if rf, ok := ret.Get(0).(func(string) []*v1.StatefulSet); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1.StatefulSet) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/configmap_converter.go b/components/console-backend-service/internal/domain/k8s/configmap_converter.go deleted file mode 100644 index dce765485834..000000000000 --- a/components/console-backend-service/internal/domain/k8s/configmap_converter.go +++ /dev/null @@ -1,93 +0,0 @@ -package k8s - -import ( - "bytes" - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/state" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -type configMapConverter struct { - extractor state.ContainerExtractor -} - -func (c *configMapConverter) ToGQL(in *v1.ConfigMap) (*gqlschema.ConfigMap, error) { - if in == nil { - return nil, nil - } - - gqlJSON, err := c.configMapToGQLJSON(in) - if err != nil { - return nil, errors.Wrapf(err, "while converting %s `%s` to it's json representation", pretty.ConfigMap, in.Name) - } - - labels := in.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - - return &gqlschema.ConfigMap{ - Name: in.Name, - Namespace: in.Namespace, - CreationTimestamp: in.CreationTimestamp.Time, - Labels: labels, - JSON: gqlJSON, - }, nil -} - -func (c *configMapConverter) ToGQLs(in []*v1.ConfigMap) ([]*gqlschema.ConfigMap, error) { - var result []*gqlschema.ConfigMap - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *configMapConverter) configMapToGQLJSON(in *v1.ConfigMap) (gqlschema.JSON, error) { - if in == nil { - return nil, nil - } - - jsonByte, err := json.Marshal(in) - if err != nil { - return nil, errors.Wrapf(err, "while marshalling %s `%s`", pretty.ConfigMap, in.Name) - } - - var jsonMap map[string]interface{} - err = json.Unmarshal(jsonByte, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to map", pretty.ConfigMap, in.Name) - } - - var result gqlschema.JSON - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to GQL JSON", pretty.ConfigMap, in.Name) - } - - return result, nil -} - -func (c *configMapConverter) GQLJSONToConfigMap(in gqlschema.JSON) (v1.ConfigMap, error) { - var buf bytes.Buffer - in.MarshalGQL(&buf) - bufBytes := buf.Bytes() - result := v1.ConfigMap{} - err := json.Unmarshal(bufBytes, &result) - if err != nil { - return v1.ConfigMap{}, errors.Wrapf(err, "while unmarshalling GQL JSON of %s", pretty.ConfigMap) - } - - return result, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/configmap_converter_test.go b/components/console-backend-service/internal/domain/k8s/configmap_converter_test.go deleted file mode 100644 index d91b8d75128c..000000000000 --- a/components/console-backend-service/internal/domain/k8s/configmap_converter_test.go +++ /dev/null @@ -1,213 +0,0 @@ -package k8s - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestConfigMapConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := &configMapConverter{} - in := v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Namespace: "exampleNamespace", - CreationTimestamp: metav1.Time{}, - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - }, - } - expectedJSON, err := converter.configMapToGQLJSON(&in) - require.NoError(t, err) - expected := gqlschema.ConfigMap{ - Name: "exampleName", - Namespace: "exampleNamespace", - CreationTimestamp: time.Time{}, - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - JSON: expectedJSON, - } - - result, err := converter.ToGQL(&in) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - - }) - - t.Run("Empty", func(t *testing.T) { - converter := &configMapConverter{} - emptyConfigMapJSON, err := converter.configMapToGQLJSON(&v1.ConfigMap{}) - require.NoError(t, err) - expected := &gqlschema.ConfigMap{ - JSON: emptyConfigMapJSON, - Labels: gqlschema.Labels{}, - } - - result, err := converter.ToGQL(&v1.ConfigMap{}) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &configMapConverter{} - - result, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestConfigMapConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := configMapConverter{} - expectedName := "exampleName" - in := []*v1.ConfigMap{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName2", - }, - }, - } - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, expectedName, result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - converter := configMapConverter{} - var in []*v1.ConfigMap - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - converter := configMapConverter{} - expectedName := "exampleName" - in := []*v1.ConfigMap{ - nil, - &v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - }, - }, - nil, - } - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, expectedName, result[0].Name) - }) -} - -func TestConfigMapConverter_ConfigMapToGQLJSON(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := configMapConverter{} - expectedMap := map[string]interface{}{ - "kind": "exampleKind", - "metadata": map[string]interface{}{ - "name": "exampleName", - "labels": map[string]interface{}{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - "creationTimestamp": nil, - }, - } - in := v1.ConfigMap{ - TypeMeta: metav1.TypeMeta{ - Kind: "exampleKind", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - CreationTimestamp: metav1.Time{}, - }, - } - - expectedJSON := new(gqlschema.JSON) - err := expectedJSON.UnmarshalGQL(expectedMap) - require.NoError(t, err) - - result, err := converter.configMapToGQLJSON(&in) - - require.NoError(t, err) - assert.Equal(t, *expectedJSON, result) - }) - - t.Run("NilPassed", func(t *testing.T) { - converter := configMapConverter{} - - result, err := converter.configMapToGQLJSON(nil) - - require.Nil(t, result) - require.NoError(t, err) - }) -} - -func TestConfigMapConverter_GQLJSONToConfigMap(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := configMapConverter{} - inMap := map[string]interface{}{ - "kind": "exampleKind", - "metadata": map[string]interface{}{ - "name": "exampleName", - "labels": map[string]interface{}{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - "creationTimestamp": nil, - }, - } - expected := v1.ConfigMap{ - TypeMeta: metav1.TypeMeta{ - Kind: "exampleKind", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - CreationTimestamp: metav1.Time{}, - }, - } - - inJSON := new(gqlschema.JSON) - err := inJSON.UnmarshalGQL(inMap) - require.NoError(t, err) - - result, err := converter.GQLJSONToConfigMap(*inJSON) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/configmap_resolver.go b/components/console-backend-service/internal/domain/k8s/configmap_resolver.go deleted file mode 100644 index e10280ef0da2..000000000000 --- a/components/console-backend-service/internal/domain/k8s/configmap_resolver.go +++ /dev/null @@ -1,146 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=configMapSvc -output=automock -outpkg=automock -case=underscore -type configMapSvc interface { - Find(name, namespace string) (*v1.ConfigMap, error) - List(namespace string, pagingParams pager.PagingParams) ([]*v1.ConfigMap, error) - Update(name, namespace string, update v1.ConfigMap) (*v1.ConfigMap, error) - Delete(name, namespace string) error - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -//go:generate mockery -name=gqlConfigMapConverter -output=automock -outpkg=automock -case=underscore -type gqlConfigMapConverter interface { - ToGQL(in *v1.ConfigMap) (*gqlschema.ConfigMap, error) - ToGQLs(in []*v1.ConfigMap) ([]*gqlschema.ConfigMap, error) - GQLJSONToConfigMap(in gqlschema.JSON) (v1.ConfigMap, error) -} - -type configMapResolver struct { - configMapSvc configMapSvc - configMapConverter gqlConfigMapConverter -} - -func newConfigMapResolver(configMapLister configMapSvc) *configMapResolver { - return &configMapResolver{ - configMapSvc: configMapLister, - configMapConverter: &configMapConverter{}, - } -} - -func (r *configMapResolver) ConfigMapQuery(ctx context.Context, name, namespace string) (*gqlschema.ConfigMap, error) { - configMap, err := r.configMapSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s from namespace %s", pretty.ConfigMap, name, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - if configMap == nil { - return nil, nil - } - - converted, err := r.configMapConverter.ToGQL(configMap) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s from namespace %s", pretty.ConfigMap, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return converted, nil -} - -func (r *configMapResolver) ConfigMapsQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ConfigMap, error) { - configMaps, err := r.configMapSvc.List(namespace, pager.PagingParams{ - First: first, - Offset: offset, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s from namespace %s", pretty.ConfigMaps, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMaps, gqlerror.WithNamespace(namespace)) - } - - converted, err := r.configMapConverter.ToGQLs(configMaps) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s from namespace %s", pretty.ConfigMaps, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMaps, gqlerror.WithNamespace(namespace)) - } - - return converted, nil -} - -func (r *configMapResolver) UpdateConfigMapMutation(ctx context.Context, name string, namespace string, update gqlschema.JSON) (*gqlschema.ConfigMap, error) { - configMap, err := r.configMapConverter.GQLJSONToConfigMap(update) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace `%s`", pretty.ConfigMap, name, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updated, err := r.configMapSvc.Update(name, namespace, configMap) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace %s", pretty.ConfigMap, name, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updatedGql, err := r.configMapConverter.ToGQL(updated) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s `%s` from namespace %s", pretty.ConfigMap, name, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return updatedGql, nil -} - -func (r *configMapResolver) DeleteConfigMapMutation(ctx context.Context, name string, namespace string) (*gqlschema.ConfigMap, error) { - configMap, err := r.configMapSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while finding %s `%s` in namespace `%s`", pretty.ConfigMap, name, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - configMapCopy := configMap.DeepCopy() - deletedConfigMap, err := r.configMapConverter.ToGQL(configMapCopy) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ConfigMap)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - err = r.configMapSvc.Delete(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s` from namespace `%s`", pretty.ConfigMap, name, namespace)) - return nil, gqlerror.New(err, pretty.ConfigMap, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return deletedConfigMap, nil -} - -func (r *configMapResolver) ConfigMapEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ConfigMapEvent, error) { - channel := make(chan *gqlschema.ConfigMapEvent, 1) - filter := func(configMap *v1.ConfigMap) bool { - return configMap != nil && configMap.Namespace == namespace - } - - configMapListener := listener.NewConfigMap(channel, filter, r.configMapConverter) - - r.configMapSvc.Subscribe(configMapListener) - go func() { - defer close(channel) - defer r.configMapSvc.Unsubscribe(configMapListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/configmap_resolver_test.go b/components/console-backend-service/internal/domain/k8s/configmap_resolver_test.go deleted file mode 100644 index 553946434ee3..000000000000 --- a/components/console-backend-service/internal/domain/k8s/configmap_resolver_test.go +++ /dev/null @@ -1,441 +0,0 @@ -package k8s_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" -) - -func TestConfigMapResolver_ConfigMapQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.ConfigMap{ - Name: "Test", - } - name := "name" - namespace := "namespace" - resource := &v1.ConfigMap{} - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.ConfigMapQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - namespace := "namespace" - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("Find", name, namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - - result, err := resolver.ConfigMapQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &v1.ConfigMap{} - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("Find", name, namespace).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - - result, err := resolver.ConfigMapQuery(nil, name, namespace) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &v1.ConfigMap{} - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("ToGQL", resource).Return(nil, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.ConfigMapQuery(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestConfigMapResolver_ConfigMapsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "Test" - namespace := "namespace" - resource := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - resources := []*v1.ConfigMap{ - resource, resource, - } - expected := []*gqlschema.ConfigMap{ - { - Name: name, - }, - { - Name: name, - }, - } - - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.ConfigMapsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "namespace" - var resources []*v1.ConfigMap - var expected []*gqlschema.ConfigMap - - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - - result, err := resolver.ConfigMapsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - namespace := "namespace" - expected := errors.New("Test") - var resources []*v1.ConfigMap - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - - result, err := resolver.ConfigMapsQuery(nil, namespace, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - name := "Test" - namespace := "namespace" - resource := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - resources := []*v1.ConfigMap{ - resource, resource, - } - expected := errors.New("Test") - - resourceGetter := automock.NewConfigMapSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("ToGQLs", resources).Return(nil, expected) - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(resourceGetter) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.ConfigMapsQuery(nil, namespace, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestConfigMapResolver_UpdateConfigMapMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedConfigMapFix := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - updatedGQLConfigMapFix := &gqlschema.ConfigMap{ - Name: name, - Namespace: namespace, - Labels: map[string]string{ - "test": "test", - }, - } - gqlJSONFix := gqlschema.JSON{} - - configMapSvc := automock.NewConfigMapSvc() - configMapSvc.On("Update", name, namespace, *updatedConfigMapFix).Return(updatedConfigMapFix, nil).Once() - defer configMapSvc.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("GQLJSONToConfigMap", gqlJSONFix).Return(*updatedConfigMapFix, nil).Once() - converter.On("ToGQL", updatedConfigMapFix).Return(updatedGQLConfigMapFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.UpdateConfigMapMutation(nil, name, namespace, gqlJSONFix) - - require.NoError(t, err) - assert.Equal(t, updatedGQLConfigMapFix, result) - }) - - t.Run("ErrorConvertingToConfigMap", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - configMapSvc := automock.NewConfigMapSvc() - - converter := automock.NewGqlConfigMapConverter() - converter.On("GQLJSONToConfigMap", gqlJSONFix).Return(v1.ConfigMap{}, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.UpdateConfigMapMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorUpdating", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedConfigMapFix := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - configMapSvc := automock.NewConfigMapSvc() - configMapSvc.On("Update", name, namespace, *updatedConfigMapFix).Return(nil, expected).Once() - defer configMapSvc.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("GQLJSONToConfigMap", gqlJSONFix).Return(*updatedConfigMapFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.UpdateConfigMapMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.Nil(t, result) - }) - - t.Run("ErrorConvertingToGQL", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedConfigMapFix := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - configMapSvc := automock.NewConfigMapSvc() - configMapSvc.On("Update", name, namespace, *updatedConfigMapFix).Return(updatedConfigMapFix, nil).Once() - defer configMapSvc.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("GQLJSONToConfigMap", gqlJSONFix).Return(*updatedConfigMapFix, nil).Once() - converter.On("ToGQL", updatedConfigMapFix).Return(nil, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.UpdateConfigMapMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestConfigMapResolver_DeleteConfigMapMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - expected := &gqlschema.ConfigMap{ - Name: name, - Namespace: namespace, - } - - configMapSvc := automock.NewConfigMapSvc() - configMapSvc.On("Find", name, namespace).Return(resource, nil).Once() - configMapSvc.On("Delete", name, namespace).Return(nil).Once() - defer configMapSvc.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.DeleteConfigMapMutation(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - expected := errors.New("fix") - - configMapSvc := automock.NewConfigMapSvc() - configMapSvc.On("Find", name, namespace).Return(nil, expected).Once() - defer configMapSvc.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - - result, err := resolver.DeleteConfigMapMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorDeleting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - expected := errors.New("fix") - - configMapSvc := automock.NewConfigMapSvc() - configMapSvc.On("Find", name, namespace).Return(resource, nil).Once() - configMapSvc.On("Delete", name, namespace).Return(expected).Once() - defer configMapSvc.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - - result, err := resolver.DeleteConfigMapMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixConfigMap(name, namespace, map[string]string{ - "test": "test", - }) - error := errors.New("fix") - - configMapSvc := automock.NewConfigMapSvc() - configMapSvc.On("Find", name, namespace).Return(resource, nil).Once() - defer configMapSvc.AssertExpectations(t) - - converter := automock.NewGqlConfigMapConverter() - converter.On("ToGQL", resource).Return(nil, error).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewConfigMapResolver(configMapSvc) - resolver.SetConfigMapConverter(converter) - - result, err := resolver.DeleteConfigMapMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestConfigMapResolver_ConfigMapEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewConfigMapSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewConfigMapResolver(svc) - - _, err := resolver.ConfigMapEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewConfigMapSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewConfigMapResolver(svc) - - channel, err := resolver.ConfigMapEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/configmap_service.go b/components/console-backend-service/internal/domain/k8s/configmap_service.go deleted file mode 100644 index 48a658dfc525..000000000000 --- a/components/console-backend-service/internal/domain/k8s/configmap_service.go +++ /dev/null @@ -1,136 +0,0 @@ -package k8s - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1 "k8s.io/api/core/v1" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "k8s.io/client-go/tools/cache" -) - -type configMapService struct { - client corev1.CoreV1Interface - informer cache.SharedIndexInformer - notifier resource.Notifier -} - -func newConfigMapService(informer cache.SharedIndexInformer, client corev1.CoreV1Interface) *configMapService { - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - return &configMapService{ - client: client, - informer: informer, - notifier: notifier, - } -} - -func (svc *configMapService) Find(name, namespace string) (*v1.ConfigMap, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - configMap, ok := item.(*v1.ConfigMap) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ConfigMap", item) - } - - svc.ensureTypeMeta(configMap) - - return configMap, nil -} - -func (svc *configMapService) List(namespace string, pagingParams pager.PagingParams) ([]*v1.ConfigMap, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - var configMaps []*v1.ConfigMap - for _, item := range items { - configMap, ok := item.(*v1.ConfigMap) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ConfigMap", item) - } - - svc.ensureTypeMeta(configMap) - - configMaps = append(configMaps, configMap) - } - - return configMaps, nil -} - -func (svc *configMapService) Update(name, namespace string, update v1.ConfigMap) (*v1.ConfigMap, error) { - err := svc.checkUpdatePreconditions(name, namespace, update) - if err != nil { - return nil, err - } - - updated, err := svc.client.ConfigMaps(namespace).Update(context.Background(), &update, metav1.UpdateOptions{}) - if err != nil { - return nil, err - } - - svc.ensureTypeMeta(updated) - - return updated, nil -} - -func (svc *configMapService) Delete(name, namespace string) error { - return svc.client.ConfigMaps(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *configMapService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *configMapService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} - -func (svc *configMapService) checkUpdatePreconditions(name string, namespace string, update v1.ConfigMap) error { - var errs apierror.ErrorFieldAggregate - if name != update.Name { - errs = append(errs, apierror.NewInvalidField("metadata.name", update.Name, fmt.Sprintf("name of updated object does not match the original (%s)", name))) - } - if namespace != update.Namespace { - errs = append(errs, apierror.NewInvalidField("metadata.namespace", update.Namespace, fmt.Sprintf("namespace of updated object does not match the original (%s)", namespace))) - } - typeMeta := svc.configMapTypeMeta() - if update.Kind != typeMeta.Kind { - errs = append(errs, apierror.NewInvalidField("kind", update.Kind, "ConfigMap's kind should not be changed")) - } - if update.APIVersion != typeMeta.APIVersion { - errs = append(errs, apierror.NewInvalidField("apiVersion", update.APIVersion, "ConfigMap's apiVersion should not be changed")) - } - - if len(errs) > 0 { - return apierror.NewInvalid(pretty.ConfigMap, errs) - } - - return nil -} - -// Kubernetes API used by client-go doesn't provide kind and apiVersion so we have to add it here -// See: https://github.com/kubernetes/kubernetes/issues/3030 -func (svc *configMapService) ensureTypeMeta(configMap *v1.ConfigMap) { - configMap.TypeMeta = svc.configMapTypeMeta() -} - -func (svc *configMapService) configMapTypeMeta() metav1.TypeMeta { - return metav1.TypeMeta{ - Kind: "ConfigMap", - APIVersion: "v1", - } -} diff --git a/components/console-backend-service/internal/domain/k8s/configmap_service_test.go b/components/console-backend-service/internal/domain/k8s/configmap_service_test.go deleted file mode 100644 index 738c06c05981..000000000000 --- a/components/console-backend-service/internal/domain/k8s/configmap_service_test.go +++ /dev/null @@ -1,411 +0,0 @@ -package k8s_test - -import ( - "context" - "testing" - "time" - - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/tools/cache" -) - -func TestConfigMapService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNamespace" - - configMap := fixConfigMap(instanceName, namespace, nil) - configMapInformer, _ := fixConfigMapInformer(configMap) - - svc := k8s.NewConfigMapService(configMapInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, configMapInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, configMap, instance) - }) - - t.Run("NotFound", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - - svc := k8s.NewConfigMapService(configMapInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, configMapInformer) - - instance, err := svc.Find("doesntExist", "notExistingNamespace") - require.NoError(t, err) - assert.Nil(t, instance) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNamespace" - - expectedConfigMap := fixConfigMap(instanceName, namespace, nil) - returnedConfigMap := fixConfigMapWithoutTypeMeta(instanceName, namespace, nil) - configMapInformer, _ := fixConfigMapInformer(returnedConfigMap) - - svc := k8s.NewConfigMapService(configMapInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, configMapInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, expectedConfigMap, instance) - }) -} - -func TestConfigMapService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "testNamespace" - configMap1 := fixConfigMap("configMap1", namespace, nil) - configMap2 := fixConfigMap("configMap2", namespace, nil) - configMap3 := fixConfigMap("configMap3", "differentNamespace", nil) - - configMapInformer, _ := fixConfigMapInformer(configMap1, configMap2, configMap3) - - svc := k8s.NewConfigMapService(configMapInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, configMapInformer) - - configMaps, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1.ConfigMap{ - configMap1, configMap2, - }, configMaps) - }) - - t.Run("NotFound", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - - svc := k8s.NewConfigMapService(configMapInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, configMapInformer) - - var emptyArray []*v1.ConfigMap - configMaps, err := svc.List("notExistingNamespace", pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, configMaps) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - namespace := "testNamespace" - returnedConfigMap1 := fixConfigMapWithoutTypeMeta("configMap1", namespace, nil) - returnedConfigMap2 := fixConfigMapWithoutTypeMeta("configMap2", namespace, nil) - returnedConfigMap3 := fixConfigMapWithoutTypeMeta("configMap3", "differentNamespace", nil) - expectedConfigMap1 := fixConfigMap("configMap1", namespace, nil) - expectedConfigMap2 := fixConfigMap("configMap2", namespace, nil) - - configMapInformer, _ := fixConfigMapInformer(returnedConfigMap1, returnedConfigMap2, returnedConfigMap3) - - svc := k8s.NewConfigMapService(configMapInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, configMapInformer) - - configMaps, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1.ConfigMap{ - expectedConfigMap1, expectedConfigMap2, - }, configMaps) - }) -} - -func TestConfigMapService_Update(t *testing.T) { - t.Run("Success", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - exampleConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixConfigMapInformer(exampleConfigMap) - svc := k8s.NewConfigMapService(configMapInformer, client) - - update := exampleConfigMap.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - configMap, err := svc.Update(exampleName, exampleNamespace, *update) - require.NoError(t, err) - assert.Equal(t, update, configMap) - - configMap, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, update, configMap) - }) - - t.Run("NotFound", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - exampleConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, client) - - update := exampleConfigMap.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - configMap, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.Nil(t, configMap) - - configMap, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.Error(t, err) - assert.Nil(t, configMap) - }) - - t.Run("NameMismatch", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - exampleConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixConfigMapInformer(exampleConfigMap) - svc := k8s.NewConfigMapService(configMapInformer, client) - - update := exampleConfigMap.DeepCopy() - update.Name = "NameMismatch" - update.Labels = map[string]string{ - "example": "example", - } - - configMap, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, configMap) - - configMap, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleConfigMap, configMap) - }) - - t.Run("NamespaceMismatch", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - exampleConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixConfigMapInformer(exampleConfigMap) - svc := k8s.NewConfigMapService(configMapInformer, client) - - update := exampleConfigMap.DeepCopy() - update.Namespace = "NamespaceMismatch" - update.Labels = map[string]string{ - "example": "example", - } - - configMap, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, configMap) - - configMap, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleConfigMap, configMap) - }) - - t.Run("InvalidUpdate", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - exampleConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixFailingConfigMapInformer(exampleConfigMap) - svc := k8s.NewConfigMapService(configMapInformer, client) - - update := exampleConfigMap.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - configMap, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.Nil(t, configMap) - - configMap, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleConfigMap, configMap) - }) - - t.Run("TypeMetaChanged", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - exampleConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixConfigMapInformer(exampleConfigMap) - svc := k8s.NewConfigMapService(configMapInformer, client) - - update := exampleConfigMap.DeepCopy() - update.Kind = "OtherKind" - configMap, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, configMap) - - update.Kind = "ConfigMap" - update.APIVersion = "OtherVersion" - configMap, err = svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, configMap) - - configMap, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleConfigMap, configMap) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - returnedConfigMap := fixConfigMapWithoutTypeMeta(exampleName, exampleNamespace, nil) - expectedConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixConfigMapInformer(returnedConfigMap) - svc := k8s.NewConfigMapService(configMapInformer, client) - - update := expectedConfigMap.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - configMap, err := svc.Update(exampleName, exampleNamespace, *update) - require.NoError(t, err) - assert.Equal(t, update, configMap) - - configMap, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, update, configMap) - }) -} - -func TestConfigMapService_Delete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - exampleName := "exampleConfigMap" - exampleNamespace := "exampleNamespace" - exampleConfigMap := fixConfigMap(exampleName, exampleNamespace, nil) - configMapInformer, client := fixConfigMapInformer(exampleConfigMap) - svc := k8s.NewConfigMapService(configMapInformer, client) - - err := svc.Delete(exampleName, exampleNamespace) - - require.NoError(t, err) - _, err = client.ConfigMaps(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - assert.True(t, errors.IsNotFound(err)) - }) -} - -func TestConfigMapService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - configMapListener := listener.NewConfigMap(nil, nil, nil) - svc.Subscribe(configMapListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - configMapListener := listener.NewConfigMap(nil, nil, nil) - - svc.Subscribe(configMapListener) - svc.Subscribe(configMapListener) - }) - - t.Run("Multiple", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - configMapListenerA := listener.NewConfigMap(nil, nil, nil) - configMapListenerB := listener.NewConfigMap(nil, nil, nil) - - svc.Subscribe(configMapListenerA) - svc.Subscribe(configMapListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - - svc.Subscribe(nil) - }) -} - -func TestConfigMapService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - configMapListener := listener.NewConfigMap(nil, nil, nil) - svc.Subscribe(configMapListener) - - svc.Unsubscribe(configMapListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - configMapListener := listener.NewConfigMap(nil, nil, nil) - svc.Subscribe(configMapListener) - svc.Subscribe(configMapListener) - - svc.Unsubscribe(configMapListener) - }) - - t.Run("Multiple", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - configMapListenerA := listener.NewConfigMap(nil, nil, nil) - configMapListenerB := listener.NewConfigMap(nil, nil, nil) - svc.Subscribe(configMapListenerA) - svc.Subscribe(configMapListenerB) - - svc.Unsubscribe(configMapListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - configMapInformer, _ := fixConfigMapInformer() - svc := k8s.NewConfigMapService(configMapInformer, nil) - - svc.Unsubscribe(nil) - }) -} - -func fixConfigMap(name, namespace string, labels map[string]string) *v1.ConfigMap { - configMap := fixConfigMapWithoutTypeMeta(name, namespace, labels) - configMap.TypeMeta = metav1.TypeMeta{ - Kind: "ConfigMap", - APIVersion: "v1", - } - return configMap -} - -func fixConfigMapWithoutTypeMeta(name, namespace string, labels map[string]string) *v1.ConfigMap { - return &v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: labels, - }, - } -} - -func fixConfigMapInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().ConfigMaps().Informer() - - return informer, client.CoreV1() -} - -func fixFailingConfigMapInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - client.PrependReactor("update", "configmaps", failingReactor) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().ConfigMaps().Informer() - - return informer, client.CoreV1() -} diff --git a/components/console-backend-service/internal/domain/k8s/dep.go b/components/console-backend-service/internal/domain/k8s/dep.go deleted file mode 100644 index bc751c0a923a..000000000000 --- a/components/console-backend-service/internal/domain/k8s/dep.go +++ /dev/null @@ -1,10 +0,0 @@ -package k8s - -import ( - api "k8s.io/api/apps/v1" -) - -//go:generate mockery -name=deploymentGetter -output=automock -outpkg=automock -case=underscore -type deploymentGetter interface { - Find(name string, namespace string) (*api.Deployment, error) -} diff --git a/components/console-backend-service/internal/domain/k8s/deployment_converter.go b/components/console-backend-service/internal/domain/k8s/deployment_converter.go deleted file mode 100644 index 4d2df0e8d825..000000000000 --- a/components/console-backend-service/internal/domain/k8s/deployment_converter.go +++ /dev/null @@ -1,81 +0,0 @@ -package k8s - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - api "k8s.io/api/apps/v1" -) - -type deploymentConverter struct{} - -func (c *deploymentConverter) ToGQL(in *api.Deployment) *gqlschema.Deployment { - if in == nil { - return nil - } - - labels := in.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - - return &gqlschema.Deployment{ - Name: in.Name, - Namespace: in.Namespace, - CreationTimestamp: in.CreationTimestamp.Time, - Labels: labels, - Status: c.toGQLStatus(*in), - Containers: c.toGQLContainers(*in), - } -} - -func (c *deploymentConverter) ToGQLs(in []*api.Deployment) []*gqlschema.Deployment { - var result []*gqlschema.Deployment - for _, item := range in { - converted := c.ToGQL(item) - - if converted != nil { - result = append(result, converted) - } - } - - return result -} - -func (c *deploymentConverter) toGQLStatus(in api.Deployment) *gqlschema.DeploymentStatus { - var conditions []*gqlschema.DeploymentCondition - for _, condition := range in.Status.Conditions { - conditions = append(conditions, c.toGQLCondition(condition)) - } - - return &gqlschema.DeploymentStatus{ - AvailableReplicas: int(in.Status.AvailableReplicas), - ReadyReplicas: int(in.Status.ReadyReplicas), - Replicas: int(in.Status.Replicas), - UpdatedReplicas: int(in.Status.UpdatedReplicas), - Conditions: conditions, - } -} - -func (c *deploymentConverter) toGQLCondition(in api.DeploymentCondition) *gqlschema.DeploymentCondition { - return &gqlschema.DeploymentCondition{ - Reason: in.Reason, - Message: in.Message, - LastUpdateTimestamp: in.LastUpdateTime.Time, - LastTransitionTimestamp: in.LastTransitionTime.Time, - Type: string(in.Type), - Status: string(in.Status), - } -} - -func (c *deploymentConverter) toGQLContainers(in api.Deployment) []*gqlschema.Container { - var containers []*gqlschema.Container - for _, container := range in.Spec.Template.Spec.Containers { - gqlContainer := &gqlschema.Container{ - Name: container.Name, - Image: container.Image, - } - - containers = append(containers, gqlContainer) - } - - return containers -} diff --git a/components/console-backend-service/internal/domain/k8s/deployment_converter_test.go b/components/console-backend-service/internal/domain/k8s/deployment_converter_test.go deleted file mode 100644 index e7c00fb4fe78..000000000000 --- a/components/console-backend-service/internal/domain/k8s/deployment_converter_test.go +++ /dev/null @@ -1,148 +0,0 @@ -package k8s - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - appsApi "k8s.io/api/apps/v1" - coreApi "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestDeploymentConverter_ToGQL(t *testing.T) { - t.Run("All properties are given", func(t *testing.T) { - var zeroTimeStamp time.Time - - deployment := fixDeployment("image") - - expected := &gqlschema.Deployment{ - Name: "name", - CreationTimestamp: zeroTimeStamp, - Namespace: "namespace", - Labels: gqlschema.Labels{"test": "ok", "ok": "test"}, - Status: &gqlschema.DeploymentStatus{ - Replicas: 1, - AvailableReplicas: 1, - ReadyReplicas: 1, - UpdatedReplicas: 1, - Conditions: []*gqlschema.DeploymentCondition{ - { - Status: "True", - Type: "Available", - Message: "message", - Reason: "reason", - }, - }, - }, - Containers: []*gqlschema.Container{ - { - Name: "test", - Image: "image", - }, - }, - } - - converter := &deploymentConverter{} - result := converter.ToGQL(deployment) - - require.NotNil(t, result) - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &deploymentConverter{} - converter.ToGQL(&appsApi.Deployment{}) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &deploymentConverter{} - result := converter.ToGQL(nil) - - assert.Nil(t, result) - }) -} - -func TestDeploymentConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - deployments := []*appsApi.Deployment{ - fixDeployment("image"), - fixDeployment("image"), - } - - converter := deploymentConverter{} - result := converter.ToGQLs(deployments) - - assert.Len(t, result, 2) - assert.Equal(t, "name", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var deployments []*appsApi.Deployment - - converter := deploymentConverter{} - result := converter.ToGQLs(deployments) - - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - deployments := []*appsApi.Deployment{ - nil, - fixDeployment("image"), - nil, - } - - converter := deploymentConverter{} - result := converter.ToGQLs(deployments) - - assert.Len(t, result, 1) - assert.Equal(t, "name", result[0].Name) - }) -} - -func fixDeployment(image string) *appsApi.Deployment { - var mockTimeStamp v1.Time - - return &appsApi.Deployment{ - ObjectMeta: v1.ObjectMeta{ - Name: "name", - Namespace: "namespace", - CreationTimestamp: mockTimeStamp, - Labels: map[string]string{ - "test": "ok", - "ok": "test", - }, - }, - Status: appsApi.DeploymentStatus{ - UpdatedReplicas: 1, - Replicas: 1, - ReadyReplicas: 1, - AvailableReplicas: 1, - Conditions: []appsApi.DeploymentCondition{ - { - Reason: "reason", - Message: "message", - LastUpdateTime: mockTimeStamp, - LastTransitionTime: mockTimeStamp, - Type: appsApi.DeploymentAvailable, - Status: coreApi.ConditionTrue, - }, - }, - }, - Spec: appsApi.DeploymentSpec{ - Template: coreApi.PodTemplateSpec{ - Spec: coreApi.PodSpec{ - Containers: []coreApi.Container{ - { - Name: "test", - Image: image, - }, - }, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/deployment_resolver.go b/components/console-backend-service/internal/domain/k8s/deployment_resolver.go deleted file mode 100644 index 2aa4a1b351ed..000000000000 --- a/components/console-backend-service/internal/domain/k8s/deployment_resolver.go +++ /dev/null @@ -1,124 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - scPretty "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - scaPretty "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/pkg/errors" - v1 "k8s.io/api/apps/v1" -) - -//go:generate mockery -name=deploymentLister -output=automock -outpkg=automock -case=underscore -type deploymentLister interface { - List(namespace string) ([]*v1.Deployment, error) - ListWithoutFunctions(namespace string) ([]*v1.Deployment, error) - Find(name, namespace string) (*v1.Deployment, error) - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -type deploymentResolver struct { - deploymentLister deploymentLister - deploymentConverter *deploymentConverter - scRetriever shared.ServiceCatalogRetriever - scaRetriever shared.ServiceCatalogAddonsRetriever -} - -func newDeploymentResolver(deploymentLister deploymentLister, scRetriever shared.ServiceCatalogRetriever, scaRetriever shared.ServiceCatalogAddonsRetriever) *deploymentResolver { - return &deploymentResolver{ - deploymentLister: deploymentLister, - scRetriever: scRetriever, - scaRetriever: scaRetriever, - } -} - -func (r *deploymentResolver) DeploymentsQuery(ctx context.Context, namespace string, excludeFunctions *bool) ([]*gqlschema.Deployment, error) { - var deployments []*v1.Deployment - var err error - if excludeFunctions == nil || !*excludeFunctions { - deployments, err = r.deploymentLister.List(namespace) - } else { - deployments, err = r.deploymentLister.ListWithoutFunctions(namespace) - } - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s in namespace `%s`", pretty.Deployments, namespace)) - return nil, gqlerror.New(err, pretty.Deployments, gqlerror.WithNamespace(namespace)) - } - - return r.deploymentConverter.ToGQLs(deployments), nil -} - -func (r *Resolver) DeploymentEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.DeploymentEvent, error) { - channel := make(chan *gqlschema.DeploymentEvent, 1) - filter := func(deployment *v1.Deployment) bool { - return deployment != nil && deployment.Namespace == namespace - } - - deploymentListener := listener.NewDeployment(channel, filter, r.deploymentConverter) - - r.deploymentResolver.deploymentLister.Subscribe(deploymentListener) - go func() { - defer close(channel) - defer r.deploymentResolver.deploymentLister.Unsubscribe(deploymentListener) - <-ctx.Done() - }() - - return channel, nil -} - -func (r *deploymentResolver) DeploymentBoundServiceInstanceNamesField(ctx context.Context, deployment *gqlschema.Deployment) ([]string, error) { - if deployment == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve ServiceInstanceNames for %s"), pretty.Deployment, pretty.Deployment) - return nil, gqlerror.NewInternal() - } - - kind := "deployment" - if _, exists := deployment.Labels["function"]; exists { - kind = "function" - } - - usages, err := r.scaRetriever.ServiceBindingUsage().ListByUsageKind(deployment.Namespace, kind, deployment.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - - glog.Error(errors.Wrapf(err, "while listing %s for %s in namespace `%s`, name `%s` and kind `%s`", scaPretty.ServiceBindingUsages, pretty.Deployment, deployment.Namespace, deployment.Name, kind)) - return nil, gqlerror.New(err, scaPretty.ServiceBindingUsages, gqlerror.WithNamespace(deployment.Namespace)) - } - - instanceNames := make(map[string]struct{}) - for _, usage := range usages { - binding, err := r.scRetriever.ServiceBinding().Find(deployment.Namespace, usage.Spec.ServiceBindingRef.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - - glog.Error(errors.Wrapf(err, "while gathering %s for namespace `%s` with name `%s`", scPretty.ServiceBinding, deployment.Namespace, usage.Spec.ServiceBindingRef.Name)) - return nil, gqlerror.New(err, scPretty.ServiceBinding, gqlerror.WithName(usage.Spec.ServiceBindingRef.Name), gqlerror.WithNamespace(deployment.Namespace)) - } - - if binding != nil { - instanceNames[binding.Spec.InstanceRef.Name] = struct{}{} - } - } - - result := make([]string, 0, len(instanceNames)) - for name := range instanceNames { - result = append(result, name) - } - - return result, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/deployment_resolver_test.go b/components/console-backend-service/internal/domain/k8s/deployment_resolver_test.go deleted file mode 100644 index 3deebab78e20..000000000000 --- a/components/console-backend-service/internal/domain/k8s/deployment_resolver_test.go +++ /dev/null @@ -1,368 +0,0 @@ -package k8s_test - -import ( - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - scMock "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/apps/v1" -) - -func TestDeploymentResolver_DeploymentsQuery(t *testing.T) { - nsName := "test" - - t.Run("Success with default", func(t *testing.T) { - deployment := fixDeployment("test", nsName, "function") - deployments := []*v1.Deployment{deployment} - - expected := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "function": "", - }, - Status: &gqlschema.DeploymentStatus{}, - } - - svc := automock.NewDeploymentLister() - svc.On("List", nsName).Return(deployments, nil).Once() - svc.On("ListWithoutFunctions", mock.Anything, mock.Anything).Return(deployments, nil).Once() - resolver := k8s.NewDeploymentResolver(svc, nil, nil) - - result, err := resolver.DeploymentsQuery(nil, nsName, nil) - - require.NoError(t, err) - assert.Equal(t, []*gqlschema.Deployment{expected}, result) - svc.AssertNotCalled(t, "ListWithoutFunctions", mock.Anything, mock.Anything) - }) - - t.Run("Success with functions", func(t *testing.T) { - deployment := fixDeployment("test", nsName, "deployment") - deployments := []*v1.Deployment{deployment, deployment} - - expected := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "deployment": "", - }, - Status: &gqlschema.DeploymentStatus{}, - } - - svc := automock.NewDeploymentLister() - svc.On("List", nsName).Return(deployments, nil).Once() - svc.On("ListWithoutFunctions", mock.Anything, mock.Anything).Return(deployments, nil).Once() - resolver := k8s.NewDeploymentResolver(svc, nil, nil) - - result, err := resolver.DeploymentsQuery(nil, nsName, getBoolPointer(false)) - - require.NoError(t, err) - assert.Equal(t, []*gqlschema.Deployment{expected, expected}, result) - svc.AssertNotCalled(t, "ListWithoutFunctions", mock.Anything, mock.Anything) - }) - - t.Run("Success without functions", func(t *testing.T) { - deployment := fixDeployment("test", nsName, "function") - deployments := []*v1.Deployment{deployment, deployment} - - expected := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "function": "", - }, - Status: &gqlschema.DeploymentStatus{}, - } - - svc := automock.NewDeploymentLister() - svc.On("List", mock.Anything, mock.Anything).Return(deployments, nil).Once() - svc.On("ListWithoutFunctions", nsName).Return(deployments, nil).Once() - resolver := k8s.NewDeploymentResolver(svc, nil, nil) - - result, err := resolver.DeploymentsQuery(nil, nsName, getBoolPointer(true)) - - require.NoError(t, err) - assert.Equal(t, []*gqlschema.Deployment{expected, expected}, result) - svc.AssertNotCalled(t, "List", mock.Anything, mock.Anything) - }) - - t.Run("Not found with functions", func(t *testing.T) { - svc := automock.NewDeploymentLister() - svc.On("List", nsName).Return([]*v1.Deployment{}, nil).Once() - svc.On("ListWithoutFunctions", mock.Anything, mock.Anything).Return([]*v1.Deployment{}, nil).Once() - resolver := k8s.NewDeploymentResolver(svc, nil, nil) - - result, err := resolver.DeploymentsQuery(nil, nsName, getBoolPointer(false)) - - require.NoError(t, err) - assert.Empty(t, result) - svc.AssertNotCalled(t, "ListWithoutFunctions", mock.Anything, mock.Anything) - }) - - t.Run("Not found without functions", func(t *testing.T) { - svc := automock.NewDeploymentLister() - svc.On("List", mock.Anything, mock.Anything).Return([]*v1.Deployment{}, nil).Once() - svc.On("ListWithoutFunctions", nsName).Return([]*v1.Deployment{}, nil).Once() - resolver := k8s.NewDeploymentResolver(svc, nil, nil) - - result, err := resolver.DeploymentsQuery(nil, nsName, getBoolPointer(true)) - - require.NoError(t, err) - assert.Empty(t, result) - svc.AssertNotCalled(t, "List", mock.Anything, mock.Anything) - }) - - t.Run("Error with functions", func(t *testing.T) { - svc := automock.NewDeploymentLister() - svc.On("List", nsName).Return(nil, errors.New("test")).Once() - defer svc.AssertExpectations(t) - resolver := k8s.NewDeploymentResolver(svc, nil, nil) - - _, err := resolver.DeploymentsQuery(nil, nsName, getBoolPointer(false)) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) - - t.Run("Error without functions", func(t *testing.T) { - svc := automock.NewDeploymentLister() - svc.On("ListWithoutFunctions", nsName).Return(nil, errors.New("test")).Once() - defer svc.AssertExpectations(t) - resolver := k8s.NewDeploymentResolver(svc, nil, nil) - - _, err := resolver.DeploymentsQuery(nil, nsName, getBoolPointer(true)) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestDeploymentResolver_DeploymentBoundServiceInstanceNamesField(t *testing.T) { - nsName := "test" - - t.Run("Success for deployment", func(t *testing.T) { - deployment := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{}, - } - - usage := &v1alpha1.ServiceBindingUsage{ - Spec: v1alpha1.ServiceBindingUsageSpec{ - ServiceBindingRef: v1alpha1.LocalReferenceByName{ - Name: "test", - }, - }, - } - - binding := &v1beta1.ServiceBinding{ - Spec: v1beta1.ServiceBindingSpec{ - InstanceRef: v1beta1.LocalObjectReference{ - Name: "instance", - }, - }, - } - - lister := new(scMock.ServiceBindingUsageLister) - lister.On("ListByUsageKind", deployment.Namespace, "deployment", deployment.Name).Return([]*v1alpha1.ServiceBindingUsage{usage}, nil) - getter := new(scMock.ServiceBindingFinderLister) - getter.On("Find", deployment.Namespace, usage.Spec.ServiceBindingRef.Name).Return(binding, nil) - - scRetriever := new(scMock.ServiceCatalogRetriever) - scRetriever.On("ServiceBinding").Return(getter) - - scaRetriever := new(scMock.ServiceCatalogAddonsRetriever) - scaRetriever.On("ServiceBindingUsage").Return(lister) - - resolver := k8s.NewDeploymentResolver(nil, scRetriever, scaRetriever) - - result, err := resolver.DeploymentBoundServiceInstanceNamesField(nil, deployment) - require.NoError(t, err) - assert.Equal(t, []string{ - "instance", - }, result) - }) - - t.Run("Success for function", func(t *testing.T) { - deployment := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "function": "", - }, - } - - usage := &v1alpha1.ServiceBindingUsage{ - Spec: v1alpha1.ServiceBindingUsageSpec{ - ServiceBindingRef: v1alpha1.LocalReferenceByName{ - Name: "test", - }, - }, - } - - binding := &v1beta1.ServiceBinding{ - Spec: v1beta1.ServiceBindingSpec{ - InstanceRef: v1beta1.LocalObjectReference{ - Name: "instance", - }, - }, - } - - lister := new(scMock.ServiceBindingUsageLister) - lister.On("ListByUsageKind", deployment.Namespace, "function", deployment.Name).Return([]*v1alpha1.ServiceBindingUsage{usage}, nil) - getter := new(scMock.ServiceBindingFinderLister) - getter.On("Find", deployment.Namespace, usage.Spec.ServiceBindingRef.Name).Return(binding, nil) - - scRetriever := new(scMock.ServiceCatalogRetriever) - scRetriever.On("ServiceBinding").Return(getter) - - scaRetriever := new(scMock.ServiceCatalogAddonsRetriever) - scaRetriever.On("ServiceBindingUsage").Return(lister) - - resolver := k8s.NewDeploymentResolver(nil, scRetriever, scaRetriever) - - result, err := resolver.DeploymentBoundServiceInstanceNamesField(nil, deployment) - require.NoError(t, err) - assert.Equal(t, []string{ - "instance", - }, result) - }) - - t.Run("No usages", func(t *testing.T) { - deployment := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "function": "", - }, - } - - lister := new(scMock.ServiceBindingUsageLister) - lister.On("ListByUsageKind", deployment.Namespace, "function", deployment.Name).Return([]*v1alpha1.ServiceBindingUsage{}, nil) - - scaRetriever := new(scMock.ServiceCatalogAddonsRetriever) - scaRetriever.On("ServiceBindingUsage").Return(lister) - - resolver := k8s.NewDeploymentResolver(nil, nil, scaRetriever) - - result, err := resolver.DeploymentBoundServiceInstanceNamesField(nil, deployment) - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("No binding", func(t *testing.T) { - deployment := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "function": "", - }, - } - - usage := &v1alpha1.ServiceBindingUsage{ - Spec: v1alpha1.ServiceBindingUsageSpec{ - ServiceBindingRef: v1alpha1.LocalReferenceByName{ - Name: "test", - }, - }, - } - - lister := new(scMock.ServiceBindingUsageLister) - lister.On("ListByUsageKind", deployment.Namespace, "function", deployment.Name).Return([]*v1alpha1.ServiceBindingUsage{usage}, nil) - getter := new(scMock.ServiceBindingFinderLister) - getter.On("Find", deployment.Namespace, usage.Spec.ServiceBindingRef.Name).Return(nil, nil) - - scRetriever := new(scMock.ServiceCatalogRetriever) - scRetriever.On("ServiceBinding").Return(getter) - - scaRetriever := new(scMock.ServiceCatalogAddonsRetriever) - scaRetriever.On("ServiceBindingUsage").Return(lister) - - resolver := k8s.NewDeploymentResolver(nil, scRetriever, scaRetriever) - - result, err := resolver.DeploymentBoundServiceInstanceNamesField(nil, deployment) - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("Error when deployment not provided", func(t *testing.T) { - resolver := k8s.NewDeploymentResolver(nil, nil, nil) - - _, err := resolver.DeploymentBoundServiceInstanceNamesField(nil, nil) - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) - - t.Run("Error while listing usages", func(t *testing.T) { - deployment := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "function": "", - }, - } - - lister := new(scMock.ServiceBindingUsageLister) - lister.On("ListByUsageKind", deployment.Namespace, "function", deployment.Name).Return([]*v1alpha1.ServiceBindingUsage{}, errors.New("trolololo")) - defer lister.AssertExpectations(t) - - scaRetriever := new(scMock.ServiceCatalogAddonsRetriever) - scaRetriever.On("ServiceBindingUsage").Return(lister) - - resolver := k8s.NewDeploymentResolver(nil, nil, scaRetriever) - - _, err := resolver.DeploymentBoundServiceInstanceNamesField(nil, deployment) - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) - - t.Run("Error while getting binding", func(t *testing.T) { - deployment := &gqlschema.Deployment{ - Name: "test", - Namespace: nsName, - Labels: gqlschema.Labels{ - "function": "", - }, - } - - usage := &v1alpha1.ServiceBindingUsage{ - Spec: v1alpha1.ServiceBindingUsageSpec{ - ServiceBindingRef: v1alpha1.LocalReferenceByName{ - Name: "test", - }, - }, - } - - lister := new(scMock.ServiceBindingUsageLister) - lister.On("ListByUsageKind", deployment.Namespace, "function", deployment.Name).Return([]*v1alpha1.ServiceBindingUsage{usage}, nil) - defer lister.AssertExpectations(t) - getter := new(scMock.ServiceBindingFinderLister) - getter.On("Find", deployment.Namespace, usage.Spec.ServiceBindingRef.Name).Return(nil, errors.New("trolololo")) - defer getter.AssertExpectations(t) - - scRetriever := new(scMock.ServiceCatalogRetriever) - scRetriever.On("ServiceBinding").Return(getter) - - scaRetriever := new(scMock.ServiceCatalogAddonsRetriever) - scaRetriever.On("ServiceBindingUsage").Return(lister) - - resolver := k8s.NewDeploymentResolver(nil, scRetriever, scaRetriever) - - _, err := resolver.DeploymentBoundServiceInstanceNamesField(nil, deployment) - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func getBoolPointer(value bool) *bool { - return &value -} diff --git a/components/console-backend-service/internal/domain/k8s/deployment_service.go b/components/console-backend-service/internal/domain/k8s/deployment_service.go deleted file mode 100644 index ac916a88ec78..000000000000 --- a/components/console-backend-service/internal/domain/k8s/deployment_service.go +++ /dev/null @@ -1,109 +0,0 @@ -package k8s - -import ( - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - "github.com/pkg/errors" - api "k8s.io/api/apps/v1" - "k8s.io/client-go/tools/cache" -) - -type deploymentService struct { - informer cache.SharedIndexInformer - notifier resource.Notifier -} - -func newDeploymentService(informer cache.SharedIndexInformer) (*deploymentService, error) { - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - svc := &deploymentService{ - informer: informer, - notifier: notifier, - } - - err := informer.AddIndexers(cache.Indexers{ - "functionFilter": func(obj interface{}) ([]string, error) { - deployment, err := svc.toDeployment(obj) - if err != nil { - return nil, errors.Wrapf(err, "while indexing by `functionFilter`") - } - - _, isFunction := deployment.Labels["function"] - key := fmt.Sprintf("%s/%t", deployment.Namespace, isFunction) - return []string{key}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - return svc, nil -} - -func (svc *deploymentService) Find(name string, namespace string) (*api.Deployment, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - deploy, ok := item.(*api.Deployment) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *v1beta2.Deployment", item) - } - - return deploy, nil -} - -func (svc *deploymentService) List(namespace string) ([]*api.Deployment, error) { - items, err := svc.informer.GetIndexer().ByIndex("namespace", namespace) - if err != nil { - return nil, err - } - - return svc.toDeployments(items) -} - -func (svc *deploymentService) ListWithoutFunctions(namespace string) ([]*api.Deployment, error) { - key := fmt.Sprintf("%s/false", namespace) - items, err := svc.informer.GetIndexer().ByIndex("functionFilter", key) - if err != nil { - return nil, err - } - - return svc.toDeployments(items) -} - -func (svc *deploymentService) toDeployments(items []interface{}) ([]*api.Deployment, error) { - var deployments []*api.Deployment - for _, item := range items { - deployment, err := svc.toDeployment(item) - if err != nil { - return nil, err - } - - deployments = append(deployments, deployment) - } - - return deployments, nil -} - -func (svc *deploymentService) toDeployment(item interface{}) (*api.Deployment, error) { - deployment, ok := item.(*api.Deployment) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *Deployment", item) - } - - return deployment, nil -} - -func (svc *deploymentService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *deploymentService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/k8s/deployment_service_test.go b/components/console-backend-service/internal/domain/k8s/deployment_service_test.go deleted file mode 100644 index 006735812062..000000000000 --- a/components/console-backend-service/internal/domain/k8s/deployment_service_test.go +++ /dev/null @@ -1,106 +0,0 @@ -package k8s_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/apps/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/tools/cache" -) - -func TestDeploymentService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - deployment1 := fixDeployment("one", "ns1", "deployment") - deployment2 := fixDeployment("two", "ns1", "function") - deployment3 := fixDeployment("three", "ns2", "deployment") - deployment4 := fixDeployment("four", "ns2", "function") - - informer := fixDeploymentInformer(deployment1, deployment2, deployment3, deployment4) - svc, err := k8s.NewDeploymentService(informer) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - result, err := svc.List("ns1") - - require.NoError(t, err) - assert.ElementsMatch(t, []*v1.Deployment{ - deployment1, deployment2, - }, result) - }) - - t.Run("Not found", func(t *testing.T) { - var expected []*v1.Deployment - - informer := fixDeploymentInformer() - svc, err := k8s.NewDeploymentService(informer) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - result, err := svc.List("ns1") - - require.NoError(t, err) - assert.ElementsMatch(t, expected, result) - }) -} - -func TestDeploymentService_ListWithoutFunctions(t *testing.T) { - t.Run("Success", func(t *testing.T) { - deployment1 := fixDeployment("one", "ns1", "deployment") - deployment2 := fixDeployment("two", "ns1", "function") - deployment3 := fixDeployment("three", "ns2", "deployment") - deployment4 := fixDeployment("four", "ns2", "function") - - informer := fixDeploymentInformer(deployment1, deployment2, deployment3, deployment4) - svc, err := k8s.NewDeploymentService(informer) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - result, err := svc.ListWithoutFunctions("ns1") - - require.NoError(t, err) - assert.ElementsMatch(t, []*v1.Deployment{ - deployment1, - }, result) - }) - - t.Run("Not found", func(t *testing.T) { - var expected []*v1.Deployment - - informer := fixDeploymentInformer() - svc, err := k8s.NewDeploymentService(informer) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - result, err := svc.ListWithoutFunctions("ns1") - - require.NoError(t, err) - assert.ElementsMatch(t, expected, result) - }) -} - -func fixDeployment(name, namespace, kind string) *v1.Deployment { - return &v1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: map[string]string{ - kind: "", - }, - }, - } -} - -func fixDeploymentInformer(objects ...runtime.Object) cache.SharedIndexInformer { - client := fake.NewSimpleClientset(objects...) - informerFactory := informers.NewSharedInformerFactory(client, 0) - - return informerFactory.Apps().V1().Deployments().Informer() -} diff --git a/components/console-backend-service/internal/domain/k8s/export_test.go b/components/console-backend-service/internal/domain/k8s/export_test.go deleted file mode 100644 index 7616a6e389a5..000000000000 --- a/components/console-backend-service/internal/domain/k8s/export_test.go +++ /dev/null @@ -1,145 +0,0 @@ -package k8s - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "k8s.io/client-go/discovery" - apps "k8s.io/client-go/kubernetes/typed/apps/v1" - authv1 "k8s.io/client-go/kubernetes/typed/authorization/v1" - v1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/cache" -) - -// Deployment - -func NewDeploymentService(informer cache.SharedIndexInformer) (*deploymentService, error) { - return newDeploymentService(informer) -} - -func NewDeploymentResolver(service deploymentLister, scRetriever shared.ServiceCatalogRetriever, scaRetriever shared.ServiceCatalogAddonsRetriever) *deploymentResolver { - return newDeploymentResolver(service, scRetriever, scaRetriever) -} - -// Secret - -func NewSecretResolver(svc secretSvc) *secretResolver { - return newSecretResolver(svc) -} - -func NewSecretService(informer cache.SharedIndexInformer, client v1.CoreV1Interface) *secretService { - return newSecretService(informer, client) -} - -func (r *secretResolver) SetSecretConverter(converter gqlSecretConverter) { - r.converter = converter -} - -// Pod - -func NewPodResolver(podSvc podSvc) *podResolver { - return newPodResolver(podSvc) -} - -func (r *podResolver) SetPodConverter(converter gqlPodConverter) { - r.podConverter = converter -} - -func NewPodService(informer cache.SharedIndexInformer, client v1.CoreV1Interface) *podService { - return newPodService(informer, client) -} - -// Resource - -func NewResourceResolver(resourceSvc resourceSvc) *resourceResolver { - return newResourceResolver(resourceSvc) -} - -func (r *resourceResolver) SetResourceConverter(converter gqlResourceConverter) { - r.gqlResourceConverter = converter -} - -func NewResourceService(client discovery.DiscoveryInterface) *resourceService { - return newResourceService(client) -} - -func NewResourceConverter() *resourceConverter { - return &resourceConverter{} -} - -// Service - -func NewServiceService(informer cache.SharedIndexInformer, client v1.CoreV1Interface) *serviceService { - return newServiceService(informer, client) -} - -func NewServiceResolver(svc serviceSvc) *serviceResolver { - return newServiceResolver(svc) -} - -func (r *serviceResolver) SetInstanceConverter(converter gqlServiceConverter) { - r.gqlServiceConverter = converter -} - -// ReplicaSet - -func NewReplicaSetResolver(replicaSetSvc replicaSetSvc) *replicaSetResolver { - return newReplicaSetResolver(replicaSetSvc) -} - -func (r *replicaSetResolver) SetInstanceConverter(converter gqlReplicaSetConverter) { - r.replicaSetConverter = converter -} - -func NewReplicaSetService(informer cache.SharedIndexInformer, client apps.AppsV1Interface) *replicaSetService { - return newReplicaSetService(informer, client) -} - -// ConfigMap - -func NewConfigMapResolver(configMapSvc configMapSvc) *configMapResolver { - return newConfigMapResolver(configMapSvc) -} - -func (r *configMapResolver) SetConfigMapConverter(converter gqlConfigMapConverter) { - r.configMapConverter = converter -} - -func NewConfigMapService(informer cache.SharedIndexInformer, client v1.CoreV1Interface) *configMapService { - return newConfigMapService(informer, client) -} - -// SelfSubjectRulesReview -func NewSelfSubjectRulesConverter() gqlSelfSubjectRulesConverter { - return &selfSubjectRulesConverter{} -} - -func NewSelfSubjectRulesService(client authv1.AuthorizationV1Interface) *selfSubjectRulesService { - return newSelfSubjectRulesService(client) -} - -func NewSelfSubjectRulesResolver(selfSubjectRulesSvc selfSubjectRulesSvc) *selfSubjectRulesResolver { - return newSelfSubjectRulesResolver(selfSubjectRulesSvc) -} - -func (r *selfSubjectRulesResolver) SetSelfSubjectRulesConverter(converter gqlSelfSubjectRulesConverter) { - r.gqlSelfSubjectRulesConverter = converter -} - -//Namespace - -func NewNamespaceService(informer cache.SharedIndexInformer, podService podSvc, client v1.CoreV1Interface) (*namespaceService, error) { - return newNamespaceService(informer, podService, client) -} - -func NewNamespaceResolver(namespaceSvc namespaceSvc, appRetriever shared.ApplicationRetriever, systemNamespaces []string, podService podSvc) *namespaceResolver { - return newNamespaceResolver(namespaceSvc, appRetriever, systemNamespaces, podService) -} - -//Kyma Version - -func NewVersionInfoResolver(service deploymentLister) *versionInfoResolver { - return newVersionInfoResolver(service) -} - -func (r *versionInfoResolver) SetVersionInfoConverter(converter gqlVersionInfoConverter) { - r.versionInfoConverter = converter -} diff --git a/components/console-backend-service/internal/domain/k8s/k8s.go b/components/console-backend-service/internal/domain/k8s/k8s.go deleted file mode 100644 index af67f91118b9..000000000000 --- a/components/console-backend-service/internal/domain/k8s/k8s.go +++ /dev/null @@ -1,83 +0,0 @@ -package k8s - -import ( - "time" - - "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/pkg/errors" - "k8s.io/client-go/informers" - k8sClientset "k8s.io/client-go/kubernetes" - v1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/rest" -) - -type ApplicationLister interface { - ListInNamespace(namespace string) ([]*v1alpha1.Application, error) - ListNamespacesFor(reName string) ([]string, error) -} - -type Resolver struct { - *resourceResolver - *namespaceResolver - *secretResolver - *deploymentResolver - *podResolver - *serviceResolver - *replicaSetResolver - *configMapResolver - *selfSubjectRulesResolver - *versionInfoResolver - informerFactory informers.SharedInformerFactory -} - -func New(restConfig *rest.Config, informerResyncPeriod time.Duration, applicationRetriever shared.ApplicationRetriever, scRetriever shared.ServiceCatalogRetriever, scaRetriever shared.ServiceCatalogAddonsRetriever, systemNamespaces []string) (*Resolver, error) { - client, err := v1.NewForConfig(restConfig) - if err != nil { - return nil, errors.Wrap(err, "while creating K8S Client") - } - - clientset, err := k8sClientset.NewForConfig(restConfig) - if err != nil { - return nil, errors.Wrap(err, "while creating K8S Clientset") - } - - informerFactory := informers.NewSharedInformerFactory(clientset, informerResyncPeriod) - - podService := newPodService(informerFactory.Core().V1().Pods().Informer(), client) - namespaceSvc, err := newNamespaceService(informerFactory.Core().V1().Namespaces().Informer(), podService, client) - if err != nil { - return nil, errors.Wrap(err, "while creating namespace service") - } - - deploymentService, err := newDeploymentService(informerFactory.Apps().V1().Deployments().Informer()) - if err != nil { - return nil, errors.Wrap(err, "while creating deployment service") - } - - resourceService := newResourceService(clientset.Discovery()) - secretService := newSecretService(informerFactory.Core().V1().Secrets().Informer(), client) - - replicaSetService := newReplicaSetService(informerFactory.Apps().V1().ReplicaSets().Informer(), clientset.AppsV1()) - configMapService := newConfigMapService(informerFactory.Core().V1().ConfigMaps().Informer(), clientset.CoreV1()) - serviceSvc := newServiceService(informerFactory.Core().V1().Services().Informer(), client) - selfSubjectRulesService := newSelfSubjectRulesService(clientset.AuthorizationV1()) - return &Resolver{ - resourceResolver: newResourceResolver(resourceService), - namespaceResolver: newNamespaceResolver(namespaceSvc, applicationRetriever, systemNamespaces, podService), - secretResolver: newSecretResolver(*secretService), - deploymentResolver: newDeploymentResolver(deploymentService, scRetriever, scaRetriever), - podResolver: newPodResolver(podService), - serviceResolver: newServiceResolver(serviceSvc), - replicaSetResolver: newReplicaSetResolver(replicaSetService), - configMapResolver: newConfigMapResolver(configMapService), - selfSubjectRulesResolver: newSelfSubjectRulesResolver(selfSubjectRulesService), - versionInfoResolver: newVersionInfoResolver(deploymentService), - informerFactory: informerFactory, - }, nil -} - -func (r *Resolver) WaitForCacheSync(stopCh <-chan struct{}) { - r.informerFactory.Start(stopCh) - r.informerFactory.WaitForCacheSync(stopCh) -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/automock/export.go b/components/console-backend-service/internal/domain/k8s/listener/automock/export.go deleted file mode 100644 index 033c5134e6c5..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/automock/export.go +++ /dev/null @@ -1,21 +0,0 @@ -package automock - -func NewGQLPodConverter() *gqlPodConverter { - return new(gqlPodConverter) -} - -func NewGQLSecretConverter() *gqlSecretConverter { - return new(gqlSecretConverter) -} - -func NewGQLServiceConverter() *gqlServiceConverter { - return new(gqlServiceConverter) -} - -func NewGQLConfigMapConverter() *gqlConfigMapConverter { - return new(gqlConfigMapConverter) -} - -func NewNamespaceConverter() *namespaceConverter { - return new(namespaceConverter) -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_config_map_converter.go b/components/console-backend-service/internal/domain/k8s/listener/automock/gql_config_map_converter.go deleted file mode 100644 index 71334286d397..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_config_map_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlConfigMapConverter is an autogenerated mock type for the gqlConfigMapConverter type -type gqlConfigMapConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlConfigMapConverter) ToGQL(in *v1.ConfigMap) (*gqlschema.ConfigMap, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ConfigMap - if rf, ok := ret.Get(0).(func(*v1.ConfigMap) *gqlschema.ConfigMap); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ConfigMap) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.ConfigMap) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_pod_converter.go b/components/console-backend-service/internal/domain/k8s/listener/automock/gql_pod_converter.go deleted file mode 100644 index 8508bd9db5fa..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_pod_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlPodConverter is an autogenerated mock type for the gqlPodConverter type -type gqlPodConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlPodConverter) ToGQL(in *v1.Pod) (*gqlschema.Pod, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Pod - if rf, ok := ret.Get(0).(func(*v1.Pod) *gqlschema.Pod); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Pod) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.Pod) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_secret_converter.go b/components/console-backend-service/internal/domain/k8s/listener/automock/gql_secret_converter.go deleted file mode 100644 index 854b3378e4bb..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_secret_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlSecretConverter is an autogenerated mock type for the gqlSecretConverter type -type gqlSecretConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlSecretConverter) ToGQL(in *v1.Secret) (*gqlschema.Secret, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Secret - if rf, ok := ret.Get(0).(func(*v1.Secret) *gqlschema.Secret); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Secret) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.Secret) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_service_converter.go b/components/console-backend-service/internal/domain/k8s/listener/automock/gql_service_converter.go deleted file mode 100644 index c2d53673939d..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/automock/gql_service_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1 "k8s.io/api/core/v1" -) - -// gqlServiceConverter is an autogenerated mock type for the gqlServiceConverter type -type gqlServiceConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlServiceConverter) ToGQL(in *v1.Service) (*gqlschema.Service, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Service - if rf, ok := ret.Get(0).(func(*v1.Service) *gqlschema.Service); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Service) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1.Service) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/automock/namespace_converter.go b/components/console-backend-service/internal/domain/k8s/listener/automock/namespace_converter.go deleted file mode 100644 index 6d46f241ebcb..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/automock/namespace_converter.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - -import mock "github.com/stretchr/testify/mock" -import v1 "k8s.io/api/core/v1" - -// namespaceConverter is an autogenerated mock type for the namespaceConverter type -type namespaceConverter struct { - mock.Mock -} - -// ToListItemGQL provides a mock function with given fields: in -func (_m *namespaceConverter) ToListItemGQL(in *v1.Namespace) *gqlschema.NamespaceListItem { - ret := _m.Called(in) - - var r0 *gqlschema.NamespaceListItem - if rf, ok := ret.Get(0).(func(*v1.Namespace) *gqlschema.NamespaceListItem); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.NamespaceListItem) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/configmap.go b/components/console-backend-service/internal/domain/k8s/listener/configmap.go deleted file mode 100644 index 2b05bc44f902..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/configmap.go +++ /dev/null @@ -1,71 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=gqlConfigMapConverter -output=automock -outpkg=automock -case=underscore -type gqlConfigMapConverter interface { - ToGQL(in *v1.ConfigMap) (*gqlschema.ConfigMap, error) -} - -type ConfigMap struct { - channel chan<- *gqlschema.ConfigMapEvent - filter func(configMap *v1.ConfigMap) bool - converter gqlConfigMapConverter -} - -func NewConfigMap(channel chan<- *gqlschema.ConfigMapEvent, filter func(configMap *v1.ConfigMap) bool, converter gqlConfigMapConverter) *ConfigMap { - return &ConfigMap{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *ConfigMap) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *ConfigMap) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *ConfigMap) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *ConfigMap) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - configMap, ok := object.(*v1.ConfigMap) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *ConfigMap", object)) - return - } - - if l.filter(configMap) { - l.notify(eventType, configMap) - } -} - -func (l *ConfigMap) notify(eventType gqlschema.SubscriptionEventType, configMap *v1.ConfigMap) { - gqlConfigMap, err := l.converter.ToGQL(configMap) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *ConfigMap")) - return - } - if gqlConfigMap == nil { - return - } - - event := &gqlschema.ConfigMapEvent{ - Type: eventType, - ConfigMap: gqlConfigMap, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/configmap_test.go b/components/console-backend-service/internal/domain/k8s/listener/configmap_test.go deleted file mode 100644 index 7417903eb947..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/configmap_test.go +++ /dev/null @@ -1,241 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" -) - -func TestConfigMapListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlConfigMap := new(gqlschema.ConfigMap) - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - channel := make(chan *gqlschema.ConfigMapEvent, 1) - defer close(channel) - converter.On("ToGQL", configMap).Return(gqlConfigMap, nil).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(channel, filterConfigMapTrue, converter) - - // when - configMapListener.OnAdd(configMap) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlConfigMap, result.ConfigMap) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapFalse, nil) - - // when - configMapListener.OnAdd(new(v1.ConfigMap)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, nil) - - // when - configMapListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - converter.On("ToGQL", configMap).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, converter) - - // when - configMapListener.OnAdd(configMap) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, nil) - - // when - configMapListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - converter.On("ToGQL", configMap).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, converter) - - // when - configMapListener.OnAdd(configMap) - }) -} - -func TestConfigMapListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlConfigMap := new(gqlschema.ConfigMap) - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - channel := make(chan *gqlschema.ConfigMapEvent, 1) - defer close(channel) - converter.On("ToGQL", configMap).Return(gqlConfigMap, nil).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(channel, filterConfigMapTrue, converter) - - // when - configMapListener.OnDelete(configMap) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlConfigMap, result.ConfigMap) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapFalse, nil) - - // when - configMapListener.OnDelete(new(v1.ConfigMap)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, nil) - - // when - configMapListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - converter.On("ToGQL", configMap).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, converter) - - // when - configMapListener.OnDelete(configMap) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, nil) - - // when - configMapListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - converter.On("ToGQL", configMap).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, converter) - - // when - configMapListener.OnDelete(configMap) - }) -} - -func TestConfigMapListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlConfigMap := new(gqlschema.ConfigMap) - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - channel := make(chan *gqlschema.ConfigMapEvent, 1) - defer close(channel) - converter.On("ToGQL", configMap).Return(gqlConfigMap, nil).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(channel, filterConfigMapTrue, converter) - - // when - configMapListener.OnUpdate(configMap, configMap) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlConfigMap, result.ConfigMap) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapFalse, nil) - - // when - configMapListener.OnUpdate(new(v1.ConfigMap), new(v1.ConfigMap)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, nil) - - // when - configMapListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - converter.On("ToGQL", configMap).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, converter) - - // when - configMapListener.OnUpdate(nil, configMap) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, nil) - - // when - configMapListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - configMap := new(v1.ConfigMap) - converter := automock.NewGQLConfigMapConverter() - - converter.On("ToGQL", configMap).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - configMapListener := listener.NewConfigMap(nil, filterConfigMapTrue, converter) - - // when - configMapListener.OnUpdate(nil, configMap) - }) -} - -func filterConfigMapTrue(o *v1.ConfigMap) bool { - return true -} - -func filterConfigMapFalse(o *v1.ConfigMap) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/deployment.go b/components/console-backend-service/internal/domain/k8s/listener/deployment.go deleted file mode 100644 index 8bdb2e4a7ba3..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/deployment.go +++ /dev/null @@ -1,66 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - api "k8s.io/api/apps/v1" -) - -//go:generate mockery -name=gqlDeploymentConverter -output=automock -outpkg=automock -case=underscore -type gqlDeploymentConverter interface { - ToGQL(in *api.Deployment) *gqlschema.Deployment -} - -type Deployment struct { - channel chan<- *gqlschema.DeploymentEvent - filter func(deployment *api.Deployment) bool - converter gqlDeploymentConverter -} - -func NewDeployment(channel chan<- *gqlschema.DeploymentEvent, filter func(deployment *api.Deployment) bool, converter gqlDeploymentConverter) *Deployment { - return &Deployment{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *Deployment) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Deployment) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Deployment) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Deployment) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - deployment, ok := object.(*api.Deployment) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *Deployment", object)) - return - } - - if l.filter(deployment) { - l.notify(eventType, deployment) - } -} - -func (l *Deployment) notify(eventType gqlschema.SubscriptionEventType, deployment *api.Deployment) { - gqlDeployment := l.converter.ToGQL(deployment) - if gqlDeployment == nil { - return - } - - event := &gqlschema.DeploymentEvent{ - Type: eventType, - Deployment: gqlDeployment, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/namespace.go b/components/console-backend-service/internal/domain/k8s/listener/namespace.go deleted file mode 100644 index 03f4efdd0989..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/namespace.go +++ /dev/null @@ -1,70 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=namespaceConverter -output=automock -outpkg=automock -case=underscore -type namespaceConverter interface { - ToListItemGQL(in *v1.Namespace) *gqlschema.NamespaceListItem -} - -type Namespace struct { - channel chan<- *gqlschema.NamespaceEvent - filter func(namespace *v1.Namespace) bool - converter namespaceConverter - sysNamespaces []string -} - -func NewNamespace(channel chan<- *gqlschema.NamespaceEvent, filter func(namespace *v1.Namespace) bool, converter namespaceConverter, sysNamespaces []string) *Namespace { - return &Namespace{ - channel: channel, - filter: filter, - converter: converter, - sysNamespaces: sysNamespaces, - } -} - -func (l *Namespace) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Namespace) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Namespace) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Namespace) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - namespace, ok := object.(*v1.Namespace) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *Namespace", object)) - return - } - - if l.filter(namespace) { - l.notify(eventType, namespace) - } -} - -func (l *Namespace) notify(eventType gqlschema.SubscriptionEventType, namespace *v1.Namespace) { - - gqlNamespace := l.converter.ToListItemGQL(namespace) - - if gqlNamespace == nil { - return - } - - event := &gqlschema.NamespaceEvent{ - Type: eventType, - Namespace: gqlNamespace, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/namespace_test.go b/components/console-backend-service/internal/domain/k8s/listener/namespace_test.go deleted file mode 100644 index 1a6b2e5fe35a..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/namespace_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" -) - -func TestNamespaceListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlNamespace := new(gqlschema.NamespaceListItem) - namespace := new(v1.Namespace) - converter := automock.NewNamespaceConverter() - - channel := make(chan *gqlschema.NamespaceEvent, 1) - defer close(channel) - converter.On("ToListItemGQL", namespace).Return(gqlNamespace).Once() - defer converter.AssertExpectations(t) - namespaceListener := listener.NewNamespace(channel, filterNamespaceTrue, converter, []string{}) - - // when - namespaceListener.OnAdd(namespace) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlNamespace, result.Namespace) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceFalse, nil, []string{}) - - // when - namespaceListener.OnAdd(new(v1.Namespace)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, nil, []string{}) - - // when - namespaceListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - namespace := new(v1.Namespace) - converter := automock.NewNamespaceConverter() - - converter.On("ToListItemGQL", namespace).Return(nil).Once() - defer converter.AssertExpectations(t) - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, converter, []string{}) - - // when - namespaceListener.OnAdd(namespace) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, nil, []string{}) - - // when - namespaceListener.OnAdd(new(struct{})) - }) -} - -func TestNamespaceListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlNamespace := new(gqlschema.NamespaceListItem) - namespace := new(v1.Namespace) - converter := automock.NewNamespaceConverter() - - channel := make(chan *gqlschema.NamespaceEvent, 1) - defer close(channel) - converter.On("ToListItemGQL", namespace).Return(gqlNamespace).Once() - defer converter.AssertExpectations(t) - namespaceListener := listener.NewNamespace(channel, filterNamespaceTrue, converter, []string{}) - - // when - namespaceListener.OnDelete(namespace) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlNamespace, result.Namespace) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceFalse, nil, []string{}) - - // when - namespaceListener.OnDelete(new(v1.Namespace)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, nil, []string{}) - - // when - namespaceListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - namespace := new(v1.Namespace) - converter := automock.NewNamespaceConverter() - - converter.On("ToListItemGQL", namespace).Return(nil).Once() - defer converter.AssertExpectations(t) - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, converter, []string{}) - - // when - namespaceListener.OnDelete(namespace) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, nil, []string{}) - - // when - namespaceListener.OnDelete(new(struct{})) - }) -} - -func TestNamespaceListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlNamespace := new(gqlschema.NamespaceListItem) - namespace := new(v1.Namespace) - converter := automock.NewNamespaceConverter() - - channel := make(chan *gqlschema.NamespaceEvent, 1) - defer close(channel) - converter.On("ToListItemGQL", namespace).Return(gqlNamespace).Once() - defer converter.AssertExpectations(t) - namespaceListener := listener.NewNamespace(channel, filterNamespaceTrue, converter, []string{}) - - // when - namespaceListener.OnUpdate(namespace, namespace) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlNamespace, result.Namespace) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceFalse, nil, []string{}) - - // when - namespaceListener.OnUpdate(new(v1.Namespace), new(v1.Namespace)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, nil, []string{}) - - // when - namespaceListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - namespace := new(v1.Namespace) - converter := automock.NewNamespaceConverter() - - converter.On("ToListItemGQL", namespace).Return(nil).Once() - defer converter.AssertExpectations(t) - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, converter, []string{}) - - // when - namespaceListener.OnUpdate(nil, namespace) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - namespaceListener := listener.NewNamespace(nil, filterNamespaceTrue, nil, []string{}) - - // when - namespaceListener.OnUpdate(new(struct{}), new(struct{})) - }) -} - -func filterNamespaceTrue(_ *v1.Namespace) bool { - return true -} - -func filterNamespaceFalse(_ *v1.Namespace) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/pod.go b/components/console-backend-service/internal/domain/k8s/listener/pod.go deleted file mode 100644 index 7eaceff04dbe..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/pod.go +++ /dev/null @@ -1,71 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=gqlPodConverter -output=automock -outpkg=automock -case=underscore -type gqlPodConverter interface { - ToGQL(in *v1.Pod) (*gqlschema.Pod, error) -} - -type Pod struct { - channel chan<- *gqlschema.PodEvent - filter func(pod *v1.Pod) bool - converter gqlPodConverter -} - -func NewPod(channel chan<- *gqlschema.PodEvent, filter func(pod *v1.Pod) bool, converter gqlPodConverter) *Pod { - return &Pod{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *Pod) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Pod) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Pod) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Pod) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - pod, ok := object.(*v1.Pod) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *Pod", object)) - return - } - - if l.filter(pod) { - l.notify(eventType, pod) - } -} - -func (l *Pod) notify(eventType gqlschema.SubscriptionEventType, pod *v1.Pod) { - gqlPod, err := l.converter.ToGQL(pod) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *Pod")) - return - } - if gqlPod == nil { - return - } - - event := &gqlschema.PodEvent{ - Type: eventType, - Pod: gqlPod, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/pod_test.go b/components/console-backend-service/internal/domain/k8s/listener/pod_test.go deleted file mode 100644 index d8d8c0350652..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/pod_test.go +++ /dev/null @@ -1,241 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" -) - -func TestPodListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlPod := new(gqlschema.Pod) - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - channel := make(chan *gqlschema.PodEvent, 1) - defer close(channel) - converter.On("ToGQL", pod).Return(gqlPod, nil).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(channel, filterPodTrue, converter) - - // when - podListener.OnAdd(pod) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlPod, result.Pod) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodFalse, nil) - - // when - podListener.OnAdd(new(v1.Pod)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodTrue, nil) - - // when - podListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - converter.On("ToGQL", pod).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(nil, filterPodTrue, converter) - - // when - podListener.OnAdd(pod) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodTrue, nil) - - // when - podListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - converter.On("ToGQL", pod).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(nil, filterPodTrue, converter) - - // when - podListener.OnAdd(pod) - }) -} - -func TestPodListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlPod := new(gqlschema.Pod) - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - channel := make(chan *gqlschema.PodEvent, 1) - defer close(channel) - converter.On("ToGQL", pod).Return(gqlPod, nil).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(channel, filterPodTrue, converter) - - // when - podListener.OnDelete(pod) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlPod, result.Pod) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodFalse, nil) - - // when - podListener.OnDelete(new(v1.Pod)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodTrue, nil) - - // when - podListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - converter.On("ToGQL", pod).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(nil, filterPodTrue, converter) - - // when - podListener.OnDelete(pod) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodTrue, nil) - - // when - podListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - converter.On("ToGQL", pod).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(nil, filterPodTrue, converter) - - // when - podListener.OnDelete(pod) - }) -} - -func TestPodListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlPod := new(gqlschema.Pod) - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - channel := make(chan *gqlschema.PodEvent, 1) - defer close(channel) - converter.On("ToGQL", pod).Return(gqlPod, nil).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(channel, filterPodTrue, converter) - - // when - podListener.OnUpdate(pod, pod) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlPod, result.Pod) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodFalse, nil) - - // when - podListener.OnUpdate(new(v1.Pod), new(v1.Pod)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodTrue, nil) - - // when - podListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - converter.On("ToGQL", pod).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(nil, filterPodTrue, converter) - - // when - podListener.OnUpdate(nil, pod) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - podListener := listener.NewPod(nil, filterPodTrue, nil) - - // when - podListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - pod := new(v1.Pod) - converter := automock.NewGQLPodConverter() - - converter.On("ToGQL", pod).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - podListener := listener.NewPod(nil, filterPodTrue, converter) - - // when - podListener.OnUpdate(nil, pod) - }) -} - -func filterPodTrue(o *v1.Pod) bool { - return true -} - -func filterPodFalse(o *v1.Pod) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/secret.go b/components/console-backend-service/internal/domain/k8s/listener/secret.go deleted file mode 100644 index ecef776de3d4..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/secret.go +++ /dev/null @@ -1,70 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=gqlSecretConverter -output=automock -outpkg=automock -case=underscore -type gqlSecretConverter interface { - ToGQL(in *v1.Secret) (*gqlschema.Secret, error) -} - -type Secret struct { - channel chan<- *gqlschema.SecretEvent - filter func(secret *v1.Secret) bool - converter gqlSecretConverter -} - -func NewSecret(channel chan<- *gqlschema.SecretEvent, filter func(secret *v1.Secret) bool, converter gqlSecretConverter) *Secret { - return &Secret{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *Secret) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Secret) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} -func (l *Secret) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Secret) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - secret, ok := object.(*v1.Secret) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *Secret", object)) - return - } - - if l.filter(secret) { - l.notify(eventType, secret) - } -} - -func (l *Secret) notify(eventType gqlschema.SubscriptionEventType, secret *v1.Secret) { - gqlSecret, err := l.converter.ToGQL(secret) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *Secret")) - return - } - if gqlSecret == nil { - return - } - - event := &gqlschema.SecretEvent{ - Type: eventType, - Secret: gqlSecret, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/secret_test.go b/components/console-backend-service/internal/domain/k8s/listener/secret_test.go deleted file mode 100644 index c5befc1fea02..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/secret_test.go +++ /dev/null @@ -1,241 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" -) - -func TestSecretListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlSecret := new(gqlschema.Secret) - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - channel := make(chan *gqlschema.SecretEvent, 1) - defer close(channel) - converter.On("ToGQL", secret).Return(gqlSecret, nil).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(channel, filterSecretTrue, converter) - - // when - secretListener.OnAdd(secret) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlSecret, result.Secret) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretFalse, nil) - - // when - secretListener.OnAdd(new(v1.Secret)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretTrue, nil) - - // when - secretListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - converter.On("ToGQL", secret).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(nil, filterSecretTrue, converter) - - // when - secretListener.OnAdd(secret) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretTrue, nil) - - // when - secretListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - converter.On("ToGQL", secret).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(nil, filterSecretTrue, converter) - - // when - secretListener.OnAdd(secret) - }) -} - -func TestSecretListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlSecret := new(gqlschema.Secret) - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - channel := make(chan *gqlschema.SecretEvent, 1) - defer close(channel) - converter.On("ToGQL", secret).Return(gqlSecret, nil).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(channel, filterSecretTrue, converter) - - // when - secretListener.OnDelete(secret) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlSecret, result.Secret) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretFalse, nil) - - // when - secretListener.OnDelete(new(v1.Secret)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretTrue, nil) - - // when - secretListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - converter.On("ToGQL", secret).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(nil, filterSecretTrue, converter) - - // when - secretListener.OnDelete(secret) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretTrue, nil) - - // when - secretListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - converter.On("ToGQL", secret).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(nil, filterSecretTrue, converter) - - // when - secretListener.OnDelete(secret) - }) -} - -func TestSecretListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlSecret := new(gqlschema.Secret) - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - channel := make(chan *gqlschema.SecretEvent, 1) - defer close(channel) - converter.On("ToGQL", secret).Return(gqlSecret, nil).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(channel, filterSecretTrue, converter) - - // when - secretListener.OnUpdate(secret, secret) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlSecret, result.Secret) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretFalse, nil) - - // when - secretListener.OnUpdate(new(v1.Secret), new(v1.Secret)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretTrue, nil) - - // when - secretListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - converter.On("ToGQL", secret).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(nil, filterSecretTrue, converter) - - // when - secretListener.OnUpdate(nil, secret) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - secretListener := listener.NewSecret(nil, filterSecretTrue, nil) - - // when - secretListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - secret := new(v1.Secret) - converter := automock.NewGQLSecretConverter() - - converter.On("ToGQL", secret).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - secretListener := listener.NewSecret(nil, filterSecretTrue, converter) - - // when - secretListener.OnUpdate(nil, secret) - }) -} - -func filterSecretTrue(o *v1.Secret) bool { - return true -} - -func filterSecretFalse(o *v1.Secret) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/service.go b/components/console-backend-service/internal/domain/k8s/listener/service.go deleted file mode 100644 index de23a409a190..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/service.go +++ /dev/null @@ -1,69 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/pkg/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/golang/glog" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=gqlServiceConverter -output=automock -outpkg=automock -case=underscore -type gqlServiceConverter interface { - ToGQL(in *v1.Service) (*gqlschema.Service, error) -} - -type Service struct { - channel chan<- *gqlschema.ServiceEvent - filter func(pod *v1.Service) bool - converter gqlServiceConverter -} - -func NewService(channel chan<- *gqlschema.ServiceEvent, filter func(service *v1.Service) bool, converter gqlServiceConverter) *Service { - return &Service{channel, filter, converter} -} - -func (l *Service) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Service) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Service) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Service) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - service, ok := object.(*v1.Service) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *Service", object)) - return - } - - if l.filter(service) { - l.notify(eventType, service) - } -} - -func (l *Service) notify(eventType gqlschema.SubscriptionEventType, service *v1.Service) { - gqlService, err := l.converter.ToGQL(service) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *Service")) - return - } - if gqlService == nil { - return - } - - event := &gqlschema.ServiceEvent{ - Type: eventType, - Service: gqlService, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/k8s/listener/service_test.go b/components/console-backend-service/internal/domain/k8s/listener/service_test.go deleted file mode 100644 index 874ab0d95015..000000000000 --- a/components/console-backend-service/internal/domain/k8s/listener/service_test.go +++ /dev/null @@ -1,248 +0,0 @@ -package listener_test - -import ( - "errors" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/core/v1" - - "github.com/stretchr/testify/assert" -) - -func TestServiceListener_OnAdd(t *testing.T) { - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - // given - gqlService := new(gqlschema.Service) - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - channel := make(chan *gqlschema.ServiceEvent, 1) - defer close(channel) - converter.On("ToGQL", service).Return(gqlService, nil).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(channel, filterServiceTrue, converter) - - // when - serviceListener.OnAdd(service) - result := <-channel - - // then - assert.Equal(gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(gqlService, result.Service) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceFalse, nil) - - // when - serviceListener.OnAdd(new(v1.Service)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceTrue, nil) - - // when - serviceListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - converter.On("ToGQL", service).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(nil, filterServiceTrue, converter) - - // when - serviceListener.OnAdd(service) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceTrue, nil) - - // when - serviceListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - converter.On("ToGQL", service).Return(nil, errors.New("conversion error")).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(nil, filterServiceTrue, converter) - - // when - serviceListener.OnAdd(service) - }) -} - -func TestServiceListener_OnDelete(t *testing.T) { - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - // given - gqlService := new(gqlschema.Service) - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - channel := make(chan *gqlschema.ServiceEvent, 1) - defer close(channel) - converter.On("ToGQL", service).Return(gqlService, nil).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(channel, filterServiceTrue, converter) - - // when - serviceListener.OnDelete(service) - result := <-channel - - // then - assert.Equal(gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(gqlService, result.Service) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceTrue, nil) - - // when - serviceListener.OnDelete(new(v1.Pod)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceTrue, nil) - - // when - serviceListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - converter.On("ToGQL", service).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(nil, filterServiceTrue, converter) - - // when - serviceListener.OnDelete(service) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceTrue, nil) - - // when - serviceListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - converter.On("ToGQL", service).Return(nil, errors.New("conversion error")).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(nil, filterServiceTrue, converter) - - // when - serviceListener.OnDelete(service) - }) -} - -func TestServiceListener_OnUpdate(t *testing.T) { - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - // given - gqlService := new(gqlschema.Service) - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - channel := make(chan *gqlschema.ServiceEvent, 1) - defer close(channel) - converter.On("ToGQL", service).Return(gqlService, nil).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(channel, filterServiceTrue, converter) - - // when - serviceListener.OnUpdate(service, service) - result := <-channel - - // then - assert.Equal(gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(gqlService, result.Service) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceFalse, nil) - - // when - serviceListener.OnUpdate(new(v1.Service), new(v1.Service)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceTrue, nil) - - // when - serviceListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - converter.On("ToGQL", service).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(nil, filterServiceTrue, converter) - - // when - serviceListener.OnUpdate(nil, service) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceListener := listener.NewService(nil, filterServiceTrue, nil) - - // when - serviceListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - service := new(v1.Service) - converter := automock.NewGQLServiceConverter() - - converter.On("ToGQL", service).Return(nil, errors.New("conversion error")).Once() - defer converter.AssertExpectations(t) - serviceListener := listener.NewService(nil, filterServiceTrue, converter) - - // when - serviceListener.OnUpdate(nil, service) - }) -} - -func filterServiceTrue(_ *v1.Service) bool { - return true -} - -func filterServiceFalse(_ *v1.Service) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/k8s/namespace_converter.go b/components/console-backend-service/internal/domain/k8s/namespace_converter.go deleted file mode 100644 index 83aabae73a32..000000000000 --- a/components/console-backend-service/internal/domain/k8s/namespace_converter.go +++ /dev/null @@ -1,75 +0,0 @@ -package k8s - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/core/v1" -) - -type namespaceConverter struct { - systemNamespaces []string -} - -func newNamespaceConverter(systemNamespaces []string) *namespaceConverter { - return &namespaceConverter{ - systemNamespaces: systemNamespaces, - } -} - -func (c *namespaceConverter) ToGQL(in *v1.Namespace) *gqlschema.Namespace { - if in == nil { - return nil - } - - labels := map[string]string{} - if in.Labels != nil { - labels = in.Labels - } - - isSystem := isSystemNamespace(*in, c.systemNamespaces) - return &gqlschema.Namespace{ - Name: in.Name, - Labels: labels, - Status: string(in.Status.Phase), - IsSystemNamespace: isSystem, - } -} - -func (c *namespaceConverter) ToListItemGQL(in *v1.Namespace) *gqlschema.NamespaceListItem { - if in == nil { - return nil - } - - labels := map[string]string{} - if in.Labels != nil { - labels = in.Labels - } - - isSystem := isSystemNamespace(*in, c.systemNamespaces) - return &gqlschema.NamespaceListItem{ - Name: in.Name, - Labels: labels, - Status: string(in.Status.Phase), - IsSystemNamespace: isSystem, - } -} - -func (c *namespaceConverter) ToGQLs(in []*v1.Namespace) []*gqlschema.NamespaceListItem { - var result []*gqlschema.NamespaceListItem - for _, u := range in { - converted := c.ToListItemGQL(u) - - if converted != nil { - result = append(result, converted) - } - } - return result -} - -func isSystemNamespace(namespace v1.Namespace, sysNamespaces []string) bool { - for _, sysNs := range sysNamespaces { - if sysNs == namespace.Name { - return true - } - } - return false -} diff --git a/components/console-backend-service/internal/domain/k8s/namespace_converter_test.go b/components/console-backend-service/internal/domain/k8s/namespace_converter_test.go deleted file mode 100644 index b55172c69937..000000000000 --- a/components/console-backend-service/internal/domain/k8s/namespace_converter_test.go +++ /dev/null @@ -1,128 +0,0 @@ -package k8s - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestNamespaceConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expectedName := "exampleName" - expectedName2 := "exampleName2" - converter := namespaceConverter{ - systemNamespaces: []string{expectedName}, - } - in := []*v1.Namespace{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName2, - }, - }, - } - - result := converter.ToGQLs(in) - - assert.Len(t, result, 2) - assert.Equal(t, expectedName, result[0].Name) - assert.Equal(t, expectedName2, result[1].Name) - assert.True(t, result[0].IsSystemNamespace) - assert.False(t, result[1].IsSystemNamespace) - }) - - t.Run("Empty", func(t *testing.T) { - converter := namespaceConverter{} - var in []*v1.Namespace - - result := converter.ToGQLs(in) - - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - expectedName := "exampleName" - expectedLabels := gqlschema.Labels{"test": "label"} - converter := namespaceConverter{ - systemNamespaces: []string{expectedName}, - } - in := []*v1.Namespace{ - nil, - &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - Labels: map[string]string{"test": "label"}, - }, - }, - nil, - } - - result := converter.ToGQLs(in) - - assert.Len(t, result, 1) - assert.Equal(t, expectedName, result[0].Name) - assert.Equal(t, expectedLabels, result[0].Labels) - assert.True(t, result[0].IsSystemNamespace) - }) -} - -func TestNamespaceConverter_ToGQL(t *testing.T) { - t.Run("Success for system namespace", func(t *testing.T) { - expectedName := "exampleName" - expectedLabels := gqlschema.Labels{"test": "label"} - converter := namespaceConverter{ - systemNamespaces: []string{expectedName}, - } - - in := v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - Labels: map[string]string{"test": "label"}, - }, - } - - result := converter.ToGQL(&in) - - assert.Equal(t, expectedName, result.Name) - assert.Equal(t, expectedLabels, result.Labels) - assert.True(t, result.IsSystemNamespace) - }) - - t.Run("Success", func(t *testing.T) { - expectedName := "exampleName" - expectedLabels := gqlschema.Labels{"test": "label"} - converter := namespaceConverter{ - systemNamespaces: []string{"systemNamespace"}, - } - - in := v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - Labels: map[string]string{"test": "label"}, - }, - } - - result := converter.ToGQL(&in) - - assert.Equal(t, expectedName, result.Name) - assert.Equal(t, expectedLabels, result.Labels) - assert.False(t, result.IsSystemNamespace) - }) - - t.Run("Empty", func(t *testing.T) { - converter := namespaceConverter{} - var in *v1.Namespace - - result := converter.ToGQL(in) - - assert.Empty(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/namespace_resolver.go b/components/console-backend-service/internal/domain/k8s/namespace_resolver.go deleted file mode 100644 index 518b750baa81..000000000000 --- a/components/console-backend-service/internal/domain/k8s/namespace_resolver.go +++ /dev/null @@ -1,266 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - - "github.com/golang/glog" - appPretty "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=namespaceSvc -output=automock -outpkg=automock -case=underscore -type namespaceSvc interface { - Create(name string, labels gqlschema.Labels) (*v1.Namespace, error) - Update(name string, labels gqlschema.Labels) (*v1.Namespace, error) - List() ([]*v1.Namespace, error) - Find(name string) (*v1.Namespace, error) - Delete(name string) error - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -type namespaceResolver struct { - namespaceSvc namespaceSvc - appRetriever shared.ApplicationRetriever - namespaceConverter namespaceConverter - systemNamespaces []string - podService podSvc - gqlPodConverter podConverter -} - -func newNamespaceResolver(namespaceSvc namespaceSvc, appRetriever shared.ApplicationRetriever, systemNamespaces []string, podService podSvc) *namespaceResolver { - return &namespaceResolver{ - namespaceSvc: namespaceSvc, - appRetriever: appRetriever, - namespaceConverter: *newNamespaceConverter(systemNamespaces), - systemNamespaces: systemNamespaces, - podService: podService, - gqlPodConverter: podConverter{}, - } -} - -func (r *namespaceResolver) NamespacesQuery(ctx context.Context, withSystemNamespaces *bool, withInactiveStatus *bool) ([]*gqlschema.NamespaceListItem, error) { - namespaces, err := r.namespaceSvc.List() - - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - - glog.Error(errors.Wrapf(err, "while listing %s", pretty.Namespaces)) - return nil, gqlerror.New(err, pretty.Namespaces) - } - - var filteredNamespaces []*v1.Namespace - for _, ns := range namespaces { - if r.checkNamespace(ns, withSystemNamespaces, withInactiveStatus) { - filteredNamespaces = append(filteredNamespaces, ns) - } - } - - converted := r.namespaceConverter.ToGQLs(filteredNamespaces) - - return converted, nil -} - -func (r *namespaceResolver) ApplicationsField(ctx context.Context, obj *gqlschema.Namespace) ([]string, error) { - - appNames := []string{} - if obj == nil { - return appNames, errors.New("Cannot get application field for namespace") - } - - items, err := r.appRetriever.Application().ListInNamespace(obj.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return appNames, nil - } - - return nil, errors.Wrapf(err, "while listing %s for namespace %s", appPretty.Application, obj.Name) - } - - for _, app := range items { - appNames = append(appNames, app.Name) - } - - return appNames, nil -} - -func (r *Resolver) PodsCountField(ctx context.Context, obj *gqlschema.NamespaceListItem) (int, error) { - pods, err := r.podSvc.List(obj.Name, pager.PagingParams{ - First: nil, - Offset: nil, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while counting %s from namespace %s", pretty.Pods, obj.Name)) - return 0, gqlerror.New(err, pretty.Pods, gqlerror.WithNamespace(obj.Name)) - } - - return len(pods), nil -} - -func (r *Resolver) HealthyPodsCountField(ctx context.Context, obj *gqlschema.NamespaceListItem) (int, error) { - pods, err := r.podSvc.List(obj.Name, pager.PagingParams{ - First: nil, - Offset: nil, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s from namespace %s", pretty.Pods, obj.Name)) - return 0, gqlerror.New(err, pretty.Pods, gqlerror.WithNamespace(obj.Name)) - } - - count := 0 - for _, pod := range pods { - status := r.gqlPodConverter.podStatusPhaseToGQLStatusType(pod.Status.Phase) - if status == "RUNNING" || status == "SUCCEEDED" { - count++ - } - } - - return count, nil -} - -func (r *Resolver) ApplicationsCountField(ctx context.Context, obj *gqlschema.NamespaceListItem) (*int, error) { - if obj == nil { - return nil, errors.New("Cannot get application field for namespace") - } - - items, err := r.appRetriever.Application().ListInNamespace(obj.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, nil - } - - return nil, errors.Wrapf(err, "while listing %s for namespace %s", appPretty.Application, obj.Name) - } - - count := len(items) - return &count, nil -} - -func (r *namespaceResolver) NamespaceQuery(ctx context.Context, name string) (*gqlschema.Namespace, error) { - namespace, err := r.namespaceSvc.Find(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s", pretty.Namespace, name)) - return nil, gqlerror.New(err, pretty.Namespace, gqlerror.WithName(name)) - } - - converted := r.namespaceConverter.ToGQL(namespace) - - return converted, nil -} - -func (r *namespaceResolver) CreateNamespace(ctx context.Context, name string, labels gqlschema.Labels) (*gqlschema.NamespaceMutationOutput, error) { - gqlLabels := r.populateLabels(labels) - ns, err := r.namespaceSvc.Create(name, gqlLabels) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s `%s`", pretty.Namespace, name)) - return nil, gqlerror.New(err, pretty.Namespace, gqlerror.WithName(name)) - } - return &gqlschema.NamespaceMutationOutput{ - Name: name, - Labels: ns.Labels, - }, nil -} - -func (r *namespaceResolver) UpdateNamespace(ctx context.Context, name string, labels gqlschema.Labels) (*gqlschema.NamespaceMutationOutput, error) { - gqlLabels := r.populateLabels(labels) - ns, err := r.namespaceSvc.Update(name, gqlLabels) - if err != nil { - glog.Error(errors.Wrapf(err, "while editing %s `%s`", pretty.Namespace, name)) - return nil, gqlerror.New(err, pretty.Namespace, gqlerror.WithName(name)) - } - if ns.Labels == nil { - ns.Labels = map[string]string{} - } - return &gqlschema.NamespaceMutationOutput{ - Name: name, - Labels: ns.Labels, - }, nil -} - -func (r *namespaceResolver) DeleteNamespace(ctx context.Context, name string) (*gqlschema.Namespace, error) { - namespace, err := r.namespaceSvc.Find(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s", pretty.Namespace, name)) - return nil, gqlerror.New(err, pretty.Namespace, gqlerror.WithName(name)) - } - - namespaceCopy := namespace.DeepCopy() - deletedNamespace := r.namespaceConverter.ToGQL(namespaceCopy) - - err = r.namespaceSvc.Delete(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s`", pretty.Namespace, name)) - return nil, gqlerror.New(err, pretty.Namespace, gqlerror.WithName(name)) - } - - return deletedNamespace, nil -} - -func (r *namespaceResolver) NamespaceEventSubscription(ctx context.Context, withSystemNamespaces *bool) (<-chan *gqlschema.NamespaceEvent, error) { - namespaceChannel := make(chan *gqlschema.NamespaceEvent, 1) - filter := func(namespace *v1.Namespace) bool { - newBool := true - return namespace != nil && r.checkNamespace(namespace, withSystemNamespaces, &newBool) - } - namespaceListener := listener.NewNamespace(namespaceChannel, filter, &r.namespaceConverter, r.systemNamespaces) - - allowAll := func(_ *v1.Pod) bool { return true } - podChannel := make(chan *gqlschema.PodEvent, 1) - podsListener := listener.NewPod(podChannel, allowAll, &podConverter{}) - - r.namespaceSvc.Subscribe(namespaceListener) - r.podService.Subscribe(podsListener) - - go func() { - defer close(namespaceChannel) - defer close(podChannel) - defer r.namespaceSvc.Unsubscribe(namespaceListener) - defer r.podService.Unsubscribe(podsListener) - - for { - select { - case podEvent := <-podChannel: - ns, err := r.namespaceSvc.Find(podEvent.Pod.Namespace) - if err != nil { - continue - } - namespaceListener.OnUpdate(ns, ns) - case <-ctx.Done(): - return - } - } - }() - - return namespaceChannel, nil -} - -func (r *namespaceResolver) populateLabels(givenLabels gqlschema.Labels) map[string]string { - labels := map[string]string{} - if givenLabels != nil { - for k, v := range givenLabels { - labels[k] = v - } - } - return labels -} - -func (r *namespaceResolver) checkNamespace(ns *v1.Namespace, withSystemNamespaces *bool, withInactiveStatus *bool) bool { - isSystem := isSystemNamespace(*ns, r.systemNamespaces) - passedSystemNamespaceCheck := !isSystem || (withSystemNamespaces != nil && *withSystemNamespaces && isSystem) - passedStatusCheck := ns.Status.Phase == "Active" || (withInactiveStatus != nil && *withInactiveStatus) - return passedSystemNamespaceCheck && passedStatusCheck -} diff --git a/components/console-backend-service/internal/domain/k8s/namespace_resolver_test.go b/components/console-backend-service/internal/domain/k8s/namespace_resolver_test.go deleted file mode 100644 index a614c3d62397..000000000000 --- a/components/console-backend-service/internal/domain/k8s/namespace_resolver_test.go +++ /dev/null @@ -1,393 +0,0 @@ -package k8s_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/stretchr/testify/mock" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - appAutomock "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestNamespaceResolver_NamespacesQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name, inactiveName, systemName := "name", "inactive", "system" - - k8sNamespace := fixNamespaceWithStatus(name, "Active") - gqlNamespace := gqlschema.NamespaceListItem{ - Name: name, - Status: "Active", - IsSystemNamespace: false, - Labels: gqlschema.Labels{}, - } - k8sInactiveNamespace := fixNamespaceWithStatus(inactiveName, "Terminating") - gqlInactiveNamespace := gqlschema.NamespaceListItem{ - Name: inactiveName, - Status: "Terminating", - IsSystemNamespace: false, - Labels: gqlschema.Labels{}, - } - k8sSystemNamespace := fixNamespaceWithStatus(systemName, "Active") - gqlSystemNamespace := gqlschema.NamespaceListItem{ - Name: systemName, - Status: "Active", - IsSystemNamespace: true, - Labels: gqlschema.Labels{}, - } - - resources := []*v1.Namespace{k8sNamespace, k8sInactiveNamespace, k8sSystemNamespace} - - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("List").Return(resources, nil).Times(3) - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{systemName}, podSvc) - - // check with default values - result, err := resolver.NamespacesQuery(nil, nil, nil) - expected := []*gqlschema.NamespaceListItem{ - &gqlNamespace, - } - - require.NoError(t, err) - assert.Equal(t, expected, result) - - trueBool := true - - // check with system namespaces - result, err = resolver.NamespacesQuery(nil, &trueBool, nil) - expected = []*gqlschema.NamespaceListItem{ - &gqlNamespace, &gqlSystemNamespace, - } - - require.NoError(t, err) - assert.Equal(t, expected, result) - - // check with inactive namespaces - result, err = resolver.NamespacesQuery(nil, nil, &trueBool) - expected = []*gqlschema.NamespaceListItem{ - &gqlNamespace, &gqlInactiveNamespace, - } - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - resources := []*v1.Namespace{} - expected := []*gqlschema.NamespaceListItem(nil) - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("List").Return(resources, nil).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.NamespacesQuery(nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("ErrorListing", func(t *testing.T) { - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("List").Return(nil, errors.New("test error")).Once() - defer svc.AssertExpectations(t) - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.NamespacesQuery(nil, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestNamespaceResolver_NamespaceQuery(t *testing.T) { - name := "name" - labels := map[string]string{ - "env": "true", - } - - t.Run("Success", func(t *testing.T) { - resource := fixNamespace(name, labels) - expected := gqlschema.Namespace{ - Name: name, - Labels: labels, - } - - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Find", name).Return(resource, nil).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.NamespaceQuery(nil, name) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Find", name).Return(nil, nil).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.NamespaceQuery(nil, name) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error finding", func(t *testing.T) { - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Find", name).Return(nil, errors.New("test error")).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.NamespaceQuery(nil, name) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestNamespaceResolver_CreateNamespace(t *testing.T) { - name := "exampleName" - - t.Run("Success", func(t *testing.T) { - labels := gqlschema.Labels{ - "test": "true", - } - - resource := fixNamespace(name, labels) - expected := &gqlschema.NamespaceMutationOutput{ - Name: name, - Labels: labels, - } - - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Create", name, labels).Return(resource, nil).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.CreateNamespace(nil, name, labels) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - labels := gqlschema.Labels{} - - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Create", name, labels).Return(nil, errors.New("test error")).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.CreateNamespace(nil, name, labels) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestNamespaceResolver_UpdateNamespace(t *testing.T) { - name := "exampleName" - labels := gqlschema.Labels{ - "test": "true", - } - - t.Run("Success", func(t *testing.T) { - resource := fixNamespace(name, labels) - expected := &gqlschema.NamespaceMutationOutput{ - Name: name, - Labels: labels, - } - - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Update", name, labels).Return(resource, nil).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.UpdateNamespace(nil, name, labels) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Update", name, labels).Return(nil, errors.New("test error")).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.UpdateNamespace(nil, name, labels) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestNamespaceResolver_DeleteNamespace(t *testing.T) { - name := "name" - labels := map[string]string{ - "env": "true", - } - expected := gqlschema.Namespace{ - Name: name, - Labels: labels, - } - - t.Run("Success", func(t *testing.T) { - resource := fixNamespace(name, labels) - - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Find", name).Return(resource, nil).Once() - svc.On("Delete", name).Return(nil).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.DeleteNamespace(nil, name) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Error finding", func(t *testing.T) { - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Find", name).Return(nil, errors.New("test error")).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - result, err := resolver.DeleteNamespace(nil, name) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("Error deleting", func(t *testing.T) { - resource := fixNamespace(name, labels) - - svc := automock.NewNamespaceSvc() - appRetriever := new(appAutomock.ApplicationRetriever) - svc.On("Find", name).Return(resource, nil).Once() - defer svc.AssertExpectations(t) - - podSvc := automock.NewPodSvc() - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - svc.On("Delete", name).Return(errors.New("test error")).Once() - - result, err := resolver.DeleteNamespace(nil, name) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestNamespaceResolver_NamespaceEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), -24*time.Hour) - cancel() - - svc := automock.NewNamespaceSvc() - podSvc := automock.NewPodSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - podSvc.On("Subscribe", mock.Anything).Once() - podSvc.On("Unsubscribe", mock.Anything).Once() - - appRetriever := new(appAutomock.ApplicationRetriever) - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - _, err := resolver.NamespaceEventSubscription(ctx, nil) - require.NoError(t, err) - - svc.AssertCalled(t, "Subscribe", mock.Anything) - podSvc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), -24*time.Hour) - cancel() - - svc := automock.NewNamespaceSvc() - podSvc := automock.NewPodSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - podSvc.On("Subscribe", mock.Anything).Once() - podSvc.On("Unsubscribe", mock.Anything).Once() - - appRetriever := new(appAutomock.ApplicationRetriever) - resolver := k8s.NewNamespaceResolver(svc, appRetriever, []string{}, podSvc) - - channel, err := resolver.NamespaceEventSubscription(ctx, nil) - require.NoError(t, err) - - _, ok := <-channel - assert.False(t, ok) - - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - podSvc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} - -func fixNamespaceWithStatus(name string, status string) *v1.Namespace { - namespace := fixNamespaceWithoutTypeMeta(name, nil) - namespace.TypeMeta = metav1.TypeMeta{ - Kind: "Namespace", - APIVersion: "v1", - } - - namespace.Status.Phase = v1.NamespacePhase(status) - return namespace -} diff --git a/components/console-backend-service/internal/domain/k8s/namespace_service.go b/components/console-backend-service/internal/domain/k8s/namespace_service.go deleted file mode 100644 index 1ca88ef0808f..000000000000 --- a/components/console-backend-service/internal/domain/k8s/namespace_service.go +++ /dev/null @@ -1,120 +0,0 @@ -package k8s - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" - apiErrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/util/retry" -) - -type namespaceService struct { - informer cache.SharedIndexInformer - podsSvc podSvc - client corev1.CoreV1Interface - notifier resource.Notifier -} - -func newNamespaceService(informer cache.SharedIndexInformer, podsSvc podSvc, client corev1.CoreV1Interface) (*namespaceService, error) { - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - return &namespaceService{ - informer: informer, - podsSvc: podsSvc, - client: client, - notifier: notifier, - }, nil -} - -func (svc *namespaceService) List() ([]*v1.Namespace, error) { - items := svc.informer.GetStore().List() - - var namespaces []*v1.Namespace - for _, item := range items { - namespace, ok := item.(*v1.Namespace) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *Namespace", item) - } - namespaces = append(namespaces, namespace) - } - - return namespaces, nil -} - -func (svc *namespaceService) Find(name string) (*v1.Namespace, error) { - item, exists, err := svc.informer.GetStore().GetByKey(name) - - if err != nil { - return nil, err - } - - if !exists { - return nil, nil - } - - namespace, ok := item.(*v1.Namespace) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *Namespace", item) - } - - return namespace, nil -} - -func (svc *namespaceService) Create(name string, labels gqlschema.Labels) (*v1.Namespace, error) { - namespace := v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: labels, - }, - } - - return svc.client.Namespaces().Create(context.Background(), &namespace, metav1.CreateOptions{}) -} - -func (svc *namespaceService) Update(name string, labels gqlschema.Labels) (*v1.Namespace, error) { - var updated *v1.Namespace - err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { - namespace, err := svc.Find(name) - - if err != nil { - return errors.Wrapf(err, "while getting %s [%s]", pretty.Namespace, name) - } - if namespace == nil { - return apiErrors.NewNotFound(schema.GroupResource{ - Group: "", - Resource: "namespaces", - }, name) - } - namespace.ObjectMeta.Labels = labels - - updated, err = svc.client.Namespaces().Update(context.Background(), namespace, metav1.UpdateOptions{}) - - return errors.Wrapf(err, "while updating %s [%s]", pretty.Namespace, name) - }) - - if err != nil { - return nil, errors.Wrapf(err, "couldn't update %s [%s], after %d retries", pretty.Namespace, name, retry.DefaultRetry.Steps) - } - return updated, nil -} - -func (svc *namespaceService) Delete(name string) error { - return svc.client.Namespaces().Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *namespaceService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *namespaceService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/k8s/namespace_service_test.go b/components/console-backend-service/internal/domain/k8s/namespace_service_test.go deleted file mode 100644 index 125a20d91640..000000000000 --- a/components/console-backend-service/internal/domain/k8s/namespace_service_test.go +++ /dev/null @@ -1,296 +0,0 @@ -package k8s_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes/fake" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/cache" -) - -func TestNamespacesService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{ - "test": "test", - "env": "true", - } - emptyLabels := map[string]string{} - namespace1 := fixNamespace("namespace-name", labels) - namespace2 := fixNamespace("namespace-name-2", emptyLabels) - - fixedInformer, _ := fixNamespaceInformer(namespace1, namespace2) - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - namespaces, err := svc.List() - require.NoError(t, err) - assert.ElementsMatch(t, []*v1.Namespace{ - namespace1, namespace2, - }, namespaces) - }) - - t.Run("NotFound", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - namespaces, err := svc.List() - require.NoError(t, err) - assert.ElementsMatch(t, []*v1.Namespace{}, namespaces) - }) -} - -func TestNamespacesService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "namespace-name" - labels := map[string]string{ - "test": "test", - "env": "true", - } - namespace1 := fixNamespace(name, labels) - - fixedInformer, _ := fixNamespaceInformer(namespace1) - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - namespace, err := svc.Find(name) - require.NoError(t, err) - assert.Equal(t, namespace1, namespace) - }) - - t.Run("Not Found", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - namespace, err := svc.Find("name") - require.NoError(t, err) - var empty *v1.Namespace - assert.Equal(t, empty, namespace) - }) -} - -func TestNamespacesService_Create(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "namespace" - labels := map[string]string{ - "test": "test", - "env": "true", - } - - fixedInformer, client := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, client) - - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - namespace, err := svc.Create(name, labels) - require.NoError(t, err) - assert.Equal(t, name, namespace.Name) - assert.Equal(t, labels["env"], namespace.Labels["env"]) - assert.Equal(t, labels["test"], namespace.Labels["test"]) - }) -} - -func TestNamespacesService_Delete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "namespace" - labels := map[string]string{ - "test": "test", - "env": "true", - } - namespace1 := fixNamespace(name, labels) - - fixedInformer, client := fixNamespaceInformer(namespace1) - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, client) - - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - err = svc.Delete(name) - require.NoError(t, err) - }) - - t.Run("Not Found", func(t *testing.T) { - fixedInformer, client := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, client) - - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - err = svc.Delete("name") - require.Error(t, err) - }) -} - -func TestNamespacesService_Update(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "namespace" - labels := map[string]string{ - "test": "test", - "env": "true", - } - newLabels := map[string]string{ - "test": "test2", - } - namespace1 := fixNamespace(name, labels) - - fixedInformer, client := fixNamespaceInformer(namespace1) - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, client) - - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, fixedInformer) - - namespace, err := svc.Update(name, newLabels) - require.NoError(t, err) - assert.Equal(t, name, namespace.Name) - assert.Equal(t, newLabels["test"], namespace.Labels["test"]) - }) -} - -func TestNamespaceService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - namespaceListener := listener.NewNamespace(nil, nil, nil, []string{}) - - svc.Subscribe(namespaceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - namespaceListener := listener.NewNamespace(nil, nil, nil, []string{}) - - svc.Subscribe(namespaceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - namespaceListener1 := listener.NewNamespace(nil, nil, nil, []string{}) - namespaceListener2 := listener.NewNamespace(nil, nil, nil, []string{}) - - svc.Subscribe(namespaceListener1) - svc.Subscribe(namespaceListener2) - }) - - t.Run("Nil", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - - svc.Subscribe(nil) - }) -} - -func TestNamespaceService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - namespaceListener := listener.NewNamespace(nil, nil, nil, []string{}) - - svc.Subscribe(namespaceListener) - - svc.Unsubscribe(namespaceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - namespaceListener := listener.NewNamespace(nil, nil, nil, []string{}) - - svc.Subscribe(namespaceListener) - svc.Subscribe(namespaceListener) - - svc.Unsubscribe(namespaceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - namespaceListener1 := listener.NewNamespace(nil, nil, nil, []string{}) - namespaceListener2 := listener.NewNamespace(nil, nil, nil, []string{}) - - svc.Subscribe(namespaceListener1) - svc.Subscribe(namespaceListener2) - - svc.Unsubscribe(namespaceListener1) - svc.Unsubscribe(namespaceListener2) - }) - - t.Run("Multiple", func(t *testing.T) { - fixedInformer, _ := fixNamespaceInformer() - podSvc := automock.NewPodSvc() - svc, err := k8s.NewNamespaceService(fixedInformer, podSvc, nil) - require.NoError(t, err) - - svc.Unsubscribe(nil) - }) -} - -func fixNamespace(name string, labels map[string]string) *v1.Namespace { - namespace := fixNamespaceWithoutTypeMeta(name, labels) - namespace.TypeMeta = metav1.TypeMeta{ - Kind: "Namespace", - APIVersion: "v1", - } - return namespace -} -func fixNamespaceWithoutTypeMeta(name string, labels map[string]string) *v1.Namespace { - return &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: labels, - }, - } -} - -func fixNamespaceInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().Namespaces().Informer() - - return informer, client.CoreV1() -} diff --git a/components/console-backend-service/internal/domain/k8s/pod_converter.go b/components/console-backend-service/internal/domain/k8s/pod_converter.go deleted file mode 100644 index dedfeacb4490..000000000000 --- a/components/console-backend-service/internal/domain/k8s/pod_converter.go +++ /dev/null @@ -1,124 +0,0 @@ -package k8s - -import ( - "bytes" - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/pkg/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/state" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/core/v1" -) - -type podConverter struct { - extractor state.ContainerExtractor -} - -func (c *podConverter) ToGQL(in *v1.Pod) (*gqlschema.Pod, error) { - if in == nil { - return nil, nil - } - - containerStates := c.extractor.States(in.Status.ContainerStatuses) - - gqlJSON, err := c.podToGQLJSON(in) - if err != nil { - return nil, errors.Wrapf(err, "while converting %s `%s` to it's json representation", pretty.Pod, in.Name) - } - - labels := in.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - - return &gqlschema.Pod{ - Name: in.Name, - NodeName: in.Spec.NodeName, - Namespace: in.Namespace, - RestartCount: c.getRestartCount(in.Status.ContainerStatuses), - CreationTimestamp: in.CreationTimestamp.Time, - Labels: labels, - Status: c.podStatusPhaseToGQLStatusType(in.Status.Phase), - ContainerStates: containerStates, - JSON: gqlJSON, - }, nil -} - -func (c *podConverter) ToGQLs(in []*v1.Pod) ([]*gqlschema.Pod, error) { - var result []*gqlschema.Pod - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *podConverter) podToGQLJSON(in *v1.Pod) (gqlschema.JSON, error) { - if in == nil { - return nil, nil - } - - jsonByte, err := json.Marshal(in) - if err != nil { - return nil, errors.Wrapf(err, "while marshalling %s `%s`", pretty.Pod, in.Name) - } - - var jsonMap map[string]interface{} - err = json.Unmarshal(jsonByte, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to map", pretty.Pod, in.Name) - } - - var result gqlschema.JSON - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to GQL JSON", pretty.Pod, in.Name) - } - - return result, nil -} - -func (c *podConverter) GQLJSONToPod(in gqlschema.JSON) (v1.Pod, error) { - var buf bytes.Buffer - in.MarshalGQL(&buf) - bufBytes := buf.Bytes() - result := v1.Pod{} - err := json.Unmarshal(bufBytes, &result) - if err != nil { - return v1.Pod{}, errors.Wrapf(err, "while unmarshalling GQL JSON of %s", pretty.Pod) - } - - return result, nil -} - -func (c *podConverter) podStatusPhaseToGQLStatusType(in v1.PodPhase) gqlschema.PodStatusType { - switch in { - case v1.PodPending: - return gqlschema.PodStatusTypePending - case v1.PodRunning: - return gqlschema.PodStatusTypeRunning - case v1.PodSucceeded: - return gqlschema.PodStatusTypeSucceeded - case v1.PodFailed: - return gqlschema.PodStatusTypeFailed - default: - return gqlschema.PodStatusTypeUnknown - } -} - -func (c *podConverter) getRestartCount(in []v1.ContainerStatus) int { - restartCount := 0 - for _, containerStatus := range in { - restartCount += int(containerStatus.RestartCount) - } - return restartCount -} diff --git a/components/console-backend-service/internal/domain/k8s/pod_converter_test.go b/components/console-backend-service/internal/domain/k8s/pod_converter_test.go deleted file mode 100644 index 3828c12cfb69..000000000000 --- a/components/console-backend-service/internal/domain/k8s/pod_converter_test.go +++ /dev/null @@ -1,512 +0,0 @@ -package k8s - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestPodConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := &podConverter{} - in := v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Namespace: "exampleNamespace", - CreationTimestamp: metav1.Time{}, - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - }, - Spec: v1.PodSpec{ - NodeName: "exampleNodeName", - }, - Status: v1.PodStatus{ - Phase: v1.PodPending, - ContainerStatuses: []v1.ContainerStatus{ - fixContainerStatus("exampleStatus", 123, &v1.ContainerState{ - Waiting: &v1.ContainerStateWaiting{ - Reason: "exampleReason", - Message: "exampleMessage", - }, - }), - }, - }, - } - expectedJSON, err := converter.podToGQLJSON(&in) - require.NoError(t, err) - expected := gqlschema.Pod{ - Name: "exampleName", - NodeName: "exampleNodeName", - Namespace: "exampleNamespace", - RestartCount: 123, - CreationTimestamp: time.Time{}, - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - Status: gqlschema.PodStatusTypePending, - ContainerStates: []*gqlschema.ContainerState{ - fixGQLContainerState(gqlschema.ContainerStateTypeWaiting, "exampleReason", "exampleMessage"), - }, - JSON: expectedJSON, - } - - result, err := converter.ToGQL(&in) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - - }) - - t.Run("Empty", func(t *testing.T) { - converter := &podConverter{} - emptyPodJSON, err := converter.podToGQLJSON(&v1.Pod{}) - require.NoError(t, err) - expected := &gqlschema.Pod{ - Status: gqlschema.PodStatusTypeUnknown, - ContainerStates: []*gqlschema.ContainerState{}, - JSON: emptyPodJSON, - Labels: gqlschema.Labels{}, - } - - result, err := converter.ToGQL(&v1.Pod{}) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &podConverter{} - - result, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestPodConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := podConverter{} - expectedName := "exampleName" - in := []*v1.Pod{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName2", - }, - }, - } - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, expectedName, result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - converter := podConverter{} - var in []*v1.Pod - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - converter := podConverter{} - expectedName := "exampleName" - in := []*v1.Pod{ - nil, - &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - }, - }, - nil, - } - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, expectedName, result[0].Name) - }) -} - -func TestPodConverter_PodToGQLJSON(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := podConverter{} - exampleContainerStateWaiting := v1.ContainerStateWaiting{ - Reason: "exampleReason", - Message: "exampleMessage", - } - expectedMap := map[string]interface{}{ - "kind": "exampleKind", - "metadata": map[string]interface{}{ - "name": "exampleName", - "labels": map[string]interface{}{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - "creationTimestamp": nil, - "ownerReferences": []interface{}{ - map[string]interface{}{ - "apiVersion": "exampleApiVersion", - "kind": "exampleKind", - "name": "exampleName", - "uid": "exampleUID", - }, - }, - }, - "spec": map[string]interface{}{ - "nodeName": "exampleNodeName", - "containers": nil, - }, - "status": map[string]interface{}{ - "phase": "examplePhase", - "conditions": []interface{}{ - map[string]interface{}{ - "reason": "exampleReason", - "type": "exampleType", - "status": "exampleStatus", - "message": "exampleMessage", - "lastProbeTime": nil, - "lastTransitionTime": nil, - }, - map[string]interface{}{ - "reason": "exampleReason", - "type": "exampleType", - "status": "exampleStatus", - "message": "exampleMessage", - "lastProbeTime": nil, - "lastTransitionTime": nil, - }, - }, - "containerStatuses": []interface{}{ - map[string]interface{}{ - "name": "exampleName", - "restartCount": float64(5), - "ready": true, - "state": map[string]interface{}{ - "waiting": map[string]interface{}{ - "reason": "exampleReason", - "message": "exampleMessage", - }, - }, - "image": "", - "imageID": "", - "lastState": map[string]interface{}{}, - }, - }, - }, - } - in := v1.Pod{ - TypeMeta: metav1.TypeMeta{ - Kind: "exampleKind", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - CreationTimestamp: metav1.Time{}, - OwnerReferences: []metav1.OwnerReference{ - { - APIVersion: "exampleApiVersion", - Name: "exampleName", - UID: "exampleUID", - Kind: "exampleKind", - }, - }, - }, - Spec: v1.PodSpec{ - NodeName: "exampleNodeName", - }, - Status: v1.PodStatus{ - Phase: "examplePhase", - Conditions: []v1.PodCondition{ - { - Type: "exampleType", - Status: "exampleStatus", - LastProbeTime: metav1.Time{}, - LastTransitionTime: metav1.Time{}, - Reason: "exampleReason", - Message: "exampleMessage", - }, - { - Type: "exampleType", - Status: "exampleStatus", - LastProbeTime: metav1.Time{}, - LastTransitionTime: metav1.Time{}, - Reason: "exampleReason", - Message: "exampleMessage", - }, - }, - ContainerStatuses: []v1.ContainerStatus{ - { - Name: "exampleName", - State: v1.ContainerState{ - Waiting: &exampleContainerStateWaiting, - }, - LastTerminationState: v1.ContainerState{}, - Ready: true, - RestartCount: 5, - Image: "", - ImageID: "", - ContainerID: "", - }, - }, - }, - } - - expectedJSON := new(gqlschema.JSON) - err := expectedJSON.UnmarshalGQL(expectedMap) - require.NoError(t, err) - - result, err := converter.podToGQLJSON(&in) - - require.NoError(t, err) - assert.Equal(t, *expectedJSON, result) - }) - - t.Run("NilPassed", func(t *testing.T) { - converter := podConverter{} - - result, err := converter.podToGQLJSON(nil) - - require.Nil(t, result) - require.NoError(t, err) - }) -} - -func TestPodConverter_GQLJSONToPod(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := podConverter{} - exampleContainerStateWaiting := v1.ContainerStateWaiting{ - Reason: "exampleReason", - Message: "exampleMessage", - } - inMap := map[string]interface{}{ - "kind": "exampleKind", - "metadata": map[string]interface{}{ - "name": "exampleName", - "labels": map[string]interface{}{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - "creationTimestamp": nil, - "ownerReferences": []interface{}{ - map[string]interface{}{ - "apiVersion": "exampleApiVersion", - "kind": "exampleKind", - "name": "exampleName", - "uid": "exampleUID", - }, - }, - }, - "spec": map[string]interface{}{ - "nodeName": "exampleNodeName", - "containers": nil, - }, - "status": map[string]interface{}{ - "phase": "examplePhase", - "conditions": []interface{}{ - map[string]interface{}{ - "reason": "exampleReason", - "type": "exampleType", - "status": "exampleStatus", - "message": "exampleMessage", - "lastProbeTime": nil, - "lastTransitionTime": nil, - }, - map[string]interface{}{ - "reason": "exampleReason", - "type": "exampleType", - "status": "exampleStatus", - "message": "exampleMessage", - "lastProbeTime": nil, - "lastTransitionTime": nil, - }, - }, - "containerStatuses": []interface{}{ - map[string]interface{}{ - "name": "exampleName", - "restartCount": float64(5), - "ready": true, - "state": map[string]interface{}{ - "waiting": map[string]interface{}{ - "reason": "exampleReason", - "message": "exampleMessage", - }, - }, - "image": "", - "imageID": "", - "lastState": map[string]interface{}{}, - }, - }, - }, - } - expected := v1.Pod{ - TypeMeta: metav1.TypeMeta{ - Kind: "exampleKind", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - CreationTimestamp: metav1.Time{}, - OwnerReferences: []metav1.OwnerReference{ - { - APIVersion: "exampleApiVersion", - Name: "exampleName", - UID: "exampleUID", - Kind: "exampleKind", - }, - }, - }, - Spec: v1.PodSpec{ - NodeName: "exampleNodeName", - }, - Status: v1.PodStatus{ - Phase: "examplePhase", - Conditions: []v1.PodCondition{ - { - Type: "exampleType", - Status: "exampleStatus", - LastProbeTime: metav1.Time{}, - LastTransitionTime: metav1.Time{}, - Reason: "exampleReason", - Message: "exampleMessage", - }, - { - Type: "exampleType", - Status: "exampleStatus", - LastProbeTime: metav1.Time{}, - LastTransitionTime: metav1.Time{}, - Reason: "exampleReason", - Message: "exampleMessage", - }, - }, - ContainerStatuses: []v1.ContainerStatus{ - { - Name: "exampleName", - State: v1.ContainerState{ - Waiting: &exampleContainerStateWaiting, - }, - LastTerminationState: v1.ContainerState{}, - Ready: true, - RestartCount: 5, - Image: "", - ImageID: "", - ContainerID: "", - }, - }, - }, - } - - inJSON := new(gqlschema.JSON) - err := inJSON.UnmarshalGQL(inMap) - require.NoError(t, err) - - result, err := converter.GQLJSONToPod(*inJSON) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) -} - -func TestPodConverter_PodStatusPhaseToGQLStatusType(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := podConverter{} - - types := map[v1.PodPhase]gqlschema.PodStatusType{ - v1.PodPending: gqlschema.PodStatusTypePending, - v1.PodRunning: gqlschema.PodStatusTypeRunning, - v1.PodSucceeded: gqlschema.PodStatusTypeSucceeded, - v1.PodFailed: gqlschema.PodStatusTypeFailed, - v1.PodUnknown: gqlschema.PodStatusTypeUnknown, - } - - for k, v := range types { - result := converter.podStatusPhaseToGQLStatusType(k) - assert.Equal(t, v, result) - } - }) -} - -func TestPodConverter_GetRestartCount(t *testing.T) { - restarts := []int{22, 0, 15} - - t.Run("Empty", func(t *testing.T) { - converter := podConverter{} - in := []v1.ContainerStatus{} - expected := 0 - - result := converter.getRestartCount(in) - - assert.Equal(t, expected, result) - }) - - t.Run("Single", func(t *testing.T) { - converter := podConverter{} - in := []v1.ContainerStatus{ - fixContainerStatus("test1", restarts[0], nil), - } - expected := restarts[0] - - result := converter.getRestartCount(in) - - assert.Equal(t, expected, result) - }) - - t.Run("Multiple", func(t *testing.T) { - converter := podConverter{} - in := []v1.ContainerStatus{ - fixContainerStatus("test1", restarts[0], nil), - fixContainerStatus("test2", restarts[1], nil), - fixContainerStatus("test3", restarts[2], nil), - } - expected := restarts[0] + restarts[1] + restarts[2] - - result := converter.getRestartCount(in) - - assert.Equal(t, expected, result) - }) -} - -func fixContainerStatus(name string, restartCount int, state *v1.ContainerState) v1.ContainerStatus { - if state == nil { - state = &v1.ContainerState{} - } - - return v1.ContainerStatus{ - Name: name, - State: *state, - RestartCount: int32(restartCount), - } -} - -func fixGQLContainerState(state gqlschema.ContainerStateType, reason string, message string) *gqlschema.ContainerState { - return &gqlschema.ContainerState{ - State: state, - Reason: reason, - Message: message, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/pod_resolver.go b/components/console-backend-service/internal/domain/k8s/pod_resolver.go deleted file mode 100644 index 35535b13bfa6..000000000000 --- a/components/console-backend-service/internal/domain/k8s/pod_resolver.go +++ /dev/null @@ -1,147 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -//go:generate mockery -name=podSvc -output=automock -outpkg=automock -case=underscore -type podSvc interface { - Find(name, namespace string) (*v1.Pod, error) - List(namespace string, pagingParams pager.PagingParams) ([]*v1.Pod, error) - Update(name, namespace string, update v1.Pod) (*v1.Pod, error) - Delete(name, namespace string) error - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -//go:generate mockery -name=gqlPodConverter -output=automock -outpkg=automock -case=underscore -type gqlPodConverter interface { - ToGQL(in *v1.Pod) (*gqlschema.Pod, error) - ToGQLs(in []*v1.Pod) ([]*gqlschema.Pod, error) - GQLJSONToPod(in gqlschema.JSON) (v1.Pod, error) -} - -type podResolver struct { - podSvc podSvc - podConverter gqlPodConverter -} - -func newPodResolver(podSvc podSvc) *podResolver { - return &podResolver{ - podSvc: podSvc, - podConverter: &podConverter{}, - } -} - -func (r *podResolver) PodQuery(ctx context.Context, name, namespace string) (*gqlschema.Pod, error) { - pod, err := r.podSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s from namespace %s", pretty.Pod, name, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - if pod == nil { - return nil, nil - } - - converted, err := r.podConverter.ToGQL(pod) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s from namespace %s", pretty.Pod, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return converted, nil -} - -func (r *podResolver) PodsQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.Pod, error) { - pods, err := r.podSvc.List(namespace, pager.PagingParams{ - First: first, - Offset: offset, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s from namespace %s", pretty.Pods, namespace)) - return nil, gqlerror.New(err, pretty.Pods, gqlerror.WithNamespace(namespace)) - } - - converted, err := r.podConverter.ToGQLs(pods) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s from namespace %s", pretty.Pods, namespace)) - return nil, gqlerror.New(err, pretty.Pods, gqlerror.WithNamespace(namespace)) - } - - return converted, nil -} - -func (r *podResolver) PodEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.PodEvent, error) { - channel := make(chan *gqlschema.PodEvent, 1) - filter := func(pod *v1.Pod) bool { - return pod != nil && pod.Namespace == namespace - } - - podListener := listener.NewPod(channel, filter, r.podConverter) - - r.podSvc.Subscribe(podListener) - go func() { - defer close(channel) - defer r.podSvc.Unsubscribe(podListener) - <-ctx.Done() - }() - - return channel, nil -} - -func (r *podResolver) UpdatePodMutation(ctx context.Context, name string, namespace string, update gqlschema.JSON) (*gqlschema.Pod, error) { - pod, err := r.podConverter.GQLJSONToPod(update) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace `%s`", pretty.Pod, name, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updated, err := r.podSvc.Update(name, namespace, pod) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace %s", pretty.Pod, name, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updatedGql, err := r.podConverter.ToGQL(updated) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s `%s` from namespace %s", pretty.Pod, name, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return updatedGql, nil -} - -func (r *podResolver) DeletePodMutation(ctx context.Context, name string, namespace string) (*gqlschema.Pod, error) { - pod, err := r.podSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while finding %s `%s` in namespace `%s`", pretty.Pod, name, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - podCopy := pod.DeepCopy() - deletedPod, err := r.podConverter.ToGQL(podCopy) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.Pod)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - err = r.podSvc.Delete(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s` from namespace `%s`", pretty.Pod, name, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return deletedPod, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/pod_resolver_test.go b/components/console-backend-service/internal/domain/k8s/pod_resolver_test.go deleted file mode 100644 index 10b07a91456a..000000000000 --- a/components/console-backend-service/internal/domain/k8s/pod_resolver_test.go +++ /dev/null @@ -1,432 +0,0 @@ -package k8s_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/stretchr/testify/mock" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" -) - -func TestPodResolver_PodQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.Pod{ - Name: "Test", - } - name := "name" - namespace := "namespace" - resource := &v1.Pod{} - resourceGetter := automock.NewPodSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - resolver.SetPodConverter(converter) - - result, err := resolver.PodQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - namespace := "namespace" - resourceGetter := automock.NewPodSvc() - resourceGetter.On("Find", name, namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - - result, err := resolver.PodQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &v1.Pod{} - resourceGetter := automock.NewPodSvc() - resourceGetter.On("Find", name, namespace).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - - result, err := resolver.PodQuery(nil, name, namespace) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &v1.Pod{} - resourceGetter := automock.NewPodSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("ToGQL", resource).Return(nil, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - resolver.SetPodConverter(converter) - - result, err := resolver.PodQuery(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestPodResolver_PodsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "Test" - namespace := "namespace" - resource := fixPod(name, namespace, nil) - resources := []*v1.Pod{ - resource, resource, - } - expected := []*gqlschema.Pod{ - { - Name: name, - }, - { - Name: name, - }, - } - - resourceGetter := automock.NewPodSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - resolver.SetPodConverter(converter) - - result, err := resolver.PodsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "namespace" - var resources []*v1.Pod - var expected []*gqlschema.Pod - - resourceGetter := automock.NewPodSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - - result, err := resolver.PodsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - namespace := "namespace" - expected := errors.New("Test") - var resources []*v1.Pod - resourceGetter := automock.NewPodSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - - result, err := resolver.PodsQuery(nil, namespace, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - name := "Test" - namespace := "namespace" - resource := fixPod(name, namespace, nil) - resources := []*v1.Pod{ - resource, resource, - } - expected := errors.New("Test") - - resourceGetter := automock.NewPodSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("ToGQLs", resources).Return(nil, expected) - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(resourceGetter) - resolver.SetPodConverter(converter) - - result, err := resolver.PodsQuery(nil, namespace, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestPodResolver_PodEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewPodSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewPodResolver(svc) - - _, err := resolver.PodEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewPodSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewPodResolver(svc) - - channel, err := resolver.PodEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} - -func TestPodResolver_UpdatePodMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedPodFix := fixPod(name, namespace, map[string]string{ - "test": "test", - }) - updatedGQLPodFix := &gqlschema.Pod{ - Name: name, - Namespace: namespace, - Labels: map[string]string{ - "test": "test", - }, - } - gqlJSONFix := gqlschema.JSON{} - - podSvc := automock.NewPodSvc() - podSvc.On("Update", name, namespace, *updatedPodFix).Return(updatedPodFix, nil).Once() - defer podSvc.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("GQLJSONToPod", gqlJSONFix).Return(*updatedPodFix, nil).Once() - converter.On("ToGQL", updatedPodFix).Return(updatedGQLPodFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - resolver.SetPodConverter(converter) - - result, err := resolver.UpdatePodMutation(nil, name, namespace, gqlJSONFix) - - require.NoError(t, err) - assert.Equal(t, updatedGQLPodFix, result) - }) - - t.Run("ErrorConvertingToPod", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - podSvc := automock.NewPodSvc() - - converter := automock.NewGQLPodConverter() - converter.On("GQLJSONToPod", gqlJSONFix).Return(v1.Pod{}, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - resolver.SetPodConverter(converter) - - result, err := resolver.UpdatePodMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorUpdating", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedPodFix := fixPod(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - podSvc := automock.NewPodSvc() - podSvc.On("Update", name, namespace, *updatedPodFix).Return(nil, expected).Once() - defer podSvc.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("GQLJSONToPod", gqlJSONFix).Return(*updatedPodFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - resolver.SetPodConverter(converter) - - result, err := resolver.UpdatePodMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.Nil(t, result) - }) - - t.Run("ErrorConvertingToGQL", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedPodFix := fixPod(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - podSvc := automock.NewPodSvc() - podSvc.On("Update", name, namespace, *updatedPodFix).Return(updatedPodFix, nil).Once() - defer podSvc.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("GQLJSONToPod", gqlJSONFix).Return(*updatedPodFix, nil).Once() - converter.On("ToGQL", updatedPodFix).Return(nil, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - resolver.SetPodConverter(converter) - - result, err := resolver.UpdatePodMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestPodResolver_DeletePodMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixPod(name, namespace, nil) - expected := &gqlschema.Pod{ - Name: name, - Namespace: namespace, - } - - podSvc := automock.NewPodSvc() - podSvc.On("Find", name, namespace).Return(resource, nil).Once() - podSvc.On("Delete", name, namespace).Return(nil).Once() - defer podSvc.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - resolver.SetPodConverter(converter) - - result, err := resolver.DeletePodMutation(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - expected := errors.New("fix") - - podSvc := automock.NewPodSvc() - podSvc.On("Find", name, namespace).Return(nil, expected).Once() - defer podSvc.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - - result, err := resolver.DeletePodMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorDeleting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixPod(name, namespace, nil) - expected := errors.New("fix") - - podSvc := automock.NewPodSvc() - podSvc.On("Find", name, namespace).Return(resource, nil).Once() - podSvc.On("Delete", name, namespace).Return(expected).Once() - defer podSvc.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - - result, err := resolver.DeletePodMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixPod(name, namespace, nil) - error := errors.New("fix") - - podSvc := automock.NewPodSvc() - podSvc.On("Find", name, namespace).Return(resource, nil).Once() - defer podSvc.AssertExpectations(t) - - converter := automock.NewGQLPodConverter() - converter.On("ToGQL", resource).Return(nil, error).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewPodResolver(podSvc) - resolver.SetPodConverter(converter) - - result, err := resolver.DeletePodMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/pod_service.go b/components/console-backend-service/internal/domain/k8s/pod_service.go deleted file mode 100644 index f0423e39dc38..000000000000 --- a/components/console-backend-service/internal/domain/k8s/pod_service.go +++ /dev/null @@ -1,136 +0,0 @@ -package k8s - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "k8s.io/client-go/tools/cache" -) - -type podService struct { - client corev1.CoreV1Interface - informer cache.SharedIndexInformer - notifier resource.Notifier -} - -func newPodService(informer cache.SharedIndexInformer, client corev1.CoreV1Interface) *podService { - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - return &podService{ - client: client, - informer: informer, - notifier: notifier, - } -} - -func (svc *podService) Find(name, namespace string) (*v1.Pod, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - pod, ok := item.(*v1.Pod) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *Pod", item) - } - - svc.ensureTypeMeta(pod) - - return pod, nil -} - -func (svc *podService) List(namespace string, pagingParams pager.PagingParams) ([]*v1.Pod, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - var pods []*v1.Pod - for _, item := range items { - pod, ok := item.(*v1.Pod) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *Pod", item) - } - - svc.ensureTypeMeta(pod) - - pods = append(pods, pod) - } - - return pods, nil -} - -func (svc *podService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *podService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} - -func (svc *podService) Update(name, namespace string, update v1.Pod) (*v1.Pod, error) { - err := svc.checkUpdatePreconditions(name, namespace, update) - if err != nil { - return nil, err - } - - updated, err := svc.client.Pods(namespace).Update(context.Background(), &update, metav1.UpdateOptions{}) - if err != nil { - return nil, err - } - - svc.ensureTypeMeta(updated) - - return updated, nil -} - -func (svc *podService) Delete(name, namespace string) error { - return svc.client.Pods(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *podService) checkUpdatePreconditions(name string, namespace string, update v1.Pod) error { - var errs apierror.ErrorFieldAggregate - if name != update.Name { - errs = append(errs, apierror.NewInvalidField("metadata.name", update.Name, fmt.Sprintf("name of updated object does not match the original (%s)", name))) - } - if namespace != update.Namespace { - errs = append(errs, apierror.NewInvalidField("metadata.namespace", update.Namespace, fmt.Sprintf("namespace of updated object does not match the original (%s)", namespace))) - } - typeMeta := svc.podTypeMeta() - if update.Kind != typeMeta.Kind { - errs = append(errs, apierror.NewInvalidField("kind", update.Kind, "pod's kind should not be changed")) - } - if update.APIVersion != typeMeta.APIVersion { - errs = append(errs, apierror.NewInvalidField("apiVersion", update.APIVersion, "pod's apiVersion should not be changed")) - } - - if len(errs) > 0 { - return apierror.NewInvalid(pretty.Pod, errs) - } - - return nil -} - -// Kubernetes API used by client-go doesn't provide kind and apiVersion so we have to add it here -// See: https://github.com/kubernetes/kubernetes/issues/3030 -func (svc *podService) ensureTypeMeta(pod *v1.Pod) { - pod.TypeMeta = svc.podTypeMeta() -} - -func (svc *podService) podTypeMeta() metav1.TypeMeta { - return metav1.TypeMeta{ - Kind: "Pod", - APIVersion: "v1", - } -} diff --git a/components/console-backend-service/internal/domain/k8s/pod_service_test.go b/components/console-backend-service/internal/domain/k8s/pod_service_test.go deleted file mode 100644 index 08aefa7b50f7..000000000000 --- a/components/console-backend-service/internal/domain/k8s/pod_service_test.go +++ /dev/null @@ -1,413 +0,0 @@ -package k8s_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/tools/cache" -) - -func TestPodService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNamespace" - - pod := fixPod(instanceName, namespace, nil) - podInformer, _ := fixPodInformer(pod) - - svc := k8s.NewPodService(podInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, podInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, pod, instance) - }) - - t.Run("NotFound", func(t *testing.T) { - podInformer, _ := fixPodInformer() - - svc := k8s.NewPodService(podInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, podInformer) - - instance, err := svc.Find("doesntExist", "notExistingNamespace") - require.NoError(t, err) - assert.Nil(t, instance) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNamespace" - - expectedPod := fixPod(instanceName, namespace, nil) - returnedPod := fixPodWithoutTypeMeta(instanceName, namespace, nil) - podInformer, _ := fixPodInformer(returnedPod) - - svc := k8s.NewPodService(podInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, podInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, expectedPod, instance) - }) -} - -func TestPodService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "testNamespace" - pod1 := fixPod("pod1", namespace, nil) - pod2 := fixPod("pod2", namespace, nil) - pod3 := fixPod("pod3", "differentNamespace", nil) - - podInformer, _ := fixPodInformer(pod1, pod2, pod3) - - svc := k8s.NewPodService(podInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, podInformer) - - pods, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1.Pod{ - pod1, pod2, - }, pods) - }) - - t.Run("NotFound", func(t *testing.T) { - podInformer, _ := fixPodInformer() - - svc := k8s.NewPodService(podInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, podInformer) - - var emptyArray []*v1.Pod - pods, err := svc.List("notExistingNamespace", pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, pods) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - namespace := "testNamespace" - returnedPod1 := fixPodWithoutTypeMeta("pod1", namespace, nil) - returnedPod2 := fixPodWithoutTypeMeta("pod2", namespace, nil) - returnedPod3 := fixPodWithoutTypeMeta("pod3", "differentNamespace", nil) - expectedPod1 := fixPod("pod1", namespace, nil) - expectedPod2 := fixPod("pod2", namespace, nil) - - podInformer, _ := fixPodInformer(returnedPod1, returnedPod2, returnedPod3) - - svc := k8s.NewPodService(podInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, podInformer) - - pods, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1.Pod{ - expectedPod1, expectedPod2, - }, pods) - }) -} - -func TestPodService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - podListener := listener.NewPod(nil, nil, nil) - svc.Subscribe(podListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - podListener := listener.NewPod(nil, nil, nil) - - svc.Subscribe(podListener) - svc.Subscribe(podListener) - }) - - t.Run("Multiple", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - podListenerA := listener.NewPod(nil, nil, nil) - podListenerB := listener.NewPod(nil, nil, nil) - - svc.Subscribe(podListenerA) - svc.Subscribe(podListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - - svc.Subscribe(nil) - }) -} - -func TestPodService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - podListener := listener.NewPod(nil, nil, nil) - svc.Subscribe(podListener) - - svc.Unsubscribe(podListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - podListener := listener.NewPod(nil, nil, nil) - svc.Subscribe(podListener) - svc.Subscribe(podListener) - - svc.Unsubscribe(podListener) - }) - - t.Run("Multiple", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - podListenerA := listener.NewPod(nil, nil, nil) - podListenerB := listener.NewPod(nil, nil, nil) - svc.Subscribe(podListenerA) - svc.Subscribe(podListenerB) - - svc.Unsubscribe(podListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - podInformer, _ := fixPodInformer() - svc := k8s.NewPodService(podInformer, nil) - - svc.Unsubscribe(nil) - }) -} - -func TestPodService_Update(t *testing.T) { - t.Run("Success", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - examplePod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixPodInformer(examplePod) - svc := k8s.NewPodService(podInformer, client) - - update := examplePod.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - pod, err := svc.Update(exampleName, exampleNamespace, *update) - require.NoError(t, err) - assert.Equal(t, update, pod) - - pod, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, update, pod) - }) - - t.Run("NotFound", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - examplePod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixPodInformer() - svc := k8s.NewPodService(podInformer, client) - - update := examplePod.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - pod, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.Nil(t, pod) - - pod, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.Error(t, err) - assert.Nil(t, pod) - }) - - t.Run("NameMismatch", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - examplePod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixPodInformer(examplePod) - svc := k8s.NewPodService(podInformer, client) - - update := examplePod.DeepCopy() - update.Name = "NameMismatch" - update.Labels = map[string]string{ - "example": "example", - } - - pod, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, pod) - - pod, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, examplePod, pod) - }) - - t.Run("NamespaceMismatch", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - examplePod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixPodInformer(examplePod) - svc := k8s.NewPodService(podInformer, client) - - update := examplePod.DeepCopy() - update.Namespace = "NamespaceMismatch" - update.Labels = map[string]string{ - "example": "example", - } - - pod, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, pod) - - pod, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, examplePod, pod) - }) - - t.Run("InvalidUpdate", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - examplePod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixFailingPodInformer(examplePod) - svc := k8s.NewPodService(podInformer, client) - - update := examplePod.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - pod, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.Nil(t, pod) - - pod, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, examplePod, pod) - }) - - t.Run("TypeMetaChanged", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - examplePod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixPodInformer(examplePod) - svc := k8s.NewPodService(podInformer, client) - - update := examplePod.DeepCopy() - update.Kind = "OtherKind" - pod, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, pod) - - update.Kind = "Pod" - update.APIVersion = "OtherVersion" - pod, err = svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, apierror.IsInvalid(err)) - assert.Nil(t, pod) - - pod, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, examplePod, pod) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - returnedPod := fixPodWithoutTypeMeta(exampleName, exampleNamespace, nil) - expectedPod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixPodInformer(returnedPod) - svc := k8s.NewPodService(podInformer, client) - - update := expectedPod.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - pod, err := svc.Update(exampleName, exampleNamespace, *update) - require.NoError(t, err) - assert.Equal(t, update, pod) - - pod, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, update, pod) - }) -} - -func TestPodService_Delete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - exampleName := "examplePod" - exampleNamespace := "exampleNamespace" - examplePod := fixPod(exampleName, exampleNamespace, nil) - podInformer, client := fixPodInformer(examplePod) - svc := k8s.NewPodService(podInformer, client) - - err := svc.Delete(exampleName, exampleNamespace) - - require.NoError(t, err) - _, err = client.Pods(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - assert.True(t, errors.IsNotFound(err)) - }) -} - -func fixPod(name, namespace string, labels map[string]string) *v1.Pod { - pod := fixPodWithoutTypeMeta(name, namespace, labels) - pod.TypeMeta = metav1.TypeMeta{ - Kind: "Pod", - APIVersion: "v1", - } - return pod -} - -func fixPodWithoutTypeMeta(name, namespace string, labels map[string]string) *v1.Pod { - return &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: labels, - }, - } -} - -func fixPodInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().Pods().Informer() - - return informer, client.CoreV1() -} - -func fixFailingPodInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - client.PrependReactor("update", "pods", failingReactor) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().Pods().Informer() - - return informer, client.CoreV1() -} diff --git a/components/console-backend-service/internal/domain/k8s/pretty/kind.go b/components/console-backend-service/internal/domain/k8s/pretty/kind.go deleted file mode 100644 index 54f375872653..000000000000 --- a/components/console-backend-service/internal/domain/k8s/pretty/kind.go +++ /dev/null @@ -1,85 +0,0 @@ -package pretty - -type Kind int - -const ( - Deployment Kind = iota - Deployments - Namespace - Namespaces - LimitRange - LimitRanges - Pod - Pods - ReplicaSet - ReplicaSets - ConfigMap - ConfigMaps - Resource - Resources - StatefulSets - ResourceQuota - ResourceQuotas - ResourceQuotaStatus - ResourceQuotaStatuses - Secret - Secrets - Service - Services - SelfSubjectRules -) - -func (k Kind) String() string { - switch k { - case Deployment: - return "Deployment" - case Deployments: - return "Deployments" - case Namespace: - return "Namespace" - case Namespaces: - return "Namespaces" - case LimitRange: - return "Limit Range" - case LimitRanges: - return "Limit Ranges" - case Pod: - return "Pod" - case Pods: - return "Pods" - case ReplicaSet: - return "Replica Set" - case ReplicaSets: - return "Replica Sets" - case ConfigMap: - return "ConfigMap" - case ConfigMaps: - return "ConfigMaps" - case Resource: - return "Resource" - case Resources: - return "Resources" - case StatefulSets: - return "Stateful Sets" - case ResourceQuota: - return "Resource Quota" - case ResourceQuotas: - return "Resource Quotas" - case ResourceQuotaStatus: - return "Resource Quota Status" - case ResourceQuotaStatuses: - return "Resource Quota Statuses" - case Secret: - return "Secret" - case Secrets: - return "Secrets" - case Service: - return "Service" - case Services: - return "Services" - case SelfSubjectRules: - return "SelfSubjectRules" - default: - return "" - } -} diff --git a/components/console-backend-service/internal/domain/k8s/replicaset_converter.go b/components/console-backend-service/internal/domain/k8s/replicaset_converter.go deleted file mode 100644 index 1b2168857529..000000000000 --- a/components/console-backend-service/internal/domain/k8s/replicaset_converter.go +++ /dev/null @@ -1,108 +0,0 @@ -package k8s - -import ( - "bytes" - "encoding/json" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/state" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - apps "k8s.io/api/apps/v1" - v1 "k8s.io/api/core/v1" -) - -type replicaSetConverter struct { - extractor state.ContainerExtractor -} - -func (c *replicaSetConverter) ToGQL(in *apps.ReplicaSet) (*gqlschema.ReplicaSet, error) { - if in == nil { - return nil, nil - } - - gqlJSON, err := c.replicaSetToGQLJSON(in) - if err != nil { - return nil, errors.Wrapf(err, "while converting %s `%s` to it's json representation", pretty.ReplicaSet, in.Name) - } - labels := in.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - - return &gqlschema.ReplicaSet{ - Name: in.Name, - Pods: c.getPods(in.Status), - Namespace: in.Namespace, - Images: c.getImages(in.Spec.Template.Spec.Containers), - CreationTimestamp: in.CreationTimestamp.Time, - Labels: labels, - JSON: gqlJSON, - }, nil -} - -func (c *replicaSetConverter) ToGQLs(in []*apps.ReplicaSet) ([]*gqlschema.ReplicaSet, error) { - var result []*gqlschema.ReplicaSet - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *replicaSetConverter) replicaSetToGQLJSON(in *apps.ReplicaSet) (gqlschema.JSON, error) { - if in == nil { - return nil, nil - } - - jsonByte, err := json.Marshal(in) - if err != nil { - return nil, errors.Wrapf(err, "while marshalling %s `%s`", pretty.ReplicaSet, in.Name) - } - - var jsonMap map[string]interface{} - err = json.Unmarshal(jsonByte, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to map", pretty.ReplicaSet, in.Name) - } - - var result gqlschema.JSON - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to GQL JSON", pretty.ReplicaSet, in.Name) - } - - return result, nil -} - -func (c *replicaSetConverter) GQLJSONToReplicaSet(in gqlschema.JSON) (apps.ReplicaSet, error) { - var buf bytes.Buffer - in.MarshalGQL(&buf) - bufBytes := buf.Bytes() - result := apps.ReplicaSet{} - err := json.Unmarshal(bufBytes, &result) - if err != nil { - return apps.ReplicaSet{}, errors.Wrapf(err, "while unmarshalling GQL JSON of %s", pretty.ReplicaSet) - } - - return result, nil -} - -func (c *replicaSetConverter) getPods(in apps.ReplicaSetStatus) string { - return fmt.Sprintf("%d/%d", in.ReadyReplicas, in.Replicas) -} - -func (c *replicaSetConverter) getImages(in []v1.Container) []string { - var images []string - for _, container := range in { - images = append(images, container.Image) - } - return images -} diff --git a/components/console-backend-service/internal/domain/k8s/replicaset_converter_test.go b/components/console-backend-service/internal/domain/k8s/replicaset_converter_test.go deleted file mode 100644 index 4220ee9cf971..000000000000 --- a/components/console-backend-service/internal/domain/k8s/replicaset_converter_test.go +++ /dev/null @@ -1,248 +0,0 @@ -package k8s - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - apps "k8s.io/api/apps/v1" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestReplicaSetConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := &replicaSetConverter{} - in := fixExampleReplicaSet("exampleKind", "exampleName", "exampleNamespace", apps.ReplicaSetStatus{ - Replicas: 2, - ReadyReplicas: 1, - }) - expectedJSON, err := converter.replicaSetToGQLJSON(&in) - require.NoError(t, err) - expected := gqlschema.ReplicaSet{ - Name: "exampleName", - Namespace: "exampleNamespace", - Pods: "1/2", - CreationTimestamp: time.Time{}, - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - Images: []string{"exampleImage_1", "exampleImage_2"}, - JSON: expectedJSON, - } - - result, err := converter.ToGQL(&in) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - - }) - - t.Run("Empty", func(t *testing.T) { - converter := &replicaSetConverter{} - emptyReplicaSetJSON, err := converter.replicaSetToGQLJSON(&apps.ReplicaSet{}) - require.NoError(t, err) - expected := &gqlschema.ReplicaSet{ - Pods: "0/0", - JSON: emptyReplicaSetJSON, - Labels: gqlschema.Labels{}, - } - - result, err := converter.ToGQL(&apps.ReplicaSet{}) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &replicaSetConverter{} - - result, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestReplicaSetConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := replicaSetConverter{} - expectedName := "exampleName" - in := []*apps.ReplicaSet{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName2", - }, - }, - } - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, expectedName, result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - converter := replicaSetConverter{} - var in []*apps.ReplicaSet - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - converter := replicaSetConverter{} - expectedName := "exampleName" - in := []*apps.ReplicaSet{ - nil, - &apps.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: expectedName, - }, - }, - nil, - } - - result, err := converter.ToGQLs(in) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, expectedName, result[0].Name) - }) -} - -func TestReplicaSetConverter_ReplicaSetToGQLJSON(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := replicaSetConverter{} - expectedMap := fixExampleReplicaSetMap("exampleKind", "exampleName", "exampleNamespace", - map[string]interface{}{ - "replicas": float64(2), - "readyReplicas": float64(1), - }) - in := fixExampleReplicaSet("exampleKind", "exampleName", "exampleNamespace", apps.ReplicaSetStatus{ - Replicas: 2, - ReadyReplicas: 1, - }) - expectedJSON := new(gqlschema.JSON) - err := expectedJSON.UnmarshalGQL(expectedMap) - require.NoError(t, err) - - result, err := converter.replicaSetToGQLJSON(&in) - - require.NoError(t, err) - assert.Equal(t, *expectedJSON, result) - }) - - t.Run("NilPassed", func(t *testing.T) { - converter := replicaSetConverter{} - - result, err := converter.replicaSetToGQLJSON(nil) - - require.Nil(t, result) - require.NoError(t, err) - }) -} - -func TestReplicaSetConverter_GQLJSONToReplicaSet(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := replicaSetConverter{} - inMap := fixExampleReplicaSetMap("exampleKind", "exampleName", "exampleNamespace", - map[string]interface{}{ - "replicas": 2, - "readyReplicas": 1, - }) - expected := fixExampleReplicaSet("exampleKind", "exampleName", "exampleNamespace", apps.ReplicaSetStatus{ - Replicas: 2, - ReadyReplicas: 1, - }) - inJSON := new(gqlschema.JSON) - err := inJSON.UnmarshalGQL(inMap) - require.NoError(t, err) - - result, err := converter.GQLJSONToReplicaSet(*inJSON) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) -} - -func fixExampleReplicaSet(kind string, name string, namespcace string, status apps.ReplicaSetStatus) apps.ReplicaSet { - return apps.ReplicaSet{ - TypeMeta: metav1.TypeMeta{ - Kind: kind, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespcace, - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - CreationTimestamp: metav1.Time{}, - }, - Spec: apps.ReplicaSetSpec{ - Template: v1.PodTemplateSpec{ - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Image: "exampleImage_1", - }, - { - Image: "exampleImage_2", - }, - }, - }, - }, - }, - Status: status, - } -} - -func fixExampleReplicaSetMap(kind string, name string, namespace string, status map[string]interface{}) map[string]interface{} { - return map[string]interface{}{ - "kind": kind, - "metadata": map[string]interface{}{ - "name": name, - "namespace": namespace, - "labels": map[string]interface{}{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - "creationTimestamp": nil, - }, - "spec": map[string]interface{}{ - "selector": interface{}(nil), - "template": map[string]interface{}{ - "metadata": map[string]interface{}{ - "creationTimestamp": interface{}(nil), - }, - "spec": map[string]interface{}{ - "containers": []interface{}{ - map[string]interface{}{ - "resources": map[string]interface{}{}, - "name": "", - "image": "exampleImage_1", - }, - map[string]interface{}{ - "resources": map[string]interface{}{}, - "name": "", - "image": "exampleImage_2", - }, - }, - }, - }, - }, - "status": status, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/replicaset_resolver.go b/components/console-backend-service/internal/domain/k8s/replicaset_resolver.go deleted file mode 100644 index d7b52afb1b2c..000000000000 --- a/components/console-backend-service/internal/domain/k8s/replicaset_resolver.go +++ /dev/null @@ -1,124 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" - api "k8s.io/api/apps/v1" -) - -//go:generate mockery -name=replicaSetSvc -output=automock -outpkg=automock -case=underscore -type replicaSetSvc interface { - Find(name, namespace string) (*api.ReplicaSet, error) - List(namespace string, pagingParams pager.PagingParams) ([]*api.ReplicaSet, error) - Update(name, namespace string, update api.ReplicaSet) (*api.ReplicaSet, error) - Delete(name, namespace string) error -} - -//go:generate mockery -name=gqlReplicaSetConverter -output=automock -outpkg=automock -case=underscore -type gqlReplicaSetConverter interface { - ToGQL(in *api.ReplicaSet) (*gqlschema.ReplicaSet, error) - ToGQLs(in []*api.ReplicaSet) ([]*gqlschema.ReplicaSet, error) - GQLJSONToReplicaSet(in gqlschema.JSON) (api.ReplicaSet, error) -} - -type replicaSetResolver struct { - replicaSetSvc replicaSetSvc - replicaSetConverter gqlReplicaSetConverter -} - -func newReplicaSetResolver(replicaSetLister replicaSetSvc) *replicaSetResolver { - return &replicaSetResolver{ - replicaSetSvc: replicaSetLister, - replicaSetConverter: &replicaSetConverter{}, - } -} - -func (r *replicaSetResolver) ReplicaSetQuery(ctx context.Context, name, namespace string) (*gqlschema.ReplicaSet, error) { - replicaSet, err := r.replicaSetSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s from namespace %s", pretty.ReplicaSet, name, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - if replicaSet == nil { - return nil, nil - } - - converted, err := r.replicaSetConverter.ToGQL(replicaSet) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s from namespace %s", pretty.ReplicaSet, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return converted, nil -} - -func (r *replicaSetResolver) ReplicaSetsQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ReplicaSet, error) { - replicaSets, err := r.replicaSetSvc.List(namespace, pager.PagingParams{ - First: first, - Offset: offset, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s from namespace %s", pretty.ReplicaSets, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSets, gqlerror.WithNamespace(namespace)) - } - - converted, err := r.replicaSetConverter.ToGQLs(replicaSets) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s from namespace %s", pretty.ReplicaSets, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSets, gqlerror.WithNamespace(namespace)) - } - - return converted, nil -} - -func (r *replicaSetResolver) UpdateReplicaSetMutation(ctx context.Context, name string, namespace string, update gqlschema.JSON) (*gqlschema.ReplicaSet, error) { - replicaSet, err := r.replicaSetConverter.GQLJSONToReplicaSet(update) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace `%s`", pretty.ReplicaSet, name, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updated, err := r.replicaSetSvc.Update(name, namespace, replicaSet) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace %s", pretty.ReplicaSet, name, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updatedGql, err := r.replicaSetConverter.ToGQL(updated) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s `%s` from namespace %s", pretty.ReplicaSet, name, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return updatedGql, nil -} - -func (r *replicaSetResolver) DeleteReplicaSetMutation(ctx context.Context, name string, namespace string) (*gqlschema.ReplicaSet, error) { - replicaSet, err := r.replicaSetSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while finding %s `%s` in namespace `%s`", pretty.ReplicaSet, name, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - replicaSetCopy := replicaSet.DeepCopy() - deletedReplicaSet, err := r.replicaSetConverter.ToGQL(replicaSetCopy) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ReplicaSet)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - err = r.replicaSetSvc.Delete(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s` from namespace `%s`", pretty.ReplicaSet, name, namespace)) - return nil, gqlerror.New(err, pretty.ReplicaSet, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return deletedReplicaSet, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/replicaset_resolver_test.go b/components/console-backend-service/internal/domain/k8s/replicaset_resolver_test.go deleted file mode 100644 index ff67581e809d..000000000000 --- a/components/console-backend-service/internal/domain/k8s/replicaset_resolver_test.go +++ /dev/null @@ -1,405 +0,0 @@ -package k8s_test - -import ( - "errors" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - apps "k8s.io/api/apps/v1" -) - -func TestReplicaSetResolver_ReplicaSetQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.ReplicaSet{ - Name: "Test", - } - name := "name" - namespace := "namespace" - resource := &apps.ReplicaSet{} - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ReplicaSetQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - namespace := "namespace" - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("Find", name, namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - - result, err := resolver.ReplicaSetQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &apps.ReplicaSet{} - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("Find", name, namespace).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - - result, err := resolver.ReplicaSetQuery(nil, name, namespace) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &apps.ReplicaSet{} - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("ToGQL", resource).Return(nil, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ReplicaSetQuery(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestReplicaSetResolver_ReplicaSetsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "Test" - namespace := "namespace" - resource := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - resources := []*apps.ReplicaSet{ - resource, resource, - } - expected := []*gqlschema.ReplicaSet{ - { - Name: name, - }, - { - Name: name, - }, - } - - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ReplicaSetsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "namespace" - var resources []*apps.ReplicaSet - var expected []*gqlschema.ReplicaSet - - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - - result, err := resolver.ReplicaSetsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - namespace := "namespace" - expected := errors.New("Test") - var resources []*apps.ReplicaSet - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - - result, err := resolver.ReplicaSetsQuery(nil, namespace, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - name := "Test" - namespace := "namespace" - resource := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - resources := []*apps.ReplicaSet{ - resource, resource, - } - expected := errors.New("Test") - - resourceGetter := automock.NewReplicaSetSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("ToGQLs", resources).Return(nil, expected) - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(resourceGetter) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ReplicaSetsQuery(nil, namespace, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestReplicaSetResolver_UpdateReplicaSetMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedReplicaSetFix := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - updatedGQLReplicaSetFix := &gqlschema.ReplicaSet{ - Name: name, - Namespace: namespace, - Labels: map[string]string{ - "test": "test", - }, - } - gqlJSONFix := gqlschema.JSON{} - - replicaSetSvc := automock.NewReplicaSetSvc() - replicaSetSvc.On("Update", name, namespace, *updatedReplicaSetFix).Return(updatedReplicaSetFix, nil).Once() - defer replicaSetSvc.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("GQLJSONToReplicaSet", gqlJSONFix).Return(*updatedReplicaSetFix, nil).Once() - converter.On("ToGQL", updatedReplicaSetFix).Return(updatedGQLReplicaSetFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.UpdateReplicaSetMutation(nil, name, namespace, gqlJSONFix) - - require.NoError(t, err) - assert.Equal(t, updatedGQLReplicaSetFix, result) - }) - - t.Run("ErrorConvertingToReplicaSet", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - replicaSetSvc := automock.NewReplicaSetSvc() - - converter := automock.NewGqlReplicaSetConverter() - converter.On("GQLJSONToReplicaSet", gqlJSONFix).Return(apps.ReplicaSet{}, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.UpdateReplicaSetMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorUpdating", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedReplicaSetFix := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - replicaSetSvc := automock.NewReplicaSetSvc() - replicaSetSvc.On("Update", name, namespace, *updatedReplicaSetFix).Return(nil, expected).Once() - defer replicaSetSvc.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("GQLJSONToReplicaSet", gqlJSONFix).Return(*updatedReplicaSetFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.UpdateReplicaSetMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.Nil(t, result) - }) - - t.Run("ErrorConvertingToGQL", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedReplicaSetFix := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - replicaSetSvc := automock.NewReplicaSetSvc() - replicaSetSvc.On("Update", name, namespace, *updatedReplicaSetFix).Return(updatedReplicaSetFix, nil).Once() - defer replicaSetSvc.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("GQLJSONToReplicaSet", gqlJSONFix).Return(*updatedReplicaSetFix, nil).Once() - converter.On("ToGQL", updatedReplicaSetFix).Return(nil, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.UpdateReplicaSetMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestReplicaSetResolver_DeleteReplicaSetMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - expected := &gqlschema.ReplicaSet{ - Name: name, - Namespace: namespace, - } - - replicaSetSvc := automock.NewReplicaSetSvc() - replicaSetSvc.On("Find", name, namespace).Return(resource, nil).Once() - replicaSetSvc.On("Delete", name, namespace).Return(nil).Once() - defer replicaSetSvc.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.DeleteReplicaSetMutation(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - expected := errors.New("fix") - - replicaSetSvc := automock.NewReplicaSetSvc() - replicaSetSvc.On("Find", name, namespace).Return(nil, expected).Once() - defer replicaSetSvc.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - - result, err := resolver.DeleteReplicaSetMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorDeleting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - expected := errors.New("fix") - - replicaSetSvc := automock.NewReplicaSetSvc() - replicaSetSvc.On("Find", name, namespace).Return(resource, nil).Once() - replicaSetSvc.On("Delete", name, namespace).Return(expected).Once() - defer replicaSetSvc.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - - result, err := resolver.DeleteReplicaSetMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixReplicaSet(name, namespace, map[string]string{ - "test": "test", - }) - error := errors.New("fix") - - replicaSetSvc := automock.NewReplicaSetSvc() - replicaSetSvc.On("Find", name, namespace).Return(resource, nil).Once() - defer replicaSetSvc.AssertExpectations(t) - - converter := automock.NewGqlReplicaSetConverter() - converter.On("ToGQL", resource).Return(nil, error).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewReplicaSetResolver(replicaSetSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.DeleteReplicaSetMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/replicaset_service.go b/components/console-backend-service/internal/domain/k8s/replicaset_service.go deleted file mode 100644 index 962fed858b53..000000000000 --- a/components/console-backend-service/internal/domain/k8s/replicaset_service.go +++ /dev/null @@ -1,130 +0,0 @@ -package k8s - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - apps "k8s.io/api/apps/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - - appsv1 "k8s.io/client-go/kubernetes/typed/apps/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "k8s.io/client-go/tools/cache" -) - -type replicaSetService struct { - client appsv1.AppsV1Interface - informer cache.SharedIndexInformer -} - -func newReplicaSetService(informer cache.SharedIndexInformer, client appsv1.AppsV1Interface) *replicaSetService { - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - return &replicaSetService{ - client: client, - informer: informer, - } -} - -func (svc *replicaSetService) Find(name, namespace string) (*apps.ReplicaSet, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - replicaSet, ok := item.(*apps.ReplicaSet) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ReplicaSet", item) - } - - svc.ensureTypeMeta(replicaSet) - - return replicaSet, nil -} - -func (svc *replicaSetService) List(namespace string, pagingParams pager.PagingParams) ([]*apps.ReplicaSet, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - var replicaSets []*apps.ReplicaSet - for _, item := range items { - replicaSet, ok := item.(*apps.ReplicaSet) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ReplicaSet", item) - } - - svc.ensureTypeMeta(replicaSet) - - replicaSets = append(replicaSets, replicaSet) - } - - return replicaSets, nil -} - -func (svc *replicaSetService) Update(name, namespace string, update apps.ReplicaSet) (*apps.ReplicaSet, error) { - err := svc.checkUpdatePreconditions(name, namespace, update) - if err != nil { - return nil, err - } - - updated, err := svc.client.ReplicaSets(namespace).Update(context.Background(), &update, metav1.UpdateOptions{}) - if err != nil { - return nil, err - } - - svc.ensureTypeMeta(updated) - - return updated, nil -} - -func (svc *replicaSetService) Delete(name, namespace string) error { - return svc.client.ReplicaSets(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *replicaSetService) checkUpdatePreconditions(name string, namespace string, update apps.ReplicaSet) error { - errorList := field.ErrorList{} - if name != update.Name { - errorList = append(errorList, field.Invalid(field.NewPath("metadata.name"), update.Name, fmt.Sprintf("name of updated object does not match the original (%s)", name))) - } - if namespace != update.Namespace { - errorList = append(errorList, field.Invalid(field.NewPath("metadata.namespace"), update.Namespace, fmt.Sprintf("namespace of updated object does not match the original (%s)", namespace))) - } - typeMeta := svc.replicaSetTypeMeta() - if update.Kind != typeMeta.Kind { - errorList = append(errorList, field.Invalid(field.NewPath("kind"), update.Kind, "ReplicaSet's kind should not be changed")) - } - if update.APIVersion != typeMeta.APIVersion { - errorList = append(errorList, field.Invalid(field.NewPath("apiVersion"), update.APIVersion, "ReplicaSet's apiVersion should not be changed")) - } - - if len(errorList) > 0 { - return errors.NewInvalid(schema.GroupKind{ - Group: "", - Kind: "ReplicaSet", - }, name, errorList) - } - - return nil -} - -// Kubernetes API used by client-go doesn't provide kind and apiVersion so we have to add it here -// See: https://github.com/kubernetes/kubernetes/issues/3030 -func (svc *replicaSetService) ensureTypeMeta(replicaSet *apps.ReplicaSet) { - replicaSet.TypeMeta = svc.replicaSetTypeMeta() -} - -func (svc *replicaSetService) replicaSetTypeMeta() metav1.TypeMeta { - return metav1.TypeMeta{ - Kind: "ReplicaSet", - APIVersion: "apps/v1", - } -} diff --git a/components/console-backend-service/internal/domain/k8s/replicaset_service_test.go b/components/console-backend-service/internal/domain/k8s/replicaset_service_test.go deleted file mode 100644 index 73b86f480d48..000000000000 --- a/components/console-backend-service/internal/domain/k8s/replicaset_service_test.go +++ /dev/null @@ -1,344 +0,0 @@ -package k8s_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - apps "k8s.io/api/apps/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes/fake" - appsv1 "k8s.io/client-go/kubernetes/typed/apps/v1" - "k8s.io/client-go/tools/cache" -) - -func TestReplicaSetService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNamespace" - - replicaSet := fixReplicaSet(instanceName, namespace, map[string]string{"test": "test"}) - replicaSetInformer, _ := fixReplicaSetInformer(replicaSet) - - svc := k8s.NewReplicaSetService(replicaSetInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, replicaSetInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, replicaSet, instance) - }) - - t.Run("NotFound", func(t *testing.T) { - replicaSetInformer, _ := fixReplicaSetInformer() - - svc := k8s.NewReplicaSetService(replicaSetInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, replicaSetInformer) - - instance, err := svc.Find("doesntExist", "notExistingNamespace") - require.NoError(t, err) - assert.Nil(t, instance) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNamespace" - - expectedReplicaSet := fixReplicaSet(instanceName, namespace, map[string]string{"test": "test"}) - returnedReplicaSet := fixReplicaSetWithoutTypeMeta(instanceName, namespace, map[string]string{"test": "test"}) - replicaSetInformer, _ := fixReplicaSetInformer(returnedReplicaSet) - - svc := k8s.NewReplicaSetService(replicaSetInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, replicaSetInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, expectedReplicaSet, instance) - }) -} - -func TestReplicaSetService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "testNamespace" - replicaSet1 := fixReplicaSet("replicaSet1", namespace, nil) - replicaSet2 := fixReplicaSet("replicaSet2", namespace, nil) - replicaSet3 := fixReplicaSet("replicaSet3", "differentNamespace", nil) - - replicaSetInformer, _ := fixReplicaSetInformer(replicaSet1, replicaSet2, replicaSet3) - - svc := k8s.NewReplicaSetService(replicaSetInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, replicaSetInformer) - - replicaSets, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*apps.ReplicaSet{ - replicaSet1, replicaSet2, - }, replicaSets) - }) - - t.Run("NotFound", func(t *testing.T) { - replicaSetInformer, _ := fixReplicaSetInformer() - - svc := k8s.NewReplicaSetService(replicaSetInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, replicaSetInformer) - - var emptyArray []*apps.ReplicaSet - replicaSets, err := svc.List("notExistingNamespace", pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, replicaSets) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - namespace := "testNamespace" - returnedReplicaSet1 := fixReplicaSetWithoutTypeMeta("replicaSet1", namespace, nil) - returnedReplicaSet2 := fixReplicaSetWithoutTypeMeta("replicaSet2", namespace, nil) - returnedReplicaSet3 := fixReplicaSetWithoutTypeMeta("replicaSet3", "differentNamespace", nil) - expectedReplicaSet1 := fixReplicaSet("replicaSet1", namespace, nil) - expectedReplicaSet2 := fixReplicaSet("replicaSet2", namespace, nil) - - replicaSetInformer, _ := fixReplicaSetInformer(returnedReplicaSet1, returnedReplicaSet2, returnedReplicaSet3) - - svc := k8s.NewReplicaSetService(replicaSetInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, replicaSetInformer) - - replicaSets, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*apps.ReplicaSet{ - expectedReplicaSet1, expectedReplicaSet2, - }, replicaSets) - }) -} - -func TestReplicaSetService_Update(t *testing.T) { - t.Run("Success", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, map[string]string{"test": "test"}) - replicaSetInformer, client := fixReplicaSetInformer(exampleReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - update := exampleReplicaSet.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - replicaSet, err := svc.Update(exampleName, exampleNamespace, *update) - require.NoError(t, err) - assert.Equal(t, update, replicaSet) - - replicaSet, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, update, replicaSet) - }) - - t.Run("NotFound", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixReplicaSetInformer() - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - update := exampleReplicaSet.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - replicaSet, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.Nil(t, replicaSet) - - replicaSet, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.Error(t, err) - assert.Nil(t, replicaSet) - }) - - t.Run("NameMismatch", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixReplicaSetInformer(exampleReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - update := exampleReplicaSet.DeepCopy() - update.Name = "NameMismatch" - update.Labels = map[string]string{ - "example": "example", - } - - replicaSet, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, errors.IsInvalid(err)) - assert.Nil(t, replicaSet) - - replicaSet, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleReplicaSet, replicaSet) - }) - - t.Run("NamespaceMismatch", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixReplicaSetInformer(exampleReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - update := exampleReplicaSet.DeepCopy() - update.Namespace = "NamespaceMismatch" - update.Labels = map[string]string{ - "example": "example", - } - - replicaSet, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, errors.IsInvalid(err)) - assert.Nil(t, replicaSet) - - replicaSet, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleReplicaSet, replicaSet) - }) - - t.Run("InvalidUpdate", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixFailingReplicaSetInformer(exampleReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - update := exampleReplicaSet.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - replicaSet, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.Nil(t, replicaSet) - - replicaSet, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleReplicaSet, replicaSet) - }) - - t.Run("TypeMetaChanged", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixReplicaSetInformer(exampleReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - update := exampleReplicaSet.DeepCopy() - update.Kind = "OtherKind" - replicaSet, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, errors.IsInvalid(err)) - assert.Nil(t, replicaSet) - - update.Kind = "ReplicaSet" - update.APIVersion = "OtherVersion" - replicaSet, err = svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(t, errors.IsInvalid(err)) - assert.Nil(t, replicaSet) - - replicaSet, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, exampleReplicaSet, replicaSet) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - returnedReplicaSet := fixReplicaSetWithoutTypeMeta(exampleName, exampleNamespace, nil) - expectedReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixReplicaSetInformer(returnedReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - update := expectedReplicaSet.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - replicaSet, err := svc.Update(exampleName, exampleNamespace, *update) - require.NoError(t, err) - assert.Equal(t, update, replicaSet) - - replicaSet, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, update, replicaSet) - }) -} - -func TestReplicaSetService_Delete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixReplicaSetInformer(exampleReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - err := svc.Delete(exampleName, exampleNamespace) - - require.NoError(t, err) - _, err = client.ReplicaSets(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - assert.True(t, errors.IsNotFound(err)) - }) - - t.Run("Delete Error", func(t *testing.T) { - exampleName := "exampleReplicaSet" - exampleNamespace := "exampleNamespace" - exampleReplicaSet := fixReplicaSet(exampleName, exampleNamespace, nil) - replicaSetInformer, client := fixFailingReplicaSetInformer(exampleReplicaSet) - svc := k8s.NewReplicaSetService(replicaSetInformer, client) - - err := svc.Delete(exampleName, exampleNamespace) - - // then - require.Error(t, err) - }) -} - -func fixReplicaSetInformer(objects ...runtime.Object) (cache.SharedIndexInformer, appsv1.AppsV1Interface) { - client := fake.NewSimpleClientset(objects...) - informerFactory := informers.NewSharedInformerFactory(client, 0) - return informerFactory.Apps().V1().ReplicaSets().Informer(), client.AppsV1() -} - -func fixFailingReplicaSetInformer(objects ...runtime.Object) (cache.SharedIndexInformer, appsv1.AppsV1Interface) { - client := fake.NewSimpleClientset(objects...) - client.PrependReactor("update", "replicasets", failingReactor) - client.PrependReactor("delete", "replicasets", failingReactor) - informerFactory := informers.NewSharedInformerFactory(client, 0) - return informerFactory.Apps().V1().ReplicaSets().Informer(), client.AppsV1() -} - -func fixReplicaSet(name, namespace string, labels map[string]string) *apps.ReplicaSet { - replicaSet := fixReplicaSetWithoutTypeMeta(name, namespace, labels) - replicaSet.TypeMeta = metav1.TypeMeta{ - Kind: "ReplicaSet", - APIVersion: "apps/v1", - } - return replicaSet -} - -func fixReplicaSetWithoutTypeMeta(name, namespace string, labels map[string]string) *apps.ReplicaSet { - return &apps.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: labels, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/resource_converter.go b/components/console-backend-service/internal/domain/k8s/resource_converter.go deleted file mode 100644 index 5cf1a26da591..000000000000 --- a/components/console-backend-service/internal/domain/k8s/resource_converter.go +++ /dev/null @@ -1,49 +0,0 @@ -package k8s - -import ( - "bytes" - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" - "github.com/kyma-project/kyma/components/console-backend-service/internal/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/pkg/errors" -) - -type resourceConverter struct{} - -func (c *resourceConverter) GQLJSONToResource(in gqlschema.JSON) (types.Resource, error) { - var buf bytes.Buffer - in.MarshalGQL(&buf) - - resourceMeta, err := extractor.ExtractResourceMeta(in) - if err != nil { - return types.Resource{}, errors.Wrapf(err, "while extracting resource meta") - } - - return types.Resource{ - APIVersion: resourceMeta.APIVersion, - Name: resourceMeta.Name, - Namespace: resourceMeta.Namespace, - Kind: resourceMeta.Kind, - Body: buf.Bytes(), - }, nil -} - -func (c *resourceConverter) BodyToGQLJSON(in []byte) (gqlschema.JSON, error) { - var jsonMap map[string]interface{} - err := json.Unmarshal(in, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s body to map", pretty.Resource) - } - - var result gqlschema.JSON - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s body to GQL JSON", pretty.Resource) - } - - return result, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/resource_converter_test.go b/components/console-backend-service/internal/domain/k8s/resource_converter_test.go deleted file mode 100644 index f40e5db1c62d..000000000000 --- a/components/console-backend-service/internal/domain/k8s/resource_converter_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package k8s - -import ( - "bytes" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestResourceConverter_GQLJSONToResource(t *testing.T) { - const ( - kind = "Pod" - apiVersion = "v1" - name = "test-pod" - namespace = "test-namespace" - ) - var ( - resourceJSON = gqlschema.JSON{ - "kind": kind, - "apiVersion": apiVersion, - "metadata": map[string]interface{}{ - "name": name, - "namespace": namespace, - }, - } - invalidJSON = gqlschema.JSON{} - expected = types.Resource{ - APIVersion: apiVersion, - Name: name, - Namespace: namespace, - Kind: kind, - Body: nil, - } - ) - - t.Run("Success", func(t *testing.T) { - converter := &resourceConverter{} - var buf bytes.Buffer - resourceJSON.MarshalGQL(&buf) - expected.Body = buf.Bytes() - - result, err := converter.GQLJSONToResource(resourceJSON) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("InvalidJSON", func(t *testing.T) { - converter := &resourceConverter{} - - result, err := converter.GQLJSONToResource(invalidJSON) - require.Error(t, err) - assert.Empty(t, result) - }) -} - -func TestResourceConverter_BodyToGQLJSON(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := &resourceConverter{} - expected := gqlschema.JSON{ - "test": "test", - "test2": "test2", - } - var buf bytes.Buffer - expected.MarshalGQL(&buf) - in := buf.Bytes() - - result, err := converter.BodyToGQLJSON(in) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("InvalidBytes", func(t *testing.T) { - converter := &resourceConverter{} - in := []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 255} - - result, err := converter.BodyToGQLJSON(in) - - require.Error(t, err) - assert.Nil(t, result) - }) - - t.Run("NilPassed", func(t *testing.T) { - converter := &resourceConverter{} - - result, err := converter.BodyToGQLJSON(nil) - - require.Error(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/resource_resolver.go b/components/console-backend-service/internal/domain/k8s/resource_resolver.go deleted file mode 100644 index 06c8c74d95f0..000000000000 --- a/components/console-backend-service/internal/domain/k8s/resource_resolver.go +++ /dev/null @@ -1,57 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/golang/glog" - "github.com/pkg/errors" -) - -//go:generate mockery -name=resourceSvc -output=automock -outpkg=automock -case=underscore -type resourceSvc interface { - Create(namespace string, resource types.Resource) (*types.Resource, error) -} - -//go:generate mockery -name=gqlResourceConverter -output=automock -outpkg=automock -case=underscore -type gqlResourceConverter interface { - GQLJSONToResource(in gqlschema.JSON) (types.Resource, error) - BodyToGQLJSON(in []byte) (gqlschema.JSON, error) -} - -type resourceResolver struct { - resourceSvc - gqlResourceConverter -} - -func newResourceResolver(resourceSvc resourceSvc) *resourceResolver { - return &resourceResolver{ - resourceSvc: resourceSvc, - gqlResourceConverter: &resourceConverter{}, - } -} - -func (r *resourceResolver) CreateResourceMutation(ctx context.Context, namespace string, resource gqlschema.JSON) (gqlschema.JSON, error) { - converted, err := r.gqlResourceConverter.GQLJSONToResource(resource) - if err != nil { - return nil, gqlerror.New(err, pretty.Resource) - } - - created, err := r.resourceSvc.Create(namespace, converted) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s %s `%s`", pretty.Resource, converted.Kind, converted.Name)) - return nil, gqlerror.New(err, pretty.Resource) - } - - body, err := r.gqlResourceConverter.BodyToGQLJSON(created.Body) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s body from namespace %s", pretty.Resource, namespace)) - return nil, gqlerror.New(err, pretty.Pod, gqlerror.WithName(converted.Name), gqlerror.WithNamespace(namespace)) - } - - return body, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/resource_resolver_test.go b/components/console-backend-service/internal/domain/k8s/resource_resolver_test.go deleted file mode 100644 index a12a886c891d..000000000000 --- a/components/console-backend-service/internal/domain/k8s/resource_resolver_test.go +++ /dev/null @@ -1,137 +0,0 @@ -package k8s_test - -import ( - "encoding/json" - "errors" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestResourceResolver_CreateResourceMutation(t *testing.T) { - const ( - apiVersion = "v1" - kind = "Pod" - name = "test-name" - namespace = "test-namespace" - ) - - var ( - resourceJSON = gqlschema.JSON{ - "kind": kind, - "apiVersion": apiVersion, - "metadata": map[string]interface{}{ - "name": name, - "namespace": namespace, - }, - } - resource = types.Resource{ - APIVersion: apiVersion, - Name: name, - Namespace: namespace, - Kind: kind, - } - ) - - t.Run("Success", func(t *testing.T) { - body, err := json.Marshal(resource) - require.NoError(t, err) - createdResource := resource - createdResource.Body = body - - svc := automock.NewResourceSvc() - svc.On("Create", namespace, resource).Return(&createdResource, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLResourceConverter() - converter.On("GQLJSONToResource", resourceJSON).Return(resource, nil).Once() - converter.On("BodyToGQLJSON", createdResource.Body).Return(resourceJSON, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewResourceResolver(svc) - resolver.SetResourceConverter(converter) - - result, err := resolver.CreateResourceMutation(nil, namespace, resourceJSON) - - require.NoError(t, err) - assert.Equal(t, resourceJSON, result) - }) - - t.Run("ErrorConvertingToResource", func(t *testing.T) { - expected := errors.New("fix") - - svc := automock.NewResourceSvc() - - converter := automock.NewGQLResourceConverter() - converter.On("GQLJSONToResource", resourceJSON).Return(types.Resource{}, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewResourceResolver(svc) - resolver.SetResourceConverter(converter) - - result, err := resolver.CreateResourceMutation(nil, namespace, resourceJSON) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorCreatingResource", func(t *testing.T) { - expected := errors.New("fix") - - body, err := json.Marshal(resource) - require.NoError(t, err) - createdResource := resource - createdResource.Body = body - - svc := automock.NewResourceSvc() - svc.On("Create", namespace, resource).Return(nil, expected).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLResourceConverter() - converter.On("GQLJSONToResource", resourceJSON).Return(resource, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewResourceResolver(svc) - resolver.SetResourceConverter(converter) - - result, err := resolver.CreateResourceMutation(nil, namespace, resourceJSON) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConvertingBodyToGQLJSON", func(t *testing.T) { - expected := errors.New("fix") - - body, err := json.Marshal(resource) - require.NoError(t, err) - createdResource := resource - createdResource.Body = body - - svc := automock.NewResourceSvc() - svc.On("Create", namespace, resource).Return(&createdResource, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLResourceConverter() - converter.On("GQLJSONToResource", resourceJSON).Return(resource, nil).Once() - converter.On("BodyToGQLJSON", createdResource.Body).Return(gqlschema.JSON{}, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewResourceResolver(svc) - resolver.SetResourceConverter(converter) - - result, err := resolver.CreateResourceMutation(nil, namespace, resourceJSON) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/resource_service.go b/components/console-backend-service/internal/domain/k8s/resource_service.go deleted file mode 100644 index e06825a2f7ef..000000000000 --- a/components/console-backend-service/internal/domain/k8s/resource_service.go +++ /dev/null @@ -1,74 +0,0 @@ -package k8s - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" - "github.com/kyma-project/kyma/components/console-backend-service/internal/extractor" - - "github.com/pkg/errors" - "k8s.io/client-go/discovery" -) - -type DiscoveryInterface interface { - discovery.DiscoveryInterface -} - -//go:generate mockery -name=DiscoveryInterface -case=underscore -output=automock -outpkg=automock - -type resourceService struct { - client DiscoveryInterface -} - -func newResourceService(client DiscoveryInterface) *resourceService { - return &resourceService{ - client: client, - } -} - -func (svc *resourceService) Create(namespace string, resource types.Resource) (*types.Resource, error) { - if namespace != resource.Namespace { - return nil, apierror.NewInvalid(pretty.Resource, apierror.ErrorFieldAggregate{ - apierror.NewInvalidField("namespace", resource.Namespace, fmt.Sprintf("namespace of provided object does not match the namespace sent on the request (%s)", namespace)), - }) - } - - pluralName, err := extractor.GetPluralNameFromKind(resource.Kind, resource.APIVersion, svc.client) - if err != nil { - return nil, errors.Wrap(err, "while getting resource's plural name") - } - - result := svc.client.RESTClient().Post(). - AbsPath(svc.getAPIPath(resource.APIVersion)). - Namespace(resource.Namespace). - Resource(pluralName). - Body(resource.Body). - Do(context.Background()) - err = result.Error() - if err != nil { - return nil, errors.Wrap(err, "while creating resource") - } - - body, err := result.Raw() - if err != nil { - return nil, errors.Wrap(err, "while extracting raw result") - } - - return &types.Resource{ - APIVersion: resource.APIVersion, - Name: resource.Name, - Namespace: resource.Namespace, - Kind: resource.Kind, - Body: body, - }, nil -} - -func (svc *resourceService) getAPIPath(apiVersion string) string { - if apiVersion == "v1" { - return "/api/v1" - } - return fmt.Sprintf("/apis/%s", apiVersion) -} diff --git a/components/console-backend-service/internal/domain/k8s/resource_service_test.go b/components/console-backend-service/internal/domain/k8s/resource_service_test.go deleted file mode 100644 index 5e93c21fb801..000000000000 --- a/components/console-backend-service/internal/domain/k8s/resource_service_test.go +++ /dev/null @@ -1,124 +0,0 @@ -package k8s_test - -import ( - "bytes" - "errors" - "io/ioutil" - "net/http" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/types" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/discovery" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest/fake" -) - -func TestResourceService_Create(t *testing.T) { - const ( - namespace = "test-namespace" - name = "test-name" - pluralName = "pods" - kind = "Pod" - ) - var testCases = []struct { - caseName string - namespace string - apiVersion string - failingPluralName bool - failingRESTClient bool - success bool - }{ - {"Success", "test-namespace", "v1", false, false, true}, - {"WithAPIGroup", "test-namespace", "test/v1beta1", false, false, true}, - {"NamespaceMissmatch", "test-missmatch", "v1", false, false, false}, - {"PluralNotFound", "test-namespace", "v1", true, false, false}, - {"ErrorCreatingResource", "test-namespace", "v1", false, true, false}, - } - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - resource, err := fixResource(name, testCase.namespace, kind, testCase.apiVersion) - require.NoError(t, err) - client := fixClient(testCase.apiVersion, kind, pluralName, resource, testCase.failingPluralName, testCase.failingRESTClient) - svc := k8s.NewResourceService(client) - - result, err := svc.Create(namespace, resource) - - if testCase.success { - require.NoError(t, err) - assert.NotNil(t, result) - } else { - require.Error(t, err) - assert.Nil(t, result) - } - - }) - } -} - -func fixResource(name, namespace, kind, apiVersion string) (types.Resource, error) { - resourceJSON := gqlschema.JSON{ - "kind": kind, - "apiVersion": apiVersion, - "metadata": map[string]interface{}{ - "name": name, - "namespace": namespace, - }, - } - - converter := k8s.NewResourceConverter() - return converter.GQLJSONToResource(resourceJSON) -} - -func fixClient(apiVersion, kind, pluralName string, created types.Resource, failingPluralName, failingRESTClient bool) discovery.DiscoveryInterface { - fakeResources := &v1.APIResourceList{ - TypeMeta: v1.TypeMeta{}, - GroupVersion: apiVersion, - } - if !failingPluralName { - fakeResources.APIResources = []v1.APIResource{ - v1.APIResource{ - Name: pluralName, - Kind: kind, - }, - } - } - - client := automock.DiscoveryInterface{} - fakeRESTClient := &fake.RESTClient{ - NegotiatedSerializer: scheme.Codecs, - Client: fixHTTPClient(created.Body, failingRESTClient), - } - - client.On("ServerResourcesForGroupVersion", apiVersion).Return(fakeResources, nil).Once() - client.On("RESTClient").Return(fakeRESTClient, nil).Once() - - return &client -} - -func fixHTTPClient(body []byte, failing bool) *http.Client { - var res http.Response - var err error - - if failing { - res, err = http.Response{StatusCode: 200, Header: defaultHeader(), Body: nil}, errors.New("error") - } else { - res, err = http.Response{StatusCode: 200, Header: defaultHeader(), Body: ioutil.NopCloser(bytes.NewReader(body))}, nil - } - - return fake.CreateHTTPClient(func(request *http.Request) (*http.Response, error) { - return &res, err - }) -} - -func defaultHeader() http.Header { - header := http.Header{} - header.Set("Content-Type", runtime.ContentTypeJSON) - return header -} diff --git a/components/console-backend-service/internal/domain/k8s/secret_converter.go b/components/console-backend-service/internal/domain/k8s/secret_converter.go deleted file mode 100644 index bd952d92e1a8..000000000000 --- a/components/console-backend-service/internal/domain/k8s/secret_converter.go +++ /dev/null @@ -1,102 +0,0 @@ -package k8s - -import ( - "bytes" - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -type secretConverter struct{} - -func (s *secretConverter) ToGQL(in *v1.Secret) (*gqlschema.Secret, error) { - if in == nil { - return nil, nil - } - - gqlJSON, err := s.secretToGQLJSON(in) - if err != nil { - return nil, errors.Wrapf(err, "while converting %s `%s` to it's json representation", pretty.Secret, in.Name) - } - - out := &gqlschema.Secret{ - Name: in.Name, - Namespace: in.ObjectMeta.Namespace, - CreationTime: in.ObjectMeta.CreationTimestamp.Time, - Type: string(in.Type), - JSON: gqlJSON, - } - - out.Data = make(gqlschema.JSON) - for k, v := range in.Data { - out.Data[k] = string(v) - } - - out.Labels = make(gqlschema.JSON) - for k, v := range in.ObjectMeta.Labels { - out.Labels[k] = v - } - - out.Annotations = make(gqlschema.JSON) - - for k, v := range in.ObjectMeta.Annotations { - out.Annotations[k] = v - } - - return out, nil -} - -func (s *secretConverter) ToGQLs(in []*v1.Secret) ([]*gqlschema.Secret, error) { - var result []*gqlschema.Secret - for _, u := range in { - converted, err := s.ToGQL(u) - if err != nil { - return nil, err - } - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *secretConverter) GQLJSONToSecret(in gqlschema.JSON) (v1.Secret, error) { - var buf bytes.Buffer - in.MarshalGQL(&buf) - bufBytes := buf.Bytes() - result := v1.Secret{} - err := json.Unmarshal(bufBytes, &result) - if err != nil { - return v1.Secret{}, errors.Wrapf(err, "while unmarshalling GQL JSON of %s", pretty.Secret) - } - - return result, nil -} - -func (c *secretConverter) secretToGQLJSON(in *v1.Secret) (gqlschema.JSON, error) { - if in == nil { - return nil, nil - } - - jsonByte, err := json.Marshal(in) - if err != nil { - return nil, errors.Wrapf(err, "while marshalling %s `%s`", pretty.Secret, in.Name) - } - - var jsonMap map[string]interface{} - err = json.Unmarshal(jsonByte, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to map", pretty.Secret, in.Name) - } - - var result gqlschema.JSON - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to GQL JSON", pretty.Secret, in.Name) - } - - return result, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/secret_converter_test.go b/components/console-backend-service/internal/domain/k8s/secret_converter_test.go deleted file mode 100644 index 6c3afb02d636..000000000000 --- a/components/console-backend-service/internal/domain/k8s/secret_converter_test.go +++ /dev/null @@ -1,257 +0,0 @@ -package k8s - -import ( - "encoding/base64" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestSecretConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - t1 := time.Unix(1552643464696, 0) - // GIVEN - givenSecret := v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: "my-secret", - Namespace: "production", - CreationTimestamp: metav1.NewTime(t1), - Labels: map[string]string{"label1": "data"}, - Annotations: map[string]string{"annotation1": "annotation"}, - }, - Data: map[string][]byte{ - "password": []byte("secret"), - }, - Type: "custom-type", - } - sut := secretConverter{} - // WHEN - actualQL, err := sut.ToGQL(&givenSecret) - require.NoError(t, err) - // THEN - assert.Equal(t, "my-secret", actualQL.Name) - assert.Equal(t, "production", actualQL.Namespace) - assert.Equal(t, t1, actualQL.CreationTime) - assert.Equal(t, gqlschema.JSON{"label1": "data"}, actualQL.Labels) - assert.Equal(t, gqlschema.JSON{"annotation1": "annotation"}, actualQL.Annotations) - assert.Equal(t, "custom-type", actualQL.Type) - }) - - t.Run("Empty", func(t *testing.T) { - converter := secretConverter{} - result, err := converter.ToGQL(&v1.Secret{}) - require.NoError(t, err) - gqlJson, err := converter.secretToGQLJSON(&v1.Secret{}) - assert.NoError(t, err) - expected := &gqlschema.Secret{Data: make(gqlschema.JSON), Labels: make(gqlschema.JSON), Annotations: make(gqlschema.JSON), JSON: gqlJson} - assert.Equal(t, result, expected) - }) - - t.Run("Nil", func(t *testing.T) { - converter := secretConverter{} - result, err := converter.ToGQL(nil) - require.NoError(t, err) - - assert.Nil(t, result) - }) -} - -func TestSecretConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - t1 := time.Unix(1552643464696, 0) - // GIVEN - firstSecret := &v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: "my-secret", - Namespace: "production", - CreationTimestamp: metav1.NewTime(t1), - Labels: map[string]string{"label1": "data"}, - Annotations: map[string]string{"annotation1": "annotation"}, - }, - Data: map[string][]byte{ - "password": []byte("secret"), - }, - Type: "custom-type", - } - - secondSecret := &v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: "second-sec", - Namespace: "production", - CreationTimestamp: metav1.NewTime(t1), - Labels: map[string]string{"sec-label": "data"}, - Annotations: map[string]string{"second-annotation": "content"}, - }, - Data: map[string][]byte{ - "pass": []byte("sec"), - }, - Type: "second-type", - } - - sut := secretConverter{} - // WHEN - actualQL, err := sut.ToGQLs([]*v1.Secret{firstSecret, secondSecret}) - require.NoError(t, err) - // THEN - assert.Equal(t, "my-secret", actualQL[0].Name) - assert.Equal(t, "production", actualQL[0].Namespace) - assert.Equal(t, t1, actualQL[0].CreationTime) - assert.Equal(t, gqlschema.JSON{"label1": "data"}, actualQL[0].Labels) - assert.Equal(t, gqlschema.JSON{"annotation1": "annotation"}, actualQL[0].Annotations) - assert.Equal(t, "custom-type", actualQL[0].Type) - - assert.Equal(t, "second-sec", actualQL[1].Name) - assert.Equal(t, "production", actualQL[1].Namespace) - assert.Equal(t, t1, actualQL[1].CreationTime) - assert.Equal(t, gqlschema.JSON{"sec-label": "data"}, actualQL[1].Labels) - assert.Equal(t, gqlschema.JSON{"second-annotation": "content"}, actualQL[1].Annotations) - assert.Equal(t, "second-type", actualQL[1].Type) - }) - - t.Run("EmptyList", func(t *testing.T) { - converter := secretConverter{} - result, err := converter.ToGQLs([]*v1.Secret{}) - require.NoError(t, err) - expected := []*gqlschema.Secret(nil) - assert.Equal(t, result, expected) - }) - - t.Run("Nil", func(t *testing.T) { - converter := secretConverter{} - result, err := converter.ToGQLs(nil) - require.NoError(t, err) - - assert.Nil(t, result) - }) -} - -func TestSecretConverter_GQLJSONToSecret(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := secretConverter{} - inMap := map[string]interface{}{ - "kind": "exampleKind", - "apiversion": "someApiVersion", - "type": "custom-type", - "metadata": map[string]interface{}{ - "name": "exampleName", - "labels": map[string]interface{}{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - "annotations": map[string]interface{}{ - "exampleKeyAnnotation": "exampleValueAnnotation", - "exampleKey2Annotation": "exampleValue2Annotation", - }, - "creationTimestamp": nil, - }, - } - expected := v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "exampleKind", - APIVersion: "someApiVersion", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - Annotations: map[string]string{ - "exampleKeyAnnotation": "exampleValueAnnotation", - "exampleKey2Annotation": "exampleValue2Annotation", - }, - CreationTimestamp: metav1.Time{}, - }, - Type: "custom-type", - } - - inJSON := new(gqlschema.JSON) - err := inJSON.UnmarshalGQL(inMap) - require.NoError(t, err) - - result, err := converter.GQLJSONToSecret(*inJSON) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) -} - -func TestSecretConverter_SecretToGQLJSON(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := secretConverter{} - - expectedMap := map[string]interface{}{ - "kind": "exampleKind", - "metadata": map[string]interface{}{ - "name": "exampleName", - "labels": map[string]interface{}{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - "creationTimestamp": nil, - "ownerReferences": []interface{}{ - map[string]interface{}{ - "apiVersion": "exampleApiVersion", - "kind": "exampleKind", - "name": "exampleName", - "uid": "exampleUID", - }, - }, - }, - "type": "exampleType", - "data": map[string]interface{}{ - "exampleKey": base64.StdEncoding.EncodeToString([]byte("exampleData")), - "exampleKey2": base64.StdEncoding.EncodeToString([]byte("exampleData2")), - }, - } - in := v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "exampleKind", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - CreationTimestamp: metav1.Time{}, - OwnerReferences: []metav1.OwnerReference{ - { - APIVersion: "exampleApiVersion", - Name: "exampleName", - UID: "exampleUID", - Kind: "exampleKind", - }, - }, - }, - Data: map[string][]byte{ - "exampleKey": []byte("exampleData"), - "exampleKey2": []byte("exampleData2"), - }, - Type: "exampleType", - } - - expectedJSON := new(gqlschema.JSON) - err := expectedJSON.UnmarshalGQL(expectedMap) - require.NoError(t, err) - - result, err := converter.secretToGQLJSON(&in) - - require.NoError(t, err) - assert.Equal(t, *expectedJSON, result) - }) - - t.Run("NilPassed", func(t *testing.T) { - converter := secretConverter{} - - result, err := converter.secretToGQLJSON(nil) - - require.Nil(t, result) - require.NoError(t, err) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/secret_resolver.go b/components/console-backend-service/internal/domain/k8s/secret_resolver.go deleted file mode 100644 index a2578e66efee..000000000000 --- a/components/console-backend-service/internal/domain/k8s/secret_resolver.go +++ /dev/null @@ -1,133 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" - k8serrors "k8s.io/apimachinery/pkg/api/errors" -) - -//go:generate mockery -name=secretSvc -output=automock -outpkg=automock -case=underscore -type secretSvc interface { - Find(name, namespace string) (*v1.Secret, error) - List(namespace string, params pager.PagingParams) ([]*v1.Secret, error) - Update(name, namespace string, update v1.Secret) (*v1.Secret, error) - Delete(name, namespace string) error - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -func newSecretResolver(svc secretSvc) *secretResolver { - return &secretResolver{ - converter: &secretConverter{}, - secretSvc: svc, - } -} - -//go:generate mockery -name=gqlSecretConverter -output=automock -outpkg=automock -case=underscore -type gqlSecretConverter interface { - ToGQL(in *v1.Secret) (*gqlschema.Secret, error) - ToGQLs(in []*v1.Secret) ([]*gqlschema.Secret, error) - GQLJSONToSecret(in gqlschema.JSON) (v1.Secret, error) -} - -type secretResolver struct { - converter gqlSecretConverter - secretSvc secretSvc -} - -func (r *secretResolver) SecretQuery(ctx context.Context, name, ns string) (*gqlschema.Secret, error) { - secret, err := r.secretSvc.Find(name, ns) - switch { - case k8serrors.IsNotFound(err): - return nil, nil - case err != nil: - glog.Error( - errors.Wrapf(err, "while getting %s [name: %s, namespace: %s]", pretty.Secret, name, ns)) - return nil, gqlerror.New(err, pretty.Secret, gqlerror.WithName(name), gqlerror.WithNamespace(ns)) - } - return r.converter.ToGQL(secret) -} - -func (r *secretResolver) SecretsQuery(ctx context.Context, ns string, first *int, offset *int) ([]*gqlschema.Secret, error) { - secrets, err := r.secretSvc.List(ns, pager.PagingParams{ - First: first, - Offset: offset, - }) - - switch { - case k8serrors.IsNotFound(err): - return nil, nil - case err != nil: - glog.Error( - errors.Wrapf(err, "while getting secrets [namespace: %s]", ns)) - return nil, gqlerror.New(err, pretty.Secret, gqlerror.WithNamespace(ns)) - } - - return r.converter.ToGQLs(secrets) -} - -func (r *secretResolver) SecretEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.SecretEvent, error) { - channel := make(chan *gqlschema.SecretEvent, 1) - filter := func(secret *v1.Secret) bool { - return secret != nil && secret.Namespace == namespace - } - - secretListener := listener.NewSecret(channel, filter, r.converter) - r.secretSvc.Subscribe(secretListener) - go func() { - defer close(channel) - defer r.secretSvc.Unsubscribe(secretListener) - <-ctx.Done() - }() - - return channel, nil -} - -func (r *secretResolver) UpdateSecretMutation(ctx context.Context, name string, namespace string, update gqlschema.JSON) (*gqlschema.Secret, error) { - secret, err := r.converter.GQLJSONToSecret(update) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace `%s`", pretty.Secret, name, namespace)) - return nil, gqlerror.New(err, pretty.Secret, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updated, err := r.secretSvc.Update(name, namespace, secret) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace %s", pretty.Secret, name, namespace)) - return nil, gqlerror.New(err, pretty.Secret, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return r.converter.ToGQL(updated) -} - -func (r *secretResolver) DeleteSecretMutation(ctx context.Context, name string, namespace string) (*gqlschema.Secret, error) { - secret, err := r.secretSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while finding %s `%s` in namespace `%s`", pretty.Secret, name, namespace)) - return nil, gqlerror.New(err, pretty.Secret, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - secretCopy := secret.DeepCopy() - deletedSecret, err := r.converter.ToGQL(secretCopy) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s `%s` from namespace `%s`", pretty.Secret, name, namespace)) - return nil, gqlerror.New(err, pretty.Secret, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - err = r.secretSvc.Delete(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s` from namespace `%s`", pretty.Secret, name, namespace)) - return nil, gqlerror.New(err, pretty.Secret, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return deletedSecret, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/secret_resolver_test.go b/components/console-backend-service/internal/domain/k8s/secret_resolver_test.go deleted file mode 100644 index 367fa3053070..000000000000 --- a/components/console-backend-service/internal/domain/k8s/secret_resolver_test.go +++ /dev/null @@ -1,338 +0,0 @@ -package k8s_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - k8sTesting "k8s.io/client-go/testing" -) - -func failingReactor(action k8sTesting.Action) (handled bool, ret runtime.Object, err error) { - return true, nil, errors.New("custom error") -} - -func TestSecretResolver_SecretQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - t1 := time.Unix(1, 0) - expected := &gqlschema.Secret{ - Name: "Test", - Namespace: "TestNS", - CreationTime: t1, - Annotations: gqlschema.JSON{"second-annot": "content"}, - } - - name := "name" - namespace := "namespace" - resource := &v1.Secret{} - resourceGetter := automock.NewSecretSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLSecretConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(resourceGetter) - resolver.SetSecretConverter(converter) - - result, err := resolver.SecretQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - t.Run("NotFound", func(t *testing.T) { - name := "name" - namespace := "namespace" - resourceGetter := automock.NewSecretSvc() - resourceGetter.On("Find", name, namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(resourceGetter) - - result, err := resolver.SecretQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Nil(t, result) - }) - t.Run("ErrorGetting", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &v1.Secret{} - resourceGetter := automock.NewSecretSvc() - resourceGetter.On("Find", name, namespace).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(resourceGetter) - - result, err := resolver.SecretQuery(nil, name, namespace) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestSecretResolver_SecretsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "Test" - namespace := "namespace" - resource := &v1.Secret{} - resources := []*v1.Secret{ - resource, resource, - } - expected := []*gqlschema.Secret{ - { - Name: name, - }, - { - Name: name, - }, - } - - resourceGetter := automock.NewSecretSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLSecretConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(resourceGetter) - resolver.SetSecretConverter(converter) - - result, err := resolver.SecretsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "namespace" - var resources []*v1.Secret - var expected []*gqlschema.Secret - - resourceGetter := automock.NewSecretSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(resourceGetter) - - result, err := resolver.SecretsQuery(nil, namespace, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - namespace := "namespace" - expected := errors.New("Test") - var resources []*v1.Secret - resourceGetter := automock.NewSecretSvc() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(resourceGetter) - - result, err := resolver.SecretsQuery(nil, namespace, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestSecretResolver_SecretEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewSecretSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewSecretResolver(svc) - - _, err := resolver.SecretEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewSecretSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewSecretResolver(svc) - - channel, err := resolver.SecretEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} - -func TestSecretResolver_UpdateSecretMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedSecretFix := fixSecret(name, namespace, map[string]string{ - "test": "test", - }) - updatedGQLSecretFix := &gqlschema.Secret{ - Name: name, - Namespace: namespace, - Labels: map[string]interface{}{ - "test": "test", - }, - } - gqlJSONFix := gqlschema.JSON{} - - secretSvc := automock.NewSecretSvc() - secretSvc.On("Update", name, namespace, *updatedSecretFix).Return(updatedSecretFix, nil).Once() - defer secretSvc.AssertExpectations(t) - - converter := automock.NewGQLSecretConverter() - converter.On("GQLJSONToSecret", gqlJSONFix).Return(*updatedSecretFix, nil).Once() - converter.On("ToGQL", updatedSecretFix).Return(updatedGQLSecretFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(secretSvc) - resolver.SetSecretConverter(converter) - - result, err := resolver.UpdateSecretMutation(nil, name, namespace, gqlJSONFix) - - require.NoError(t, err) - assert.Equal(t, updatedGQLSecretFix, result) - }) - - t.Run("ErrorConvertingToSecret", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - secretSvc := automock.NewSecretSvc() - - converter := automock.NewGQLSecretConverter() - converter.On("GQLJSONToSecret", gqlJSONFix).Return(v1.Secret{}, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(secretSvc) - resolver.SetSecretConverter(converter) - - result, err := resolver.UpdateSecretMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorUpdating", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedSecretFix := fixSecret(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - secretSvc := automock.NewSecretSvc() - secretSvc.On("Update", name, namespace, *updatedSecretFix).Return(nil, expected).Once() - defer secretSvc.AssertExpectations(t) - - converter := automock.NewGQLSecretConverter() - converter.On("GQLJSONToSecret", gqlJSONFix).Return(*updatedSecretFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(secretSvc) - resolver.SetSecretConverter(converter) - - result, err := resolver.UpdateSecretMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.Nil(t, result) - }) -} - -func TestSecretResolver_DeleteSecretMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixSecret(name, namespace, nil) - expected := &gqlschema.Secret{ - Name: name, - Namespace: namespace, - } - - secretSvc := automock.NewSecretSvc() - secretSvc.On("Find", name, namespace).Return(resource, nil).Once() - secretSvc.On("Delete", name, namespace).Return(nil).Once() - defer secretSvc.AssertExpectations(t) - - converter := automock.NewGQLSecretConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(secretSvc) - resolver.SetSecretConverter(converter) - - result, err := resolver.DeleteSecretMutation(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - expected := errors.New("fix") - - secretSvc := automock.NewSecretSvc() - secretSvc.On("Find", name, namespace).Return(nil, expected).Once() - defer secretSvc.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(secretSvc) - - result, err := resolver.DeleteSecretMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorDeleting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixSecret(name, namespace, nil) - expected := errors.New("fix") - - secretSvc := automock.NewSecretSvc() - secretSvc.On("Find", name, namespace).Return(resource, nil).Once() - secretSvc.On("Delete", name, namespace).Return(expected).Once() - defer secretSvc.AssertExpectations(t) - - resolver := k8s.NewSecretResolver(secretSvc) - - result, err := resolver.DeleteSecretMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/secret_service.go b/components/console-backend-service/internal/domain/k8s/secret_service.go deleted file mode 100644 index 746cf911fbc5..000000000000 --- a/components/console-backend-service/internal/domain/k8s/secret_service.go +++ /dev/null @@ -1,134 +0,0 @@ -package k8s - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - v1 "k8s.io/api/core/v1" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/tools/cache" -) - -type secretService struct { - client corev1.CoreV1Interface - informer cache.SharedIndexInformer - notifier resource.Notifier -} - -func newSecretService(informer cache.SharedIndexInformer, client corev1.CoreV1Interface) *secretService { - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - return &secretService{ - client: client, - informer: informer, - notifier: notifier, - } -} - -func (svc secretService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc secretService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} - -func (svc secretService) Find(name, namespace string) (*v1.Secret, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - secret, ok := item.(*v1.Secret) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *Secret", item) - } - - svc.ensureTypeMeta(secret) - - return secret, nil -} - -func (svc secretService) List(namespace string, pagingParams pager.PagingParams) ([]*v1.Secret, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - var secrets []*v1.Secret - for _, item := range items { - secret, ok := item.(*v1.Secret) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *Secret", item) - } - - svc.ensureTypeMeta(secret) - - secrets = append(secrets, secret) - } - - return secrets, nil -} - -func (svc secretService) Update(name, namespace string, update v1.Secret) (*v1.Secret, error) { - err := svc.checkUpdatePreconditions(name, namespace, update) - if err != nil { - return nil, err - } - - updated, err := svc.client.Secrets(namespace).Update(context.Background(), &update, metav1.UpdateOptions{}) - if err != nil { - return nil, err - } - - svc.ensureTypeMeta(updated) - - return updated, nil -} - -func (svc secretService) Delete(name, namespace string) error { - return svc.client.Secrets(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *secretService) checkUpdatePreconditions(name string, namespace string, update v1.Secret) error { - var errs apierror.ErrorFieldAggregate - if name != update.Name { - errs = append(errs, apierror.NewInvalidField("metadata.name", update.Name, fmt.Sprintf("name of updated object does not match the original (%s)", name))) - } - if namespace != update.Namespace { - errs = append(errs, apierror.NewInvalidField("metadata.namespace", update.Namespace, fmt.Sprintf("namespace of updated object does not match the original (%s)", namespace))) - } - typeMeta := svc.secretTypeMeta() - if update.Kind != typeMeta.Kind { - errs = append(errs, apierror.NewInvalidField("kind", update.Kind, "secret's kind should not be changed")) - } - if update.APIVersion != typeMeta.APIVersion { - errs = append(errs, apierror.NewInvalidField("apiVersion", update.APIVersion, "secret's apiVersion should not be changed")) - } - - if len(errs) > 0 { - return apierror.NewInvalid(pretty.Secret, errs) - } - - return nil -} - -// Kubernetes API used by client-go doesn't provide kind and apiVersion so we have to add it here -// See: https://github.com/kubernetes/kubernetes/issues/3030 -func (svc secretService) ensureTypeMeta(secret *v1.Secret) { - secret.TypeMeta = svc.secretTypeMeta() -} - -func (svc secretService) secretTypeMeta() metav1.TypeMeta { - return metav1.TypeMeta{ - Kind: "Secret", - APIVersion: "v1", - } -} diff --git a/components/console-backend-service/internal/domain/k8s/secret_service_test.go b/components/console-backend-service/internal/domain/k8s/secret_service_test.go deleted file mode 100644 index 4f53b7cfa034..000000000000 --- a/components/console-backend-service/internal/domain/k8s/secret_service_test.go +++ /dev/null @@ -1,232 +0,0 @@ -package k8s_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes/fake" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/cache" -) - -func TestSecretService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNamespace" - - secret := fixSecret(instanceName, namespace, nil) - secretInformer, _ := fixSecretInformer(secret) - - svc := k8s.NewSecretService(secretInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, secretInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, secret, instance) - }) - - t.Run("NotFound", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - - svc := k8s.NewSecretService(secretInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, secretInformer) - - instance, err := svc.Find("doesntExist", "notExistingNamespace") - require.NoError(t, err) - assert.Nil(t, instance) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - secretName := "testExample" - namespace := "testNamespace" - - expectedSecret := fixSecret(secretName, namespace, nil) - returnedSecret := fixSecretWithoutTypeMeta(secretName, namespace, nil) - secretInformer, _ := fixSecretInformer(returnedSecret) - - svc := k8s.NewSecretService(secretInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, secretInformer) - - instance, err := svc.Find(secretName, namespace) - require.NoError(t, err) - assert.Equal(t, expectedSecret, instance) - }) -} - -func TestSecretService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "testNamespace" - secret1 := fixSecret("secret1", namespace, nil) - secret2 := fixSecret("secret2", namespace, nil) - secret3 := fixSecret("secret3", "differentNamespace", nil) - - secretInformer, _ := fixSecretInformer(secret1, secret2, secret3) - - svc := k8s.NewSecretService(secretInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, secretInformer) - - secrets, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1.Secret{ - secret1, secret2, - }, secrets) - }) - - t.Run("NotFound", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - - svc := k8s.NewSecretService(secretInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, secretInformer) - - var emptyArray []*v1.Secret - secrets, err := svc.List("notExistingNamespace", pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, secrets) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - namespace := "testNamespace" - returnedSecret1 := fixSecretWithoutTypeMeta("secret1", namespace, nil) - returnedSecret2 := fixSecretWithoutTypeMeta("secret2", namespace, nil) - returnedSecret3 := fixSecretWithoutTypeMeta("secret3", "differentNamespace", nil) - expectedSecret1 := fixSecret("secret1", namespace, nil) - expectedSecret2 := fixSecret("secret2", namespace, nil) - - secretInformer, _ := fixSecretInformer(returnedSecret1, returnedSecret2, returnedSecret3) - - svc := k8s.NewSecretService(secretInformer, nil) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, secretInformer) - - secrets, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1.Secret{ - expectedSecret1, expectedSecret2, - }, secrets) - }) -} - -func TestSecretService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - secretListener := listener.NewSecret(nil, nil, nil) - svc.Subscribe(secretListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - secretListener := listener.NewSecret(nil, nil, nil) - - svc.Subscribe(secretListener) - svc.Subscribe(secretListener) - }) - - t.Run("Multiple", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - secretListenerA := listener.NewSecret(nil, nil, nil) - secretListenerB := listener.NewSecret(nil, nil, nil) - - svc.Subscribe(secretListenerA) - svc.Subscribe(secretListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - - svc.Subscribe(nil) - }) -} - -func TestSecretService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - secretListener := listener.NewSecret(nil, nil, nil) - svc.Subscribe(secretListener) - - svc.Unsubscribe(secretListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - secretListener := listener.NewSecret(nil, nil, nil) - svc.Subscribe(secretListener) - svc.Subscribe(secretListener) - - svc.Unsubscribe(secretListener) - }) - - t.Run("Multiple", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - secretListenerA := listener.NewSecret(nil, nil, nil) - secretListenerB := listener.NewSecret(nil, nil, nil) - svc.Subscribe(secretListenerA) - svc.Subscribe(secretListenerB) - - svc.Unsubscribe(secretListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - secretInformer, _ := fixSecretInformer() - svc := k8s.NewSecretService(secretInformer, nil) - - svc.Unsubscribe(nil) - }) -} - -func fixSecretWithoutTypeMeta(name, namespace string, labels map[string]string) *v1.Secret { - return &v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: labels, - }, - } -} - -func fixSecretInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().Secrets().Informer() - - return informer, client.CoreV1() -} - -func fixFailingSecretInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - client.PrependReactor("update", "secrets", failingReactor) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().Secrets().Informer() - - return informer, client.CoreV1() -} - -func fixSecret(name, namespace string, labels map[string]string) *v1.Secret { - secret := fixSecretWithoutTypeMeta(name, namespace, labels) - secret.TypeMeta = metav1.TypeMeta{ - Kind: "Secret", - APIVersion: "v1", - } - return secret -} diff --git a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_converter.go b/components/console-backend-service/internal/domain/k8s/selfsubjectrules_converter.go deleted file mode 100644 index e4780c13ee55..000000000000 --- a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_converter.go +++ /dev/null @@ -1,33 +0,0 @@ -package k8s - -import ( - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/authorization/v1" -) - -type selfSubjectRulesConverter struct { -} - -func (c *selfSubjectRulesConverter) ToGQL(in *v1.SelfSubjectRulesReview) ([]*gqlschema.ResourceRule, error) { - if in == nil { - return nil, nil - } - - result := make([]*gqlschema.ResourceRule, len(in.Status.ResourceRules)) - for i, resourceRule := range in.Status.ResourceRules { - result[i] = &gqlschema.ResourceRule{ - Verbs: resourceRule.Verbs, - APIGroups: resourceRule.APIGroups, - Resources: resourceRule.Resources, - } - } - - return result, nil -} - -func (c *selfSubjectRulesConverter) ToBytes(in *v1.SelfSubjectRulesReview) ([]byte, error) { - - return json.Marshal(in) -} diff --git a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_converter_test.go b/components/console-backend-service/internal/domain/k8s/selfsubjectrules_converter_test.go deleted file mode 100644 index 0e2c20af08fe..000000000000 --- a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_converter_test.go +++ /dev/null @@ -1,74 +0,0 @@ -package k8s - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - authv1 "k8s.io/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestRelfSubjectRulesConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := &selfSubjectRulesConverter{} - in := fixExampleSelfSubjectRulesReview() - result, err := converter.ToGQL(in) - require.NoError(t, err) - - expected := []*gqlschema.ResourceRule{ - &gqlschema.ResourceRule{ - Verbs: []string{ - "foo", "bar", - }, - Resources: []string{ - "resourceA", "resourceB", - }, - APIGroups: []string{ - "groupA", "groupB", - }, - }, - } - - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &selfSubjectRulesConverter{} - expected := []*gqlschema.ResourceRule{} - result, err := converter.ToGQL(&authv1.SelfSubjectRulesReview{}) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &selfSubjectRulesConverter{} - result, err := converter.ToGQL(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func fixExampleSelfSubjectRulesReview() *authv1.SelfSubjectRulesReview { - return &authv1.SelfSubjectRulesReview{ - TypeMeta: metav1.TypeMeta{ - Kind: "", - }, - Status: authv1.SubjectRulesReviewStatus{ - ResourceRules: []authv1.ResourceRule{ - authv1.ResourceRule{ - Verbs: []string{ - "foo", "bar", - }, - Resources: []string{ - "resourceA", "resourceB", - }, - APIGroups: []string{ - "groupA", "groupB", - }, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_resolver.go b/components/console-backend-service/internal/domain/k8s/selfsubjectrules_resolver.go deleted file mode 100644 index ae09ec2123a3..000000000000 --- a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_resolver.go +++ /dev/null @@ -1,59 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type selfSubjectRulesResolver struct { - gqlSelfSubjectRulesConverter - selfSubjectRulesSvc -} - -//go:generate mockery -name=selfSubjectRulesSvc -output=automock -outpkg=automock -case=underscore -type selfSubjectRulesSvc interface { - Create(ctx context.Context, ssrr []byte) (*v1.SelfSubjectRulesReview, error) -} - -//go:generate mockery -name=gqlSelfSubjectRulesConverter -output=automock -outpkg=automock -case=underscore -type gqlSelfSubjectRulesConverter interface { - ToGQL(in *v1.SelfSubjectRulesReview) ([]*gqlschema.ResourceRule, error) - ToBytes(in *v1.SelfSubjectRulesReview) ([]byte, error) -} - -func newSelfSubjectRulesResolver(selfSubjectRulesSvc selfSubjectRulesSvc) *selfSubjectRulesResolver { - return &selfSubjectRulesResolver{ - selfSubjectRulesSvc: selfSubjectRulesSvc, - gqlSelfSubjectRulesConverter: &selfSubjectRulesConverter{}, - } -} - -func (r *selfSubjectRulesResolver) SelfSubjectRulesQuery(ctx context.Context, namespace *string) ([]*gqlschema.ResourceRule, error) { - if namespace == nil { - defaultNamespace := "*" - namespace = &defaultNamespace - } - ssrrIn := &v1.SelfSubjectRulesReview{ - TypeMeta: metav1.TypeMeta{ - Kind: "SelfSubjectRulesReview", - APIVersion: "authorization.k8s.io/v1", - }, - Spec: v1.SelfSubjectRulesReviewSpec{ - Namespace: *namespace, - }, - } - ssrrBytes, err := r.gqlSelfSubjectRulesConverter.ToBytes(ssrrIn) - ssrrOut, err := r.selfSubjectRulesSvc.Create(ctx, ssrrBytes) - if err != nil { - glog.Error(errors.Wrapf(err, "while reviewing self subject rules")) - return nil, gqlerror.New(err, pretty.SelfSubjectRules) - } - return r.gqlSelfSubjectRulesConverter.ToGQL(ssrrOut) -} diff --git a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_resolver_test.go b/components/console-backend-service/internal/domain/k8s/selfsubjectrules_resolver_test.go deleted file mode 100644 index 2d9d9497e52f..000000000000 --- a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_resolver_test.go +++ /dev/null @@ -1,107 +0,0 @@ -package k8s_test - -import ( - "encoding/json" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - authv1 "k8s.io/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestSelfSubjectRulesQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := fixExampleSSRRGQLResponse() - - in := fixExampleSSRRServiceInput("foo") - inBytes, err := json.Marshal(in) - - out := fixExampleSSRRServiceOutput() - - mockedService := automock.NewSelfSubjectRulesSvc() - mockedService.On("Create", nil, inBytes).Return(out, nil).Once() - defer mockedService.AssertExpectations(t) - - converter := automock.NewSelfSubjectRulesConverter() - - converter.On("ToBytes", in).Return(inBytes, nil).Once() - converter.On("ToGQL", out).Return(expected, nil).Once() - - defer converter.AssertExpectations(t) - - resolver := k8s.NewSelfSubjectRulesResolver(mockedService) - resolver.SetSelfSubjectRulesConverter(converter) - - defaultNamespace := "foo" - result, err := resolver.SelfSubjectRulesQuery(nil, &defaultNamespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - - }) - - t.Run("Success - Default Namespace", func(t *testing.T) { - expected := fixExampleSSRRGQLResponse() - - in := fixExampleSSRRServiceInput("*") - inBytes, err := json.Marshal(in) - - out := fixExampleSSRRServiceOutput() - - mockedService := automock.NewSelfSubjectRulesSvc() - mockedService.On("Create", nil, inBytes).Return(out, nil).Once() - defer mockedService.AssertExpectations(t) - - converter := automock.NewSelfSubjectRulesConverter() - converter.On("ToBytes", in).Return(inBytes, nil).Once() - converter.On("ToGQL", out).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewSelfSubjectRulesResolver(mockedService) - resolver.SetSelfSubjectRulesConverter(converter) - - result, err := resolver.SelfSubjectRulesQuery(nil, nil) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) -} - -func fixExampleSSRRGQLResponse() []*gqlschema.ResourceRule { - return []*gqlschema.ResourceRule{ - &gqlschema.ResourceRule{ - Verbs: []string{"a", "b"}, - Resources: []string{"resA", "resB"}, - APIGroups: []string{"gA", "gB"}, - }, - } -} - -func fixExampleSSRRServiceInput(namespace string) *authv1.SelfSubjectRulesReview { - return &authv1.SelfSubjectRulesReview{ - TypeMeta: metav1.TypeMeta{ - Kind: "SelfSubjectRulesReview", - APIVersion: "authorization.k8s.io/v1", - }, - Spec: authv1.SelfSubjectRulesReviewSpec{ - Namespace: namespace, - }, - } -} - -func fixExampleSSRRServiceOutput() *authv1.SelfSubjectRulesReview { - return &authv1.SelfSubjectRulesReview{ - Status: authv1.SubjectRulesReviewStatus{ - ResourceRules: []authv1.ResourceRule{ - authv1.ResourceRule{ - Verbs: []string{"a", "b"}, - Resources: []string{"resA", "resB"}, - APIGroups: []string{"gA", "gB"}, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_service.go b/components/console-backend-service/internal/domain/k8s/selfsubjectrules_service.go deleted file mode 100644 index 02cae5346da4..000000000000 --- a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_service.go +++ /dev/null @@ -1,40 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/authn" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - authv1 "k8s.io/api/authorization/v1" - v1 "k8s.io/client-go/kubernetes/typed/authorization/v1" -) - -type selfSubjectRulesService struct { - client v1.AuthorizationV1Interface -} - -func newSelfSubjectRulesService(client v1.AuthorizationV1Interface) *selfSubjectRulesService { - return &selfSubjectRulesService{ - client: client, - } -} - -func (svc *selfSubjectRulesService) Create(ctx context.Context, ssrr []byte) (result *authv1.SelfSubjectRulesReview, err error) { - if ssrr == nil { - err := gqlerror.New(err, pretty.SelfSubjectRules) - return &authv1.SelfSubjectRulesReview{}, err - } - u, err := authn.UserInfoForContext(ctx) - username := u.GetName() - result = &authv1.SelfSubjectRulesReview{} - err = svc.client.RESTClient().Post(). - AbsPath("/apis/authorization.k8s.io/v1"). - Resource("selfsubjectrulesreviews"). - SetHeader("Impersonate-User", username). - SetHeader("Impersonate-Group", u.GetGroups()...). - Body(ssrr). - Do(context.Background()). - Into(result) - return -} diff --git a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_service_test.go b/components/console-backend-service/internal/domain/k8s/selfsubjectrules_service_test.go deleted file mode 100644 index 2daf33062804..000000000000 --- a/components/console-backend-service/internal/domain/k8s/selfsubjectrules_service_test.go +++ /dev/null @@ -1,76 +0,0 @@ -package k8s_test - -import ( - "context" - "encoding/json" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/authn" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - authv1 "k8s.io/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/client-go/kubernetes/scheme" - v1 "k8s.io/client-go/kubernetes/typed/authorization/v1" - "k8s.io/client-go/rest/fake" -) - -func TestSelfSubjectRules_Create(t *testing.T) { - - var testCases = []struct { - caseName string - failingRESTClient bool - success bool - }{ - {"Success", false, true}, - {"ErrorCreatingResource", true, false}, - } - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - - requestData := fixSSRRRequestData() - - bytes, err := json.Marshal(requestData) - client := fixAuthorizationClient(bytes, testCase.failingRESTClient) - svc := k8s.NewSelfSubjectRulesService(client) - - fakeContext := authn.WithUserInfoContext(context.TODO(), &user.DefaultInfo{Name: "fake"}) - - result, err := svc.Create(fakeContext, bytes) - - if testCase.success { - require.NoError(t, err) - assert.NotNil(t, result) - } else { - require.Error(t, err) - } - }) - } -} - -func fixSSRRRequestData() authv1.SelfSubjectRulesReview { - return authv1.SelfSubjectRulesReview{ - TypeMeta: metav1.TypeMeta{ - Kind: "SelfSubjectRulesReview", - APIVersion: "authorization.k8s.io/v1", - }, - Spec: authv1.SelfSubjectRulesReviewSpec{ - Namespace: "*", - }, - } -} - -func fixAuthorizationClient(payload []byte, failingRESTClient bool) v1.AuthorizationV1Interface { - - client := automock.AuthorizationV1Interface{} - fakeRESTClient := &fake.RESTClient{ - NegotiatedSerializer: scheme.Codecs, - Client: fixHTTPClient(payload, failingRESTClient), - } - client.On("RESTClient").Return(fakeRESTClient, nil).Once() - - return &client -} diff --git a/components/console-backend-service/internal/domain/k8s/service_converter.go b/components/console-backend-service/internal/domain/k8s/service_converter.go deleted file mode 100644 index bcf2387d078a..000000000000 --- a/components/console-backend-service/internal/domain/k8s/service_converter.go +++ /dev/null @@ -1,149 +0,0 @@ -package k8s - -import ( - "bytes" - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" -) - -type serviceConverter struct { -} - -func (c *serviceConverter) ToGQL(in *v1.Service) (*gqlschema.Service, error) { - if in == nil { - return nil, nil - } - - gqlJSON, err := c.serviceToGQLJSON(in) - if err != nil { - return nil, errors.Wrapf(err, "while converting %s `%s` to it's json representation", pretty.Service, in.Name) - } - - if in.Labels == nil { - in.Labels = make(map[string]string) - } - - return &gqlschema.Service{ - Name: in.Name, - ClusterIP: in.Spec.ClusterIP, - CreationTimestamp: in.CreationTimestamp.Time, - Labels: in.Labels, - Ports: toGQLSchemaServicePorts(in.Spec.Ports), - Status: toGQLSchemaServiceStatus(in.Status), - JSON: gqlJSON, - UID: string(in.ObjectMeta.UID), - }, nil -} - -func toGQLSchemaServiceStatus(s v1.ServiceStatus) *gqlschema.ServiceStatus { - if s.LoadBalancer.Ingress == nil { - return &gqlschema.ServiceStatus{ - LoadBalancer: &gqlschema.LoadBalancerStatus{ - Ingress: nil, - }, - } - } - ingressSlice := make([]*gqlschema.LoadBalancerIngress, len(s.LoadBalancer.Ingress)) - for i, ingress := range s.LoadBalancer.Ingress { - ingressSlice[i] = &gqlschema.LoadBalancerIngress{ - IP: ingress.IP, - HostName: ingress.Hostname, - } - } - return &gqlschema.ServiceStatus{ - LoadBalancer: &gqlschema.LoadBalancerStatus{ - Ingress: ingressSlice, - }, - } -} - -func (c *serviceConverter) ToGQLs(in []*v1.Service) ([]*gqlschema.Service, error) { - var result []*gqlschema.Service - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *serviceConverter) GQLJSONToService(in gqlschema.JSON) (v1.Service, error) { - var buf bytes.Buffer - in.MarshalGQL(&buf) - bufBytes := buf.Bytes() - result := v1.Service{} - err := json.Unmarshal(bufBytes, &result) - if err != nil { - return v1.Service{}, errors.Wrapf(err, "while unmarshalling GQL JSON of %s", pretty.Service) - } - - return result, nil -} - -func (c *serviceConverter) serviceToGQLJSON(in *v1.Service) (gqlschema.JSON, error) { - if in == nil { - return nil, nil - } - - jsonByte, err := json.Marshal(in) - if err != nil { - return nil, errors.Wrapf(err, "while marshalling %s `%s`", pretty.Service, in.Name) - } - - var jsonMap map[string]interface{} - err = json.Unmarshal(jsonByte, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to map", pretty.Service, in.Name) - } - - var result gqlschema.JSON - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s `%s` to GQL JSON", pretty.Service, in.Name) - } - - return result, nil -} - -func toGQLSchemaServicePort(in *v1.ServicePort) *gqlschema.ServicePort { - if in == nil { - return nil - } - return &gqlschema.ServicePort{ - Name: in.Name, - ServiceProtocol: toGQLSchemaServiceProtocol(&in.Protocol), - Port: int(in.Port), - NodePort: int(in.NodePort), - TargetPort: int(in.TargetPort.IntVal), - } -} - -func toGQLSchemaServicePorts(in []v1.ServicePort) []*gqlschema.ServicePort { - var result []*gqlschema.ServicePort - for _, item := range in { - converted := toGQLSchemaServicePort(&item) - if converted != nil { - result = append(result, converted) - } - } - return result -} - -func toGQLSchemaServiceProtocol(protocol *v1.Protocol) gqlschema.ServiceProtocol { - switch *protocol { - case v1.ProtocolTCP: - return gqlschema.ServiceProtocolTCP - case v1.ProtocolUDP: - return gqlschema.ServiceProtocolUDP - default: - return gqlschema.ServiceProtocolUnknown - } -} diff --git a/components/console-backend-service/internal/domain/k8s/service_converter_test.go b/components/console-backend-service/internal/domain/k8s/service_converter_test.go deleted file mode 100644 index 04a97fdb0e01..000000000000 --- a/components/console-backend-service/internal/domain/k8s/service_converter_test.go +++ /dev/null @@ -1,235 +0,0 @@ -package k8s - -import ( - "testing" - - "github.com/stretchr/testify/require" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -func TestServiceConverter_ToGQL(t *testing.T) { - assert := assert.New(t) - - t.Run("Nil", func(t *testing.T) { - converter := &serviceConverter{} - result, err := converter.ToGQL(nil) - require.NoError(t, err) - assert.Nil(result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &serviceConverter{} - emptyServiceJSON, err := converter.serviceToGQLJSON(&v1.Service{}) - expected := &gqlschema.Service{ - JSON: emptyServiceJSON, - Status: &gqlschema.ServiceStatus{ - LoadBalancer: &gqlschema.LoadBalancerStatus{}, - }, - Labels: make(map[string]string), - } - result, err := converter.ToGQL(&v1.Service{}) - require.NoError(t, err) - assert.Equal(expected, result) - }) - - t.Run("Success", func(t *testing.T) { - converter := &serviceConverter{} - name := "test_name" - namespace := "test_namespace" - in := fixService(name, namespace) - expectedJSON, err := converter.serviceToGQLJSON(in) - expected := gqlschema.Service{ - Name: name, - Labels: map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - }, - Ports: []*gqlschema.ServicePort{ - { - Name: "test", - ServiceProtocol: gqlschema.ServiceProtocolTCP, - Port: 1, - NodePort: 3, - TargetPort: 2, - }, - }, - Status: &gqlschema.ServiceStatus{ - LoadBalancer: &gqlschema.LoadBalancerStatus{ - Ingress: []*gqlschema.LoadBalancerIngress{ - { - IP: "123.123.123.123", - HostName: "test", - }, - }, - }, - }, - JSON: expectedJSON, - } - result, err := converter.ToGQL(in) - require.NoError(t, err) - assert.Equal(&expected, result) - }) -} - -func TestServiceConverter_ToGQLs(t *testing.T) { - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - converter := serviceConverter{} - expectedName := "exampleName" - in := []*v1.Service{ - fixServiceWithName(expectedName, ""), - fixServiceWithName("exampleName2", ""), - } - result, err := converter.ToGQLs(in) - require.NoError(t, err) - assert.Len(result, 2) - assert.Equal(expectedName, result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - converter := serviceConverter{} - var in []*v1.Service - result, err := converter.ToGQLs(in) - require.NoError(t, err) - assert.Empty(result) - }) - - t.Run("With nil", func(t *testing.T) { - converter := serviceConverter{} - expectedName := "exampleName" - in := []*v1.Service{ - nil, - fixServiceWithName(expectedName, ""), - nil, - } - result, err := converter.ToGQLs(in) - require.NoError(t, err) - assert.Len(result, 1) - assert.Equal(expectedName, result[0].Name) - }) -} - -func TestServiceConverter_toGQLSchemaServicePort(t *testing.T) { - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - actual := toGQLSchemaServicePort(&v1.ServicePort{ - Name: "testName", - Protocol: v1.ProtocolUDP, - Port: 1, - TargetPort: intstr.FromInt(2), - NodePort: 3, - }) - assert.Equal(&gqlschema.ServicePort{ - Name: "testName", - ServiceProtocol: gqlschema.ServiceProtocolUDP, - NodePort: 3, - TargetPort: 2, - Port: 1, - }, actual) - }) - - t.Run("Empty", func(t *testing.T) { - toGQLSchemaServicePort(&v1.ServicePort{}) - }) - - t.Run("Nil", func(t *testing.T) { - result := toGQLSchemaServicePort(nil) - assert.Nil(result) - }) -} - -func TestServiceConverter_toGQLSchemaServiceProtocol(t *testing.T) { - assert := assert.New(t) - tests := []struct { - protocol v1.Protocol - expected gqlschema.ServiceProtocol - }{ - { - protocol: v1.ProtocolTCP, - expected: gqlschema.ServiceProtocolTCP, - }, - { - protocol: v1.ProtocolUDP, - expected: gqlschema.ServiceProtocolUDP, - }, - { - protocol: v1.Protocol("FTP"), - expected: gqlschema.ServiceProtocolUnknown, - }, - } - for _, test := range tests { - t.Run(string(test.protocol), func(t *testing.T) { - actual := toGQLSchemaServiceProtocol(&test.protocol) - assert.Equal(test.expected, actual) - }) - } -} - -func TestServiceConverter_GQLJSONToService(t *testing.T) { - assert := assert.New(t) - emptyService := v1.Service{} - converter := &serviceConverter{} - - t.Run("Nil", func(t *testing.T) { - result, err := converter.GQLJSONToService(nil) - assert.Nil(err) - assert.Equal(emptyService, result) - }) - - t.Run("Success", func(t *testing.T) { - originalService := fixService("originalService", "namespace") - gqlJSON, err := converter.serviceToGQLJSON(originalService) - assert.Nil(err) - assert.NotEmpty(gqlJSON) - convertedService, err := converter.GQLJSONToService(gqlJSON) - assert.Equal(originalService, &convertedService) - }) -} - -func fixServiceWithName(name, namespace string) *v1.Service { - return &v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - } -} - -func fixService(name, namespace string) *v1.Service { - result := fixServiceWithName(name, namespace) - result.Spec = v1.ServiceSpec{ - Ports: []v1.ServicePort{ - { - Name: "test", - Protocol: v1.ProtocolTCP, - Port: 1, - TargetPort: intstr.FromInt(2), - NodePort: 3, - }, - }, - } - result.ObjectMeta.CreationTimestamp = metav1.Time{} - result.Labels = map[string]string{ - "exampleKey": "exampleValue", - "exampleKey2": "exampleValue2", - } - result.Status = v1.ServiceStatus{ - LoadBalancer: v1.LoadBalancerStatus{ - Ingress: []v1.LoadBalancerIngress{ - { - IP: "123.123.123.123", - Hostname: "test", - }, - }, - }, - } - return result -} diff --git a/components/console-backend-service/internal/domain/k8s/service_resolver.go b/components/console-backend-service/internal/domain/k8s/service_resolver.go deleted file mode 100644 index c77b7be3c647..000000000000 --- a/components/console-backend-service/internal/domain/k8s/service_resolver.go +++ /dev/null @@ -1,123 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - v1 "k8s.io/api/core/v1" - - "github.com/golang/glog" - "github.com/pkg/errors" -) - -type serviceResolver struct { - gqlServiceConverter - serviceSvc -} - -//go:generate mockery -name=serviceSvc -output=automock -outpkg=automock -case=underscore -type serviceSvc interface { - Find(name, namespace string) (*v1.Service, error) - List(namespace string, excludedLabels []string, pagingParams pager.PagingParams) ([]*v1.Service, error) - Update(name, namespace string, update v1.Service) (*v1.Service, error) - Delete(name, namespace string) error - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -//go:generate mockery -name=gqlServiceConverter -output=automock -outpkg=automock -case=underscore -type gqlServiceConverter interface { - ToGQL(in *v1.Service) (*gqlschema.Service, error) - ToGQLs(in []*v1.Service) ([]*gqlschema.Service, error) - GQLJSONToService(in gqlschema.JSON) (v1.Service, error) -} - -func newServiceResolver(serviceSvc serviceSvc) *serviceResolver { - return &serviceResolver{ - serviceSvc: serviceSvc, - gqlServiceConverter: &serviceConverter{}, - } -} - -func (r *serviceResolver) ServicesQuery(ctx context.Context, namespace string, excludedLabels []string, first *int, offset *int) ([]*gqlschema.Service, error) { - services, err := r.serviceSvc.List(namespace, excludedLabels, pager.PagingParams{ - First: first, - Offset: offset, - }) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s from namespace %s", pretty.Services, namespace)) - return nil, gqlerror.New(err, pretty.Services, gqlerror.WithNamespace(namespace)) - } - return r.gqlServiceConverter.ToGQLs(services) -} - -func (r *serviceResolver) ServiceQuery(ctx context.Context, name string, namespace string) (*gqlschema.Service, error) { - service, err := r.serviceSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s from namespace %s", pretty.Service, name, namespace)) - return nil, gqlerror.New(err, pretty.Service, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - return r.gqlServiceConverter.ToGQL(service) -} - -func (r *serviceResolver) ServiceEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceEvent, error) { - channel := make(chan *gqlschema.ServiceEvent, 1) - filter := func(service *v1.Service) bool { - return service != nil && service.Namespace == namespace - } - - serviceListener := listener.NewService(channel, filter, r.gqlServiceConverter) - - r.serviceSvc.Subscribe(serviceListener) - go func() { - defer close(channel) - defer r.serviceSvc.Unsubscribe(serviceListener) - <-ctx.Done() - }() - - return channel, nil -} - -func (r *serviceResolver) UpdateServiceMutation(ctx context.Context, name string, namespace string, update gqlschema.JSON) (*gqlschema.Service, error) { - service, err := r.gqlServiceConverter.GQLJSONToService(update) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace `%s`", pretty.Service, name, namespace)) - return nil, gqlerror.New(err, pretty.Service, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updated, err := r.serviceSvc.Update(name, namespace, service) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s `%s` from namespace %s", pretty.Service, name, namespace)) - return nil, gqlerror.New(err, pretty.Service, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return r.gqlServiceConverter.ToGQL(updated) -} - -func (r *serviceResolver) DeleteServiceMutation(context context.Context, name string, namespace string) (*gqlschema.Service, error) { - service, err := r.serviceSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while finding %s `%s` in namespace `%s`", pretty.Service, name, namespace)) - return nil, gqlerror.New(err, pretty.Service, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - serviceCopy := service.DeepCopy() - deletedService, err := r.gqlServiceConverter.ToGQL(serviceCopy) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.Service)) - return nil, gqlerror.New(err, pretty.Service, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - err = r.serviceSvc.Delete(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s` from namespace `%s`", pretty.Service, name, namespace)) - return nil, gqlerror.New(err, pretty.Service, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return deletedService, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/service_resolver_test.go b/components/console-backend-service/internal/domain/k8s/service_resolver_test.go deleted file mode 100644 index 35861daeea3b..000000000000 --- a/components/console-backend-service/internal/domain/k8s/service_resolver_test.go +++ /dev/null @@ -1,356 +0,0 @@ -package k8s_test - -import ( - "errors" - "testing" - "time" - - "github.com/stretchr/testify/mock" - v1 "k8s.io/api/core/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - - "context" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestServiceResolver_ServiceQuery(t *testing.T) { - name := "name" - namespace := "namespace" - - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.Service{ - Name: "Test", - } - resource := &v1.Service{} - resourceGetter := automock.NewServiceSvc() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlServiceConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(resourceGetter) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ServiceQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - resourceGetter := automock.NewServiceSvc() - resourceGetter.On("Find", name, namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(resourceGetter) - - result, err := resolver.ServiceQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Nil(result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - expected := errors.New("test") - resource := &v1.Service{} - resourceGetter := automock.NewServiceSvc() - resourceGetter.On("Find", name, namespace).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(resourceGetter) - - result, err := resolver.ServiceQuery(nil, name, namespace) - - assert.Error(err) - assert.True(gqlerror.IsInternal(err)) - assert.Nil(result) - }) - -} - -func TestServiceResolver_ServicesQuery(t *testing.T) { - name := "name" - namespace := "namespace" - - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - resource := fixService(name, namespace, nil) - resources := []*v1.Service{ - resource, resource, - } - expected := []*gqlschema.Service{ - { - Name: name, - }, - { - Name: name, - }, - } - - resourceGetter := automock.NewServiceSvc() - resourceGetter.On("List", namespace, []string(nil), pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGqlServiceConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(resourceGetter) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ServicesQuery(nil, namespace, nil, nil, nil) - - require.NoError(t, err) - assert.Equal(expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var resources []*v1.Service - var expected []*gqlschema.Service - - resourceGetter := automock.NewServiceSvc() - resourceGetter.On("List", namespace, []string(nil), pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(resourceGetter) - - result, err := resolver.ServicesQuery(nil, namespace, nil, nil, nil) - - require.NoError(t, err) - assert.Equal(expected, result) - }) - - t.Run("ErrorGetting", func(t *testing.T) { - expected := errors.New("test") - var resources []*v1.Service - resourceGetter := automock.NewServiceSvc() - resourceGetter.On("List", namespace, []string(nil), pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(resourceGetter) - - result, err := resolver.ServicesQuery(nil, namespace, nil, nil, nil) - - require.Error(t, err) - assert.True(gqlerror.IsInternal(err)) - assert.Nil(result) - }) -} - -func TestServiceResolver_ServiceEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewServiceSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewServiceResolver(svc) - - _, err := resolver.ServiceEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewServiceSvc() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := k8s.NewServiceResolver(svc) - - channel, err := resolver.ServiceEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} - -func TestServiceResolver_UpdateServiceMutation(t *testing.T) { - assert := assert.New(t) - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedServiceFix := fixService(name, namespace, map[string]string{ - "test": "test", - }) - updatedGQLServiceFix := &gqlschema.Service{ - Name: name, - Labels: map[string]string{ - "test": "test", - }, - } - gqlJSONFix := gqlschema.JSON{} - - serviceSvc := automock.NewServiceSvc() - serviceSvc.On("Update", name, namespace, *updatedServiceFix).Return(updatedServiceFix, nil).Once() - defer serviceSvc.AssertExpectations(t) - - converter := automock.NewGqlServiceConverter() - converter.On("GQLJSONToService", gqlJSONFix).Return(*updatedServiceFix, nil).Once() - converter.On("ToGQL", updatedServiceFix).Return(updatedGQLServiceFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(serviceSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.UpdateServiceMutation(nil, name, namespace, gqlJSONFix) - - require.NoError(t, err) - assert.Equal(updatedGQLServiceFix, result) - }) - - t.Run("ErrorConvertingToService", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - serviceSvc := automock.NewServiceSvc() - - converter := automock.NewGqlServiceConverter() - converter.On("GQLJSONToService", gqlJSONFix).Return(v1.Service{}, expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(serviceSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.UpdateServiceMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.True(gqlerror.IsInternal(err)) - assert.Nil(result) - }) - - t.Run("ErrorUpdating", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - updatedServiceFix := fixService(name, namespace, map[string]string{ - "test": "test", - }) - gqlJSONFix := gqlschema.JSON{} - expected := errors.New("fix") - - serviceSvc := automock.NewServiceSvc() - serviceSvc.On("Update", name, namespace, *updatedServiceFix).Return(nil, expected).Once() - defer serviceSvc.AssertExpectations(t) - - converter := automock.NewGqlServiceConverter() - converter.On("GQLJSONToService", gqlJSONFix).Return(*updatedServiceFix, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(serviceSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.UpdateServiceMutation(nil, name, namespace, gqlJSONFix) - - require.Error(t, err) - assert.Nil(result) - }) -} - -func TestServiceResolver_DeleteServiceMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixService(name, namespace, nil) - expected := &gqlschema.Service{ - Name: name, - } - - serviceSvc := automock.NewServiceSvc() - serviceSvc.On("Find", name, namespace).Return(resource, nil).Once() - serviceSvc.On("Delete", name, namespace).Return(nil).Once() - defer serviceSvc.AssertExpectations(t) - - converter := automock.NewGqlServiceConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(serviceSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.DeleteServiceMutation(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - expected := errors.New("fix") - - serviceSvc := automock.NewServiceSvc() - serviceSvc.On("Find", name, namespace).Return(nil, expected).Once() - defer serviceSvc.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(serviceSvc) - - result, err := resolver.DeleteServiceMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorDeleting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixService(name, namespace, nil) - expected := errors.New("fix") - - serviceSvc := automock.NewServiceSvc() - serviceSvc.On("Find", name, namespace).Return(resource, nil).Once() - serviceSvc.On("Delete", name, namespace).Return(expected).Once() - defer serviceSvc.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(serviceSvc) - - result, err := resolver.DeleteServiceMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) - - t.Run("ErrorConverting", func(t *testing.T) { - name := "exampleName" - namespace := "exampleNamespace" - resource := fixService(name, namespace, nil) - error := errors.New("fix") - - serviceSvc := automock.NewServiceSvc() - serviceSvc.On("Find", name, namespace).Return(resource, nil).Once() - defer serviceSvc.AssertExpectations(t) - - converter := automock.NewGqlServiceConverter() - converter.On("ToGQL", resource).Return(nil, error).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewServiceResolver(serviceSvc) - resolver.SetInstanceConverter(converter) - - result, err := resolver.DeleteServiceMutation(nil, name, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/service_service.go b/components/console-backend-service/internal/domain/k8s/service_service.go deleted file mode 100644 index b704f6ea9fdc..000000000000 --- a/components/console-backend-service/internal/domain/k8s/service_service.go +++ /dev/null @@ -1,142 +0,0 @@ -package k8s - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/filter" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/cache" -) - -type serviceService struct { - client corev1.CoreV1Interface - informer cache.SharedIndexInformer - notifier resource.Notifier -} - -func newServiceService(informer cache.SharedIndexInformer, client corev1.CoreV1Interface) *serviceService { - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - return &serviceService{ - client: client, - informer: informer, - notifier: notifier, - } -} - -func (svc *serviceService) List(namespace string, excludedLabels []string, pagingParams pager.PagingParams) ([]*v1.Service, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - if excludedLabels != nil { - items, err = filter.ExcludedByLabels(items, excludedLabels) - if err != nil { - return nil, err - } - } - - var services []*v1.Service - for _, item := range items { - service, ok := item.(*v1.Service) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *Service", item) - } - - service.TypeMeta = metav1.TypeMeta{ - Kind: "Service", - APIVersion: "v1", - } - services = append(services, service) - } - - return services, nil -} - -func (svc *serviceService) Find(name, namespace string) (*v1.Service, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - service, ok := item.(*v1.Service) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *v1.Service", item) - } - svc.ensureTypeMeta(service) - return service, nil -} - -func (svc *serviceService) ensureTypeMeta(service *v1.Service) { - service.TypeMeta = svc.serviceTypeMetadata() -} - -func (svc *serviceService) serviceTypeMetadata() metav1.TypeMeta { - return metav1.TypeMeta{ - Kind: "Service", - APIVersion: "v1", - } -} - -func (svc *serviceService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *serviceService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} - -func (svc *serviceService) Update(name, namespace string, update v1.Service) (*v1.Service, error) { - err := svc.checkUpdatePreconditions(name, namespace, update) - if err != nil { - return nil, err - } - - updated, err := svc.client.Services(namespace).Update(context.Background(), &update, metav1.UpdateOptions{}) - if err != nil { - return nil, err - } - - svc.ensureTypeMeta(updated) - - return updated, nil -} - -func (svc *serviceService) Delete(name, namespace string) error { - return svc.client.Services(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}) -} - -func (svc *serviceService) checkUpdatePreconditions(name string, namespace string, update v1.Service) error { - var errs apierror.ErrorFieldAggregate - if name != update.Name { - errs = append(errs, apierror.NewInvalidField("metadata.name", update.Name, fmt.Sprintf("name of updated object does not match the original (%s)", name))) - } - if namespace != update.Namespace { - errs = append(errs, apierror.NewInvalidField("metadata.namespace", update.Namespace, fmt.Sprintf("namespace of updated object does not match the original (%s)", namespace))) - } - typeMeta := svc.serviceTypeMetadata() - if update.Kind != typeMeta.Kind { - errs = append(errs, apierror.NewInvalidField("kind", update.Kind, "service's kind should not be changed")) - } - if update.APIVersion != typeMeta.APIVersion { - errs = append(errs, apierror.NewInvalidField("apiVersion", update.APIVersion, "service's apiVersion should not be changed")) - } - - if len(errs) > 0 { - return apierror.NewInvalid(pretty.Service, errs) - } - - return nil -} diff --git a/components/console-backend-service/internal/domain/k8s/service_service_test.go b/components/console-backend-service/internal/domain/k8s/service_service_test.go deleted file mode 100644 index 15ac0fb496d3..000000000000 --- a/components/console-backend-service/internal/domain/k8s/service_service_test.go +++ /dev/null @@ -1,311 +0,0 @@ -package k8s_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/listener" - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes/fake" - corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/cache" -) - -func TestServiceService_Find(t *testing.T) { - namespace := "namespace" - instanceName := "testExample" - - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - service := fixService(instanceName, namespace, nil) - serviceInformer, client := fixServiceInformer(service) - - svc := k8s.NewServiceService(serviceInformer, client) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(service, instance) - }) - - t.Run("NotFound", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - - svc := k8s.NewServiceService(serviceInformer, client) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInformer) - - instance, err := svc.Find("doesntExist", "notExistingNamespace") - require.NoError(t, err) - assert.Nil(instance) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - expectedService := fixService(instanceName, namespace, nil) - returnedService := fixServiceWithoutTypeMeta(instanceName, namespace, nil) - serviceInformer, client := fixServiceInformer(returnedService) - - svc := k8s.NewServiceService(serviceInformer, client) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(expectedService, instance) - }) -} - -func TestServiceService_List(t *testing.T) { - namespace := "namespace" - - assert := assert.New(t) - - t.Run("Success", func(t *testing.T) { - service1 := fixService("service1", namespace, nil) - service2 := fixService("service2", namespace, nil) - service3 := fixService("service3", "differentNamespace", nil) - - serviceInformer, client := fixServiceInformer(service1, service2, service3) - svc := k8s.NewServiceService(serviceInformer, client) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInformer) - - services, err := svc.List(namespace, nil, pager.PagingParams{}) - require.NoError(t, err) - assert.ElementsMatch([]*v1.Service{ - service2, service1, - }, services) - }) - - t.Run("NotFound", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - - svc := k8s.NewServiceService(serviceInformer, client) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInformer) - - services, err := svc.List("notExistingNamespace", nil, pager.PagingParams{}) - require.NoError(t, err) - assert.Empty(services) - }) - - t.Run("NoTypeMetaReturned", func(t *testing.T) { - returnedService1 := fixServiceWithoutTypeMeta("service1", namespace, nil) - returnedService2 := fixServiceWithoutTypeMeta("service2", namespace, nil) - returnedService3 := fixServiceWithoutTypeMeta("service3", "differentNamespace", nil) - expectedService1 := fixService("service1", namespace, nil) - expectedService2 := fixService("service2", namespace, nil) - - serviceInformer, client := fixServiceInformer(returnedService1, returnedService2, returnedService3) - - svc := k8s.NewServiceService(serviceInformer, client) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInformer) - - services, err := svc.List(namespace, nil, pager.PagingParams{}) - require.NoError(t, err) - assert.EqualValues([]*v1.Service{ - expectedService1, expectedService2, - }, services) - }) -} - -func TestServiceService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - serviceListener := listener.NewService(nil, nil, nil) - svc.Subscribe(serviceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - serviceListener := listener.NewService(nil, nil, nil) - - svc.Subscribe(serviceListener) - svc.Subscribe(serviceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - serviceListenerA := listener.NewService(nil, nil, nil) - serviceListenerB := listener.NewService(nil, nil, nil) - - svc.Subscribe(serviceListenerA) - svc.Subscribe(serviceListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - - svc.Subscribe(nil) - }) -} - -func TestServiceService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - serviceListener := listener.NewService(nil, nil, nil) - svc.Subscribe(serviceListener) - - svc.Unsubscribe(serviceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - serviceListener := listener.NewService(nil, nil, nil) - svc.Subscribe(serviceListener) - svc.Subscribe(serviceListener) - - svc.Unsubscribe(serviceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - serviceListenerA := listener.NewService(nil, nil, nil) - serviceListenerB := listener.NewService(nil, nil, nil) - svc.Subscribe(serviceListenerA) - svc.Subscribe(serviceListenerB) - - svc.Unsubscribe(serviceListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - - svc.Unsubscribe(nil) - }) -} - -func TestServiceService_Update(t *testing.T) { - assert := assert.New(t) - t.Run("Success", func(t *testing.T) { - exampleName := "exampleService" - exampleNamespace := "exampleNamespace" - exampleService := fixService(exampleName, exampleNamespace, nil) - serviceInformer, client := fixServiceInformer(exampleService) - svc := k8s.NewServiceService(serviceInformer, client) - - update := exampleService.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - service, err := svc.Update(exampleName, exampleNamespace, *update) - require.NoError(t, err) - assert.Equal(update, service) - - service, err = client.Services(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(update, service) - }) - - t.Run("NotFound", func(t *testing.T) { - exampleName := "exampleService" - exampleNamespace := "exampleNamespace" - exampleService := fixService(exampleName, exampleNamespace, nil) - serviceInformer, client := fixServiceInformer() - svc := k8s.NewServiceService(serviceInformer, client) - - update := exampleService.DeepCopy() - update.Labels = map[string]string{ - "example": "example", - } - - service, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.Nil(service) - - service, err = client.Services(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.Error(t, err) - assert.Nil(service) - }) - - t.Run("NameMismatch", func(t *testing.T) { - exampleName := "exampleService" - exampleNamespace := "exampleNamespace" - exampleService := fixService(exampleName, exampleNamespace, nil) - serviceInformer, client := fixServiceInformer(exampleService) - svc := k8s.NewServiceService(serviceInformer, client) - - update := exampleService.DeepCopy() - update.Name = "NameMismatch" - update.Labels = map[string]string{ - "example": "example", - } - - service, err := svc.Update(exampleName, exampleNamespace, *update) - require.Error(t, err) - assert.True(apierror.IsInvalid(err)) - assert.Nil(service) - - service, err = client.Services(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - require.NoError(t, err) - assert.Equal(exampleService, service) - }) -} - -func TestServiceService_Delete(t *testing.T) { - assert := assert.New(t) - t.Run("Success", func(t *testing.T) { - exampleName := "exampleService" - exampleNamespace := "exampleNamespace" - exampleService := fixService(exampleName, exampleNamespace, nil) - serviceInformer, client := fixServiceInformer(exampleService) - svc := k8s.NewServiceService(serviceInformer, client) - - err := svc.Delete(exampleName, exampleNamespace) - - require.NoError(t, err) - _, err = client.Services(exampleNamespace).Get(context.Background(), exampleName, metav1.GetOptions{}) - assert.True(errors.IsNotFound(err)) - }) -} - -func fixServiceInformer(objects ...runtime.Object) (cache.SharedIndexInformer, corev1.CoreV1Interface) { - client := fake.NewSimpleClientset(objects...) - informerFactory := informers.NewSharedInformerFactory(client, 0) - informer := informerFactory.Core().V1().Services().Informer() - - return informer, client.CoreV1() -} - -func fixService(name, namespace string, labels map[string]string) *v1.Service { - service := fixServiceWithoutTypeMeta(name, namespace, labels) - service.TypeMeta = metav1.TypeMeta{ - Kind: "Service", - APIVersion: "v1", - } - return service -} - -func fixServiceWithoutTypeMeta(name, namespace string, labels map[string]string) *v1.Service { - return &v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: labels, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/state/container.go b/components/console-backend-service/internal/domain/k8s/state/container.go deleted file mode 100644 index d0836af1928f..000000000000 --- a/components/console-backend-service/internal/domain/k8s/state/container.go +++ /dev/null @@ -1,77 +0,0 @@ -package state - -import ( - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/core/v1" -) - -type ContainerExtractor struct{} - -func (ext *ContainerExtractor) States(in []v1.ContainerStatus) []*gqlschema.ContainerState { - containerStates := make([]*gqlschema.ContainerState, 0, len(in)) - - for _, containerStatus := range in { - if containerStatus.State.Waiting != nil { - containerStates = append(containerStates, ext.getWaitingContainerState(containerStatus.State.Waiting)) - } else if containerStatus.State.Terminated != nil { - containerStates = append(containerStates, ext.getTerminatedContainerState(containerStatus.State.Terminated)) - } else if containerStatus.State.Running != nil { - containerStates = append(containerStates, ext.getRunningContainerState()) - } else { - containerStates = append(containerStates, ext.getDefaultContainerState()) - } - } - - return containerStates -} - -func (ext *ContainerExtractor) getWaitingContainerState(in *v1.ContainerStateWaiting) *gqlschema.ContainerState { - if in == nil { - return &gqlschema.ContainerState{ - State: gqlschema.ContainerStateTypeWaiting, - } - } - - return &gqlschema.ContainerState{ - State: gqlschema.ContainerStateTypeWaiting, - Reason: in.Reason, - Message: in.Message, - } -} - -func (ext *ContainerExtractor) getRunningContainerState() *gqlschema.ContainerState { - return &gqlschema.ContainerState{ - State: gqlschema.ContainerStateTypeRunning, - Reason: "", - Message: "", - } -} - -func (ext *ContainerExtractor) getTerminatedContainerState(in *v1.ContainerStateTerminated) *gqlschema.ContainerState { - if in == nil { - return &gqlschema.ContainerState{ - State: gqlschema.ContainerStateTypeTerminated, - } - } - - reason := "" - if in.Reason != "" { - reason = in.Reason - } else if in.Signal != 0 { - reason = fmt.Sprintf("Signal: %d", in.Signal) - } else { - reason = fmt.Sprintf("Exit code: %d", in.ExitCode) - } - - return &gqlschema.ContainerState{ - State: gqlschema.ContainerStateTypeTerminated, - Reason: reason, - Message: in.Message, - } -} - -func (ext *ContainerExtractor) getDefaultContainerState() *gqlschema.ContainerState { - return ext.getWaitingContainerState(nil) -} diff --git a/components/console-backend-service/internal/domain/k8s/state/container_test.go b/components/console-backend-service/internal/domain/k8s/state/container_test.go deleted file mode 100644 index f9627a4e8699..000000000000 --- a/components/console-backend-service/internal/domain/k8s/state/container_test.go +++ /dev/null @@ -1,177 +0,0 @@ -package state - -import ( - "fmt" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestContainerExtractor_States(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := ContainerExtractor{} - strings := []string{ - "WaitingReason", - "WaitingMessage", - "TerminatedReason", - "TerminatedMessage", - } - in := []v1.ContainerStatus{ - fixContainerStatus("Waiting", 0, &v1.ContainerState{ - Waiting: &v1.ContainerStateWaiting{ - Reason: strings[0], - Message: strings[1], - }, - }), - fixContainerStatus("Running", 0, &v1.ContainerState{ - Running: &v1.ContainerStateRunning{ - StartedAt: metav1.Time{}, - }, - }), - fixContainerStatus("Terminated", 0, &v1.ContainerState{ - Terminated: &v1.ContainerStateTerminated{ - ExitCode: 111, - Signal: 222, - Reason: strings[2], - Message: strings[3], - StartedAt: metav1.Time{}, - FinishedAt: metav1.Time{}, - ContainerID: "", - }, - }), - fixContainerStatus("EmptyState", 0, &v1.ContainerState{}), - } - expected := []*gqlschema.ContainerState{ - { - State: gqlschema.ContainerStateTypeWaiting, - Reason: strings[0], - Message: strings[1], - }, - { - State: gqlschema.ContainerStateTypeRunning, - Reason: "", - Message: "", - }, - { - State: gqlschema.ContainerStateTypeTerminated, - Reason: strings[2], - Message: strings[3], - }, - { - State: gqlschema.ContainerStateTypeWaiting, - Reason: "", - Message: "", - }, - } - - result := extractor.States(in) - - assert.Equal(t, expected, result) - }) - - t.Run("EmptyPassed", func(t *testing.T) { - extractor := ContainerExtractor{} - in := []v1.ContainerStatus{} - expected := []*gqlschema.ContainerState{} - - result := extractor.States(in) - - assert.Equal(t, expected, result) - }) - - t.Run("NilPassed", func(t *testing.T) { - extractor := ContainerExtractor{} - var in []v1.ContainerStatus = nil - expected := []*gqlschema.ContainerState{} - - result := extractor.States(in) - - assert.Equal(t, expected, result) - }) -} - -func TestPodConverter_GetTerminatedContainerState(t *testing.T) { - t.Run("Reason", func(t *testing.T) { - extractor := ContainerExtractor{} - reason := "exampleReason" - message := "exampleMessage" - in := v1.ContainerStateTerminated{ - ExitCode: 111, - Signal: 222, - Reason: reason, - Message: message, - } - expected := fixGQLContainerState(gqlschema.ContainerStateTypeTerminated, reason, message) - - result := extractor.getTerminatedContainerState(&in) - - assert.Equal(t, expected, result) - }) - t.Run("Signal", func(t *testing.T) { - extractor := ContainerExtractor{} - signal := int32(123) - message := "exampleMessage" - in := v1.ContainerStateTerminated{ - ExitCode: 111, - Signal: signal, - Message: message, - } - expectedReason := fmt.Sprintf("Signal: %d", signal) - expected := fixGQLContainerState(gqlschema.ContainerStateTypeTerminated, expectedReason, message) - - result := extractor.getTerminatedContainerState(&in) - - assert.Equal(t, expected, result) - }) - - t.Run("ExitCode", func(t *testing.T) { - extractor := ContainerExtractor{} - exitCode := int32(123) - message := "exampleMessage" - in := v1.ContainerStateTerminated{ - ExitCode: exitCode, - Message: message, - } - expectedReason := fmt.Sprintf("Exit code: %d", exitCode) - expected := fixGQLContainerState(gqlschema.ContainerStateTypeTerminated, expectedReason, message) - - result := extractor.getTerminatedContainerState(&in) - - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := ContainerExtractor{} - expected := &gqlschema.ContainerState{ - State: gqlschema.ContainerStateTypeTerminated, - } - - result := extractor.getTerminatedContainerState(nil) - - assert.Equal(t, expected, result) - }) - -} - -func fixContainerStatus(name string, restartCount int, state *v1.ContainerState) v1.ContainerStatus { - if state == nil { - state = &v1.ContainerState{} - } - - return v1.ContainerStatus{ - Name: name, - State: *state, - RestartCount: int32(restartCount), - } -} - -func fixGQLContainerState(state gqlschema.ContainerStateType, reason string, message string) *gqlschema.ContainerState { - return &gqlschema.ContainerState{ - State: state, - Reason: reason, - Message: message, - } -} diff --git a/components/console-backend-service/internal/domain/k8s/types/resource.go b/components/console-backend-service/internal/domain/k8s/types/resource.go deleted file mode 100644 index a3dafe2eb6c3..000000000000 --- a/components/console-backend-service/internal/domain/k8s/types/resource.go +++ /dev/null @@ -1,9 +0,0 @@ -package types - -type Resource struct { - APIVersion string - Name string - Namespace string - Kind string - Body []byte -} diff --git a/components/console-backend-service/internal/domain/k8s/versioninfo_converter.go b/components/console-backend-service/internal/domain/k8s/versioninfo_converter.go deleted file mode 100644 index 84ad74efab7e..000000000000 --- a/components/console-backend-service/internal/domain/k8s/versioninfo_converter.go +++ /dev/null @@ -1,40 +0,0 @@ -package k8s - -import ( - "strings" - - "github.com/blang/semver" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/apps/v1" -) - -type versionInfoConverter struct{} - -func (c *versionInfoConverter) ToGQL(in *v1.Deployment) *gqlschema.VersionInfo { - deploymentImage := in.Spec.Template.Spec.Containers[0].Image - deploymentImageSeparated := strings.FieldsFunc(deploymentImage, split) - - source := deploymentImageSeparated[0] - if source != "eu.gcr.io" { - return &gqlschema.VersionInfo{ - KymaVersion: &deploymentImage, - } - } - - version := deploymentImageSeparated[len(deploymentImageSeparated)-1] - _, err := semver.Parse(version) - if err != nil && strings.HasPrefix(version, "PR-") { - pullRequestVersion := strings.Join([]string{"pull request", version}, " ") - return &gqlschema.VersionInfo{ - KymaVersion: &pullRequestVersion, - } - } - - return &gqlschema.VersionInfo{ - KymaVersion: &version, - } -} - -func split(r rune) bool { - return r == '/' || r == ':' -} diff --git a/components/console-backend-service/internal/domain/k8s/versioninfo_converter_test.go b/components/console-backend-service/internal/domain/k8s/versioninfo_converter_test.go deleted file mode 100644 index 15afe38fef42..000000000000 --- a/components/console-backend-service/internal/domain/k8s/versioninfo_converter_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package k8s - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/stretchr/testify/assert" -) - -func TestVersionInfoConverter_ToGQL(t *testing.T) { - t.Run("Non eu.gcr.io version", func(t *testing.T) { - image := "test-repo/test-image" - expected := &gqlschema.VersionInfo{ - KymaVersion: &image, - } - - converter := &versionInfoConverter{} - deployment := fixDeployment(image) - result := converter.ToGQL(deployment) - - assert.Equal(t, expected, result) - }) - - t.Run("Scemantic version", func(t *testing.T) { - image := "eu.gcr.io/test/1.2.3" - version := "1.2.3" - expected := &gqlschema.VersionInfo{ - KymaVersion: &version, - } - - converter := &versionInfoConverter{} - deployment := fixDeployment(image) - result := converter.ToGQL(deployment) - - assert.Equal(t, expected, result) - }) - - t.Run("PR version", func(t *testing.T) { - image := "eu.gcr.io/test/PR-1234" - version := "pull request PR-1234" - expected := &gqlschema.VersionInfo{ - KymaVersion: &version, - } - - converter := &versionInfoConverter{} - deployment := fixDeployment(image) - result := converter.ToGQL(deployment) - - assert.Equal(t, expected, result) - }) - - t.Run("Master version", func(t *testing.T) { - image := "eu.gcr.io/test/master-12345678" - version := "master-12345678" - expected := &gqlschema.VersionInfo{ - KymaVersion: &version, - } - - converter := &versionInfoConverter{} - deployment := fixDeployment(image) - result := converter.ToGQL(deployment) - - assert.Equal(t, expected, result) - }) -} diff --git a/components/console-backend-service/internal/domain/k8s/versioninfo_resolver.go b/components/console-backend-service/internal/domain/k8s/versioninfo_resolver.go deleted file mode 100644 index 2d5af5491df3..000000000000 --- a/components/console-backend-service/internal/domain/k8s/versioninfo_resolver.go +++ /dev/null @@ -1,39 +0,0 @@ -package k8s - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/apps/v1" -) - -//go:generate mockery -name=gqlVersionInfoConverter -output=automock -outpkg=automock -case=underscore -type gqlVersionInfoConverter interface { - ToGQL(in *v1.Deployment) *gqlschema.VersionInfo -} - -type versionInfoResolver struct { - deploymentLister deploymentLister - versionInfoConverter gqlVersionInfoConverter -} - -func newVersionInfoResolver(deploymentLister deploymentLister) *versionInfoResolver { - return &versionInfoResolver{ - deploymentLister: deploymentLister, - versionInfoConverter: &versionInfoConverter{}, - } -} - -func (r *versionInfoResolver) VersionInfoQuery(ctx context.Context) (*gqlschema.VersionInfo, error) { - name := "kyma-installer" - namespace := "kyma-installer" - - deployment, err := r.deploymentLister.Find(name, namespace) - if err != nil || deployment == nil { - return nil, nil - } - - version := r.versionInfoConverter.ToGQL(deployment) - - return version, nil -} diff --git a/components/console-backend-service/internal/domain/k8s/versioninfo_resolver_test.go b/components/console-backend-service/internal/domain/k8s/versioninfo_resolver_test.go deleted file mode 100644 index 712de4200d7c..000000000000 --- a/components/console-backend-service/internal/domain/k8s/versioninfo_resolver_test.go +++ /dev/null @@ -1,74 +0,0 @@ -package k8s_test - -import ( - "fmt" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/automock" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - apps "k8s.io/api/apps/v1" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestVersionInfoResolver_VersionInfoQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - version := "version" - expected := &gqlschema.VersionInfo{ - KymaVersion: &version, - } - - deployment := fixDeploymentWithImage() - svc := automock.NewDeploymentLister() - svc.On("Find", "kyma-installer", "kyma-installer").Return(deployment, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGqlVersionInfoConverter() - converter.On("ToGQL", deployment).Return(expected).Once() - defer converter.AssertExpectations(t) - - resolver := k8s.NewVersionInfoResolver(svc) - resolver.SetVersionInfoConverter(converter) - - result, err := resolver.VersionInfoQuery(nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - t.Run("NotFound", func(t *testing.T) { - var expected *gqlschema.VersionInfo - svc := automock.NewDeploymentLister() - svc.On("Find", "kyma-installer", "kyma-installer").Return(nil, fmt.Errorf("error")).Once() - defer svc.AssertExpectations(t) - - resolver := k8s.NewVersionInfoResolver(svc) - result, err := resolver.VersionInfoQuery(nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) -} - -func fixDeploymentWithImage() *apps.Deployment { - return &apps.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "kyma-installer", - Namespace: "kyma-installer", - }, - Spec: apps.DeploymentSpec{ - Template: v1.PodTemplateSpec{ - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Image: "image", - }, - }, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8sNew.resolvers.go b/components/console-backend-service/internal/domain/k8sNew.resolvers.go deleted file mode 100644 index bc488af529d4..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew.resolvers.go +++ /dev/null @@ -1,80 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/core/v1" -) - -func (r *limitRangeResolver) JSON(ctx context.Context, obj *v1.LimitRange) (gqlschema.JSON, error) { - return r.k8sNew.LimitRangeJSONfield(ctx, obj) -} - -func (r *limitRangeItemResolver) Max(ctx context.Context, obj *v1.LimitRangeItem) (*gqlschema.ResourceLimits, error) { - return r.k8sNew.GetLimitRangeResources(&obj.Max) -} - -func (r *limitRangeItemResolver) Default(ctx context.Context, obj *v1.LimitRangeItem) (*gqlschema.ResourceLimits, error) { - return r.k8sNew.GetLimitRangeResources(&obj.Default) -} - -func (r *limitRangeItemResolver) DefaultRequest(ctx context.Context, obj *v1.LimitRangeItem) (*gqlschema.ResourceLimits, error) { - return r.k8sNew.GetLimitRangeResources(&obj.DefaultRequest) -} - -func (r *mutationResolver) CreateLimitRange(ctx context.Context, namespace string, name string, limitRange gqlschema.LimitRangeInput) (*v1.LimitRange, error) { - return r.k8sNew.CreateLimitRange(ctx, namespace, name, limitRange) -} - -func (r *mutationResolver) UpdateLimitRange(ctx context.Context, namespace string, name string, json gqlschema.JSON) (*v1.LimitRange, error) { - return r.k8sNew.UpdateLimitRange(ctx, namespace, name, json) -} - -func (r *mutationResolver) CreateResourceQuota(ctx context.Context, namespace string, name string, resourceQuota gqlschema.ResourceQuotaInput) (*v1.ResourceQuota, error) { - return r.k8sNew.CreateResourceQuota(ctx, namespace, name, resourceQuota) -} - -func (r *mutationResolver) UpdateResourceQuota(ctx context.Context, namespace string, name string, json gqlschema.JSON) (*v1.ResourceQuota, error) { - return r.k8sNew.UpdateResourceQuota(ctx, namespace, name, json) -} - -func (r *queryResolver) LimitRanges(ctx context.Context, namespace string) ([]*v1.LimitRange, error) { - return r.k8sNew.LimitRangesQuery(ctx, namespace) -} - -func (r *queryResolver) ResourceQuotas(ctx context.Context, namespace string) ([]*v1.ResourceQuota, error) { - return r.k8sNew.ResourceQuotasQuery(ctx, namespace) -} - -func (r *resourceQuotaResolver) JSON(ctx context.Context, obj *v1.ResourceQuota) (gqlschema.JSON, error) { - return r.k8sNew.ResourceQuotaJSONfield(ctx, obj) -} - -func (r *resourceQuotaSpecResolver) Hard(ctx context.Context, obj *v1.ResourceQuotaSpec) (*gqlschema.ResourceQuotaHard, error) { - return r.k8sNew.GetHardField(obj) -} - -// LimitRange returns gqlschema.LimitRangeResolver implementation. -func (r *Resolver) LimitRange() gqlschema.LimitRangeResolver { return &limitRangeResolver{r} } - -// LimitRangeItem returns gqlschema.LimitRangeItemResolver implementation. -func (r *Resolver) LimitRangeItem() gqlschema.LimitRangeItemResolver { - return &limitRangeItemResolver{r} -} - -// ResourceQuota returns gqlschema.ResourceQuotaResolver implementation. -func (r *Resolver) ResourceQuota() gqlschema.ResourceQuotaResolver { return &resourceQuotaResolver{r} } - -// ResourceQuotaSpec returns gqlschema.ResourceQuotaSpecResolver implementation. -func (r *Resolver) ResourceQuotaSpec() gqlschema.ResourceQuotaSpecResolver { - return &resourceQuotaSpecResolver{r} -} - -type limitRangeResolver struct{ *Resolver } -type limitRangeItemResolver struct{ *Resolver } -type resourceQuotaResolver struct{ *Resolver } -type resourceQuotaSpecResolver struct{ *Resolver } diff --git a/components/console-backend-service/internal/domain/k8sNew/k8s.go b/components/console-backend-service/internal/domain/k8sNew/k8s.go deleted file mode 100644 index b75824091592..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew/k8s.go +++ /dev/null @@ -1,27 +0,0 @@ -package k8sNew - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -type Resolver struct { - *resource.Module -} - -func New(factory *resource.GenericServiceFactory) *Resolver { - module := resource.NewModule("k8sNew", factory, resource.ServiceCreators{ - limitRangesGroupVersionResource: NewLimitRangesService, - resourceQuotasGroupVersionResource: NewResourceQuotasService, - }) - - return &Resolver{ - Module: module, - } -} - -func (r *Resolver) LimitRangesService() *resource.GenericService { - return r.Module.Service(limitRangesGroupVersionResource) -} -func (r *Resolver) ResourceQuotasService() *resource.GenericService { - return r.Module.Service(resourceQuotasGroupVersionResource) -} diff --git a/components/console-backend-service/internal/domain/k8sNew/limitRange.resolver.go b/components/console-backend-service/internal/domain/k8sNew/limitRange.resolver.go deleted file mode 100644 index d599cb1a5d0c..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew/limitRange.resolver.go +++ /dev/null @@ -1,119 +0,0 @@ -package k8sNew - -import ( - "context" - "errors" - "fmt" - - amResource "k8s.io/apimachinery/pkg/api/resource" - apimachinery "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - v1 "k8s.io/api/core/v1" -) - -type LimitRangeList []*v1.LimitRange - -func (l *LimitRangeList) Append() interface{} { - e := &v1.LimitRange{} - *l = append(*l, e) - return e -} - -func (r *Resolver) LimitRangesQuery(ctx context.Context, namespace string) ([]*v1.LimitRange, error) { - items := LimitRangeList{} - err := r.LimitRangesService().ListInNamespace(namespace, &items) - - return items, err -} - -func (r *Resolver) LimitRangeJSONfield(ctx context.Context, obj *v1.LimitRange) (gqlschema.JSON, error) { - return resource.ToJson(obj) -} - -func (r *Resolver) UpdateLimitRange(ctx context.Context, namespace string, name string, newJSON gqlschema.JSON) (*v1.LimitRange, error) { - unstructured, unstructuredParseError := resource.ToUnstructured(&newJSON) - if unstructuredParseError != nil { - return nil, errors.New(fmt.Sprintf("could not parse input JSON to unstructured %s", unstructuredParseError)) - } - - newLimitRange := &v1.LimitRange{} - jsonParseError := resource.FromUnstructured(unstructured, newLimitRange) - if jsonParseError != nil { - return nil, errors.New(fmt.Sprintf("could not convert LimitRange from unstructured %s", jsonParseError)) - } - - result := &v1.LimitRange{} - err := r.LimitRangesService().Apply(newLimitRange, result) - return result, err -} - -func (r *Resolver) CreateLimitRange(ctx context.Context, namespace string, name string, input gqlschema.LimitRangeInput) (*v1.LimitRange, error) { - var errs apierror.ErrorFieldAggregate - defaultParsed, err := amResource.ParseQuantity(*input.Default.Memory) - if err != nil { - errs = append(errs, apierror.NewInvalidField("limits.memory", *input.Default.Memory, fmt.Sprintf("while parsing %s memory limits", pretty.LimitRange))) - } - - defaultRequestParsed, err := amResource.ParseQuantity(*input.DefaultRequest.Memory) - if err != nil { - errs = append(errs, apierror.NewInvalidField("requests.memory", *input.DefaultRequest.Memory, fmt.Sprintf("while parsing %s memory requests", pretty.LimitRange))) - } - - maxParsed, err := amResource.ParseQuantity(*input.Max.Memory) - if err != nil { - errs = append(errs, apierror.NewInvalidField("requests.memory", *input.Max.Memory, fmt.Sprintf("while parsing %s memory requests", pretty.LimitRange))) - } - - if len(errs) > 0 { - return nil, apierror.NewInvalid(pretty.LimitRange, errs) - } - - newLimitRange := &v1.LimitRange{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1.LimitRangeSpec{ - Limits: []v1.LimitRangeItem{ - { - Type: v1.LimitType(input.Type), - Default: v1.ResourceList{ - v1.ResourceMemory: defaultParsed, - }, - DefaultRequest: v1.ResourceList{ - v1.ResourceMemory: defaultRequestParsed, - }, - Max: v1.ResourceList{ - v1.ResourceMemory: maxParsed, - }, - }, - }, - }, - } - - result := &v1.LimitRange{} - creationError := r.LimitRangesService().Create(newLimitRange, result) - - return result, creationError - -} - -type resourceLimitsItem interface { - Memory() *apimachinery.Quantity - Cpu() *apimachinery.Quantity -} - -func (r *Resolver) GetLimitRangeResources(item resourceLimitsItem) (*gqlschema.ResourceLimits, error) { - mem := item.Memory().String() - cpu := item.Cpu().String() - - return &gqlschema.ResourceLimits{ - Memory: &mem, - CPU: &cpu, - }, nil -} diff --git a/components/console-backend-service/internal/domain/k8sNew/resourceQuota.resolver.go b/components/console-backend-service/internal/domain/k8sNew/resourceQuota.resolver.go deleted file mode 100644 index e6d5d73cb8ed..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew/resourceQuota.resolver.go +++ /dev/null @@ -1,105 +0,0 @@ -package k8sNew - -import ( - "context" - "errors" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - v1 "k8s.io/api/core/v1" - amResource "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type ResourceQuotaList []*v1.ResourceQuota - -func (l *ResourceQuotaList) Append() interface{} { - e := &v1.ResourceQuota{} - *l = append(*l, e) - return e -} - -func (r *Resolver) ResourceQuotasQuery(ctx context.Context, namespace string) ([]*v1.ResourceQuota, error) { - items := ResourceQuotaList{} - err := r.ResourceQuotasService().ListInNamespace(namespace, &items) - - return items, err -} - -func (r *Resolver) GetHardField(item *v1.ResourceQuotaSpec) (*gqlschema.ResourceQuotaHard, error) { - limitsMemory := item.Hard["limits.memory"] - limitsMemoryString := limitsMemory.String() - - requestsMemory := item.Hard["requests.memory"] - requestsMemoryString := requestsMemory.String() - - return &gqlschema.ResourceQuotaHard{ - Limits: &gqlschema.ResourceLimits{ - Memory: &limitsMemoryString, - }, - Requests: &gqlschema.ResourceLimits{ - Memory: &requestsMemoryString, - }, - Pods: item.Hard.Pods().String(), - }, nil -} - -func (r *Resolver) ResourceQuotaJSONfield(ctx context.Context, obj *v1.ResourceQuota) (gqlschema.JSON, error) { - return resource.ToJson(obj) -} - -func (r *Resolver) CreateResourceQuota(ctx context.Context, namespace string, name string, input gqlschema.ResourceQuotaInput) (*v1.ResourceQuota, error) { - var errs apierror.ErrorFieldAggregate - memoryLimitsParsed, err := amResource.ParseQuantity(*input.Limits.Memory) - if err != nil { - errs = append(errs, apierror.NewInvalidField("limits.memory", *input.Limits.Memory, fmt.Sprintf("while parsing %s memory limits", pretty.ResourceQuota))) - } - - memoryRequestsParsed, err := amResource.ParseQuantity(*input.Requests.Memory) - if err != nil { - errs = append(errs, apierror.NewInvalidField("requests.memory", *input.Requests.Memory, fmt.Sprintf("while parsing %s memory requests", pretty.ResourceQuota))) - } - - if len(errs) > 0 { - return nil, apierror.NewInvalid(pretty.ResourceQuota, errs) - } - - newResourceQuota := &v1.ResourceQuota{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1.ResourceQuotaSpec{ - Hard: v1.ResourceList{ - v1.ResourceLimitsMemory: memoryLimitsParsed, - v1.ResourceRequestsMemory: memoryRequestsParsed, - }, - }, - } - - result := &v1.ResourceQuota{} - creationError := r.ResourceQuotasService().Create(newResourceQuota, result) - - return result, creationError - -} - -func (r *Resolver) UpdateResourceQuota(ctx context.Context, namespace string, name string, newJSON gqlschema.JSON) (*v1.ResourceQuota, error) { - unstructured, unstructuredParseError := resource.ToUnstructured(&newJSON) - if unstructuredParseError != nil { - return nil, errors.New(fmt.Sprintf("could not parse input JSON to unstructured %s", unstructuredParseError)) - } - - newResourceQuota := &v1.ResourceQuota{} - jsonParseError := resource.FromUnstructured(unstructured, newResourceQuota) - if jsonParseError != nil { - return nil, errors.New(fmt.Sprintf("could not convert ResourceQuota from unstructured %s", jsonParseError)) - } - - result := &v1.ResourceQuota{} - err := r.ResourceQuotasService().Apply(newResourceQuota, result) - return result, err -} diff --git a/components/console-backend-service/internal/domain/k8sNew/service.go b/components/console-backend-service/internal/domain/k8sNew/service.go deleted file mode 100644 index 597b519a25e8..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew/service.go +++ /dev/null @@ -1,31 +0,0 @@ -package k8sNew - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -type Service struct { - *resource.Service -} - -var limitRangesGroupVersionResource = schema.GroupVersionResource{ - Version: v1.SchemeGroupVersion.Version, - Group: v1.SchemeGroupVersion.Group, - Resource: "limitranges", -} - -func NewLimitRangesService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - return serviceFactory.ForResource(limitRangesGroupVersionResource), nil -} - -var resourceQuotasGroupVersionResource = schema.GroupVersionResource{ - Version: v1.SchemeGroupVersion.Version, - Group: v1.SchemeGroupVersion.Group, - Resource: "resourcequotas", -} - -func NewResourceQuotasService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - return serviceFactory.ForResource(resourceQuotasGroupVersionResource), nil -} diff --git a/components/console-backend-service/internal/domain/k8sNew/test/limitRange_test.go b/components/console-backend-service/internal/domain/k8sNew/test/limitRange_test.go deleted file mode 100644 index 7575c01d00eb..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew/test/limitRange_test.go +++ /dev/null @@ -1,61 +0,0 @@ -package test - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - k8sMeta "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestLimitRange_Query(t *testing.T) { - const namespace = "default" - - t.Run("Should return limitRanges when there are some", func(t *testing.T) { - limit1 := createMockLimitRange("limit1", namespace) - limit2 := createMockLimitRange("limit2", namespace) - service := setupServiceWithObjects(t, limit1, limit2) - - result, _ := service.LimitRangesQuery(context.Background(), namespace) - - assert.Equal(t, 2, len(result)) - }) - - t.Run("Should return empty array if limitRange is not found", func(t *testing.T) { - service := setupServiceWithObjects(t) - - result, _ := service.LimitRangesQuery(context.Background(), namespace) - - assert.Equal(t, 0, len(result)) - }) -} - -func TestLimitRange_JsonField(t *testing.T) { - const namespace = "default" - - t.Run("JsonField returns no error", func(t *testing.T) { - limit1 := createMockLimitRange("limit1", namespace) - - service := setupServiceWithObjects(t, limit1) - - _, err := service.LimitRangeJSONfield(context.Background(), limit1) - - require.NoError(t, err) - }) - -} - -func createMockLimitRange(name, namespace string) *v1.LimitRange { - return &v1.LimitRange{ - TypeMeta: k8sMeta.TypeMeta{ - Kind: "LimitRange", - APIVersion: v1.SchemeGroupVersion.String(), - }, - ObjectMeta: k8sMeta.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8sNew/test/resourceQuota_test.go b/components/console-backend-service/internal/domain/k8sNew/test/resourceQuota_test.go deleted file mode 100644 index 960fe5a407d4..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew/test/resourceQuota_test.go +++ /dev/null @@ -1,61 +0,0 @@ -package test - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - k8sMeta "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestResourceQuota_Query(t *testing.T) { - const namespace = "default" - - t.Run("Should return resourceQuotas when there are some", func(t *testing.T) { - res1 := createMockResourceQuota("resource1", namespace) - res2 := createMockResourceQuota("resource2", namespace) - service := setupServiceWithObjects(t, res1, res2) - - result, _ := service.ResourceQuotasQuery(context.Background(), namespace) - - assert.Equal(t, 2, len(result)) - }) - - t.Run("Should return empty array if limitRange is not found", func(t *testing.T) { - service := setupServiceWithObjects(t) - - result, _ := service.ResourceQuotasQuery(context.Background(), namespace) - - assert.Equal(t, 0, len(result)) - }) -} - -func TestResourceQuota_JsonField(t *testing.T) { - const namespace = "default" - - t.Run("JsonField returns no error", func(t *testing.T) { - res1 := createMockResourceQuota("res1", namespace) - - service := setupServiceWithObjects(t, res1) - - _, err := service.ResourceQuotaJSONfield(context.Background(), res1) - - require.NoError(t, err) - }) - -} - -func createMockResourceQuota(name, namespace string) *v1.ResourceQuota { - return &v1.ResourceQuota{ - TypeMeta: k8sMeta.TypeMeta{ - Kind: "ResourceQuota", - APIVersion: v1.SchemeGroupVersion.String(), - }, - ObjectMeta: k8sMeta.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - } -} diff --git a/components/console-backend-service/internal/domain/k8sNew/test/setup.go b/components/console-backend-service/internal/domain/k8sNew/test/setup.go deleted file mode 100644 index 7454e6141b1e..000000000000 --- a/components/console-backend-service/internal/domain/k8sNew/test/setup.go +++ /dev/null @@ -1,37 +0,0 @@ -package test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8sNew" - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func setupServiceWithObjects(t *testing.T, objects ...runtime.Object) *k8sNew.Resolver { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1.AddToScheme, objects...) - require.NoError(t, err) - - service := k8sNew.New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - return service -} - -func setupEmptyService(t *testing.T) *k8sNew.Resolver { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1.AddToScheme) - require.NoError(t, err) - - service := k8sNew.New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - return service -} diff --git a/components/console-backend-service/internal/domain/oauth.resolvers.go b/components/console-backend-service/internal/domain/oauth.resolvers.go deleted file mode 100644 index 1e0ddea9b773..000000000000 --- a/components/console-backend-service/internal/domain/oauth.resolvers.go +++ /dev/null @@ -1,44 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/ory/hydra-maester/api/v1alpha1" -) - -func (r *mutationResolver) CreateOAuth2Client(ctx context.Context, name string, namespace string, params v1alpha1.OAuth2ClientSpec) (*v1alpha1.OAuth2Client, error) { - return r.oauth.CreateOAuth2Client(ctx, name, namespace, params) -} - -func (r *mutationResolver) UpdateOAuth2Client(ctx context.Context, name string, namespace string, generation int, params v1alpha1.OAuth2ClientSpec) (*v1alpha1.OAuth2Client, error) { - return r.oauth.UpdateOAuth2Client(ctx, name, namespace, int64(generation), params) -} - -func (r *mutationResolver) DeleteOAuth2Client(ctx context.Context, name string, namespace string) (*v1alpha1.OAuth2Client, error) { - return r.oauth.DeleteOAuth2Client(ctx, name, namespace) -} - -func (r *oAuth2ClientResolver) Error(ctx context.Context, obj *v1alpha1.OAuth2Client) (*v1alpha1.ReconciliationError, error) { - return r.oauth.ErrorField(ctx, obj) -} - -func (r *queryResolver) OAuth2Clients(ctx context.Context, namespace string) ([]*v1alpha1.OAuth2Client, error) { - return r.oauth.OAuth2ClientsQuery(ctx, namespace) -} - -func (r *queryResolver) OAuth2Client(ctx context.Context, name string, namespace string) (*v1alpha1.OAuth2Client, error) { - return r.oauth.OAuth2ClientQuery(ctx, name, namespace) -} - -func (r *subscriptionResolver) OAuth2ClientEvent(ctx context.Context, namespace string) (<-chan *gqlschema.OAuth2ClientEvent, error) { - return r.oauth.OAuth2ClientSubscription(ctx, namespace) -} - -// OAuth2Client returns gqlschema.OAuth2ClientResolver implementation. -func (r *Resolver) OAuth2Client() gqlschema.OAuth2ClientResolver { return &oAuth2ClientResolver{r} } - -type oAuth2ClientResolver struct{ *Resolver } diff --git a/components/console-backend-service/internal/domain/oauth/oauth2client.go b/components/console-backend-service/internal/domain/oauth/oauth2client.go deleted file mode 100644 index 767d58ccdb1d..000000000000 --- a/components/console-backend-service/internal/domain/oauth/oauth2client.go +++ /dev/null @@ -1,23 +0,0 @@ -package oauth - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -type Resolver struct { - *resource.Module -} - -func New(factory *resource.GenericServiceFactory) *Resolver { - module := resource.NewModule("apigateway", factory, resource.ServiceCreators{ - oAuth2ClientGroupVersionResource: NewService, - }) - - return &Resolver{ - Module: module, - } -} - -func (r *Resolver) Service() *resource.GenericService { - return r.Module.Service(oAuth2ClientGroupVersionResource) -} diff --git a/components/console-backend-service/internal/domain/oauth/resolver.go b/components/console-backend-service/internal/domain/oauth/resolver.go deleted file mode 100644 index 250509e59eca..000000000000 --- a/components/console-backend-service/internal/domain/oauth/resolver.go +++ /dev/null @@ -1,95 +0,0 @@ -package oauth - -import ( - "context" - "errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/ory/hydra-maester/api/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type ClientList []*v1alpha1.OAuth2Client - -func (l *ClientList) Append() interface{} { - e := &v1alpha1.OAuth2Client{} - *l = append(*l, e) - return e -} - -func (r *Resolver) OAuth2ClientsQuery(ctx context.Context, namespace string) ([]*v1alpha1.OAuth2Client, error) { - items := ClientList{} - var err error - - err = r.Service().ListInNamespace(namespace, &items) - return items, err -} - -func (r *Resolver) OAuth2ClientQuery(ctx context.Context, name, namespace string) (*v1alpha1.OAuth2Client, error) { - var result *v1alpha1.OAuth2Client - err := r.Service().GetInNamespace(name, namespace, &result) - return result, err -} - -func (r *Resolver) CreateOAuth2Client(ctx context.Context, name string, namespace string, params v1alpha1.OAuth2ClientSpec) (*v1alpha1.OAuth2Client, error) { - client := &v1alpha1.OAuth2Client{ - TypeMeta: metav1.TypeMeta{ - APIVersion: oAuth2ClientGroupVersionResource.GroupVersion().String(), - Kind: oAuth2ClientKind, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: params, - } - result := &v1alpha1.OAuth2Client{} - err := r.Service().Create(client, result) - return result, err -} - -func (r *Resolver) UpdateOAuth2Client(ctx context.Context, name string, namespace string, generation int64, params v1alpha1.OAuth2ClientSpec) (*v1alpha1.OAuth2Client, error) { - result := &v1alpha1.OAuth2Client{} - err := r.Service().UpdateInNamespace(name, namespace, result, func() error { - if result.Generation > generation { - return errors.New("resource already modified") - } - - result.Spec = params - return nil - }) - return result, err -} - -func (r *Resolver) DeleteOAuth2Client(ctx context.Context, name string, namespace string) (*v1alpha1.OAuth2Client, error) { - result := &v1alpha1.OAuth2Client{} - err := r.Service().DeleteInNamespace(namespace, name, result) - return result, err -} - -func (r *Resolver) OAuth2ClientSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.OAuth2ClientEvent, error) { - channel := make(chan *gqlschema.OAuth2ClientEvent, 1) - filter := func(client v1alpha1.OAuth2Client) bool { - return client.Namespace == namespace - } - - unsubscribe, err := r.Service().Subscribe(NewEventHandler(channel, filter)) - if err != nil { - return nil, err - } - - go func() { - defer close(channel) - defer unsubscribe() - <-ctx.Done() - }() - - return channel, nil -} - -func (r *Resolver) ErrorField(ctx context.Context, obj *v1alpha1.OAuth2Client) (*v1alpha1.ReconciliationError, error) { - if obj.Status.ReconciliationError.Code == "" { - return nil, nil - } - return &obj.Status.ReconciliationError, nil -} diff --git a/components/console-backend-service/internal/domain/oauth/service.go b/components/console-backend-service/internal/domain/oauth/service.go deleted file mode 100644 index 2a83752c5356..000000000000 --- a/components/console-backend-service/internal/domain/oauth/service.go +++ /dev/null @@ -1,54 +0,0 @@ -package oauth - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/ory/hydra-maester/api/v1alpha1" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var oAuth2ClientKind = "OAuth2Client" -var oAuth2ClientGroupVersionResource = schema.GroupVersionResource{ - Version: v1alpha1.GroupVersion.Version, - Group: v1alpha1.GroupVersion.Group, - Resource: "oauth2clients", -} - -type Service struct { - *resource.Service -} - -func NewService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - return serviceFactory.ForResource(oAuth2ClientGroupVersionResource), nil -} - -func NewEventHandler(channel chan<- *gqlschema.OAuth2ClientEvent, filter func(client v1alpha1.OAuth2Client) bool) resource.EventHandlerProvider { - return func() resource.EventHandler { - return &EventHandler{ - channel: channel, - filter: filter, - res: &v1alpha1.OAuth2Client{}, - } - } -} - -type EventHandler struct { - channel chan<- *gqlschema.OAuth2ClientEvent - filter func(client v1alpha1.OAuth2Client) bool - res *v1alpha1.OAuth2Client -} - -func (h *EventHandler) K8sResource() interface{} { - return h.res -} - -func (h *EventHandler) ShouldNotify() bool { - return h.filter(*h.res) -} - -func (h *EventHandler) Notify(eventType gqlschema.SubscriptionEventType) { - h.channel <- &gqlschema.OAuth2ClientEvent{ - Type: eventType, - Client: h.res, - } -} diff --git a/components/console-backend-service/internal/domain/oauth/service_test.go b/components/console-backend-service/internal/domain/oauth/service_test.go deleted file mode 100644 index 6a642117c0b1..000000000000 --- a/components/console-backend-service/internal/domain/oauth/service_test.go +++ /dev/null @@ -1,190 +0,0 @@ -package oauth - -import ( - "context" - "testing" - - "k8s.io/apimachinery/pkg/runtime" - - "github.com/ory/hydra-maester/api/v1alpha1" - "github.com/stretchr/testify/assert" - - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/stretchr/testify/require" -) - -func TestOAuthService_Query(t *testing.T) { - const namespace = "default" - - t.Run("Should filter by namespace", func(t *testing.T) { - client1 := createMockClient("client 1", namespace) - client2 := createMockClient("client 2", "other-namespace") - service := setupServiceWithClients(t, client1, client2) - - result, err := service.OAuth2ClientsQuery(context.Background(), namespace) - - require.NoError(t, err) - - assert.Equal(t, 1, len(result)) - assert.Equal(t, client1.Namespace, result[0].Namespace) - }) - - t.Run("Should find client by name", func(t *testing.T) { - client1 := createMockClient("client 1", namespace) - client2 := createMockClient("client 2", namespace) - service := setupServiceWithClients(t, client1, client2) - - result, err := service.OAuth2ClientQuery(context.Background(), "client 1", namespace) - - require.NoError(t, err) - - assert.Equal(t, client1.Name, result.Name) - }) - - t.Run("Should return error if client is not found", func(t *testing.T) { - client1 := createMockClient("client 1", namespace) - service := setupServiceWithClients(t, client1) - - _, err := service.OAuth2ClientQuery(context.Background(), "client 2", namespace) - - require.Error(t, err) - }) -} - -func TestOAuthService_Create(t *testing.T) { - const namespace = "default" - - t.Run("Should create", func(t *testing.T) { - service := setupServiceWithClients(t) - - var name = "client" - var input = createMockClientSpec() - client, err := service.CreateOAuth2Client(context.Background(), name, namespace, input) - - require.NoError(t, err) - assert.Equal(t, client.Name, name) - assert.Equal(t, client.Namespace, namespace) - }) - - t.Run("Should return error if client with the same name already exists", func(t *testing.T) { - client := createMockClient("client", namespace) - service := setupServiceWithClients(t, client) - - var input = createMockClientSpec() - _, err := service.CreateOAuth2Client(context.Background(), "client", namespace, input) - - require.Error(t, err) - }) -} - -func TestOAuthService_Update(t *testing.T) { - const namespace = "default" - - t.Run("Should update", func(t *testing.T) { - const name = "client" - - client := createMockClient(name, namespace) - service := setupServiceWithClients(t, client) - - assert.Equal(t, client.Spec.Scope, "read write") - - var params = createMockClientSpec() - params.Scope = "read" - client, err := service.UpdateOAuth2Client(context.Background(), name, namespace, client.ObjectMeta.Generation+1, params) - - require.NoError(t, err) - assert.Equal(t, client.Spec.Scope, "read") - }) - - t.Run("Should return error if client does not exist", func(t *testing.T) { - client := createMockClient("client 1", namespace) - service := setupServiceWithClients(t, client) - - var params = createMockClientSpec() - _, err := service.UpdateOAuth2Client(context.Background(), "client 2", namespace, client.ObjectMeta.Generation+1, params) - - require.Error(t, err) - }) - - t.Run("Should return error while trying to update already update object", func(t *testing.T) { - client := createMockClient("client 1", namespace) - service := setupServiceWithClients(t, client) - - var params = createMockClientSpec() - _, err := service.UpdateOAuth2Client(context.Background(), "client 2", namespace, client.ObjectMeta.Generation, params) - - require.Error(t, err) - }) -} - -func TestOAuthService_Delete(t *testing.T) { - const namespace = "default" - - t.Run("Should delete", func(t *testing.T) { - const name = "client" - - client1 := createMockClient(name, namespace) - service := setupServiceWithClients(t, client1) - - client, err := service.DeleteOAuth2Client(context.Background(), name, namespace) - - require.NoError(t, err) - assert.Equal(t, client.Name, name) - }) - - t.Run("Should return error if client does not exist", func(t *testing.T) { - client := createMockClient("client 1", namespace) - service := setupServiceWithClients(t, client) - - _, err := service.DeleteOAuth2Client(context.Background(), "client 2", namespace) - - require.Error(t, err) - }) -} - -func setupServiceWithClients(t *testing.T, clients ...*v1alpha1.OAuth2Client) *Resolver { - // NewFakeGenericServiceFactory requires array of runtime.Object - objects := make([]runtime.Object, len(clients)) - for i, client := range clients { - objects[i] = client - } - - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, objects...) - require.NoError(t, err) - - service := New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - return service -} - -func createMockClient(name, namespace string) *v1alpha1.OAuth2Client { - return &v1alpha1.OAuth2Client{ - TypeMeta: v1.TypeMeta{ - APIVersion: "hydra.ory.sh/v1alpha1", - Kind: "OAuth2Client", - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.OAuth2ClientSpec{ - Scope: "read write", - SecretName: "secret-name", - }, - } -} - -func createMockClientSpec() v1alpha1.OAuth2ClientSpec { - return v1alpha1.OAuth2ClientSpec{ - GrantTypes: []v1alpha1.GrantType{"client_credentials"}, - ResponseTypes: []v1alpha1.ResponseType{"id_token"}, - Scope: "read write", - SecretName: "secret-name", - } -} diff --git a/components/console-backend-service/internal/domain/rafter/asset_converter.go b/components/console-backend-service/internal/domain/rafter/asset_converter.go deleted file mode 100644 index e71c8c83a11b..000000000000 --- a/components/console-backend-service/internal/domain/rafter/asset_converter.go +++ /dev/null @@ -1,64 +0,0 @@ -package rafter - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlAssetConverter -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=gqlAssetConverter -case=underscore -output disabled -outpkg disabled -type gqlAssetConverter interface { - ToGQL(in *v1beta1.Asset) (*gqlschema.Asset, error) - ToGQLs(in []*v1beta1.Asset) ([]*gqlschema.Asset, error) -} - -type assetConverter struct { - extractor extractor.AssetCommonExtractor -} - -func newAssetConverter() *assetConverter { - return &assetConverter{ - extractor: extractor.AssetCommonExtractor{}, - } -} - -func (c *assetConverter) ToGQL(item *v1beta1.Asset) (*gqlschema.Asset, error) { - if item == nil { - return nil, nil - } - - status := c.extractor.Status(item.Status.CommonAssetStatus) - parameters, err := c.extractor.Parameters(item.Spec.CommonAssetSpec.Parameters) - if err != nil { - return nil, errors.Wrapf(err, "while extracting parameters from %s [name: %s][namespace: %s]", pretty.AssetType, item.Name, item.Namespace) - } - - asset := gqlschema.Asset{ - Name: item.Name, - Namespace: item.Namespace, - Type: item.Labels[TypeLabel], - Status: status, - Parameters: parameters, - DisplayName: item.Spec.DisplayName, - } - - return &asset, nil -} - -func (c *assetConverter) ToGQLs(in []*v1beta1.Asset) ([]*gqlschema.Asset, error) { - var result []*gqlschema.Asset - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/asset_converter_test.go b/components/console-backend-service/internal/domain/rafter/asset_converter_test.go deleted file mode 100644 index 11332f1cfb94..000000000000 --- a/components/console-backend-service/internal/domain/rafter/asset_converter_test.go +++ /dev/null @@ -1,123 +0,0 @@ -package rafter_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - - "k8s.io/apimachinery/pkg/runtime" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAssetConverter_ToGQL(t *testing.T) { - converter := rafter.NewAssetConverter() - - t.Run("All properties are given", func(t *testing.T) { - item := fixAsset() - expected := gqlschema.Asset{ - Name: "ExampleName", - Namespace: "ExampleNamespace", - Type: "ExampleType", - Status: gqlschema.AssetStatus{ - Phase: gqlschema.AssetPhaseTypeReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - Parameters: gqlschema.JSON{"complex": map[string]interface{}{"data": "true"}, "json": "true"}, - DisplayName: "ExampleDisplayName", - } - - result, err := converter.ToGQL(item) - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - _, err := converter.ToGQL(&v1beta1.Asset{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestAssetConverter_ToGQLs(t *testing.T) { - converter := rafter.NewAssetConverter() - - t.Run("Success", func(t *testing.T) { - assets := []*v1beta1.Asset{ - fixAsset(), - fixAsset(), - } - - result, err := converter.ToGQLs(assets) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "ExampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var assets []*v1beta1.Asset - - result, err := converter.ToGQLs(assets) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - assets := []*v1beta1.Asset{ - nil, - fixAsset(), - nil, - } - - result, err := converter.ToGQLs(assets) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "ExampleName", result[0].Name) - }) -} - -func fixAsset() *v1beta1.Asset { - return &v1beta1.Asset{ - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - Namespace: "ExampleNamespace", - Labels: map[string]string{ - rafter.TypeLabel: "ExampleType", - }, - }, - Spec: v1beta1.AssetSpec{ - CommonAssetSpec: v1beta1.CommonAssetSpec{ - Source: v1beta1.AssetSource{ - Mode: v1beta1.AssetSingle, - URL: "ExampleUrl", - }, - BucketRef: v1beta1.AssetBucketRef{ - Name: "ExampleBucketRef", - }, - Parameters: &runtime.RawExtension{Raw: []byte(`{"json":"true","complex":{"data":"true"}}`)}, - DisplayName: "ExampleDisplayName", - }, - }, - Status: v1beta1.AssetStatus{ - CommonAssetStatus: v1beta1.CommonAssetStatus{ - Phase: v1beta1.AssetReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/asset_resolver.go b/components/console-backend-service/internal/domain/rafter/asset_resolver.go deleted file mode 100644 index b0edf07e2489..000000000000 --- a/components/console-backend-service/internal/domain/rafter/asset_resolver.go +++ /dev/null @@ -1,83 +0,0 @@ -package rafter - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -type assetResolver struct { - assetSvc assetSvc - assetConverter gqlAssetConverter - fileSvc fileSvc - fileConverter gqlFileConverter -} - -func newAssetResolver(assetService assetSvc, assetConverter gqlAssetConverter, fileService fileSvc, fileConverter gqlFileConverter) *assetResolver { - return &assetResolver{ - assetSvc: assetService, - assetConverter: assetConverter, - fileSvc: fileService, - fileConverter: fileConverter, - } -} - -func (r *assetResolver) AssetFilesField(ctx context.Context, obj *gqlschema.Asset, filterExtensions []string) ([]*gqlschema.File, error) { - if obj == nil { - glog.Error(errors.Errorf("%s cannot be empty in order to resolve `files` field", pretty.Asset)) - return nil, gqlerror.NewInternal() - } - - asset, err := r.assetSvc.Find(obj.Namespace, obj.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", pretty.Asset, pretty.Asset, obj.Name)) - return nil, gqlerror.New(err, pretty.Asset) - } - - if asset == nil { - return nil, nil - } - - var items []*File - if len(filterExtensions) == 0 { - items, err = r.fileSvc.Extract(&asset.Status.AssetRef) - } else { - items, err = r.fileSvc.FilterByExtensionsAndExtract(&asset.Status.AssetRef, filterExtensions) - } - if err != nil { - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", pretty.Files, pretty.Asset, obj.Name)) - return nil, gqlerror.New(err, pretty.Asset) - } - - files, err := r.fileConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.Files)) - return nil, gqlerror.New(err, pretty.Asset) - } - - return files, nil -} - -func (r *assetResolver) AssetEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AssetEvent, error) { - channel := make(chan *gqlschema.AssetEvent, 1) - filter := func(entity *v1beta1.Asset) bool { - return entity != nil && entity.Namespace == namespace - } - - assetListener := listener.NewAsset(channel, filter, r.assetConverter) - - r.assetSvc.Subscribe(assetListener) - go func() { - defer close(channel) - defer r.assetSvc.Unsubscribe(assetListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/asset_resolver_test.go b/components/console-backend-service/internal/domain/rafter/asset_resolver_test.go deleted file mode 100644 index c24e95844d36..000000000000 --- a/components/console-backend-service/internal/domain/rafter/asset_resolver_test.go +++ /dev/null @@ -1,169 +0,0 @@ -package rafter_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAssetResolver_AssetFilesField(t *testing.T) { - assetName := "exampleAsset" - namespace := "exampleNamespace" - - t.Run("Success", func(t *testing.T) { - rawMap := fixRawMap(t) - - assetResource := &v1beta1.Asset{ - ObjectMeta: metav1.ObjectMeta{ - Name: assetName, - Namespace: namespace, - }, - Status: v1beta1.AssetStatus{ - CommonAssetStatus: v1beta1.CommonAssetStatus{ - AssetRef: *fixAssetStatusRef(rawMap), - }, - }, - } - filesResource := []*rafter.File{ - { - URL: "https://example.com/markdown.md", - Metadata: rawMap, - }, - { - URL: "https://example.com/apiSpec.json", - Metadata: rawMap, - }, - { - URL: "https://example.com/odata.xml", - Metadata: rawMap, - }, - } - expected := []*gqlschema.File{ - { - URL: "https://example.com/markdown.md", - Metadata: gqlschema.JSON{ - "labels": []interface{}{"test1", "test2"}, - }, - }, - { - URL: "https://example.com/apiSpec.json", - Metadata: gqlschema.JSON{ - "labels": []interface{}{"test1", "test2"}, - }, - }, - { - URL: "https://example.com/odata.xml", - Metadata: gqlschema.JSON{ - "labels": []interface{}{"test1", "test2"}, - }, - }, - } - - assetSvc := automock.NewAssetService() - assetSvc.On("Find", namespace, assetName).Return(assetResource, nil).Once() - defer assetSvc.AssertExpectations(t) - - fileSvc := automock.NewFileService() - fileSvc.On("Extract", &assetResource.Status.AssetRef).Return(filesResource, nil).Once() - defer fileSvc.AssertExpectations(t) - - fileConverter := automock.NewGQLFileConverter() - fileConverter.On("ToGQLs", filesResource).Return(expected, nil) - defer fileConverter.AssertExpectations(t) - - parentObj := gqlschema.Asset{ - Name: assetName, - Namespace: namespace, - } - - resolver := rafter.NewAssetResolver(assetSvc, nil, fileSvc, fileConverter) - - result, err := resolver.AssetFilesField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - assetSvc := automock.NewAssetService() - assetSvc.On("Find", namespace, assetName).Return(nil, nil).Once() - defer assetSvc.AssertExpectations(t) - - parentObj := gqlschema.Asset{ - Name: assetName, - Namespace: namespace, - } - - resolver := rafter.NewAssetResolver(assetSvc, nil, nil, nil) - - result, err := resolver.AssetFilesField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - - assetSvc := automock.NewAssetService() - assetSvc.On("Find", namespace, assetName).Return(nil, expectedErr).Once() - defer assetSvc.AssertExpectations(t) - - parentObj := gqlschema.Asset{ - Name: assetName, - Namespace: namespace, - } - - resolver := rafter.NewAssetResolver(assetSvc, nil, nil, nil) - - result, err := resolver.AssetFilesField(nil, &parentObj, []string{}) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestAssetResolver_AssetEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewAssetService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewAssetResolver(svc, nil, nil, nil) - - _, err := resolver.AssetEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewAssetService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewAssetResolver(svc, nil, nil, nil) - - channel, err := resolver.AssetEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/asset_service.go b/components/console-backend-service/internal/domain/rafter/asset_service.go deleted file mode 100644 index 59311a9311fb..000000000000 --- a/components/console-backend-service/internal/domain/rafter/asset_service.go +++ /dev/null @@ -1,128 +0,0 @@ -package rafter - -import ( - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - notifierResource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" -) - -const ( - Namespace_AssetGroupName_Index = "namespace/assetGroupName" - Namespace_AssetGroupName_Type_Index = "namespace/assetGroupName/type" -) - -//go:generate mockery -name=assetSvc -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=assetSvc -case=underscore -output disabled -outpkg disabled -type assetSvc interface { - Find(namespace, name string) (*v1beta1.Asset, error) - ListForAssetGroupByType(namespace, assetGroupName string, types []string) ([]*v1beta1.Asset, error) - Subscribe(listener notifierResource.Listener) - Unsubscribe(listener notifierResource.Listener) -} - -type assetService struct { - *resource.Service - notifier notifierResource.Notifier - extractor extractor.AssetUnstructuredExtractor -} - -func newAssetService(serviceFactory *resource.ServiceFactory) (*assetService, error) { - svc := &assetService{ - Service: serviceFactory.ForResource(schema.GroupVersionResource{ - Version: v1beta1.GroupVersion.Version, - Group: v1beta1.GroupVersion.Group, - Resource: "assets", - }), - extractor: extractor.AssetUnstructuredExtractor{}, - } - - err := svc.AddIndexers(cache.Indexers{ - Namespace_AssetGroupName_Index: func(obj interface{}) ([]string, error) { - entity, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s", entity.Namespace, entity.Labels[AssetGroupLabel])}, nil - }, - Namespace_AssetGroupName_Type_Index: func(obj interface{}) ([]string, error) { - entity, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s/%s", entity.Namespace, entity.Labels[AssetGroupLabel], entity.Labels[TypeLabel])}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - notifier := notifierResource.NewNotifier() - svc.Informer.AddEventHandler(notifier) - svc.notifier = notifier - - return svc, nil -} - -func (svc *assetService) Find(namespace, name string) (*v1beta1.Asset, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.Informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - asset, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.AssetType) - } - - return asset, nil -} - -func (svc *assetService) ListForAssetGroupByType(namespace, assetGroupName string, types []string) ([]*v1beta1.Asset, error) { - var items []interface{} - var err error - if len(types) == 0 { - items, err = svc.Informer.GetIndexer().ByIndex(Namespace_AssetGroupName_Index, fmt.Sprintf("%s/%s", namespace, assetGroupName)) - } else { - for _, typeArg := range types { - its, err := svc.Informer.GetIndexer().ByIndex(Namespace_AssetGroupName_Type_Index, fmt.Sprintf("%s/%s/%s", namespace, assetGroupName, typeArg)) - if err != nil { - return nil, err - } - items = append(items, its...) - } - } - - if err != nil { - return nil, err - } - - var assets []*v1beta1.Asset - for _, item := range items { - asset, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.AssetType) - } - - assets = append(assets, asset) - } - - return assets, nil -} - -func (svc *assetService) Subscribe(listener notifierResource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *assetService) Unsubscribe(listener notifierResource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/rafter/asset_service_test.go b/components/console-backend-service/internal/domain/rafter/asset_service_test.go deleted file mode 100644 index e250c909bff2..000000000000 --- a/components/console-backend-service/internal/domain/rafter/asset_service_test.go +++ /dev/null @@ -1,190 +0,0 @@ -package rafter_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -const ( - AssetNamespace = "AssetNamespace" -) - -func TestAssetService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - asset1 := fixSimpleAsset("1", nil) - asset2 := fixSimpleAsset("2", nil) - asset3 := fixSimpleAsset("3", nil) - - service := fixFakeAssetService(t, asset1, asset2, asset3) - - result, err := service.Find(AssetNamespace, "1") - require.NoError(t, err) - assert.Equal(t, asset1, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeAssetService(t) - - result, err := service.Find(AssetNamespace, "1") - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestAssetService_ListForAssetGroupByType(t *testing.T) { - t.Run("Success with assetGroupName paramater", func(t *testing.T) { - asset1 := fixSimpleAsset("1", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupA", - }) - asset2 := fixSimpleAsset("2", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupB", - }) - asset3 := fixSimpleAsset("3", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupC", - }) - expected := []*v1beta1.Asset{asset1} - - service := fixFakeAssetService(t, asset1, asset2, asset3) - - result, err := service.ListForAssetGroupByType(AssetNamespace, "exampleAssetGroupA", nil) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Success with whole paramaters", func(t *testing.T) { - asset1 := fixSimpleAsset("1", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupA", - rafter.TypeLabel: "markdown", - }) - asset2 := fixSimpleAsset("2", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupB", - rafter.TypeLabel: "json", - }) - asset3 := fixSimpleAsset("3", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupC", - rafter.TypeLabel: "yaml", - }) - expected := []*v1beta1.Asset{asset1} - - service := fixFakeAssetService(t, asset1, asset2, asset3) - - result, err := service.ListForAssetGroupByType(AssetNamespace, "exampleAssetGroupA", []string{"markdown"}) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeAssetService(t) - - result, err := service.ListForAssetGroupByType(AssetNamespace, "exampleDocsTopic", nil) - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestAssetService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - service := fixFakeAssetService(t) - - assetListener := listener.NewAsset(nil, nil, nil) - service.Subscribe(assetListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeAssetService(t) - - assetListener := listener.NewAsset(nil, nil, nil) - service.Subscribe(assetListener) - service.Subscribe(assetListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeAssetService(t) - - assetListenerA := listener.NewAsset(nil, nil, nil) - assetListenerB := listener.NewAsset(nil, nil, nil) - - service.Subscribe(assetListenerA) - service.Subscribe(assetListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeAssetService(t) - - service.Subscribe(nil) - }) -} - -func TestAssetService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - service := fixFakeAssetService(t) - - assetListener := listener.NewAsset(nil, nil, nil) - service.Subscribe(assetListener) - service.Unsubscribe(assetListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeAssetService(t) - - assetListener := listener.NewAsset(nil, nil, nil) - service.Subscribe(assetListener) - service.Subscribe(assetListener) - - service.Unsubscribe(assetListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeAssetService(t) - - assetListenerA := listener.NewAsset(nil, nil, nil) - assetListenerB := listener.NewAsset(nil, nil, nil) - - service.Subscribe(assetListenerA) - service.Subscribe(assetListenerB) - - service.Unsubscribe(assetListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeAssetService(t) - - service.Unsubscribe(nil) - }) -} - -func fixFakeAssetService(t *testing.T, objects ...runtime.Object) *rafter.AssetService { - serviceFactory, err := resourceFake.NewFakeServiceFactory(v1beta1.AddToScheme, objects...) - require.NoError(t, err) - - service, err := rafter.NewAssetService(serviceFactory) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, service.Informer) - - return service -} - -func fixSimpleAsset(name string, labels map[string]string) *v1beta1.Asset { - return &v1beta1.Asset{ - TypeMeta: metav1.TypeMeta{ - Kind: "Asset", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: AssetNamespace, - Labels: labels, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/assetgroup_converter.go b/components/console-backend-service/internal/domain/rafter/assetgroup_converter.go deleted file mode 100644 index a0cf7f49495d..000000000000 --- a/components/console-backend-service/internal/domain/rafter/assetgroup_converter.go +++ /dev/null @@ -1,57 +0,0 @@ -package rafter - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -//go:generate mockery -name=gqlAssetGroupConverter -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=gqlAssetGroupConverter -case=underscore -output disabled -outpkg disabled -type gqlAssetGroupConverter interface { - ToGQL(in *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) - ToGQLs(in []*v1beta1.AssetGroup) ([]gqlschema.AssetGroup, error) -} - -type assetGroupConverter struct { - extractor extractor.AssetGroupCommonExtractor -} - -func newAssetGroupConverter() *assetGroupConverter { - return &assetGroupConverter{ - extractor: extractor.AssetGroupCommonExtractor{}, - } -} - -func (c *assetGroupConverter) ToGQL(item *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) { - if item == nil { - return nil, nil - } - - status := c.extractor.Status(item.Status.CommonAssetGroupStatus) - assetGroup := gqlschema.AssetGroup{ - Name: item.Name, - Namespace: item.Namespace, - Description: item.Spec.Description, - DisplayName: item.Spec.DisplayName, - GroupName: item.Labels[GroupNameLabel], - Status: status, - } - - return &assetGroup, nil -} - -func (c *assetGroupConverter) ToGQLs(in []*v1beta1.AssetGroup) ([]gqlschema.AssetGroup, error) { - var result []gqlschema.AssetGroup - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, *converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/assetgroup_converter_test.go b/components/console-backend-service/internal/domain/rafter/assetgroup_converter_test.go deleted file mode 100644 index 07345643e151..000000000000 --- a/components/console-backend-service/internal/domain/rafter/assetgroup_converter_test.go +++ /dev/null @@ -1,115 +0,0 @@ -package rafter_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAssetGroupConverter_ToGQL(t *testing.T) { - converter := rafter.NewAssetGroupConverter() - - t.Run("All properties are given", func(t *testing.T) { - item := fixAssetGroup() - expected := gqlschema.AssetGroup{ - Name: "ExampleName", - Namespace: "ExampleNamespace", - DisplayName: "DisplayName", - Description: "Description", - GroupName: "exampleGroupName", - Status: gqlschema.AssetGroupStatus{ - Phase: gqlschema.AssetGroupPhaseTypeReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - } - - result, err := converter.ToGQL(item) - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - _, err := converter.ToGQL(&v1beta1.AssetGroup{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestDocsTopicConverter_ToGQLs(t *testing.T) { - converter := rafter.NewAssetGroupConverter() - - t.Run("Success", func(t *testing.T) { - assetGroups := []*v1beta1.AssetGroup{ - fixAssetGroup(), - fixAssetGroup(), - } - - result, err := converter.ToGQLs(assetGroups) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "ExampleName", result[0].Name) - assert.Equal(t, "ExampleNamespace", result[0].Namespace) - }) - - t.Run("Empty", func(t *testing.T) { - var assetGroups []*v1beta1.AssetGroup - - result, err := converter.ToGQLs(assetGroups) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - assetGroups := []*v1beta1.AssetGroup{ - nil, - fixAssetGroup(), - nil, - } - - result, err := converter.ToGQLs(assetGroups) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "ExampleName", result[0].Name) - assert.Equal(t, "ExampleNamespace", result[0].Namespace) - }) -} - -func fixAssetGroup() *v1beta1.AssetGroup { - return &v1beta1.AssetGroup{ - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - Namespace: "ExampleNamespace", - Labels: map[string]string{ - rafter.GroupNameLabel: "exampleGroupName", - }, - }, - Spec: v1beta1.AssetGroupSpec{ - CommonAssetGroupSpec: v1beta1.CommonAssetGroupSpec{ - DisplayName: "DisplayName", - Description: "Description", - }, - }, - Status: v1beta1.AssetGroupStatus{ - CommonAssetGroupStatus: v1beta1.CommonAssetGroupStatus{ - Phase: v1beta1.AssetGroupReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/assetgroup_resolver.go b/components/console-backend-service/internal/domain/rafter/assetgroup_resolver.go deleted file mode 100644 index 82a808cf0523..000000000000 --- a/components/console-backend-service/internal/domain/rafter/assetgroup_resolver.go +++ /dev/null @@ -1,68 +0,0 @@ -package rafter - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -type assetGroupResolver struct { - assetGroupService assetGroupSvc - assetGroupConverter gqlAssetGroupConverter - assetService assetSvc - assetConverter gqlAssetConverter -} - -func newAssetGroupResolver(assetGroupService assetGroupSvc, assetGroupConverter gqlAssetGroupConverter, assetService assetSvc, assetConverter gqlAssetConverter) *assetGroupResolver { - return &assetGroupResolver{ - assetGroupService: assetGroupService, - assetGroupConverter: assetGroupConverter, - assetService: assetService, - assetConverter: assetConverter, - } -} - -func (r *assetGroupResolver) AssetGroupAssetsField(ctx context.Context, obj *gqlschema.AssetGroup, types []string) ([]*gqlschema.Asset, error) { - if obj == nil { - glog.Error(errors.Errorf("%s cannot be empty in order to resolve `assets` field", pretty.AssetGroup)) - return nil, gqlerror.NewInternal() - } - - items, err := r.assetService.ListForAssetGroupByType(obj.Namespace, obj.Name, types) - if err != nil { - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", pretty.Assets, pretty.AssetGroup, obj.Name)) - return nil, gqlerror.New(err, pretty.Assets) - } - - assets, err := r.assetConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.Assets)) - return nil, gqlerror.New(err, pretty.Assets) - } - - return assets, nil -} - -func (r *assetGroupResolver) AssetGroupEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AssetGroupEvent, error) { - channel := make(chan *gqlschema.AssetGroupEvent, 1) - filter := func(entity *v1beta1.AssetGroup) bool { - return entity != nil && entity.Namespace == namespace - } - - assetGroupServiceListener := listener.NewAssetGroup(channel, filter, r.assetGroupConverter) - - r.assetGroupService.Subscribe(assetGroupServiceListener) - go func() { - defer close(channel) - defer r.assetGroupService.Unsubscribe(assetGroupServiceListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/assetgroup_resolver_test.go b/components/console-backend-service/internal/domain/rafter/assetgroup_resolver_test.go deleted file mode 100644 index 8c922c4b18ab..000000000000 --- a/components/console-backend-service/internal/domain/rafter/assetgroup_resolver_test.go +++ /dev/null @@ -1,165 +0,0 @@ -package rafter_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAssetGroupResolver_AssetGroupAssetsField(t *testing.T) { - assetGroupName := "exampleAssetGroup" - namespace := "exampleNamespace" - - t.Run("Success", func(t *testing.T) { - resources := []*v1beta1.Asset{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleAssetA", - Namespace: namespace, - Labels: map[string]string{ - rafter.AssetGroupLabel: assetGroupName, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleAssetB", - Namespace: namespace, - Labels: map[string]string{ - rafter.AssetGroupLabel: assetGroupName, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleAssetC", - Namespace: namespace, - Labels: map[string]string{ - rafter.AssetGroupLabel: assetGroupName, - }, - }, - }, - } - expected := []*gqlschema.Asset{ - { - Name: "ExampleAssetA", - Namespace: namespace, - }, - { - Name: "ExampleAssetB", - Namespace: namespace, - }, - { - Name: "ExampleAssetC", - Namespace: namespace, - }, - } - - assetSvc := automock.NewAssetService() - assetSvc.On("ListForAssetGroupByType", namespace, assetGroupName, []string{}).Return(resources, nil).Once() - defer assetSvc.AssertExpectations(t) - - assetConverter := automock.NewGQLAssetConverter() - assetConverter.On("ToGQLs", resources).Return(expected, nil).Once() - defer assetConverter.AssertExpectations(t) - - parentObj := gqlschema.AssetGroup{ - Name: assetGroupName, - Namespace: namespace, - } - - resolver := rafter.NewAssetGroupResolver(nil, nil, assetSvc, assetConverter) - - result, err := resolver.AssetGroupAssetsField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - assetSvc := automock.NewAssetService() - assetSvc.On("ListForAssetGroupByType", namespace, assetGroupName, []string{}).Return(nil, nil).Once() - defer assetSvc.AssertExpectations(t) - - assetConverter := automock.NewGQLAssetConverter() - assetConverter.On("ToGQLs", ([]*v1beta1.Asset)(nil)).Return(nil, nil).Once() - defer assetConverter.AssertExpectations(t) - - parentObj := gqlschema.AssetGroup{ - Name: assetGroupName, - Namespace: namespace, - } - - resolver := rafter.NewAssetGroupResolver(nil, nil, assetSvc, assetConverter) - - result, err := resolver.AssetGroupAssetsField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - - assetSvc := automock.NewAssetService() - assetSvc.On("ListForAssetGroupByType", namespace, assetGroupName, []string{}).Return(nil, expectedErr).Once() - defer assetSvc.AssertExpectations(t) - - parentObj := gqlschema.AssetGroup{ - Name: assetGroupName, - Namespace: namespace, - } - - resolver := rafter.NewAssetGroupResolver(nil, nil, assetSvc, nil) - - result, err := resolver.AssetGroupAssetsField(nil, &parentObj, []string{}) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestAssetGroupResolver_AssetGroupEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewAssetGroupService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewAssetGroupResolver(svc, automock.NewGQLAssetGroupConverter(), automock.NewAssetService(), automock.NewGQLAssetConverter()) - - _, err := resolver.AssetGroupEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewAssetGroupService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewAssetGroupResolver(svc, automock.NewGQLAssetGroupConverter(), automock.NewAssetService(), automock.NewGQLAssetConverter()) - - channel, err := resolver.AssetGroupEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/assetgroup_service.go b/components/console-backend-service/internal/domain/rafter/assetgroup_service.go deleted file mode 100644 index 0a9a8c64759b..000000000000 --- a/components/console-backend-service/internal/domain/rafter/assetgroup_service.go +++ /dev/null @@ -1,67 +0,0 @@ -package rafter - -import ( - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - notifierResource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -//go:generate mockery -name=assetGroupSvc -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=assetGroupSvc -case=underscore -output disabled -outpkg disabled -type assetGroupSvc interface { - Find(namespace, name string) (*v1beta1.AssetGroup, error) - Subscribe(listener notifierResource.Listener) - Unsubscribe(listener notifierResource.Listener) -} - -type assetGroupService struct { - *resource.Service - notifier notifierResource.Notifier - extractor extractor.AssetGroupUnstructuredExtractor -} - -func newAssetGroupService(serviceFactory *resource.ServiceFactory) (*assetGroupService, error) { - svc := &assetGroupService{ - Service: serviceFactory.ForResource(schema.GroupVersionResource{ - Version: v1beta1.GroupVersion.Version, - Group: v1beta1.GroupVersion.Group, - Resource: "assetgroups", - }), - extractor: extractor.AssetGroupUnstructuredExtractor{}, - } - - notifier := notifierResource.NewNotifier() - svc.Informer.AddEventHandler(notifier) - svc.notifier = notifier - - return svc, nil -} - -func (svc *assetGroupService) Find(namespace, name string) (*v1beta1.AssetGroup, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.Informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - assetGroup, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.AssetGroupType) - } - - return assetGroup, nil -} - -func (svc *assetGroupService) Subscribe(listener notifierResource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *assetGroupService) Unsubscribe(listener notifierResource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/rafter/assetgroup_service_test.go b/components/console-backend-service/internal/domain/rafter/assetgroup_service_test.go deleted file mode 100644 index 2a6f708104d6..000000000000 --- a/components/console-backend-service/internal/domain/rafter/assetgroup_service_test.go +++ /dev/null @@ -1,139 +0,0 @@ -package rafter_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -const ( - AssetGroupNamespace = "AssetGroupNamespace" -) - -func TestAssetGroupService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - assetGroup1 := fixSimpleAssetGroup("1", nil) - assetGroup2 := fixSimpleAssetGroup("2", nil) - assetGroup3 := fixSimpleAssetGroup("3", nil) - - service := fixFakeAssetGroupService(t, assetGroup1, assetGroup2, assetGroup3) - - result, err := service.Find(AssetGroupNamespace, "1") - require.NoError(t, err) - assert.Equal(t, assetGroup1, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - result, err := service.Find(AssetGroupNamespace, "1") - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestAssetGroupService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - assetGroupListener := listener.NewAssetGroup(nil, nil, nil) - service.Subscribe(assetGroupListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - assetGroupListener := listener.NewAssetGroup(nil, nil, nil) - service.Subscribe(assetGroupListener) - service.Subscribe(assetGroupListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - assetGroupListenerA := listener.NewAssetGroup(nil, nil, nil) - assetGroupListenerB := listener.NewAssetGroup(nil, nil, nil) - - service.Subscribe(assetGroupListenerA) - service.Subscribe(assetGroupListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - service.Subscribe(nil) - }) -} - -func TestAssetGroupService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - assetGroupListener := listener.NewAssetGroup(nil, nil, nil) - service.Subscribe(assetGroupListener) - service.Unsubscribe(assetGroupListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - assetGroupListener := listener.NewAssetGroup(nil, nil, nil) - service.Subscribe(assetGroupListener) - service.Subscribe(assetGroupListener) - - service.Unsubscribe(assetGroupListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - assetGroupListenerA := listener.NewAssetGroup(nil, nil, nil) - assetGroupListenerB := listener.NewAssetGroup(nil, nil, nil) - - service.Subscribe(assetGroupListenerA) - service.Subscribe(assetGroupListenerB) - - service.Unsubscribe(assetGroupListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeAssetGroupService(t) - - service.Unsubscribe(nil) - }) -} - -func fixFakeAssetGroupService(t *testing.T, objects ...runtime.Object) *rafter.AssetGroupService { - serviceFactory, err := resourceFake.NewFakeServiceFactory(v1beta1.AddToScheme, objects...) - require.NoError(t, err) - - service, err := rafter.NewAssetGroupService(serviceFactory) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, service.Informer) - - return service -} - -func fixSimpleAssetGroup(name string, labels map[string]string) *v1beta1.AssetGroup { - return &v1beta1.AssetGroup{ - TypeMeta: metav1.TypeMeta{ - Kind: "AssetGroup", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: AssetGroupNamespace, - Labels: labels, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/asset_group_svc.go b/components/console-backend-service/internal/domain/rafter/automock/asset_group_svc.go deleted file mode 100644 index c4c66070e868..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/asset_group_svc.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// assetGroupSvc is an autogenerated mock type for the assetGroupSvc type -type assetGroupSvc struct { - mock.Mock -} - -// Find provides a mock function with given fields: namespace, name -func (_m *assetGroupSvc) Find(namespace string, name string) (*v1beta1.AssetGroup, error) { - ret := _m.Called(namespace, name) - - var r0 *v1beta1.AssetGroup - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.AssetGroup); ok { - r0 = rf(namespace, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.AssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *assetGroupSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *assetGroupSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/asset_svc.go b/components/console-backend-service/internal/domain/rafter/automock/asset_svc.go deleted file mode 100644 index 1770137b465b..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/asset_svc.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// assetSvc is an autogenerated mock type for the assetSvc type -type assetSvc struct { - mock.Mock -} - -// Find provides a mock function with given fields: namespace, name -func (_m *assetSvc) Find(namespace string, name string) (*v1beta1.Asset, error) { - ret := _m.Called(namespace, name) - - var r0 *v1beta1.Asset - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.Asset); ok { - r0 = rf(namespace, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListForAssetGroupByType provides a mock function with given fields: namespace, assetGroupName, types -func (_m *assetSvc) ListForAssetGroupByType(namespace string, assetGroupName string, types []string) ([]*v1beta1.Asset, error) { - ret := _m.Called(namespace, assetGroupName, types) - - var r0 []*v1beta1.Asset - if rf, ok := ret.Get(0).(func(string, string, []string) []*v1beta1.Asset); ok { - r0 = rf(namespace, assetGroupName, types) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []string) error); ok { - r1 = rf(namespace, assetGroupName, types) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *assetSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *assetSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/cluster_asset_group_svc.go b/components/console-backend-service/internal/domain/rafter/automock/cluster_asset_group_svc.go deleted file mode 100644 index f30324f630e7..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/cluster_asset_group_svc.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// clusterAssetGroupSvc is an autogenerated mock type for the clusterAssetGroupSvc type -type clusterAssetGroupSvc struct { - mock.Mock -} - -// Find provides a mock function with given fields: name -func (_m *clusterAssetGroupSvc) Find(name string) (*v1beta1.ClusterAssetGroup, error) { - ret := _m.Called(name) - - var r0 *v1beta1.ClusterAssetGroup - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterAssetGroup); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: viewContext, groupName -func (_m *clusterAssetGroupSvc) List(viewContext *string, groupName *string) ([]*v1beta1.ClusterAssetGroup, error) { - ret := _m.Called(viewContext, groupName) - - var r0 []*v1beta1.ClusterAssetGroup - if rf, ok := ret.Get(0).(func(*string, *string) []*v1beta1.ClusterAssetGroup); ok { - r0 = rf(viewContext, groupName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*string, *string) error); ok { - r1 = rf(viewContext, groupName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *clusterAssetGroupSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *clusterAssetGroupSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/cluster_asset_svc.go b/components/console-backend-service/internal/domain/rafter/automock/cluster_asset_svc.go deleted file mode 100644 index 68657ac8ce27..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/cluster_asset_svc.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// clusterAssetSvc is an autogenerated mock type for the clusterAssetSvc type -type clusterAssetSvc struct { - mock.Mock -} - -// Find provides a mock function with given fields: name -func (_m *clusterAssetSvc) Find(name string) (*v1beta1.ClusterAsset, error) { - ret := _m.Called(name) - - var r0 *v1beta1.ClusterAsset - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterAsset); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListForClusterAssetGroupByType provides a mock function with given fields: assetGroupName, types -func (_m *clusterAssetSvc) ListForClusterAssetGroupByType(assetGroupName string, types []string) ([]*v1beta1.ClusterAsset, error) { - ret := _m.Called(assetGroupName, types) - - var r0 []*v1beta1.ClusterAsset - if rf, ok := ret.Get(0).(func(string, []string) []*v1beta1.ClusterAsset); ok { - r0 = rf(assetGroupName, types) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, []string) error); ok { - r1 = rf(assetGroupName, types) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *clusterAssetSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *clusterAssetSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/export.go b/components/console-backend-service/internal/domain/rafter/automock/export.go deleted file mode 100644 index 5e582b64d887..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/export.go +++ /dev/null @@ -1,45 +0,0 @@ -package automock - -func NewClusterAssetService() *clusterAssetSvc { - return new(clusterAssetSvc) -} - -func NewGQLClusterAssetConverter() *gqlClusterAssetConverter { - return new(gqlClusterAssetConverter) -} - -func NewAssetService() *assetSvc { - return new(assetSvc) -} - -func NewGQLAssetConverter() *gqlAssetConverter { - return new(gqlAssetConverter) -} - -func NewClusterAssetGroupService() *clusterAssetGroupSvc { - return new(clusterAssetGroupSvc) -} - -func NewGQLClusterAssetGroupConverter() *gqlClusterAssetGroupConverter { - return new(gqlClusterAssetGroupConverter) -} - -func NewAssetGroupService() *assetGroupSvc { - return new(assetGroupSvc) -} - -func NewGQLAssetGroupConverter() *gqlAssetGroupConverter { - return new(gqlAssetGroupConverter) -} - -func NewFileService() *fileSvc { - return new(fileSvc) -} - -func NewGQLFileConverter() *gqlFileConverter { - return new(gqlFileConverter) -} - -func NewSpecificationService() *specificationSvc { - return new(specificationSvc) -} \ No newline at end of file diff --git a/components/console-backend-service/internal/domain/rafter/automock/file_svc.go b/components/console-backend-service/internal/domain/rafter/automock/file_svc.go deleted file mode 100644 index a1b710372016..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/file_svc.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - rafter "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - mock "github.com/stretchr/testify/mock" -) - -// fileSvc is an autogenerated mock type for the fileSvc type -type fileSvc struct { - mock.Mock -} - -// Extract provides a mock function with given fields: statusRef -func (_m *fileSvc) Extract(statusRef *v1beta1.AssetStatusRef) ([]*rafter.File, error) { - ret := _m.Called(statusRef) - - var r0 []*rafter.File - if rf, ok := ret.Get(0).(func(*v1beta1.AssetStatusRef) []*rafter.File); ok { - r0 = rf(statusRef) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*rafter.File) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.AssetStatusRef) error); ok { - r1 = rf(statusRef) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// FilterByExtensionsAndExtract provides a mock function with given fields: statusRef, filterExtensions -func (_m *fileSvc) FilterByExtensionsAndExtract(statusRef *v1beta1.AssetStatusRef, filterExtensions []string) ([]*rafter.File, error) { - ret := _m.Called(statusRef, filterExtensions) - - var r0 []*rafter.File - if rf, ok := ret.Get(0).(func(*v1beta1.AssetStatusRef, []string) []*rafter.File); ok { - r0 = rf(statusRef, filterExtensions) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*rafter.File) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.AssetStatusRef, []string) error); ok { - r1 = rf(statusRef, filterExtensions) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/gql_asset_converter.go b/components/console-backend-service/internal/domain/rafter/automock/gql_asset_converter.go deleted file mode 100644 index a10edd63d177..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/gql_asset_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlAssetConverter is an autogenerated mock type for the gqlAssetConverter type -type gqlAssetConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlAssetConverter) ToGQL(in *v1beta1.Asset) (*gqlschema.Asset, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Asset - if rf, ok := ret.Get(0).(func(*v1beta1.Asset) *gqlschema.Asset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.Asset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlAssetConverter) ToGQLs(in []*v1beta1.Asset) ([]*gqlschema.Asset, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.Asset - if rf, ok := ret.Get(0).(func([]*v1beta1.Asset) []*gqlschema.Asset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.Asset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/gql_asset_group_converter.go b/components/console-backend-service/internal/domain/rafter/automock/gql_asset_group_converter.go deleted file mode 100644 index 14679410272e..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/gql_asset_group_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlAssetGroupConverter is an autogenerated mock type for the gqlAssetGroupConverter type -type gqlAssetGroupConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlAssetGroupConverter) ToGQL(in *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) { - ret := _m.Called(in) - - var r0 *gqlschema.AssetGroup - if rf, ok := ret.Get(0).(func(*v1beta1.AssetGroup) *gqlschema.AssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.AssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.AssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlAssetGroupConverter) ToGQLs(in []*v1beta1.AssetGroup) ([]gqlschema.AssetGroup, error) { - ret := _m.Called(in) - - var r0 []gqlschema.AssetGroup - if rf, ok := ret.Get(0).(func([]*v1beta1.AssetGroup) []gqlschema.AssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]gqlschema.AssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.AssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/gql_cluster_asset_converter.go b/components/console-backend-service/internal/domain/rafter/automock/gql_cluster_asset_converter.go deleted file mode 100644 index 37fc98aa33cf..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/gql_cluster_asset_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlClusterAssetConverter is an autogenerated mock type for the gqlClusterAssetConverter type -type gqlClusterAssetConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterAssetConverter) ToGQL(in *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterAsset - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterAsset) *gqlschema.ClusterAsset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterAsset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlClusterAssetConverter) ToGQLs(in []*v1beta1.ClusterAsset) ([]*gqlschema.ClusterAsset, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterAsset - if rf, ok := ret.Get(0).(func([]*v1beta1.ClusterAsset) []*gqlschema.ClusterAsset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ClusterAsset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/gql_cluster_asset_group_converter.go b/components/console-backend-service/internal/domain/rafter/automock/gql_cluster_asset_group_converter.go deleted file mode 100644 index 6f5ab87ae13c..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/gql_cluster_asset_group_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlClusterAssetGroupConverter is an autogenerated mock type for the gqlClusterAssetGroupConverter type -type gqlClusterAssetGroupConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterAssetGroupConverter) ToGQL(in *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterAssetGroup - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterAssetGroup) *gqlschema.ClusterAssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterAssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlClusterAssetGroupConverter) ToGQLs(in []*v1beta1.ClusterAssetGroup) ([]*gqlschema.ClusterAssetGroup, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterAssetGroup - if rf, ok := ret.Get(0).(func([]*v1beta1.ClusterAssetGroup) []*gqlschema.ClusterAssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ClusterAssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/gql_file_converter.go b/components/console-backend-service/internal/domain/rafter/automock/gql_file_converter.go deleted file mode 100644 index c5db74375bf7..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/gql_file_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - rafter "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" -) - -// gqlFileConverter is an autogenerated mock type for the gqlFileConverter type -type gqlFileConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: file -func (_m *gqlFileConverter) ToGQL(file *rafter.File) (*gqlschema.File, error) { - ret := _m.Called(file) - - var r0 *gqlschema.File - if rf, ok := ret.Get(0).(func(*rafter.File) *gqlschema.File); ok { - r0 = rf(file) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.File) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*rafter.File) error); ok { - r1 = rf(file) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: files -func (_m *gqlFileConverter) ToGQLs(files []*rafter.File) ([]*gqlschema.File, error) { - ret := _m.Called(files) - - var r0 []*gqlschema.File - if rf, ok := ret.Get(0).(func([]*rafter.File) []*gqlschema.File); ok { - r0 = rf(files) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.File) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*rafter.File) error); ok { - r1 = rf(files) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/automock/specification_svc.go b/components/console-backend-service/internal/domain/rafter/automock/specification_svc.go deleted file mode 100644 index c07f9ea3f1f1..000000000000 --- a/components/console-backend-service/internal/domain/rafter/automock/specification_svc.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - spec "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" -) - -// specificationSvc is an autogenerated mock type for the specificationSvc type -type specificationSvc struct { - mock.Mock -} - -// AsyncAPI provides a mock function with given fields: baseURL, name -func (_m *specificationSvc) AsyncAPI(baseURL string, name string) (*spec.AsyncAPISpec, error) { - ret := _m.Called(baseURL, name) - - var r0 *spec.AsyncAPISpec - if rf, ok := ret.Get(0).(func(string, string) *spec.AsyncAPISpec); ok { - r0 = rf(baseURL, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*spec.AsyncAPISpec) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(baseURL, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterasset_converter.go b/components/console-backend-service/internal/domain/rafter/clusterasset_converter.go deleted file mode 100644 index a27cb6125eb3..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterasset_converter.go +++ /dev/null @@ -1,63 +0,0 @@ -package rafter - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlClusterAssetConverter -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=gqlClusterAssetConverter -case=underscore -output disabled -outpkg disabled -type gqlClusterAssetConverter interface { - ToGQL(in *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) - ToGQLs(in []*v1beta1.ClusterAsset) ([]*gqlschema.ClusterAsset, error) -} - -type clusterAssetConverter struct { - extractor extractor.AssetCommonExtractor -} - -func newClusterAssetConverter() *clusterAssetConverter { - return &clusterAssetConverter{ - extractor: extractor.AssetCommonExtractor{}, - } -} - -func (c *clusterAssetConverter) ToGQL(item *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) { - if item == nil { - return nil, nil - } - - status := c.extractor.Status(item.Status.CommonAssetStatus) - parameters, err := c.extractor.Parameters(item.Spec.CommonAssetSpec.Parameters) - if err != nil { - return nil, errors.Wrapf(err, "while extracting parameters from %s [name: %s]", pretty.ClusterAssetType, item.Name) - } - - clusterAsset := gqlschema.ClusterAsset{ - Name: item.Name, - Type: item.Labels[TypeLabel], - Status: status, - Parameters: parameters, - DisplayName: item.Spec.DisplayName, - } - - return &clusterAsset, nil -} - -func (c *clusterAssetConverter) ToGQLs(in []*v1beta1.ClusterAsset) ([]*gqlschema.ClusterAsset, error) { - var result []*gqlschema.ClusterAsset - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterasset_converter_test.go b/components/console-backend-service/internal/domain/rafter/clusterasset_converter_test.go deleted file mode 100644 index 8e8b4292ef31..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterasset_converter_test.go +++ /dev/null @@ -1,121 +0,0 @@ -package rafter_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - - "k8s.io/apimachinery/pkg/runtime" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAssetConverter_ToGQL(t *testing.T) { - converter := rafter.NewClusterAssetConverter() - - t.Run("All properties are given", func(t *testing.T) { - item := fixClusterAsset() - expected := gqlschema.ClusterAsset{ - Name: "ExampleName", - Type: "ExampleType", - Status: gqlschema.AssetStatus{ - Phase: gqlschema.AssetPhaseTypeReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - Parameters: gqlschema.JSON{"complex": map[string]interface{}{"data": "true"}, "json": "true"}, - DisplayName: "ExampleDisplayName", - } - - result, err := converter.ToGQL(item) - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - _, err := converter.ToGQL(&v1beta1.ClusterAsset{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestClusterAssetConverter_ToGQLs(t *testing.T) { - converter := rafter.NewClusterAssetConverter() - - t.Run("Success", func(t *testing.T) { - clusterAssets := []*v1beta1.ClusterAsset{ - fixClusterAsset(), - fixClusterAsset(), - } - - result, err := converter.ToGQLs(clusterAssets) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "ExampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var clusterAssets []*v1beta1.ClusterAsset - - result, err := converter.ToGQLs(clusterAssets) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - clusterAssets := []*v1beta1.ClusterAsset{ - nil, - fixClusterAsset(), - nil, - } - - result, err := converter.ToGQLs(clusterAssets) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "ExampleName", result[0].Name) - }) -} - -func fixClusterAsset() *v1beta1.ClusterAsset { - return &v1beta1.ClusterAsset{ - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - Labels: map[string]string{ - rafter.TypeLabel: "ExampleType", - }, - }, - Spec: v1beta1.ClusterAssetSpec{ - CommonAssetSpec: v1beta1.CommonAssetSpec{ - Source: v1beta1.AssetSource{ - Mode: v1beta1.AssetSingle, - URL: "ExampleUrl", - }, - BucketRef: v1beta1.AssetBucketRef{ - Name: "ExampleBucketRef", - }, - Parameters: &runtime.RawExtension{Raw: []byte(`{"json":"true","complex":{"data":"true"}}`)}, - DisplayName: "ExampleDisplayName", - }, - }, - Status: v1beta1.ClusterAssetStatus{ - CommonAssetStatus: v1beta1.CommonAssetStatus{ - Phase: v1beta1.AssetReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterasset_resolver.go b/components/console-backend-service/internal/domain/rafter/clusterasset_resolver.go deleted file mode 100644 index 3a472a9ea29c..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterasset_resolver.go +++ /dev/null @@ -1,83 +0,0 @@ -package rafter - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -type clusterAssetResolver struct { - clusterAssetSvc clusterAssetSvc - clusterAssetConverter gqlClusterAssetConverter - fileService fileSvc - fileConverter gqlFileConverter -} - -func newClusterAssetResolver(clusterAssetService clusterAssetSvc, clusterAssetConverter gqlClusterAssetConverter, fileService fileSvc, fileConverter gqlFileConverter) *clusterAssetResolver { - return &clusterAssetResolver{ - clusterAssetSvc: clusterAssetService, - clusterAssetConverter: clusterAssetConverter, - fileService: fileService, - fileConverter: fileConverter, - } -} - -func (r *clusterAssetResolver) ClusterAssetFilesField(ctx context.Context, obj *gqlschema.ClusterAsset, filterExtensions []string) ([]*gqlschema.File, error) { - if obj == nil { - glog.Error(errors.Errorf("%s cannot be empty in order to resolve `files` field", pretty.ClusterAsset)) - return nil, gqlerror.NewInternal() - } - - asset, err := r.clusterAssetSvc.Find(obj.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", pretty.ClusterAsset, pretty.ClusterAsset, obj.Name)) - return nil, gqlerror.New(err, pretty.ClusterAsset) - } - - if asset == nil { - return nil, nil - } - - var items []*File - if len(filterExtensions) == 0 { - items, err = r.fileService.Extract(&asset.Status.AssetRef) - } else { - items, err = r.fileService.FilterByExtensionsAndExtract(&asset.Status.AssetRef, filterExtensions) - } - if err != nil { - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", pretty.Files, pretty.ClusterAsset, obj.Name)) - return nil, gqlerror.New(err, pretty.ClusterAsset) - } - - files, err := r.fileConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.Files)) - return nil, gqlerror.New(err, pretty.ClusterAsset) - } - - return files, nil -} - -func (r *clusterAssetResolver) ClusterAssetEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAssetEvent, error) { - channel := make(chan *gqlschema.ClusterAssetEvent, 1) - filter := func(entity *v1beta1.ClusterAsset) bool { - return entity != nil - } - - clusterAssetListener := listener.NewClusterAsset(channel, filter, r.clusterAssetConverter) - - r.clusterAssetSvc.Subscribe(clusterAssetListener) - go func() { - defer close(channel) - defer r.clusterAssetSvc.Unsubscribe(clusterAssetListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterasset_resolver_test.go b/components/console-backend-service/internal/domain/rafter/clusterasset_resolver_test.go deleted file mode 100644 index 258309011faf..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterasset_resolver_test.go +++ /dev/null @@ -1,164 +0,0 @@ -package rafter_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAssetResolver_ClusterAssetFilesField(t *testing.T) { - assetName := "exampleClusterAsset" - - t.Run("Success", func(t *testing.T) { - rawMap := fixRawMap(t) - - clusterAssetResource := &v1beta1.ClusterAsset{ - ObjectMeta: metav1.ObjectMeta{ - Name: assetName, - }, - Status: v1beta1.ClusterAssetStatus{ - CommonAssetStatus: v1beta1.CommonAssetStatus{ - AssetRef: *fixAssetStatusRef(rawMap), - }, - }, - } - filesResource := []*rafter.File{ - { - URL: "https://example.com/markdown.md", - Metadata: rawMap, - }, - { - URL: "https://example.com/apiSpec.json", - Metadata: rawMap, - }, - { - URL: "https://example.com/odata.xml", - Metadata: rawMap, - }, - } - expected := []*gqlschema.File{ - { - URL: "https://example.com/markdown.md", - Metadata: gqlschema.JSON{ - "labels": []interface{}{"test1", "test2"}, - }, - }, - { - URL: "https://example.com/apiSpec.json", - Metadata: gqlschema.JSON{ - "labels": []interface{}{"test1", "test2"}, - }, - }, - { - URL: "https://example.com/odata.xml", - Metadata: gqlschema.JSON{ - "labels": []interface{}{"test1", "test2"}, - }, - }, - } - - clusterAssetSvc := automock.NewClusterAssetService() - clusterAssetSvc.On("Find", assetName).Return(clusterAssetResource, nil).Once() - defer clusterAssetSvc.AssertExpectations(t) - - fileSvc := automock.NewFileService() - fileSvc.On("Extract", &clusterAssetResource.Status.AssetRef).Return(filesResource, nil).Once() - defer fileSvc.AssertExpectations(t) - - fileConverter := automock.NewGQLFileConverter() - fileConverter.On("ToGQLs", filesResource).Return(expected, nil) - defer fileConverter.AssertExpectations(t) - - parentObj := gqlschema.ClusterAsset{ - Name: assetName, - } - - resolver := rafter.NewClusterAssetResolver(clusterAssetSvc, nil, fileSvc, fileConverter) - - result, err := resolver.ClusterAssetFilesField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - clusterAssetSvc := automock.NewClusterAssetService() - clusterAssetSvc.On("Find", assetName).Return(nil, nil).Once() - defer clusterAssetSvc.AssertExpectations(t) - - parentObj := gqlschema.ClusterAsset{ - Name: assetName, - } - - resolver := rafter.NewClusterAssetResolver(clusterAssetSvc, nil, nil, nil) - - result, err := resolver.ClusterAssetFilesField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - - clusterAssetSvc := automock.NewClusterAssetService() - clusterAssetSvc.On("Find", assetName).Return(nil, expectedErr).Once() - defer clusterAssetSvc.AssertExpectations(t) - - parentObj := gqlschema.ClusterAsset{ - Name: assetName, - } - - resolver := rafter.NewClusterAssetResolver(clusterAssetSvc, nil, nil, nil) - - result, err := resolver.ClusterAssetFilesField(nil, &parentObj, []string{}) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClusterAssetResolver_ClusterAssetEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewClusterAssetService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewClusterAssetResolver(svc, nil, nil, nil) - - _, err := resolver.ClusterAssetEventSubscription(ctx) - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewClusterAssetService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewClusterAssetResolver(svc, nil, nil, nil) - - channel, err := resolver.ClusterAssetEventSubscription(ctx) - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterasset_service.go b/components/console-backend-service/internal/domain/rafter/clusterasset_service.go deleted file mode 100644 index c40086b5eae2..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterasset_service.go +++ /dev/null @@ -1,129 +0,0 @@ -package rafter - -import ( - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - notifierResource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" -) - -const ( - AssetGroupName_Index = "assetGroupName" - AssetGroupName_Type_Index = "assetGroupName/type" -) - -//go:generate mockery -name=clusterAssetSvc -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=clusterAssetSvc -case=underscore -output disabled -outpkg disabled -type clusterAssetSvc interface { - Find(name string) (*v1beta1.ClusterAsset, error) - ListForClusterAssetGroupByType(assetGroupName string, types []string) ([]*v1beta1.ClusterAsset, error) - Subscribe(listener notifierResource.Listener) - Unsubscribe(listener notifierResource.Listener) -} - -type clusterAssetService struct { - *resource.Service - notifier notifierResource.Notifier - extractor extractor.ClusterAssetUnstructuredExtractor -} - -func newClusterAssetService(serviceFactory *resource.ServiceFactory) (*clusterAssetService, error) { - svc := &clusterAssetService{ - Service: serviceFactory.ForResource(schema.GroupVersionResource{ - Version: v1beta1.GroupVersion.Version, - Group: v1beta1.GroupVersion.Group, - Resource: "clusterassets", - }), - extractor: extractor.ClusterAssetUnstructuredExtractor{}, - } - - svc.Informer.HasSynced() - - err := svc.AddIndexers(cache.Indexers{ - AssetGroupName_Index: func(obj interface{}) ([]string, error) { - entity, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("Cannot convert item") - } - - return []string{entity.Labels[AssetGroupLabel]}, nil - }, - AssetGroupName_Type_Index: func(obj interface{}) ([]string, error) { - entity, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s", entity.Labels[AssetGroupLabel], entity.Labels[TypeLabel])}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - notifier := notifierResource.NewNotifier() - svc.Informer.AddEventHandler(notifier) - svc.notifier = notifier - - return svc, nil -} - -func (svc *clusterAssetService) Find(name string) (*v1beta1.ClusterAsset, error) { - item, exists, err := svc.Informer.GetStore().GetByKey(name) - if err != nil || !exists { - return nil, err - } - - clusterAsset, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.ClusterAssetType) - } - - return clusterAsset, nil -} - -func (svc *clusterAssetService) ListForClusterAssetGroupByType(assetGroupName string, types []string) ([]*v1beta1.ClusterAsset, error) { - var items []interface{} - var err error - if len(types) == 0 { - items, err = svc.Informer.GetIndexer().ByIndex(AssetGroupName_Index, assetGroupName) - } else { - for _, typeArg := range types { - its, err := svc.Informer.GetIndexer().ByIndex(AssetGroupName_Type_Index, fmt.Sprintf("%s/%s", assetGroupName, typeArg)) - if err != nil { - return nil, err - } - items = append(items, its...) - } - } - - if err != nil { - return nil, err - } - - var clusterAssets []*v1beta1.ClusterAsset - for _, item := range items { - clusterAsset, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.ClusterAssetType) - } - - clusterAssets = append(clusterAssets, clusterAsset) - } - - return clusterAssets, nil -} - -func (svc *clusterAssetService) Subscribe(listener notifierResource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *clusterAssetService) Unsubscribe(listener notifierResource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterasset_service_test.go b/components/console-backend-service/internal/domain/rafter/clusterasset_service_test.go deleted file mode 100644 index caee44eed45c..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterasset_service_test.go +++ /dev/null @@ -1,185 +0,0 @@ -package rafter_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestClusterAssetService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - clusterAsset1 := fixSimpleClusterAsset("1", nil) - clusterAsset2 := fixSimpleClusterAsset("2", nil) - clusterAsset3 := fixSimpleClusterAsset("3", nil) - - service := fixFakeClusterAssetService(t, clusterAsset1, clusterAsset2, clusterAsset3) - - result, err := service.Find("1") - require.NoError(t, err) - assert.Equal(t, clusterAsset1, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - result, err := service.Find("1") - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestClusterAssetService_ListForAssetGroupByType(t *testing.T) { - t.Run("Success with assetGroupName paramater", func(t *testing.T) { - clusterAsset1 := fixSimpleClusterAsset("1", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupA", - }) - clusterAsset2 := fixSimpleClusterAsset("2", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupB", - }) - clusterAsset3 := fixSimpleClusterAsset("3", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupC", - }) - expected := []*v1beta1.ClusterAsset{clusterAsset1} - - service := fixFakeClusterAssetService(t, clusterAsset1, clusterAsset2, clusterAsset3) - - result, err := service.ListForClusterAssetGroupByType("exampleAssetGroupA", nil) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Success with whole paramaters", func(t *testing.T) { - clusterAsset1 := fixSimpleClusterAsset("1", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupA", - rafter.TypeLabel: "markdown", - }) - clusterAsset2 := fixSimpleClusterAsset("2", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupB", - rafter.TypeLabel: "json", - }) - clusterAsset3 := fixSimpleClusterAsset("3", map[string]string{ - rafter.AssetGroupLabel: "exampleAssetGroupC", - rafter.TypeLabel: "yaml", - }) - expected := []*v1beta1.ClusterAsset{clusterAsset1} - - service := fixFakeClusterAssetService(t, clusterAsset1, clusterAsset2, clusterAsset3) - - result, err := service.ListForClusterAssetGroupByType("exampleAssetGroupA", []string{"markdown"}) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - result, err := service.ListForClusterAssetGroupByType("exampleDocsTopic", nil) - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestClusterAssetService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - clusterAssetListener := listener.NewClusterAsset(nil, nil, nil) - service.Subscribe(clusterAssetListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - clusterAssetListener := listener.NewClusterAsset(nil, nil, nil) - service.Subscribe(clusterAssetListener) - service.Subscribe(clusterAssetListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - clusterAssetListenerA := listener.NewClusterAsset(nil, nil, nil) - clusterAssetListenerB := listener.NewClusterAsset(nil, nil, nil) - - service.Subscribe(clusterAssetListenerA) - service.Subscribe(clusterAssetListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - service.Subscribe(nil) - }) -} - -func TestClusterAssetService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - clusterAssetListener := listener.NewClusterAsset(nil, nil, nil) - service.Subscribe(clusterAssetListener) - service.Unsubscribe(clusterAssetListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - clusterAssetListener := listener.NewClusterAsset(nil, nil, nil) - service.Subscribe(clusterAssetListener) - service.Subscribe(clusterAssetListener) - - service.Unsubscribe(clusterAssetListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - clusterAssetListenerA := listener.NewClusterAsset(nil, nil, nil) - clusterAssetListenerB := listener.NewClusterAsset(nil, nil, nil) - - service.Subscribe(clusterAssetListenerA) - service.Subscribe(clusterAssetListenerB) - - service.Unsubscribe(clusterAssetListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeClusterAssetService(t) - - service.Unsubscribe(nil) - }) -} - -func fixFakeClusterAssetService(t *testing.T, objects ...runtime.Object) *rafter.ClusterAssetService { - serviceFactory, err := resourceFake.NewFakeServiceFactory(v1beta1.AddToScheme, objects...) - require.NoError(t, err) - - service, err := rafter.NewClusterAssetService(serviceFactory) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, service.Informer) - - return service -} - -func fixSimpleClusterAsset(name string, labels map[string]string) *v1beta1.ClusterAsset { - return &v1beta1.ClusterAsset{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAsset", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: labels, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_converter.go b/components/console-backend-service/internal/domain/rafter/clusterassetgroup_converter.go deleted file mode 100644 index 954a52217e80..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_converter.go +++ /dev/null @@ -1,56 +0,0 @@ -package rafter - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -//go:generate mockery -name=gqlClusterAssetGroupConverter -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=gqlClusterAssetGroupConverter -case=underscore -output disabled -outpkg disabled -type gqlClusterAssetGroupConverter interface { - ToGQL(in *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) - ToGQLs(in []*v1beta1.ClusterAssetGroup) ([]*gqlschema.ClusterAssetGroup, error) -} - -type clusterAssetGroupConverter struct { - extractor extractor.AssetGroupCommonExtractor -} - -func newClusterAssetGroupConverter() *clusterAssetGroupConverter { - return &clusterAssetGroupConverter{ - extractor: extractor.AssetGroupCommonExtractor{}, - } -} - -func (c *clusterAssetGroupConverter) ToGQL(item *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) { - if item == nil { - return nil, nil - } - - status := c.extractor.Status(item.Status.CommonAssetGroupStatus) - clusterAssetGroup := gqlschema.ClusterAssetGroup{ - Name: item.Name, - Description: item.Spec.Description, - DisplayName: item.Spec.DisplayName, - GroupName: item.Labels[GroupNameLabel], - Status: status, - } - - return &clusterAssetGroup, nil -} - -func (c *clusterAssetGroupConverter) ToGQLs(in []*v1beta1.ClusterAssetGroup) ([]*gqlschema.ClusterAssetGroup, error) { - var result []*gqlschema.ClusterAssetGroup - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_converter_test.go b/components/console-backend-service/internal/domain/rafter/clusterassetgroup_converter_test.go deleted file mode 100644 index c75496c6aaec..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_converter_test.go +++ /dev/null @@ -1,112 +0,0 @@ -package rafter_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAssetGroupConverter_ToGQL(t *testing.T) { - converter := rafter.NewClusterAssetGroupConverter() - - t.Run("All properties are given", func(t *testing.T) { - item := fixClusterAssetGroup() - expected := gqlschema.ClusterAssetGroup{ - Name: "ExampleName", - DisplayName: "DisplayName", - Description: "Description", - GroupName: "exampleGroupName", - Status: gqlschema.AssetGroupStatus{ - Phase: gqlschema.AssetGroupPhaseTypeReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - } - - result, err := converter.ToGQL(item) - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - _, err := converter.ToGQL(&v1beta1.ClusterAssetGroup{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestClusterDocsTopicConverter_ToGQLs(t *testing.T) { - converter := rafter.NewClusterAssetGroupConverter() - - t.Run("Success", func(t *testing.T) { - clusterAssetGroups := []*v1beta1.ClusterAssetGroup{ - fixClusterAssetGroup(), - fixClusterAssetGroup(), - } - - result, err := converter.ToGQLs(clusterAssetGroups) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "ExampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var clusterAssetGroups []*v1beta1.ClusterAssetGroup - - result, err := converter.ToGQLs(clusterAssetGroups) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - clusterAssetGroups := []*v1beta1.ClusterAssetGroup{ - nil, - fixClusterAssetGroup(), - nil, - } - - result, err := converter.ToGQLs(clusterAssetGroups) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "ExampleName", result[0].Name) - }) -} - -func fixClusterAssetGroup() *v1beta1.ClusterAssetGroup { - return &v1beta1.ClusterAssetGroup{ - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - Namespace: "ExampleNamespace", - Labels: map[string]string{ - rafter.GroupNameLabel: "exampleGroupName", - }, - }, - Spec: v1beta1.ClusterAssetGroupSpec{ - CommonAssetGroupSpec: v1beta1.CommonAssetGroupSpec{ - DisplayName: "DisplayName", - Description: "Description", - }, - }, - Status: v1beta1.ClusterAssetGroupStatus{ - CommonAssetGroupStatus: v1beta1.CommonAssetGroupStatus{ - Phase: v1beta1.AssetGroupReady, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_resolver.go b/components/console-backend-service/internal/domain/rafter/clusterassetgroup_resolver.go deleted file mode 100644 index d79f02f1d98a..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_resolver.go +++ /dev/null @@ -1,86 +0,0 @@ -package rafter - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -type clusterAssetGroupResolver struct { - clusterAssetGroupService clusterAssetGroupSvc - clusterAssetGroupConverter gqlClusterAssetGroupConverter - clusterAssetService clusterAssetSvc - clusterAssetConverter gqlClusterAssetConverter -} - -func newClusterAssetGroupResolver(clusterAssetGroupService clusterAssetGroupSvc, clusterAssetGroupConverter gqlClusterAssetGroupConverter, clusterAssetService clusterAssetSvc, clusterAssetConverter gqlClusterAssetConverter) *clusterAssetGroupResolver { - return &clusterAssetGroupResolver{ - clusterAssetGroupService: clusterAssetGroupService, - clusterAssetGroupConverter: clusterAssetGroupConverter, - clusterAssetService: clusterAssetService, - clusterAssetConverter: clusterAssetConverter, - } -} - -// possibly not used anymore after removing content-ui from the Console -// this query is to be deleted during the Rafter removal -func (r *clusterAssetGroupResolver) ClusterAssetGroupsQuery(ctx context.Context, viewContext *string, groupName *string) ([]*gqlschema.ClusterAssetGroup, error) { - items, err := r.clusterAssetGroupService.List(viewContext, groupName) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.ClusterAssetGroups)) - return nil, gqlerror.New(err, pretty.ClusterAssetGroups) - } - - clusterAssetGroups, err := r.clusterAssetGroupConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ClusterAssetGroups)) - return nil, gqlerror.New(err, pretty.ClusterAssetGroups) - } - - return clusterAssetGroups, nil -} - -func (r *clusterAssetGroupResolver) ClusterAssetGroupAssetsField(ctx context.Context, obj *gqlschema.ClusterAssetGroup, types []string) ([]*gqlschema.ClusterAsset, error) { - if obj == nil { - glog.Error(errors.Errorf("%s cannot be empty in order to resolve `assets` field", pretty.ClusterAssetGroup)) - return nil, gqlerror.NewInternal() - } - - items, err := r.clusterAssetService.ListForClusterAssetGroupByType(obj.Name, types) - if err != nil { - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", pretty.ClusterAssets, pretty.ClusterAssetGroup, obj.Name)) - return nil, gqlerror.New(err, pretty.ClusterAssets) - } - - clusterAssets, err := r.clusterAssetConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ClusterAssets)) - return nil, gqlerror.New(err, pretty.ClusterAssets) - } - - return clusterAssets, nil -} - -func (r *clusterAssetGroupResolver) ClusterAssetGroupEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAssetGroupEvent, error) { - channel := make(chan *gqlschema.ClusterAssetGroupEvent, 1) - filter := func(entity *v1beta1.ClusterAssetGroup) bool { - return entity != nil - } - - clusterAssetGroupListener := listener.NewClusterAssetGroup(channel, filter, r.clusterAssetGroupConverter) - - r.clusterAssetGroupService.Subscribe(clusterAssetGroupListener) - go func() { - defer close(channel) - defer r.clusterAssetGroupService.Unsubscribe(clusterAssetGroupListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_resolver_test.go b/components/console-backend-service/internal/domain/rafter/clusterassetgroup_resolver_test.go deleted file mode 100644 index ffb3958d0082..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_resolver_test.go +++ /dev/null @@ -1,227 +0,0 @@ -package rafter_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAssetGroupResolver_ClusterAssetGroupsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - resource := - &v1beta1.ClusterAssetGroup{ - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - }, - } - resources := []*v1beta1.ClusterAssetGroup{ - resource, resource, - } - expected := []*gqlschema.ClusterAssetGroup{ - { - Name: "Test", - }, { - Name: "Test", - }, - } - - svc := automock.NewClusterAssetGroupService() - svc.On("List", (*string)(nil), (*string)(nil)).Return(resources, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLClusterAssetGroupConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := rafter.NewClusterAssetGroupResolver(svc, converter, nil, nil) - - result, err := resolver.ClusterAssetGroupsQuery(nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var resources []*v1beta1.ClusterAssetGroup - var expected []*gqlschema.ClusterAssetGroup - - svc := automock.NewClusterAssetGroupService() - svc.On("List", (*string)(nil), (*string)(nil)).Return(resources, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLClusterAssetGroupConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := rafter.NewClusterAssetGroupResolver(svc, converter, nil, nil) - - result, err := resolver.ClusterAssetGroupsQuery(nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - var resources []*v1beta1.ClusterAssetGroup - - svc := automock.NewClusterAssetGroupService() - svc.On("List", (*string)(nil), (*string)(nil)).Return(resources, expected).Once() - defer svc.AssertExpectations(t) - - resolver := rafter.NewClusterAssetGroupResolver(svc, nil, nil, nil) - - _, err := resolver.ClusterAssetGroupsQuery(nil, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestClusterAssetGroupResolver_ClusterAssetGroupAssetsField(t *testing.T) { - assetGroupName := "exampleAssetGroup" - - t.Run("Success", func(t *testing.T) { - resources := []*v1beta1.ClusterAsset{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleClusterAssetA", - Labels: map[string]string{ - rafter.AssetGroupLabel: assetGroupName, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleClusterAssetB", - Labels: map[string]string{ - rafter.AssetGroupLabel: assetGroupName, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleClusterAssetC", - Labels: map[string]string{ - rafter.AssetGroupLabel: assetGroupName, - }, - }, - }, - } - expected := []*gqlschema.ClusterAsset{ - { - Name: "ExampleClusterAssetA", - }, - { - Name: "ExampleClusterAssetB", - }, - { - Name: "ExampleClusterAssetC", - }, - } - - clusterAssetSvc := automock.NewClusterAssetService() - clusterAssetSvc.On("ListForClusterAssetGroupByType", assetGroupName, []string{}).Return(resources, nil).Once() - defer clusterAssetSvc.AssertExpectations(t) - - clusterAssetConverter := automock.NewGQLClusterAssetConverter() - clusterAssetConverter.On("ToGQLs", resources).Return(expected, nil).Once() - defer clusterAssetConverter.AssertExpectations(t) - - parentObj := gqlschema.ClusterAssetGroup{ - Name: assetGroupName, - } - - resolver := rafter.NewClusterAssetGroupResolver(nil, nil, clusterAssetSvc, clusterAssetConverter) - - result, err := resolver.ClusterAssetGroupAssetsField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - clusterAssetSvc := automock.NewClusterAssetService() - clusterAssetSvc.On("ListForClusterAssetGroupByType", assetGroupName, []string{}).Return(nil, nil).Once() - defer clusterAssetSvc.AssertExpectations(t) - - clusterAssetConverter := automock.NewGQLClusterAssetConverter() - clusterAssetConverter.On("ToGQLs", ([]*v1beta1.ClusterAsset)(nil)).Return(nil, nil).Once() - defer clusterAssetConverter.AssertExpectations(t) - - parentObj := gqlschema.ClusterAssetGroup{ - Name: assetGroupName, - } - - resolver := rafter.NewClusterAssetGroupResolver(nil, nil, clusterAssetSvc, clusterAssetConverter) - - result, err := resolver.ClusterAssetGroupAssetsField(nil, &parentObj, []string{}) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - - clusterAssetSvc := automock.NewClusterAssetService() - clusterAssetSvc.On("ListForClusterAssetGroupByType", assetGroupName, []string{}).Return(nil, expectedErr).Once() - defer clusterAssetSvc.AssertExpectations(t) - - parentObj := gqlschema.ClusterAssetGroup{ - Name: assetGroupName, - } - - resolver := rafter.NewClusterAssetGroupResolver(nil, nil, clusterAssetSvc, nil) - - result, err := resolver.ClusterAssetGroupAssetsField(nil, &parentObj, []string{}) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClusterAssetGroupResolver_ClusterAssetGroupEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewClusterAssetGroupService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewClusterAssetGroupResolver(svc, nil, nil, nil) - - _, err := resolver.ClusterAssetGroupEventSubscription(ctx) - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewClusterAssetGroupService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := rafter.NewClusterAssetGroupResolver(svc, nil, nil, nil) - - channel, err := resolver.ClusterAssetGroupEventSubscription(ctx) - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_service.go b/components/console-backend-service/internal/domain/rafter/clusterassetgroup_service.go deleted file mode 100644 index 0efc37b0208c..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_service.go +++ /dev/null @@ -1,177 +0,0 @@ -package rafter - -import ( - "fmt" - "math" - "sort" - "strconv" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - notifierResource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" -) - -const ( - ViewContext_GroupName_Index = "viewContext/groupName" - ViewContext_Index = "viewContext" - GroupName_Index = "groupName" -) - -//go:generate mockery -name=clusterAssetGroupSvc -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=clusterAssetGroupSvc -case=underscore -output disabled -outpkg disabled -type clusterAssetGroupSvc interface { - Find(name string) (*v1beta1.ClusterAssetGroup, error) - List(viewContext *string, groupName *string) ([]*v1beta1.ClusterAssetGroup, error) - Subscribe(listener notifierResource.Listener) - Unsubscribe(listener notifierResource.Listener) -} - -type clusterAssetGroupService struct { - *resource.Service - notifier notifierResource.Notifier - extractor extractor.ClusterAssetGroupUnstructuredExtractor -} - -func newClusterAssetGroupService(serviceFactory *resource.ServiceFactory) (*clusterAssetGroupService, error) { - svc := &clusterAssetGroupService{ - Service: serviceFactory.ForResource(schema.GroupVersionResource{ - Version: v1beta1.GroupVersion.Version, - Group: v1beta1.GroupVersion.Group, - Resource: "clusterassetgroups", - }), - extractor: extractor.ClusterAssetGroupUnstructuredExtractor{}, - } - - err := svc.AddIndexers(cache.Indexers{ - ViewContext_GroupName_Index: func(obj interface{}) ([]string, error) { - entity, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s", entity.Labels[ViewContextLabel], entity.Labels[GroupNameLabel])}, nil - }, - ViewContext_Index: func(obj interface{}) ([]string, error) { - entity, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("Cannot convert item") - } - - return []string{entity.Labels[ViewContextLabel]}, nil - }, - GroupName_Index: func(obj interface{}) ([]string, error) { - entity, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("Cannot convert item") - } - - return []string{entity.Labels[GroupNameLabel]}, nil - }, - }) - if err != nil { - return nil, err - } - - notifier := notifierResource.NewNotifier() - svc.Informer.AddEventHandler(notifier) - svc.notifier = notifier - - return svc, nil -} - -func (svc *clusterAssetGroupService) Find(name string) (*v1beta1.ClusterAssetGroup, error) { - item, exists, err := svc.Informer.GetStore().GetByKey(name) - if err != nil || !exists { - return nil, err - } - - clusterAssetGroup, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.ClusterAssetGroupType) - } - - return clusterAssetGroup, nil -} - -func (svc *clusterAssetGroupService) List(viewContext *string, groupName *string) ([]*v1beta1.ClusterAssetGroup, error) { - var items []interface{} - var err error - if viewContext != nil && groupName != nil { - items, err = svc.Informer.GetIndexer().ByIndex(ViewContext_GroupName_Index, fmt.Sprintf("%s/%s", *viewContext, *groupName)) - } else if viewContext != nil { - items, err = svc.Informer.GetIndexer().ByIndex(ViewContext_Index, *viewContext) - } else if groupName != nil { - items, err = svc.Informer.GetIndexer().ByIndex(GroupName_Index, *groupName) - } else { - items = svc.Informer.GetStore().List() - } - - if err != nil { - return nil, err - } - - var clusterAssetGroups []*v1beta1.ClusterAssetGroup - for _, item := range items { - clusterAssetGroup, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.ClusterAssetGroupType) - } - - clusterAssetGroups = append(clusterAssetGroups, clusterAssetGroup) - } - - err = svc.sortByOrder(clusterAssetGroups) - if err != nil { - return nil, errors.Wrapf(err, "while sorting []*%s by order", pretty.ClusterAssetGroupType) - } - - return clusterAssetGroups, nil -} - -func (svc *clusterAssetGroupService) Subscribe(listener notifierResource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *clusterAssetGroupService) Unsubscribe(listener notifierResource.Listener) { - svc.notifier.DeleteListener(listener) -} - -func (svc *clusterAssetGroupService) sortByOrder(assetGroups []*v1beta1.ClusterAssetGroup) error { - parseString := func(str string) (uint8, error) { - if str == "" { - return math.MaxUint8, nil - } - - i, err := strconv.ParseInt(str, 10, 16) - if err != nil { - return uint8(0), err - } - return uint8(i), nil - } - - var err error - sort.Slice(assetGroups, func(i, j int) bool { - if err != nil { - return false - } - - firstItem, err := parseString(assetGroups[i].Labels[OrderLabel]) - if err != nil { - return false - } - - secondItem, err := parseString(assetGroups[j].Labels[OrderLabel]) - if err != nil { - return false - } - - return firstItem < secondItem - }) - - return err -} diff --git a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_service_test.go b/components/console-backend-service/internal/domain/rafter/clusterassetgroup_service_test.go deleted file mode 100644 index 838f23aa9ece..000000000000 --- a/components/console-backend-service/internal/domain/rafter/clusterassetgroup_service_test.go +++ /dev/null @@ -1,262 +0,0 @@ -package rafter_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestClusterAssetGroupService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - clusterAssetGroup1 := fixSimpleClusterAssetGroup("1", nil) - clusterAssetGroup2 := fixSimpleClusterAssetGroup("2", nil) - clusterAssetGroup3 := fixSimpleClusterAssetGroup("3", nil) - - service := fixFakeClusterAssetGroupService(t, clusterAssetGroup1, clusterAssetGroup2, clusterAssetGroup3) - - result, err := service.Find("1") - require.NoError(t, err) - assert.Equal(t, clusterAssetGroup1, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - result, err := service.Find("1") - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestClusterAssetGroupService_List(t *testing.T) { - t.Run("Success without parameters", func(t *testing.T) { - clusterAssetGroup1 := fixSimpleClusterAssetGroup("1", map[string]string{ - rafter.OrderLabel: "1", - }) - clusterAssetGroup2 := fixSimpleClusterAssetGroup("2", map[string]string{ - rafter.OrderLabel: "2", - }) - clusterAssetGroup3 := fixSimpleClusterAssetGroup("3", map[string]string{ - rafter.OrderLabel: "3", - }) - expected := []*v1beta1.ClusterAssetGroup{ - clusterAssetGroup1, - clusterAssetGroup2, - clusterAssetGroup3, - } - - service := fixFakeClusterAssetGroupService(t, clusterAssetGroup1, clusterAssetGroup2, clusterAssetGroup3) - - result, err := service.List(nil, nil) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Success with all parameters", func(t *testing.T) { - viewContext := "viewContext" - groupName := "groupName" - clusterAssetGroup1 := fixSimpleClusterAssetGroup("1", map[string]string{ - rafter.ViewContextLabel: viewContext, - rafter.GroupNameLabel: groupName, - }) - clusterAssetGroup2 := fixSimpleClusterAssetGroup("2", map[string]string{ - rafter.ViewContextLabel: "viewContext2", - rafter.GroupNameLabel: "groupName2", - }) - clusterAssetGroup3 := fixSimpleClusterAssetGroup("3", map[string]string{ - rafter.ViewContextLabel: "viewContext3", - rafter.GroupNameLabel: "groupName3", - }) - expected := []*v1beta1.ClusterAssetGroup{ - clusterAssetGroup1, - } - - service := fixFakeClusterAssetGroupService(t, clusterAssetGroup1, clusterAssetGroup2, clusterAssetGroup3) - - result, err := service.List(&viewContext, &groupName) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Success with viewContext parameter", func(t *testing.T) { - viewContext := "viewContext" - clusterAssetGroup1 := fixSimpleClusterAssetGroup("1", map[string]string{ - rafter.ViewContextLabel: viewContext, - }) - clusterAssetGroup2 := fixSimpleClusterAssetGroup("2", map[string]string{ - rafter.ViewContextLabel: "viewContext2", - }) - clusterAssetGroup3 := fixSimpleClusterAssetGroup("3", map[string]string{ - rafter.ViewContextLabel: "viewContext3", - }) - expected := []*v1beta1.ClusterAssetGroup{ - clusterAssetGroup1, - } - - service := fixFakeClusterAssetGroupService(t, clusterAssetGroup1, clusterAssetGroup2, clusterAssetGroup3) - - result, err := service.List(&viewContext, nil) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Success with groupName parameter", func(t *testing.T) { - groupName := "groupName" - clusterAssetGroup1 := fixSimpleClusterAssetGroup("1", map[string]string{ - rafter.GroupNameLabel: groupName, - }) - clusterAssetGroup2 := fixSimpleClusterAssetGroup("2", map[string]string{ - rafter.GroupNameLabel: "groupName2", - }) - clusterAssetGroup3 := fixSimpleClusterAssetGroup("3", map[string]string{ - rafter.GroupNameLabel: "groupName3", - }) - expected := []*v1beta1.ClusterAssetGroup{ - clusterAssetGroup1, - } - - service := fixFakeClusterAssetGroupService(t, clusterAssetGroup1, clusterAssetGroup2, clusterAssetGroup3) - - result, err := service.List(nil, &groupName) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Success with sorting function", func(t *testing.T) { - clusterAssetGroup1 := fixSimpleClusterAssetGroup("1", map[string]string{ - rafter.OrderLabel: "1", - }) - clusterAssetGroup2 := fixSimpleClusterAssetGroup("2", map[string]string{ - rafter.OrderLabel: "2", - }) - clusterAssetGroup3 := fixSimpleClusterAssetGroup("3", map[string]string{ - rafter.OrderLabel: "3", - }) - clusterAssetGroup4 := fixSimpleClusterAssetGroup("4", nil) - expected := []*v1beta1.ClusterAssetGroup{ - clusterAssetGroup1, - clusterAssetGroup2, - clusterAssetGroup3, - clusterAssetGroup4, - } - - service := fixFakeClusterAssetGroupService(t, clusterAssetGroup2, clusterAssetGroup1, clusterAssetGroup4, clusterAssetGroup3) - - result, err := service.List(nil, nil) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - result, err := service.List(nil, nil) - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestClusterAssetGroupService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, nil, nil) - service.Subscribe(clusterAssetGroupListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, nil, nil) - service.Subscribe(clusterAssetGroupListener) - service.Subscribe(clusterAssetGroupListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - clusterAssetGroupListenerA := listener.NewClusterAssetGroup(nil, nil, nil) - clusterAssetGroupListenerB := listener.NewClusterAssetGroup(nil, nil, nil) - - service.Subscribe(clusterAssetGroupListenerA) - service.Subscribe(clusterAssetGroupListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - service.Subscribe(nil) - }) -} - -func TestClusterAssetGroupService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, nil, nil) - service.Subscribe(clusterAssetGroupListener) - service.Unsubscribe(clusterAssetGroupListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, nil, nil) - service.Subscribe(clusterAssetGroupListener) - service.Subscribe(clusterAssetGroupListener) - - service.Unsubscribe(clusterAssetGroupListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - clusterAssetGroupListenerA := listener.NewClusterAssetGroup(nil, nil, nil) - clusterAssetGroupListenerB := listener.NewClusterAssetGroup(nil, nil, nil) - - service.Subscribe(clusterAssetGroupListenerA) - service.Subscribe(clusterAssetGroupListenerB) - - service.Unsubscribe(clusterAssetGroupListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeClusterAssetGroupService(t) - - service.Unsubscribe(nil) - }) -} - -func fixFakeClusterAssetGroupService(t *testing.T, objects ...runtime.Object) *rafter.ClusterAssetGroupService { - serviceFactory, err := resourceFake.NewFakeServiceFactory(v1beta1.AddToScheme, objects...) - require.NoError(t, err) - - service, err := rafter.NewClusterAssetGroupService(serviceFactory) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, service.Informer) - - return service -} - -func fixSimpleClusterAssetGroup(name string, labels map[string]string) *v1beta1.ClusterAssetGroup { - return &v1beta1.ClusterAssetGroup{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAssetGroup", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: labels, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/asset_group_svc.go b/components/console-backend-service/internal/domain/rafter/disabled/asset_group_svc.go deleted file mode 100644 index 6bf3bf9cd163..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/asset_group_svc.go +++ /dev/null @@ -1,35 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// assetGroupSvc is an autogenerated failing mock type for the assetGroupSvc type -type assetGroupSvc struct { - err error -} - -// NewAssetGroupSvc creates a new assetGroupSvc type instance -func NewAssetGroupSvc(err error) *assetGroupSvc { - return &assetGroupSvc{err: err} -} - -// Find provides a failing mock function with given fields: namespace, name -func (_m *assetGroupSvc) Find(namespace string, name string) (*v1beta1.AssetGroup, error) { - var r0 *v1beta1.AssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// Subscribe provides a failing mock function with given fields: listener -func (_m *assetGroupSvc) Subscribe(listener resource.Listener) { -} - -// Unsubscribe provides a failing mock function with given fields: listener -func (_m *assetGroupSvc) Unsubscribe(listener resource.Listener) { -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/asset_svc.go b/components/console-backend-service/internal/domain/rafter/disabled/asset_svc.go deleted file mode 100644 index 60a816437548..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/asset_svc.go +++ /dev/null @@ -1,44 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// assetSvc is an autogenerated failing mock type for the assetSvc type -type assetSvc struct { - err error -} - -// NewAssetSvc creates a new assetSvc type instance -func NewAssetSvc(err error) *assetSvc { - return &assetSvc{err: err} -} - -// Find provides a failing mock function with given fields: namespace, name -func (_m *assetSvc) Find(namespace string, name string) (*v1beta1.Asset, error) { - var r0 *v1beta1.Asset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ListForAssetGroupByType provides a failing mock function with given fields: namespace, assetGroupName, types -func (_m *assetSvc) ListForAssetGroupByType(namespace string, assetGroupName string, types []string) ([]*v1beta1.Asset, error) { - var r0 []*v1beta1.Asset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// Subscribe provides a failing mock function with given fields: listener -func (_m *assetSvc) Subscribe(listener resource.Listener) { -} - -// Unsubscribe provides a failing mock function with given fields: listener -func (_m *assetSvc) Unsubscribe(listener resource.Listener) { -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/cluster_asset_group_svc.go b/components/console-backend-service/internal/domain/rafter/disabled/cluster_asset_group_svc.go deleted file mode 100644 index 191a81d600f5..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/cluster_asset_group_svc.go +++ /dev/null @@ -1,44 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// clusterAssetGroupSvc is an autogenerated failing mock type for the clusterAssetGroupSvc type -type clusterAssetGroupSvc struct { - err error -} - -// NewClusterAssetGroupSvc creates a new clusterAssetGroupSvc type instance -func NewClusterAssetGroupSvc(err error) *clusterAssetGroupSvc { - return &clusterAssetGroupSvc{err: err} -} - -// Find provides a failing mock function with given fields: name -func (_m *clusterAssetGroupSvc) Find(name string) (*v1beta1.ClusterAssetGroup, error) { - var r0 *v1beta1.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// List provides a failing mock function with given fields: viewContext, groupName -func (_m *clusterAssetGroupSvc) List(viewContext *string, groupName *string) ([]*v1beta1.ClusterAssetGroup, error) { - var r0 []*v1beta1.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// Subscribe provides a failing mock function with given fields: listener -func (_m *clusterAssetGroupSvc) Subscribe(listener resource.Listener) { -} - -// Unsubscribe provides a failing mock function with given fields: listener -func (_m *clusterAssetGroupSvc) Unsubscribe(listener resource.Listener) { -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/cluster_asset_svc.go b/components/console-backend-service/internal/domain/rafter/disabled/cluster_asset_svc.go deleted file mode 100644 index bb7b4493d1c9..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/cluster_asset_svc.go +++ /dev/null @@ -1,44 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// clusterAssetSvc is an autogenerated failing mock type for the clusterAssetSvc type -type clusterAssetSvc struct { - err error -} - -// NewClusterAssetSvc creates a new clusterAssetSvc type instance -func NewClusterAssetSvc(err error) *clusterAssetSvc { - return &clusterAssetSvc{err: err} -} - -// Find provides a failing mock function with given fields: name -func (_m *clusterAssetSvc) Find(name string) (*v1beta1.ClusterAsset, error) { - var r0 *v1beta1.ClusterAsset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ListForClusterAssetGroupByType provides a failing mock function with given fields: assetGroupName, types -func (_m *clusterAssetSvc) ListForClusterAssetGroupByType(assetGroupName string, types []string) ([]*v1beta1.ClusterAsset, error) { - var r0 []*v1beta1.ClusterAsset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// Subscribe provides a failing mock function with given fields: listener -func (_m *clusterAssetSvc) Subscribe(listener resource.Listener) { -} - -// Unsubscribe provides a failing mock function with given fields: listener -func (_m *clusterAssetSvc) Unsubscribe(listener resource.Listener) { -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/gql_asset_converter.go b/components/console-backend-service/internal/domain/rafter/disabled/gql_asset_converter.go deleted file mode 100644 index de073dbc244f..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/gql_asset_converter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlAssetConverter is an autogenerated failing mock type for the gqlAssetConverter type -type gqlAssetConverter struct { - err error -} - -// NewGqlAssetConverter creates a new gqlAssetConverter type instance -func NewGqlAssetConverter(err error) *gqlAssetConverter { - return &gqlAssetConverter{err: err} -} - -// ToGQL provides a failing mock function with given fields: in -func (_m *gqlAssetConverter) ToGQL(in *v1beta1.Asset) (*gqlschema.Asset, error) { - var r0 *gqlschema.Asset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ToGQLs provides a failing mock function with given fields: in -func (_m *gqlAssetConverter) ToGQLs(in []*v1beta1.Asset) ([]*gqlschema.Asset, error) { - var r0 []*gqlschema.Asset - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/gql_asset_group_converter.go b/components/console-backend-service/internal/domain/rafter/disabled/gql_asset_group_converter.go deleted file mode 100644 index 185cd0141ae4..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/gql_asset_group_converter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlAssetGroupConverter is an autogenerated failing mock type for the gqlAssetGroupConverter type -type gqlAssetGroupConverter struct { - err error -} - -// NewGqlAssetGroupConverter creates a new gqlAssetGroupConverter type instance -func NewGqlAssetGroupConverter(err error) *gqlAssetGroupConverter { - return &gqlAssetGroupConverter{err: err} -} - -// ToGQL provides a failing mock function with given fields: in -func (_m *gqlAssetGroupConverter) ToGQL(in *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) { - var r0 *gqlschema.AssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ToGQLs provides a failing mock function with given fields: in -func (_m *gqlAssetGroupConverter) ToGQLs(in []*v1beta1.AssetGroup) ([]gqlschema.AssetGroup, error) { - var r0 []gqlschema.AssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/gql_cluster_asset_converter.go b/components/console-backend-service/internal/domain/rafter/disabled/gql_cluster_asset_converter.go deleted file mode 100644 index e92d81f847da..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/gql_cluster_asset_converter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlClusterAssetConverter is an autogenerated failing mock type for the gqlClusterAssetConverter type -type gqlClusterAssetConverter struct { - err error -} - -// NewGqlClusterAssetConverter creates a new gqlClusterAssetConverter type instance -func NewGqlClusterAssetConverter(err error) *gqlClusterAssetConverter { - return &gqlClusterAssetConverter{err: err} -} - -// ToGQL provides a failing mock function with given fields: in -func (_m *gqlClusterAssetConverter) ToGQL(in *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) { - var r0 *gqlschema.ClusterAsset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ToGQLs provides a failing mock function with given fields: in -func (_m *gqlClusterAssetConverter) ToGQLs(in []*v1beta1.ClusterAsset) ([]*gqlschema.ClusterAsset, error) { - var r0 []*gqlschema.ClusterAsset - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/gql_cluster_asset_group_converter.go b/components/console-backend-service/internal/domain/rafter/disabled/gql_cluster_asset_group_converter.go deleted file mode 100644 index 5e4cd89f2d51..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/gql_cluster_asset_group_converter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlClusterAssetGroupConverter is an autogenerated failing mock type for the gqlClusterAssetGroupConverter type -type gqlClusterAssetGroupConverter struct { - err error -} - -// NewGqlClusterAssetGroupConverter creates a new gqlClusterAssetGroupConverter type instance -func NewGqlClusterAssetGroupConverter(err error) *gqlClusterAssetGroupConverter { - return &gqlClusterAssetGroupConverter{err: err} -} - -// ToGQL provides a failing mock function with given fields: in -func (_m *gqlClusterAssetGroupConverter) ToGQL(in *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) { - var r0 *gqlschema.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ToGQLs provides a failing mock function with given fields: in -func (_m *gqlClusterAssetGroupConverter) ToGQLs(in []*v1beta1.ClusterAssetGroup) ([]*gqlschema.ClusterAssetGroup, error) { - var r0 []*gqlschema.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/resolver.go b/components/console-backend-service/internal/domain/rafter/disabled/resolver.go deleted file mode 100644 index 0b1514f1122e..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/resolver.go +++ /dev/null @@ -1,100 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - context "context" - - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -// Resolver is an autogenerated failing mock type for the Resolver type -type Resolver struct { - err error -} - -// NewResolver creates a new Resolver type instance -func NewResolver(err error) *Resolver { - return &Resolver{err: err} -} - -// AssetEventSubscription provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) AssetEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AssetEvent, error) { - var r0 <-chan *gqlschema.AssetEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AssetFilesField provides a failing mock function with given fields: ctx, obj, filterExtensions -func (_m *Resolver) AssetFilesField(ctx context.Context, obj *gqlschema.Asset, filterExtensions []string) ([]*gqlschema.File, error) { - var r0 []*gqlschema.File - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AssetGroupAssetsField provides a failing mock function with given fields: ctx, obj, types -func (_m *Resolver) AssetGroupAssetsField(ctx context.Context, obj *gqlschema.AssetGroup, types []string) ([]*gqlschema.Asset, error) { - var r0 []*gqlschema.Asset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AssetGroupEventSubscription provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) AssetGroupEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AssetGroupEvent, error) { - var r0 <-chan *gqlschema.AssetGroupEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterAssetEventSubscription provides a failing mock function with given fields: ctx -func (_m *Resolver) ClusterAssetEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAssetEvent, error) { - var r0 <-chan *gqlschema.ClusterAssetEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterAssetFilesField provides a failing mock function with given fields: ctx, obj, filterExtensions -func (_m *Resolver) ClusterAssetFilesField(ctx context.Context, obj *gqlschema.ClusterAsset, filterExtensions []string) ([]*gqlschema.File, error) { - var r0 []*gqlschema.File - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterAssetGroupAssetsField provides a failing mock function with given fields: ctx, obj, types -func (_m *Resolver) ClusterAssetGroupAssetsField(ctx context.Context, obj *gqlschema.ClusterAssetGroup, types []string) ([]*gqlschema.ClusterAsset, error) { - var r0 []*gqlschema.ClusterAsset - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterAssetGroupEventSubscription provides a failing mock function with given fields: ctx -func (_m *Resolver) ClusterAssetGroupEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAssetGroupEvent, error) { - var r0 <-chan *gqlschema.ClusterAssetGroupEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterAssetGroupsQuery provides a failing mock function with given fields: ctx, viewContext, groupName -func (_m *Resolver) ClusterAssetGroupsQuery(ctx context.Context, viewContext *string, groupName *string) ([]*gqlschema.ClusterAssetGroup, error) { - var r0 []*gqlschema.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/disabled/specification_svc.go b/components/console-backend-service/internal/domain/rafter/disabled/specification_svc.go deleted file mode 100644 index f058e221786f..000000000000 --- a/components/console-backend-service/internal/domain/rafter/disabled/specification_svc.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import spec "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" - -// specificationSvc is an autogenerated failing mock type for the specificationSvc type -type specificationSvc struct { - err error -} - -// NewSpecificationSvc creates a new specificationSvc type instance -func NewSpecificationSvc(err error) *specificationSvc { - return &specificationSvc{err: err} -} - -// AsyncAPI provides a failing mock function with given fields: baseURL, name -func (_m *specificationSvc) AsyncAPI(baseURL string, name string) (*spec.AsyncAPISpec, error) { - var r0 *spec.AsyncAPISpec - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/export_test.go b/components/console-backend-service/internal/domain/rafter/export_test.go deleted file mode 100644 index 3f889c8ec13c..000000000000 --- a/components/console-backend-service/internal/domain/rafter/export_test.go +++ /dev/null @@ -1,93 +0,0 @@ -package rafter - -import ( - "net/http" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -func NewClusterAssetResolver(clusterAssetService clusterAssetSvc, clusterAssetConverter gqlClusterAssetConverter, fileService fileSvc, fileConverter gqlFileConverter) *clusterAssetResolver { - return newClusterAssetResolver(clusterAssetService, clusterAssetConverter, fileService, fileConverter) -} - -type ClusterAssetService = clusterAssetService - -func NewClusterAssetService(serviceFactory *resource.ServiceFactory) (*clusterAssetService, error) { - return newClusterAssetService(serviceFactory) -} - -func NewClusterAssetConverter() *clusterAssetConverter { - return newClusterAssetConverter() -} - -func NewAssetResolver(assetService assetSvc, assetConverter gqlAssetConverter, fileService fileSvc, fileConverter gqlFileConverter) *assetResolver { - return newAssetResolver(assetService, assetConverter, fileService, fileConverter) -} - -type AssetService = assetService - -func NewAssetService(serviceFactory *resource.ServiceFactory) (*assetService, error) { - return newAssetService(serviceFactory) -} - -func NewAssetConverter() *assetConverter { - return newAssetConverter() -} - -func NewClusterAssetGroupResolver(clusterAssetGroupService clusterAssetGroupSvc, clusterAssetGroupConverter gqlClusterAssetGroupConverter, clusterAssetService clusterAssetSvc, clusterAssetConverter gqlClusterAssetConverter) *clusterAssetGroupResolver { - return newClusterAssetGroupResolver(clusterAssetGroupService, clusterAssetGroupConverter, clusterAssetService, clusterAssetConverter) -} - -type ClusterAssetGroupService = clusterAssetGroupService - -func NewClusterAssetGroupService(serviceFactory *resource.ServiceFactory) (*clusterAssetGroupService, error) { - return newClusterAssetGroupService(serviceFactory) -} - -func NewClusterAssetGroupConverter() *clusterAssetGroupConverter { - return newClusterAssetGroupConverter() -} - -func NewAssetGroupResolver(assetGroupService assetGroupSvc, assetGroupConverter gqlAssetGroupConverter, assetService assetSvc, assetConverter gqlAssetConverter) *assetGroupResolver { - return newAssetGroupResolver(assetGroupService, assetGroupConverter, assetService, assetConverter) -} - -type AssetGroupService = assetGroupService - -func NewAssetGroupService(serviceFactory *resource.ServiceFactory) (*assetGroupService, error) { - return newAssetGroupService(serviceFactory) -} - -func NewAssetGroupConverter() *assetGroupConverter { - return newAssetGroupConverter() -} - -func NewFileService() *fileService { - return newFileService() -} - -func NewFileConverter() *fileConverter { - return newFileConverter() -} - -type SpecificationService = specificationService - -func NewSpecificationService(cfg Config, endpoint string, client *http.Client) *SpecificationService { - return &SpecificationService{ - cfg: cfg, - endpoint: endpoint, - client: client, - } -} - -func (s *SpecificationService) ReadData(baseURL, name string) ([]byte, error) { - return s.readData(baseURL, name) -} - -func (s *SpecificationService) PreparePath(baseURL, name string) string { - return s.preparePath(baseURL, name) -} - -func (s *SpecificationService) Fetch(url string) ([]byte, error) { - return s.fetch(url) -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/asset_common.go b/components/console-backend-service/internal/domain/rafter/extractor/asset_common.go deleted file mode 100644 index e95c60900c06..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/asset_common.go +++ /dev/null @@ -1,45 +0,0 @@ -package extractor - -import ( - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime" -) - -type AssetCommonExtractor struct{} - -func (e *AssetCommonExtractor) Status(status v1beta1.CommonAssetStatus) gqlschema.AssetStatus { - return gqlschema.AssetStatus{ - Phase: e.phase(status.Phase), - Reason: string(status.Reason), - Message: status.Message, - } -} - -func (*AssetCommonExtractor) Parameters(parameters *runtime.RawExtension) (map[string]interface{}, error) { - result := make(map[string]interface{}) - if parameters == nil { - return result, nil - } - - err := json.Unmarshal(parameters.Raw, &result) - if err != nil { - return nil, errors.Wrap(err, "while unmarshalling parameters") - } - - return result, nil -} - -func (e *AssetCommonExtractor) phase(phase v1beta1.AssetPhase) gqlschema.AssetPhaseType { - switch phase { - case v1beta1.AssetReady: - return gqlschema.AssetPhaseTypeReady - case v1beta1.AssetPending: - return gqlschema.AssetPhaseTypePending - default: - return gqlschema.AssetPhaseTypeFailed - } -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/asset_common_test.go b/components/console-backend-service/internal/domain/rafter/extractor/asset_common_test.go deleted file mode 100644 index d421d7c421c7..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/asset_common_test.go +++ /dev/null @@ -1,121 +0,0 @@ -package extractor_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestAssetCommonExtractor_Metadata(t *testing.T) { - t.Run("Filled", func(t *testing.T) { - // given - parameters := &runtime.RawExtension{Raw: []byte(`{"json":"true","complex":{"data":"true"}}`)} - expected := map[string]interface{}{"complex": map[string]interface{}{"data": "true"}, "json": "true"} - converter := new(extractor.AssetCommonExtractor) - - // when - result, err := converter.Parameters(parameters) - - // then - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - // given - parameters := &runtime.RawExtension{Raw: []byte(`{}`)} - expected := make(map[string]interface{}) - converter := new(extractor.AssetCommonExtractor) - - // when - result, err := converter.Parameters(parameters) - - // then - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - // given - expected := make(map[string]interface{}) - converter := new(extractor.AssetCommonExtractor) - - // when - result, err := converter.Parameters(nil) - - // then - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Invalid", func(t *testing.T) { - // given - parameters := &runtime.RawExtension{Raw: []byte(`{invalid`)} - converter := new(extractor.AssetCommonExtractor) - - // when - _, err := converter.Parameters(parameters) - - // then - require.Error(t, err) - }) -} - -func TestAssetCommonExtractor_Status(t *testing.T) { - t.Run("Pending", func(t *testing.T) { - // given - status := v1beta1.CommonAssetStatus{Phase: v1beta1.AssetPending, Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetStatus{Phase: gqlschema.AssetPhaseTypePending, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) - - t.Run("Ready", func(t *testing.T) { - // given - status := v1beta1.CommonAssetStatus{Phase: v1beta1.AssetReady, Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetStatus{Phase: gqlschema.AssetPhaseTypeReady, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) - - t.Run("Failed", func(t *testing.T) { - // given - status := v1beta1.CommonAssetStatus{Phase: v1beta1.AssetFailed, Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetStatus{Phase: gqlschema.AssetPhaseTypeFailed, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) - - t.Run("Phase unknown", func(t *testing.T) { - // given - status := v1beta1.CommonAssetStatus{Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetStatus{Phase: gqlschema.AssetPhaseTypeFailed, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/asset_unstructured.go b/components/console-backend-service/internal/domain/rafter/extractor/asset_unstructured.go deleted file mode 100644 index 0cb87fc3066b..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/asset_unstructured.go +++ /dev/null @@ -1,19 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -type AssetUnstructuredExtractor struct{} - -func (e *AssetUnstructuredExtractor) Do(obj interface{}) (*v1beta1.Asset, error) { - u, err := resource.ToUnstructured(obj) - if err != nil || u == nil { - return nil, err - } - - asset := &v1beta1.Asset{} - err = resource.FromUnstructured(u, asset) - return asset, err -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/asset_unstructured_test.go b/components/console-backend-service/internal/domain/rafter/extractor/asset_unstructured_test.go deleted file mode 100644 index c66e1cad9a00..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/asset_unstructured_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package extractor_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAssetUnstructuredExtractor_Do(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := extractor.AssetUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1beta1.GroupVersion.String(), "Asset", map[string]interface{}{ - "name": "ExampleName", - "namespace": "ExampleNamespace", - }, nil, nil) - expected := &v1beta1.Asset{ - TypeMeta: metav1.TypeMeta{ - Kind: "Asset", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - Namespace: "ExampleNamespace", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := extractor.AssetUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := extractor.AssetUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_common.go b/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_common.go deleted file mode 100644 index cdf509f236d6..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_common.go +++ /dev/null @@ -1,27 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -type AssetGroupCommonExtractor struct{} - -func (e *AssetGroupCommonExtractor) Status(status v1beta1.CommonAssetGroupStatus) gqlschema.AssetGroupStatus { - return gqlschema.AssetGroupStatus{ - Phase: e.phase(status.Phase), - Reason: string(status.Reason), - Message: status.Message, - } -} - -func (e *AssetGroupCommonExtractor) phase(phase v1beta1.AssetGroupPhase) gqlschema.AssetGroupPhaseType { - switch phase { - case v1beta1.AssetGroupReady: - return gqlschema.AssetGroupPhaseTypeReady - case v1beta1.AssetGroupPending: - return gqlschema.AssetGroupPhaseTypePending - default: - return gqlschema.AssetGroupPhaseTypeFailed - } -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_common_test.go b/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_common_test.go deleted file mode 100644 index 93c4d28d3913..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_common_test.go +++ /dev/null @@ -1,64 +0,0 @@ -package extractor_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" -) - -func TestAssetGroupCommonExtractor_Status(t *testing.T) { - t.Run("Pending", func(t *testing.T) { - // given - status := v1beta1.CommonAssetGroupStatus{Phase: v1beta1.AssetGroupPending, Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetGroupStatus{Phase: gqlschema.AssetGroupPhaseTypePending, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetGroupCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) - - t.Run("Ready", func(t *testing.T) { - // given - status := v1beta1.CommonAssetGroupStatus{Phase: v1beta1.AssetGroupReady, Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetGroupStatus{Phase: gqlschema.AssetGroupPhaseTypeReady, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetGroupCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) - - t.Run("Failed", func(t *testing.T) { - // given - status := v1beta1.CommonAssetGroupStatus{Phase: v1beta1.AssetGroupFailed, Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetGroupStatus{Phase: gqlschema.AssetGroupPhaseTypeFailed, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetGroupCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) - - t.Run("Phase unknown", func(t *testing.T) { - // given - status := v1beta1.CommonAssetGroupStatus{Reason: "test reason", Message: "test message"} - expected := gqlschema.AssetGroupStatus{Phase: gqlschema.AssetGroupPhaseTypeFailed, Reason: "test reason", Message: "test message"} - converter := new(extractor.AssetGroupCommonExtractor) - - // when - result := converter.Status(status) - - // then - assert.Equal(t, expected, result) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_unstructured.go b/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_unstructured.go deleted file mode 100644 index a23cd3e04740..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_unstructured.go +++ /dev/null @@ -1,19 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -type AssetGroupUnstructuredExtractor struct{} - -func (e *AssetGroupUnstructuredExtractor) Do(obj interface{}) (*v1beta1.AssetGroup, error) { - u, err := resource.ToUnstructured(obj) - if err != nil || u == nil { - return nil, err - } - - assetGroup := &v1beta1.AssetGroup{} - err = resource.FromUnstructured(u, assetGroup) - return assetGroup, err -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_unstructured_test.go b/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_unstructured_test.go deleted file mode 100644 index bb17bcfddbdb..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/assetgroup_unstructured_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package extractor_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAssetGroupUnstructuredExtractor_Do(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := extractor.AssetGroupUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1beta1.GroupVersion.String(), "AssetGroup", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1beta1.AssetGroup{ - TypeMeta: metav1.TypeMeta{ - Kind: "AssetGroup", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := extractor.AssetGroupUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := extractor.AssetGroupUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/clusterasset_unstructured.go b/components/console-backend-service/internal/domain/rafter/extractor/clusterasset_unstructured.go deleted file mode 100644 index 29544f101b71..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/clusterasset_unstructured.go +++ /dev/null @@ -1,19 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -type ClusterAssetUnstructuredExtractor struct{} - -func (e *ClusterAssetUnstructuredExtractor) Do(obj interface{}) (*v1beta1.ClusterAsset, error) { - u, err := resource.ToUnstructured(obj) - if err != nil || u == nil { - return nil, err - } - - clusterAsset := &v1beta1.ClusterAsset{} - err = resource.FromUnstructured(u, clusterAsset) - return clusterAsset, err -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/clusterasset_unstructured_test.go b/components/console-backend-service/internal/domain/rafter/extractor/clusterasset_unstructured_test.go deleted file mode 100644 index 187c431d47a9..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/clusterasset_unstructured_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package extractor_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAssetUnstructuredExtractor_Do(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := extractor.ClusterAssetUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1beta1.GroupVersion.String(), "ClusterAsset", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1beta1.ClusterAsset{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAsset", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := extractor.ClusterAssetUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := extractor.ClusterAssetUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/clusterassetgroup_unstructured.go b/components/console-backend-service/internal/domain/rafter/extractor/clusterassetgroup_unstructured.go deleted file mode 100644 index f2ea92fc25ac..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/clusterassetgroup_unstructured.go +++ /dev/null @@ -1,19 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -type ClusterAssetGroupUnstructuredExtractor struct{} - -func (e *ClusterAssetGroupUnstructuredExtractor) Do(obj interface{}) (*v1beta1.ClusterAssetGroup, error) { - u, err := resource.ToUnstructured(obj) - if err != nil || u == nil { - return nil, err - } - - clusterAssetGroup := &v1beta1.ClusterAssetGroup{} - err = resource.FromUnstructured(u, clusterAssetGroup) - return clusterAssetGroup, err -} diff --git a/components/console-backend-service/internal/domain/rafter/extractor/clusterassetgroup_unstructured_test.go b/components/console-backend-service/internal/domain/rafter/extractor/clusterassetgroup_unstructured_test.go deleted file mode 100644 index ad98adf89a30..000000000000 --- a/components/console-backend-service/internal/domain/rafter/extractor/clusterassetgroup_unstructured_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package extractor_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAssetGroupUnstructuredExtractor_Do(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := extractor.ClusterAssetGroupUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1beta1.GroupVersion.String(), "ClusterAssetGroup", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1beta1.ClusterAssetGroup{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAssetGroup", - APIVersion: v1beta1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := extractor.ClusterAssetGroupUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := extractor.ClusterAssetGroupUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/rafter/file_converter.go b/components/console-backend-service/internal/domain/rafter/file_converter.go deleted file mode 100644 index d07deba7e775..000000000000 --- a/components/console-backend-service/internal/domain/rafter/file_converter.go +++ /dev/null @@ -1,71 +0,0 @@ -package rafter - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime" -) - -//go:generate mockery -name=gqlFileConverter -output=automock -outpkg=automock -case=underscore -type gqlFileConverter interface { - ToGQL(file *File) (*gqlschema.File, error) - ToGQLs(files []*File) ([]*gqlschema.File, error) -} - -type fileConverter struct{} - -func newFileConverter() *fileConverter { - return &fileConverter{} -} - -func (c *fileConverter) ToGQL(file *File) (*gqlschema.File, error) { - if file == nil { - return nil, nil - } - - metadata, err := c.extractMetadata(file.Metadata) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling Metadata field of %s %s", pretty.FilesType, file.URL) - } - - result := gqlschema.File{ - URL: file.URL, - Metadata: metadata, - } - return &result, nil -} - -func (c *fileConverter) ToGQLs(files []*File) ([]*gqlschema.File, error) { - var result []*gqlschema.File - for _, u := range files { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *fileConverter) extractMetadata(metadata *runtime.RawExtension) (gqlschema.JSON, error) { - result := make(gqlschema.JSON) - if metadata == nil { - return result, nil - } - - extracted, err := resource.ExtractRawToMap("Metadata", metadata.Raw) - if err != nil { - return nil, err - } - - for k, v := range extracted { - result[k] = v - } - - return result, err -} diff --git a/components/console-backend-service/internal/domain/rafter/file_converter_test.go b/components/console-backend-service/internal/domain/rafter/file_converter_test.go deleted file mode 100644 index b3080b897477..000000000000 --- a/components/console-backend-service/internal/domain/rafter/file_converter_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package rafter_test - -import ( - "testing" - - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestFileConverter_ToGQL(t *testing.T) { - t.Run("All properties are given", func(t *testing.T) { - converter := rafter.NewFileConverter() - - item := fixFile(t) - expected := gqlschema.File{ - URL: "ExampleUrl", - Metadata: gqlschema.JSON{ - "labels": []interface{}{"test1", "test2"}, - }, - } - - result, err := converter.ToGQL(item) - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := rafter.NewFileConverter() - _, err := converter.ToGQL(&rafter.File{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := rafter.NewFileConverter() - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestFileConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - files := []*rafter.File{ - fixFile(t), - fixFile(t), - } - - converter := rafter.NewFileConverter() - result, err := converter.ToGQLs(files) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "ExampleUrl", result[0].URL) - }) - - t.Run("Empty", func(t *testing.T) { - var files []*rafter.File - - converter := rafter.NewFileConverter() - result, err := converter.ToGQLs(files) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - files := []*rafter.File{ - nil, - fixFile(t), - nil, - } - - converter := rafter.NewFileConverter() - result, err := converter.ToGQLs(files) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "ExampleUrl", result[0].URL) - }) -} - -func fixFile(t *testing.T) *rafter.File { - rawMap := map[string]interface{}{ - "labels": []string{"test1", "test2"}, - } - raw, err := json.Marshal(rawMap) - require.NoError(t, err) - - return &rafter.File{ - URL: "ExampleUrl", - Metadata: &runtime.RawExtension{ - Raw: raw, - }, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/file_service.go b/components/console-backend-service/internal/domain/rafter/file_service.go deleted file mode 100644 index 78ea119ad26a..000000000000 --- a/components/console-backend-service/internal/domain/rafter/file_service.go +++ /dev/null @@ -1,68 +0,0 @@ -package rafter - -import ( - "fmt" - "strings" - - "k8s.io/apimachinery/pkg/runtime" - - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -type File struct { - URL string - Metadata *runtime.RawExtension -} - -//go:generate mockery -name=fileSvc -output=automock -outpkg=automock -case=underscore -type fileSvc interface { - Extract(statusRef *v1beta1.AssetStatusRef) ([]*File, error) - FilterByExtensionsAndExtract(statusRef *v1beta1.AssetStatusRef, filterExtensions []string) ([]*File, error) -} - -type fileService struct{} - -func newFileService() *fileService { - return &fileService{} -} - -func (svc *fileService) Extract(statusRef *v1beta1.AssetStatusRef) ([]*File, error) { - if statusRef == nil { - return nil, nil - } - - var files []*File - for _, file := range statusRef.Files { - files = append(files, &File{ - URL: fmt.Sprintf("%s/%s", statusRef.BaseURL, file.Name), - Metadata: file.Metadata, - }) - } - return files, nil -} - -func (svc *fileService) FilterByExtensionsAndExtract(statusRef *v1beta1.AssetStatusRef, filterExtensions []string) ([]*File, error) { - if statusRef == nil { - return nil, nil - } - - var files []*File - for _, file := range statusRef.Files { - for _, extension := range filterExtensions { - var suffix string - if strings.HasPrefix(extension, ".") { - suffix = extension - } else { - suffix = fmt.Sprintf(".%s", extension) - } - - if strings.HasSuffix(file.Name, suffix) { - files = append(files, &File{ - URL: fmt.Sprintf("%s/%s", statusRef.BaseURL, file.Name), - Metadata: file.Metadata, - }) - } - } - } - return files, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/file_service_test.go b/components/console-backend-service/internal/domain/rafter/file_service_test.go deleted file mode 100644 index aa26904f1ad3..000000000000 --- a/components/console-backend-service/internal/domain/rafter/file_service_test.go +++ /dev/null @@ -1,100 +0,0 @@ -package rafter_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - - "encoding/json" - - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestFileService_ToGQL(t *testing.T) { - rawMap := fixRawMap(t) - - t.Run("Success without filter", func(t *testing.T) { - assetRef := fixAssetStatusRef(rawMap) - expected := []*rafter.File{ - { - URL: "https://example.com/markdown.md", - Metadata: rawMap, - }, - { - URL: "https://example.com/apiSpec.json", - Metadata: rawMap, - }, - { - URL: "https://example.com/odata.xml", - Metadata: rawMap, - }, - } - - svc := rafter.NewFileService() - - result, err := svc.Extract(assetRef) - require.NoError(t, err) - - assert.Equal(t, expected, result) - }) - - t.Run("Success with filter", func(t *testing.T) { - assetRef := fixAssetStatusRef(rawMap) - expected := []*rafter.File{ - { - URL: "https://example.com/markdown.md", - Metadata: rawMap, - }, - } - - svc := rafter.NewFileService() - - result, err := svc.FilterByExtensionsAndExtract(assetRef, []string{"md"}) - require.NoError(t, err) - - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - svc := rafter.NewFileService() - - result, err := svc.Extract(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func fixAssetStatusRef(rawMap *runtime.RawExtension) *v1beta1.AssetStatusRef { - return &v1beta1.AssetStatusRef{ - BaseURL: "https://example.com", - Files: []v1beta1.AssetFile{ - { - Name: "markdown.md", - Metadata: rawMap, - }, - { - Name: "apiSpec.json", - Metadata: rawMap, - }, - { - Name: "odata.xml", - Metadata: rawMap, - }, - }, - } -} - -func fixRawMap(t *testing.T) *runtime.RawExtension { - rawMap := map[string]interface{}{ - "labels": []string{"test1", "test2"}, - } - raw, err := json.Marshal(rawMap) - require.NoError(t, err) - - return &runtime.RawExtension{ - Raw: raw, - } -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/asset.go b/components/console-backend-service/internal/domain/rafter/listener/asset.go deleted file mode 100644 index 8399ce750faa..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/asset.go +++ /dev/null @@ -1,77 +0,0 @@ -package listener - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlAssetConverter -output=automock -outpkg=automock -case=underscore -type gqlAssetConverter interface { - ToGQL(in *v1beta1.Asset) (*gqlschema.Asset, error) -} - -type Asset struct { - channel chan<- *gqlschema.AssetEvent - filter func(entity *v1beta1.Asset) bool - converter gqlAssetConverter - extractor extractor.AssetUnstructuredExtractor -} - -func NewAsset(channel chan<- *gqlschema.AssetEvent, filter func(entity *v1beta1.Asset) bool, converter gqlAssetConverter) *Asset { - return &Asset{ - channel: channel, - filter: filter, - converter: converter, - extractor: extractor.AssetUnstructuredExtractor{}, - } -} - -func (l *Asset) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Asset) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Asset) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Asset) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, err := l.extractor.Do(object) - if err != nil { - glog.Error(errors.Wrapf(err, "incorrect object type: %T, should be: *%s", object, pretty.AssetType)) - return - } - if entity == nil { - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *Asset) notify(eventType gqlschema.SubscriptionEventType, entity *v1beta1.Asset) { - gqlAsset, err := l.converter.ToGQL(entity) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *%s", pretty.AssetType)) - return - } - if gqlAsset == nil { - return - } - - event := &gqlschema.AssetEvent{ - Type: eventType, - Asset: gqlAsset, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/asset_test.go b/components/console-backend-service/internal/domain/rafter/listener/asset_test.go deleted file mode 100644 index 046746860bea..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/asset_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" -) - -func TestAsset_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAsset := new(gqlschema.Asset) - asset := new(v1beta1.Asset) - converter := automock.NewGqlAssetConverter() - - channel := make(chan *gqlschema.AssetEvent, 1) - defer close(channel) - converter.On("ToGQL", asset).Return(gqlAsset, nil).Once() - defer converter.AssertExpectations(t) - assetListener := listener.NewAsset(channel, filterAssetTrue, converter) - - // when - assetListener.OnAdd(asset) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlAsset, result.Asset) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetFalse, nil) - - // when - assetListener.OnAdd(new(v1beta1.Asset)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetTrue, nil) - - // when - assetListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - asset := new(v1beta1.Asset) - converter := automock.NewGqlAssetConverter() - - converter.On("ToGQL", asset).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - assetListener := listener.NewAsset(nil, filterAssetTrue, converter) - - // when - assetListener.OnAdd(asset) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetTrue, nil) - - // when - assetListener.OnAdd(new(struct{})) - }) -} - -func TestAsset_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAsset := new(gqlschema.Asset) - asset := new(v1beta1.Asset) - converter := automock.NewGqlAssetConverter() - - channel := make(chan *gqlschema.AssetEvent, 1) - defer close(channel) - converter.On("ToGQL", asset).Return(gqlAsset, nil).Once() - defer converter.AssertExpectations(t) - assetListener := listener.NewAsset(channel, filterAssetTrue, converter) - - // when - assetListener.OnDelete(asset) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlAsset, result.Asset) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetFalse, nil) - - // when - assetListener.OnDelete(new(v1beta1.Asset)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetTrue, nil) - - // when - assetListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - asset := new(v1beta1.Asset) - converter := automock.NewGqlAssetConverter() - - converter.On("ToGQL", asset).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - assetListener := listener.NewAsset(nil, filterAssetTrue, converter) - - // when - assetListener.OnDelete(asset) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetTrue, nil) - - // when - assetListener.OnDelete(new(struct{})) - }) -} - -func TestAsset_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAsset := new(gqlschema.Asset) - asset := new(v1beta1.Asset) - converter := automock.NewGqlAssetConverter() - - channel := make(chan *gqlschema.AssetEvent, 1) - defer close(channel) - converter.On("ToGQL", asset).Return(gqlAsset, nil).Once() - defer converter.AssertExpectations(t) - assetListener := listener.NewAsset(channel, filterAssetTrue, converter) - - // when - assetListener.OnUpdate(asset, asset) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlAsset, result.Asset) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetFalse, nil) - - // when - assetListener.OnUpdate(new(v1beta1.Asset), new(v1beta1.Asset)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetTrue, nil) - - // when - assetListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - asset := new(v1beta1.Asset) - converter := automock.NewGqlAssetConverter() - - converter.On("ToGQL", asset).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - assetListener := listener.NewAsset(nil, filterAssetTrue, converter) - - // when - assetListener.OnUpdate(nil, asset) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - assetListener := listener.NewAsset(nil, filterAssetTrue, nil) - - // when - assetListener.OnUpdate(new(struct{}), new(struct{})) - }) -} - -func filterAssetTrue(o *v1beta1.Asset) bool { - return true -} - -func filterAssetFalse(o *v1beta1.Asset) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/assetgroup.go b/components/console-backend-service/internal/domain/rafter/listener/assetgroup.go deleted file mode 100644 index b84b089e53c5..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/assetgroup.go +++ /dev/null @@ -1,77 +0,0 @@ -package listener - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlAssetGroupConverter -output=automock -outpkg=automock -case=underscore -type gqlAssetGroupConverter interface { - ToGQL(in *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) -} - -type AssetGroup struct { - channel chan<- *gqlschema.AssetGroupEvent - filter func(entity *v1beta1.AssetGroup) bool - converter gqlAssetGroupConverter - extractor extractor.AssetGroupUnstructuredExtractor -} - -func NewAssetGroup(channel chan<- *gqlschema.AssetGroupEvent, filter func(entity *v1beta1.AssetGroup) bool, converter gqlAssetGroupConverter) *AssetGroup { - return &AssetGroup{ - channel: channel, - filter: filter, - converter: converter, - extractor: extractor.AssetGroupUnstructuredExtractor{}, - } -} - -func (l *AssetGroup) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *AssetGroup) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *AssetGroup) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *AssetGroup) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, err := l.extractor.Do(object) - if err != nil { - glog.Error(errors.Wrapf(err, "incorrect object type: %T, should be: *%s", object, pretty.AssetGroupType)) - return - } - if entity == nil { - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *AssetGroup) notify(eventType gqlschema.SubscriptionEventType, entity *v1beta1.AssetGroup) { - gqlAssetGroup, err := l.converter.ToGQL(entity) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *%s", pretty.AssetGroupType)) - return - } - if gqlAssetGroup == nil { - return - } - - event := &gqlschema.AssetGroupEvent{ - Type: eventType, - AssetGroup: gqlAssetGroup, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/assetgroup_test.go b/components/console-backend-service/internal/domain/rafter/listener/assetgroup_test.go deleted file mode 100644 index 977f50bd7d19..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/assetgroup_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" -) - -func TestAssetGroup_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAssetGroup := new(gqlschema.AssetGroup) - assetGroup := new(v1beta1.AssetGroup) - converter := automock.NewGqlAssetGroupConverter() - - channel := make(chan *gqlschema.AssetGroupEvent, 1) - defer close(channel) - converter.On("ToGQL", assetGroup).Return(gqlAssetGroup, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewAssetGroup(channel, filterAssetGroupTrue, converter) - - // when - assetGroupListener.OnAdd(assetGroup) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlAssetGroup, result.AssetGroup) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupFalse, nil) - - // when - assetGroupListener.OnAdd(new(v1beta1.AssetGroup)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, nil) - - // when - assetGroupListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - assetGroup := new(v1beta1.AssetGroup) - converter := automock.NewGqlAssetGroupConverter() - - converter.On("ToGQL", assetGroup).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, converter) - - // when - assetGroupListener.OnAdd(assetGroup) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, nil) - - // when - assetGroupListener.OnAdd(new(struct{})) - }) -} - -func TestAssetGroup_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAssetGroup := new(gqlschema.AssetGroup) - assetGroup := new(v1beta1.AssetGroup) - converter := automock.NewGqlAssetGroupConverter() - - channel := make(chan *gqlschema.AssetGroupEvent, 1) - defer close(channel) - converter.On("ToGQL", assetGroup).Return(gqlAssetGroup, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewAssetGroup(channel, filterAssetGroupTrue, converter) - - // when - assetGroupListener.OnDelete(assetGroup) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlAssetGroup, result.AssetGroup) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupFalse, nil) - - // when - assetGroupListener.OnDelete(new(v1beta1.AssetGroup)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, nil) - - // when - assetGroupListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - assetGroup := new(v1beta1.AssetGroup) - converter := automock.NewGqlAssetGroupConverter() - - converter.On("ToGQL", assetGroup).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, converter) - - // when - assetGroupListener.OnDelete(assetGroup) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, nil) - - // when - assetGroupListener.OnDelete(new(struct{})) - }) -} - -func TestAssetGroup_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAssetGroup := new(gqlschema.AssetGroup) - assetGroup := new(v1beta1.AssetGroup) - converter := automock.NewGqlAssetGroupConverter() - - channel := make(chan *gqlschema.AssetGroupEvent, 1) - defer close(channel) - converter.On("ToGQL", assetGroup).Return(gqlAssetGroup, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewAssetGroup(channel, filterAssetGroupTrue, converter) - - // when - assetGroupListener.OnUpdate(assetGroup, assetGroup) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlAssetGroup, result.AssetGroup) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupFalse, nil) - - // when - assetGroupListener.OnUpdate(new(v1beta1.AssetGroup), new(v1beta1.AssetGroup)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, nil) - - // when - assetGroupListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - assetGroup := new(v1beta1.AssetGroup) - converter := automock.NewGqlAssetGroupConverter() - - converter.On("ToGQL", assetGroup).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, converter) - - // when - assetGroupListener.OnUpdate(nil, assetGroup) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - assetGroupListener := listener.NewAssetGroup(nil, filterAssetGroupTrue, nil) - - // when - assetGroupListener.OnUpdate(new(struct{}), new(struct{})) - }) -} - -func filterAssetGroupTrue(o *v1beta1.AssetGroup) bool { - return true -} - -func filterAssetGroupFalse(o *v1beta1.AssetGroup) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/automock/export.go b/components/console-backend-service/internal/domain/rafter/listener/automock/export.go deleted file mode 100644 index c0cbff420518..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/automock/export.go +++ /dev/null @@ -1,17 +0,0 @@ -package automock - -func NewGqlAssetConverter() *gqlAssetConverter { - return new(gqlAssetConverter) -} - -func NewGqlAssetGroupConverter() *gqlAssetGroupConverter { - return new(gqlAssetGroupConverter) -} - -func NewGqlClusterAssetConverter() *gqlClusterAssetConverter { - return new(gqlClusterAssetConverter) -} - -func NewGqlClusterAssetGroupConverter() *gqlClusterAssetGroupConverter { - return new(gqlClusterAssetGroupConverter) -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_asset_converter.go b/components/console-backend-service/internal/domain/rafter/listener/automock/gql_asset_converter.go deleted file mode 100644 index 1229b0562265..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_asset_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlAssetConverter is an autogenerated mock type for the gqlAssetConverter type -type gqlAssetConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlAssetConverter) ToGQL(in *v1beta1.Asset) (*gqlschema.Asset, error) { - ret := _m.Called(in) - - var r0 *gqlschema.Asset - if rf, ok := ret.Get(0).(func(*v1beta1.Asset) *gqlschema.Asset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.Asset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_asset_group_converter.go b/components/console-backend-service/internal/domain/rafter/listener/automock/gql_asset_group_converter.go deleted file mode 100644 index 4ada3351be5b..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_asset_group_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlAssetGroupConverter is an autogenerated mock type for the gqlAssetGroupConverter type -type gqlAssetGroupConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlAssetGroupConverter) ToGQL(in *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) { - ret := _m.Called(in) - - var r0 *gqlschema.AssetGroup - if rf, ok := ret.Get(0).(func(*v1beta1.AssetGroup) *gqlschema.AssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.AssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.AssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_cluster_asset_converter.go b/components/console-backend-service/internal/domain/rafter/listener/automock/gql_cluster_asset_converter.go deleted file mode 100644 index a5408e8ddf84..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_cluster_asset_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlClusterAssetConverter is an autogenerated mock type for the gqlClusterAssetConverter type -type gqlClusterAssetConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterAssetConverter) ToGQL(in *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterAsset - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterAsset) *gqlschema.ClusterAsset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterAsset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_cluster_asset_group_converter.go b/components/console-backend-service/internal/domain/rafter/listener/automock/gql_cluster_asset_group_converter.go deleted file mode 100644 index 8bf44145d2ef..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/automock/gql_cluster_asset_group_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// gqlClusterAssetGroupConverter is an autogenerated mock type for the gqlClusterAssetGroupConverter type -type gqlClusterAssetGroupConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterAssetGroupConverter) ToGQL(in *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterAssetGroup - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterAssetGroup) *gqlschema.ClusterAssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterAssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/clusterasset.go b/components/console-backend-service/internal/domain/rafter/listener/clusterasset.go deleted file mode 100644 index 1026d5af4051..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/clusterasset.go +++ /dev/null @@ -1,77 +0,0 @@ -package listener - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlClusterAssetConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterAssetConverter interface { - ToGQL(in *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) -} - -type ClusterAsset struct { - channel chan<- *gqlschema.ClusterAssetEvent - filter func(entity *v1beta1.ClusterAsset) bool - converter gqlClusterAssetConverter - extractor extractor.ClusterAssetUnstructuredExtractor -} - -func NewClusterAsset(channel chan<- *gqlschema.ClusterAssetEvent, filter func(entity *v1beta1.ClusterAsset) bool, converter gqlClusterAssetConverter) *ClusterAsset { - return &ClusterAsset{ - channel: channel, - filter: filter, - converter: converter, - extractor: extractor.ClusterAssetUnstructuredExtractor{}, - } -} - -func (l *ClusterAsset) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *ClusterAsset) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *ClusterAsset) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *ClusterAsset) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, err := l.extractor.Do(object) - if err != nil { - glog.Error(errors.Wrapf(err, "incorrect object type: %T, should be: *%s", object, pretty.ClusterAssetType)) - return - } - if entity == nil { - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *ClusterAsset) notify(eventType gqlschema.SubscriptionEventType, entity *v1beta1.ClusterAsset) { - gqlClusterAsset, err := l.converter.ToGQL(entity) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *%s", pretty.ClusterAssetType)) - return - } - if gqlClusterAsset == nil { - return - } - - event := &gqlschema.ClusterAssetEvent{ - Type: eventType, - ClusterAsset: gqlClusterAsset, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/clusterasset_test.go b/components/console-backend-service/internal/domain/rafter/listener/clusterasset_test.go deleted file mode 100644 index 5e363b0d92f6..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/clusterasset_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" -) - -func TestClusterAsset_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterAsset := new(gqlschema.ClusterAsset) - clusterAsset := new(v1beta1.ClusterAsset) - converter := automock.NewGqlClusterAssetConverter() - - channel := make(chan *gqlschema.ClusterAssetEvent, 1) - defer close(channel) - converter.On("ToGQL", clusterAsset).Return(gqlClusterAsset, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetListener := listener.NewClusterAsset(channel, filterClusterAssetTrue, converter) - - // when - clusterAssetListener.OnAdd(clusterAsset) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlClusterAsset, result.ClusterAsset) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetFalse, nil) - - // when - clusterAssetListener.OnAdd(new(v1beta1.ClusterAsset)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, nil) - - // when - clusterAssetListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - clusterAsset := new(v1beta1.ClusterAsset) - converter := automock.NewGqlClusterAssetConverter() - - converter.On("ToGQL", clusterAsset).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, converter) - - // when - clusterAssetListener.OnAdd(clusterAsset) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, nil) - - // when - clusterAssetListener.OnAdd(new(struct{})) - }) -} - -func TestClusterAsset_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterAsset := new(gqlschema.ClusterAsset) - clusterAsset := new(v1beta1.ClusterAsset) - converter := automock.NewGqlClusterAssetConverter() - - channel := make(chan *gqlschema.ClusterAssetEvent, 1) - defer close(channel) - converter.On("ToGQL", clusterAsset).Return(gqlClusterAsset, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetListener := listener.NewClusterAsset(channel, filterClusterAssetTrue, converter) - - // when - clusterAssetListener.OnDelete(clusterAsset) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlClusterAsset, result.ClusterAsset) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetFalse, nil) - - // when - clusterAssetListener.OnDelete(new(v1beta1.ClusterAsset)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, nil) - - // when - clusterAssetListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - clusterAsset := new(v1beta1.ClusterAsset) - converter := automock.NewGqlClusterAssetConverter() - - converter.On("ToGQL", clusterAsset).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, converter) - - // when - clusterAssetListener.OnDelete(clusterAsset) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, nil) - - // when - clusterAssetListener.OnDelete(new(struct{})) - }) -} - -func TestClusterAsset_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterAsset := new(gqlschema.ClusterAsset) - clusterAsset := new(v1beta1.ClusterAsset) - converter := automock.NewGqlClusterAssetConverter() - - channel := make(chan *gqlschema.ClusterAssetEvent, 1) - defer close(channel) - converter.On("ToGQL", clusterAsset).Return(gqlClusterAsset, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetListener := listener.NewClusterAsset(channel, filterClusterAssetTrue, converter) - - // when - clusterAssetListener.OnUpdate(clusterAsset, clusterAsset) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlClusterAsset, result.ClusterAsset) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetFalse, nil) - - // when - clusterAssetListener.OnUpdate(new(v1beta1.ClusterAsset), new(v1beta1.ClusterAsset)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, nil) - - // when - clusterAssetListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - clusterAsset := new(v1beta1.ClusterAsset) - converter := automock.NewGqlClusterAssetConverter() - - converter.On("ToGQL", clusterAsset).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, converter) - - // when - clusterAssetListener.OnUpdate(nil, clusterAsset) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - clusterAssetListener := listener.NewClusterAsset(nil, filterClusterAssetTrue, nil) - - // when - clusterAssetListener.OnUpdate(new(struct{}), new(struct{})) - }) -} - -func filterClusterAssetTrue(o *v1beta1.ClusterAsset) bool { - return true -} - -func filterClusterAssetFalse(o *v1beta1.ClusterAsset) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/clusterassetgroup.go b/components/console-backend-service/internal/domain/rafter/listener/clusterassetgroup.go deleted file mode 100644 index 9f2c3cc953ea..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/clusterassetgroup.go +++ /dev/null @@ -1,77 +0,0 @@ -package listener - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlClusterAssetGroupConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterAssetGroupConverter interface { - ToGQL(in *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) -} - -type ClusterAssetGroup struct { - channel chan<- *gqlschema.ClusterAssetGroupEvent - filter func(entity *v1beta1.ClusterAssetGroup) bool - converter gqlClusterAssetGroupConverter - extractor extractor.ClusterAssetGroupUnstructuredExtractor -} - -func NewClusterAssetGroup(channel chan<- *gqlschema.ClusterAssetGroupEvent, filter func(entity *v1beta1.ClusterAssetGroup) bool, converter gqlClusterAssetGroupConverter) *ClusterAssetGroup { - return &ClusterAssetGroup{ - channel: channel, - filter: filter, - converter: converter, - extractor: extractor.ClusterAssetGroupUnstructuredExtractor{}, - } -} - -func (l *ClusterAssetGroup) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *ClusterAssetGroup) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *ClusterAssetGroup) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *ClusterAssetGroup) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, err := l.extractor.Do(object) - if err != nil { - glog.Error(errors.Wrapf(err, "incorrect object type: %T, should be: *%s", object, pretty.ClusterAssetGroupType)) - return - } - if entity == nil { - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *ClusterAssetGroup) notify(eventType gqlschema.SubscriptionEventType, entity *v1beta1.ClusterAssetGroup) { - gqlClusterAssetGroup, err := l.converter.ToGQL(entity) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *%s", pretty.ClusterAssetGroupType)) - return - } - if gqlClusterAssetGroup == nil { - return - } - - event := &gqlschema.ClusterAssetGroupEvent{ - Type: eventType, - ClusterAssetGroup: gqlClusterAssetGroup, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/rafter/listener/clusterassetgroup_test.go b/components/console-backend-service/internal/domain/rafter/listener/clusterassetgroup_test.go deleted file mode 100644 index 6d1a088cb860..000000000000 --- a/components/console-backend-service/internal/domain/rafter/listener/clusterassetgroup_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/stretchr/testify/assert" -) - -func TestClusterAssetGroup_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterAssetGroup := new(gqlschema.ClusterAssetGroup) - clusterAssetGroup := new(v1beta1.ClusterAssetGroup) - converter := automock.NewGqlClusterAssetGroupConverter() - - channel := make(chan *gqlschema.ClusterAssetGroupEvent, 1) - defer close(channel) - converter.On("ToGQL", clusterAssetGroup).Return(gqlClusterAssetGroup, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetGroupListener := listener.NewClusterAssetGroup(channel, filterClusterAssetGroupTrue, converter) - - // when - clusterAssetGroupListener.OnAdd(clusterAssetGroup) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlClusterAssetGroup, result.ClusterAssetGroup) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupFalse, nil) - - // when - clusterAssetGroupListener.OnAdd(new(v1beta1.ClusterAssetGroup)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, nil) - - // when - clusterAssetGroupListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - clusterAssetGroup := new(v1beta1.ClusterAssetGroup) - converter := automock.NewGqlClusterAssetGroupConverter() - - converter.On("ToGQL", clusterAssetGroup).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, converter) - - // when - clusterAssetGroupListener.OnAdd(clusterAssetGroup) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, nil) - - // when - clusterAssetGroupListener.OnAdd(new(struct{})) - }) -} - -func TestClusterAssetGroup_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterAssetGroup := new(gqlschema.ClusterAssetGroup) - clusterAssetGroup := new(v1beta1.ClusterAssetGroup) - converter := automock.NewGqlClusterAssetGroupConverter() - - channel := make(chan *gqlschema.ClusterAssetGroupEvent, 1) - defer close(channel) - converter.On("ToGQL", clusterAssetGroup).Return(gqlClusterAssetGroup, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetGroupListener := listener.NewClusterAssetGroup(channel, filterClusterAssetGroupTrue, converter) - - // when - clusterAssetGroupListener.OnDelete(clusterAssetGroup) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlClusterAssetGroup, result.ClusterAssetGroup) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupFalse, nil) - - // when - clusterAssetGroupListener.OnDelete(new(v1beta1.ClusterAssetGroup)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, nil) - - // when - clusterAssetGroupListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - clusterAssetGroup := new(v1beta1.ClusterAssetGroup) - converter := automock.NewGqlClusterAssetGroupConverter() - - converter.On("ToGQL", clusterAssetGroup).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, converter) - - // when - clusterAssetGroupListener.OnDelete(clusterAssetGroup) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - clusterAssetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, nil) - - // when - clusterAssetGroupListener.OnDelete(new(struct{})) - }) -} - -func TestClusterAssetGroup_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAssetGroup := new(gqlschema.ClusterAssetGroup) - clusterAssetGroup := new(v1beta1.ClusterAssetGroup) - converter := automock.NewGqlClusterAssetGroupConverter() - - channel := make(chan *gqlschema.ClusterAssetGroupEvent, 1) - defer close(channel) - converter.On("ToGQL", clusterAssetGroup).Return(gqlAssetGroup, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewClusterAssetGroup(channel, filterClusterAssetGroupTrue, converter) - - // when - assetGroupListener.OnUpdate(clusterAssetGroup, clusterAssetGroup) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlAssetGroup, result.ClusterAssetGroup) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - assetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupFalse, nil) - - // when - assetGroupListener.OnUpdate(new(v1beta1.ClusterAssetGroup), new(v1beta1.ClusterAssetGroup)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - assetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, nil) - - // when - assetGroupListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - clusterAssetGroup := new(v1beta1.ClusterAssetGroup) - converter := automock.NewGqlClusterAssetGroupConverter() - - converter.On("ToGQL", clusterAssetGroup).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - assetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, converter) - - // when - assetGroupListener.OnUpdate(nil, clusterAssetGroup) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - assetGroupListener := listener.NewClusterAssetGroup(nil, filterClusterAssetGroupTrue, nil) - - // when - assetGroupListener.OnUpdate(new(struct{}), new(struct{})) - }) -} - -func filterClusterAssetGroupTrue(o *v1beta1.ClusterAssetGroup) bool { - return true -} - -func filterClusterAssetGroupFalse(o *v1beta1.ClusterAssetGroup) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/rafter/pretty/kind.go b/components/console-backend-service/internal/domain/rafter/pretty/kind.go deleted file mode 100644 index ab3b11e9de03..000000000000 --- a/components/console-backend-service/internal/domain/rafter/pretty/kind.go +++ /dev/null @@ -1,77 +0,0 @@ -package pretty - -type Kind int - -const ( - AssetGroup Kind = iota - AssetGroupType - AssetGroups - AssetGroupsType - - ClusterAssetGroup - ClusterAssetGroupType - ClusterAssetGroups - ClusterAssetGroupsType - - Asset - AssetType - Assets - AssetsType - - ClusterAsset - ClusterAssetType - ClusterAssets - ClusterAssetsType - - File - FileType - Files - FilesType -) - -func (k Kind) String() string { - switch k { - case AssetGroup: - return "Asset Group" - case AssetGroupType: - return "AssetGroup" - case AssetGroups: - return "Asset Groups" - case AssetGroupsType: - return "[]AssetGroup" - case ClusterAssetGroup: - return "Cluster Asset Group" - case ClusterAssetGroupType: - return "ClusterAssetGroup" - case ClusterAssetGroups: - return "Cluster Asset Groups" - case ClusterAssetGroupsType: - return "[]ClusterAssetGroup" - case Asset: - return "Asset" - case AssetType: - return "Asset" - case Assets: - return "Assets" - case AssetsType: - return "[]Asset" - case ClusterAsset: - return "Cluster Asset" - case ClusterAssetType: - return "ClusterAsset" - case ClusterAssets: - return "Cluster Assets" - case ClusterAssetsType: - return "[]ClusterAsset" - case File: - return "File" - case FileType: - return "File" - case Files: - return "Files" - case FilesType: - return "[]File" - default: - return "" - } -} diff --git a/components/console-backend-service/internal/domain/rafter/rafter.go b/components/console-backend-service/internal/domain/rafter/rafter.go deleted file mode 100644 index 40f27b44cf07..000000000000 --- a/components/console-backend-service/internal/domain/rafter/rafter.go +++ /dev/null @@ -1,145 +0,0 @@ -package rafter - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/disabled" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" -) - -const ( - ViewContextLabel = "rafter.kyma-project.io/view-context" - GroupNameLabel = "rafter.kyma-project.io/group-name" - AssetGroupLabel = "rafter.kyma-project.io/asset-group" - OrderLabel = "rafter.kyma-project.io/order" - TypeLabel = "rafter.kyma-project.io/type" -) - -type Config struct { - Address string `envconfig:"default=storage.kyma.local"` - Secure bool `envconfig:"default=true"` - VerifySSL bool `envconfig:"default=true"` -} - -type PluggableContainer struct { - *module.Pluggable - cfg Config - Resolver - Retriever *retriever - serviceFactory *resource.ServiceFactory -} - -func New(serviceFactory *resource.ServiceFactory, reCfg Config) (*PluggableContainer, error) { - resolver := &PluggableContainer{ - Pluggable: module.NewPluggable("rafter"), - cfg: reCfg, - serviceFactory: serviceFactory, - Retriever: &retriever{}, - } - - err := resolver.Disable() - if err != nil { - return nil, err - } - - return resolver, nil -} - -func (r *PluggableContainer) Enable() error { - clusterAssetService, err := newClusterAssetService(r.serviceFactory) - if err != nil { - return errors.Wrapf(err, "while creating %s service", pretty.ClusterAssetType) - } - clusterAssetConverter := newClusterAssetConverter() - - assetService, err := newAssetService(r.serviceFactory) - if err != nil { - return errors.Wrapf(err, "while creating %s service", pretty.AssetType) - } - assetConverter := newAssetConverter() - - clusterAssetGroupService, err := newClusterAssetGroupService(r.serviceFactory) - if err != nil { - return errors.Wrapf(err, "while creating %s service", pretty.ClusterAssetGroupType) - } - clusterAssetGroupConverter := newClusterAssetGroupConverter() - - assetGroupService, err := newAssetGroupService(r.serviceFactory) - if err != nil { - return errors.Wrapf(err, "while creating %s service", pretty.AssetGroupType) - } - assetGroupConverter := newAssetGroupConverter() - - specificationService, err := newSpecificationService(r.cfg) - if err != nil { - return errors.Wrap(err, "while creating Specification Service") - } - - fileService := newFileService() - fileConverter := newFileConverter() - - r.Pluggable.EnableAndSyncDynamicInformerFactory(r.serviceFactory.InformerFactory, func() { - r.Resolver = &domainResolver{ - clusterAssetResolver: newClusterAssetResolver(clusterAssetService, clusterAssetConverter, fileService, fileConverter), - assetResolver: newAssetResolver(assetService, assetConverter, fileService, fileConverter), - clusterAssetGroupResolver: newClusterAssetGroupResolver(clusterAssetGroupService, clusterAssetGroupConverter, clusterAssetService, clusterAssetConverter), - assetGroupResolver: newAssetGroupResolver(assetGroupService, assetGroupConverter, assetService, assetConverter), - } - r.Retriever.ClusterAssetGroupGetter = clusterAssetGroupService - r.Retriever.AssetGroupGetter = assetGroupService - r.Retriever.GqlClusterAssetGroupConverter = clusterAssetGroupConverter - r.Retriever.GqlAssetGroupConverter = assetGroupConverter - r.Retriever.ClusterAssetGetter = clusterAssetService - r.Retriever.AssetGetter = assetService - r.Retriever.GqlClusterAssetConverter = clusterAssetConverter - r.Retriever.GqlAssetConverter = assetConverter - r.Retriever.SpecificationSvc = specificationService - }) - - return nil -} - -func (r *PluggableContainer) Disable() error { - r.Pluggable.Disable(func(disabledErr error) { - r.Resolver = disabled.NewResolver(disabledErr) - r.Retriever.ClusterAssetGroupGetter = disabled.NewClusterAssetGroupSvc(disabledErr) - r.Retriever.AssetGroupGetter = disabled.NewAssetGroupSvc(disabledErr) - r.Retriever.GqlClusterAssetGroupConverter = disabled.NewGqlClusterAssetGroupConverter(disabledErr) - r.Retriever.GqlAssetGroupConverter = disabled.NewGqlAssetGroupConverter(disabledErr) - r.Retriever.ClusterAssetGetter = disabled.NewClusterAssetSvc(disabledErr) - r.Retriever.AssetGetter = disabled.NewAssetSvc(disabledErr) - r.Retriever.GqlClusterAssetConverter = disabled.NewGqlClusterAssetConverter(disabledErr) - r.Retriever.GqlAssetConverter = disabled.NewGqlAssetConverter(disabledErr) - r.Retriever.SpecificationSvc = disabled.NewSpecificationSvc(disabledErr) - }) - - return nil -} - -//go:generate failery -name=Resolver -case=underscore -output disabled -outpkg disabled -type Resolver interface { - ClusterAssetGroupsQuery(ctx context.Context, viewContext *string, groupName *string) ([]*gqlschema.ClusterAssetGroup, error) - - ClusterAssetGroupEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAssetGroupEvent, error) - AssetGroupEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AssetGroupEvent, error) - - ClusterAssetGroupAssetsField(ctx context.Context, obj *gqlschema.ClusterAssetGroup, types []string) ([]*gqlschema.ClusterAsset, error) - AssetGroupAssetsField(ctx context.Context, obj *gqlschema.AssetGroup, types []string) ([]*gqlschema.Asset, error) - - ClusterAssetEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAssetEvent, error) - AssetEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AssetEvent, error) - - ClusterAssetFilesField(ctx context.Context, obj *gqlschema.ClusterAsset, filterExtensions []string) ([]*gqlschema.File, error) - AssetFilesField(ctx context.Context, obj *gqlschema.Asset, filterExtensions []string) ([]*gqlschema.File, error) -} - -type domainResolver struct { - *clusterAssetResolver - *assetResolver - *clusterAssetGroupResolver - *assetGroupResolver -} diff --git a/components/console-backend-service/internal/domain/rafter/rafter_test.go b/components/console-backend-service/internal/domain/rafter/rafter_test.go deleted file mode 100644 index 6e0bf32a022b..000000000000 --- a/components/console-backend-service/internal/domain/rafter/rafter_test.go +++ /dev/null @@ -1,80 +0,0 @@ -package rafter_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -const testTimes = 3 -const informerResyncPeriod = 30 * time.Second - -func TestPluggableContainer(t *testing.T) { - svcFactory := fake.NewSimpleFakeServiceFactory(informerResyncPeriod) - require.NotNil(t, svcFactory) - - pluggable, err := rafter.New(svcFactory, rafter.Config{}) - require.NoError(t, err) - - for i := 0; i < testTimes; i++ { - require.NotPanics(t, func() { - err := pluggable.Enable() - require.NoError(t, err) - <-pluggable.Pluggable.SyncCh - - checkInternalMethod(t, pluggable, true) - checkExportedMethods(t, pluggable, true) - }) - require.NotPanics(t, func() { - err := pluggable.Disable() - require.NoError(t, err) - - checkInternalMethod(t, pluggable, false) - checkExportedMethods(t, pluggable, false) - }) - } -} - -func checkInternalMethod(t *testing.T, resolver *rafter.PluggableContainer, enabled bool) { - assert.NotNil(t, resolver.Resolver) - - ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) - defer cancel() - - val, err := resolver.Resolver.ClusterAssetGroupsQuery(ctx, nil, nil) - if enabled { - require.NoError(t, err) - } else { - require.Error(t, err) - require.Nil(t, val) - } -} - -func checkExportedMethods(t *testing.T, resolver *rafter.PluggableContainer, enabled bool) { - assert.NotNil(t, resolver.Retriever) - assert.NotNil(t, resolver.Retriever.AssetGroupGetter) - assert.NotNil(t, resolver.Retriever.GqlAssetGroupConverter) - assert.NotNil(t, resolver.Retriever.ClusterAssetGroupGetter) - assert.NotNil(t, resolver.Retriever.GqlClusterAssetGroupConverter) - assert.NotNil(t, resolver.Retriever.ClusterAssetGetter) - assert.NotNil(t, resolver.Retriever.AssetGetter) - assert.NotNil(t, resolver.Retriever.ClusterAssetGetter) - assert.NotNil(t, resolver.Retriever.GqlClusterAssetConverter) - assert.NotNil(t, resolver.Retriever.SpecificationSvc) - - if enabled { - return - } - - ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) - defer cancel() - - val, err := resolver.Resolver.ClusterAssetFilesField(ctx, nil, nil) - require.Error(t, err) - require.Nil(t, val) -} diff --git a/components/console-backend-service/internal/domain/rafter/retriever.go b/components/console-backend-service/internal/domain/rafter/retriever.go deleted file mode 100644 index e33e7c6374db..000000000000 --- a/components/console-backend-service/internal/domain/rafter/retriever.go +++ /dev/null @@ -1,51 +0,0 @@ -package rafter - -import "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - -type retriever struct { - ClusterAssetGroupGetter shared.ClusterAssetGroupGetter - AssetGroupGetter shared.AssetGroupGetter - GqlClusterAssetGroupConverter shared.GqlClusterAssetGroupConverter - GqlAssetGroupConverter shared.GqlAssetGroupConverter - ClusterAssetGetter shared.ClusterAssetGetter - AssetGetter shared.AssetGetter - GqlClusterAssetConverter shared.GqlClusterAssetConverter - GqlAssetConverter shared.GqlAssetConverter - SpecificationSvc shared.SpecificationGetter -} - -func (r *retriever) ClusterAssetGroup() shared.ClusterAssetGroupGetter { - return r.ClusterAssetGroupGetter -} - -func (r *retriever) AssetGroup() shared.AssetGroupGetter { - return r.AssetGroupGetter -} - -func (r *retriever) ClusterAssetGroupConverter() shared.GqlClusterAssetGroupConverter { - return r.GqlClusterAssetGroupConverter -} - -func (r *retriever) AssetGroupConverter() shared.GqlAssetGroupConverter { - return r.GqlAssetGroupConverter -} - -func (r *retriever) ClusterAsset() shared.ClusterAssetGetter { - return r.ClusterAssetGetter -} - -func (r *retriever) Asset() shared.AssetGetter { - return r.AssetGetter -} - -func (r *retriever) ClusterAssetConverter() shared.GqlClusterAssetConverter { - return r.GqlClusterAssetConverter -} - -func (r *retriever) AssetConverter() shared.GqlAssetConverter { - return r.GqlAssetConverter -} - -func (r *retriever) Specification() shared.SpecificationGetter { - return r.SpecificationSvc -} diff --git a/components/console-backend-service/internal/domain/rafter/spec/asyncapi_spec.go b/components/console-backend-service/internal/domain/rafter/spec/asyncapi_spec.go deleted file mode 100644 index 9fa985b12037..000000000000 --- a/components/console-backend-service/internal/domain/rafter/spec/asyncapi_spec.go +++ /dev/null @@ -1,38 +0,0 @@ -package spec - -import ( - "encoding/json" -) - -type AsyncAPISpec struct { - Raw map[string]interface{} - Data AsyncAPISpecData -} - -type AsyncAPISpecData struct { - AsyncAPI string `json:"asyncapi"` - Channels map[string]interface{} `json:"channels"` -} - -func (o *AsyncAPISpec) Decode(data []byte) error { - if data == nil || len(data) == 0 { - return nil - } - - var raw map[string]interface{} - err := json.Unmarshal(data, &raw) - if err != nil { - return err - } - - var specData AsyncAPISpecData - err = json.Unmarshal(data, &specData) - if err != nil { - return err - } - - o.Raw = raw - o.Data = specData - - return nil -} diff --git a/components/console-backend-service/internal/domain/rafter/spec/asyncapi_spec_test.go b/components/console-backend-service/internal/domain/rafter/spec/asyncapi_spec_test.go deleted file mode 100644 index 2558503d7999..000000000000 --- a/components/console-backend-service/internal/domain/rafter/spec/asyncapi_spec_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package spec_test - -import ( - "encoding/json" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestAsyncAPISpec_Decode(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - asyncAPIBytesData, err := fixAsyncAPIBytesData() - require.NoError(t, err) - assert.NotNil(t, asyncAPIBytesData) - - // expected - asyncAPIData := fixAsyncAPIData() - - // when - asyncAPI := spec.AsyncAPISpec{} - err = asyncAPI.Decode(asyncAPIBytesData) - - // then - require.NoError(t, err) - assert.Equal(t, asyncAPIData.Raw, asyncAPI.Raw) - assert.Equal(t, asyncAPIData.Data, asyncAPI.Data) - }) - - t.Run("Failed", func(t *testing.T) { - // when - asyncAPI := spec.AsyncAPISpec{} - err := asyncAPI.Decode([]byte(`foo-bar`)) - - // expected - asyncAPIRaw := map[string]interface{}(nil) - asyncAPIData := spec.AsyncAPISpecData{} - - // then - require.Error(t, err) - assert.Equal(t, asyncAPIRaw, asyncAPI.Raw) - assert.Equal(t, asyncAPIData, asyncAPI.Data) - }) - - t.Run("Nil", func(t *testing.T) { - // when - asyncAPI := spec.AsyncAPISpec{} - err := asyncAPI.Decode([]byte{}) - - // expected - asyncAPIRaw := map[string]interface{}(nil) - asyncAPIData := spec.AsyncAPISpecData{} - - // then - require.NoError(t, err) - assert.Equal(t, asyncAPIRaw, asyncAPI.Raw) - assert.Equal(t, asyncAPIData, asyncAPI.Data) - }) -} - -func fixAsyncAPIData() spec.AsyncAPISpec { - return spec.AsyncAPISpec{ - Raw: map[string]interface{}{ - "asyncapi": "2.0.0", - "info": map[string]interface{}{ - "title": "Not example", - "version": "1.0.0", - }, - "channels": map[string]interface{}{ - "streetlights": map[string]interface{}{ - "publish": map[string]interface{}{ - "summary": "Inform about environmental lighting conditions of a particular streetlight.", - "operationId": "receiveLightMeasurement", - }, - }, - }, - }, - Data: spec.AsyncAPISpecData{ - AsyncAPI: "2.0.0", - Channels: map[string]interface{}{ - "streetlights": map[string]interface{}{ - "publish": map[string]interface{}{ - "summary": "Inform about environmental lighting conditions of a particular streetlight.", - "operationId": "receiveLightMeasurement", - }, - }, - }, - }, - } -} - -func fixAsyncAPIBytesData() ([]byte, error) { - bytes, err := json.Marshal(fixAsyncAPIData().Raw) - - if err != nil { - return nil, err - } - return bytes, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/specification_service.go b/components/console-backend-service/internal/domain/rafter/specification_service.go deleted file mode 100644 index 445a9280954f..000000000000 --- a/components/console-backend-service/internal/domain/rafter/specification_service.go +++ /dev/null @@ -1,121 +0,0 @@ -package rafter - -import ( - "io/ioutil" - "net/http" - - "github.com/pkg/errors" - - "crypto/tls" - "fmt" - "strings" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" -) - -//go:generate mockery -name=specificationSvc -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=specificationSvc -case=underscore -output disabled -outpkg disabled -type specificationSvc interface { - AsyncAPI(baseURL, name string) (*spec.AsyncAPISpec, error) -} - -type specificationService struct { - cfg Config - endpoint string - client *http.Client -} - -func newSpecificationService(cfg Config) (*specificationService, error) { - client := &http.Client{} - if !cfg.VerifySSL { - transCfg := &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // ignore invalid SSL certificates - } - client.Transport = transCfg - } - - protocol := "http" - if cfg.Secure { - protocol = protocol + "s" - } - endpoint := fmt.Sprintf("%s://%s", protocol, cfg.Address) - - return &specificationService{ - cfg: cfg, - endpoint: endpoint, - client: client, - }, nil -} - -func (s *specificationService) AsyncAPI(baseURL, name string) (*spec.AsyncAPISpec, error) { - data, err := s.readData(baseURL, name) - if err != nil || len(data) == 0 { - return nil, err - } - - asyncApiSpec := new(spec.AsyncAPISpec) - err = asyncApiSpec.Decode(data) - if err != nil { - return nil, err - } - - return asyncApiSpec, nil -} - -func (s *specificationService) readData(baseURL, name string) ([]byte, error) { - path := s.preparePath(baseURL, name) - if path == "" { - return nil, nil - } - - data, err := s.fetch(path) - if err != nil { - return nil, err - } - if len(data) == 0 { - return nil, nil - } - - return data, nil -} - -func (s *specificationService) preparePath(baseURL, name string) string { - if baseURL == "" || name == "" { - return "" - } - - splitBaseURL := strings.Split(baseURL, "/") - if len(splitBaseURL) < 3 { - return "" - } - - bucketName := splitBaseURL[len(splitBaseURL)-2] - assetName := splitBaseURL[len(splitBaseURL)-1] - - return fmt.Sprintf("%s/%s/%s/%s", s.endpoint, bucketName, assetName, name) -} - -func (s *specificationService) fetch(url string) ([]byte, error) { - if url == "" { - return nil, nil - } - - resp, err := s.client.Get(url) - if err != nil { - return nil, errors.Wrapf(err, "while requesting file from URL %s", url) - } - defer func() { - err = resp.Body.Close() - }() - - if resp.StatusCode != http.StatusOK { - return nil, errors.Errorf("Invalid status code while downloading file from URL %s: %d. Expected: %d", url, resp.StatusCode, http.StatusOK) - } - - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, errors.Wrapf(err, "while reading response body while downloading file from URL %s", url) - } - - return body, nil -} diff --git a/components/console-backend-service/internal/domain/rafter/specification_service_test.go b/components/console-backend-service/internal/domain/rafter/specification_service_test.go deleted file mode 100644 index 0d80b5164506..000000000000 --- a/components/console-backend-service/internal/domain/rafter/specification_service_test.go +++ /dev/null @@ -1,147 +0,0 @@ -package rafter_test - -import ( - "bytes" - "fmt" - "io/ioutil" - "net/http" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" -) - -func TestSpecificationService_AsyncAPI(t *testing.T) { - endpoint := "http://example.com" - - t.Run("Failed", func(t *testing.T) { - service := fixSpecificationService(endpoint, 500, "") - data, err := service.AsyncAPI("foo/bucket/asset", "bar.yaml") - - require.Error(t, err) - assert.Nil(t, data) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixSpecificationService(endpoint, 200, "") - data, err := service.AsyncAPI("foo/bucket/asset", "bar.yaml") - - require.NoError(t, err) - assert.Nil(t, data) - }) -} - -func TestSpecificationService_ReadData(t *testing.T) { - endpoint := "http://example.com" - body := "Foo-Bar" - - t.Run("Success", func(t *testing.T) { - service := fixSpecificationService(endpoint, 200, body) - data, err := service.ReadData("foo/bucket/asset", "bar.yaml") - - require.NoError(t, err) - assert.Equal(t, []byte("Foo-Bar"), data) - }) - - t.Run("Failed", func(t *testing.T) { - service := fixSpecificationService(endpoint, 500, "") - data, err := service.ReadData("foo/bucket/asset", "bar.yaml") - - require.Error(t, err) - assert.Nil(t, data) - }) - - t.Run("Nil (empty baseURL and name parameters)", func(t *testing.T) { - service := fixSpecificationService(endpoint, 200, "") - data, err := service.ReadData("", "") - - require.NoError(t, err) - assert.Nil(t, data) - }) - - t.Run("Nil (empty response)", func(t *testing.T) { - service := fixSpecificationService(endpoint, 200, "") - data, err := service.ReadData("foo/bucket/asset", "bar.yaml") - - require.NoError(t, err) - assert.Nil(t, data) - }) -} - -func TestSpecificationService_PreparePath(t *testing.T) { - endpoint := "http://example.com" - service := fixSpecificationService(endpoint, 200, "") - - t.Run("Success", func(t *testing.T) { - path := service.PreparePath("foo/bucket/asset", "bar.yaml") - expected := fmt.Sprintf("%s/%s", endpoint, "bucket/asset/bar.yaml") - assert.Equal(t, expected, path) - }) - - t.Run("A small number of elements after split baseURL parameter", func(t *testing.T) { - path := service.PreparePath("foo/bar", "foo") - assert.Empty(t, path) - }) - - t.Run("Empty baseURL parameter", func(t *testing.T) { - path := service.PreparePath("", "foo") - assert.Empty(t, path) - }) - - t.Run("Empty name parameter", func(t *testing.T) { - path := service.PreparePath("foo", "") - assert.Empty(t, path) - }) - - t.Run("Empty baseURL and name parameters", func(t *testing.T) { - path := service.PreparePath("", "") - assert.Empty(t, path) - }) -} - -func TestSpecificationService_Fetch(t *testing.T) { - url := "http://example.com/bucket/asset/bar.yaml" - body := "Foo-Bar" - - t.Run("Success", func(t *testing.T) { - service := fixSpecificationService(url, 200, body) - data, err := service.Fetch(url) - - require.NoError(t, err) - assert.Equal(t, []byte("Foo-Bar"), data) - }) - - t.Run("Failed", func(t *testing.T) { - service := fixSpecificationService(url, 500, "") - data, err := service.Fetch(url) - - require.Error(t, err) - assert.Nil(t, data) - }) -} - -func fixSpecificationService(endpoint string, statusCode int, body string) *rafter.SpecificationService { - return rafter.NewSpecificationService(rafter.Config{}, endpoint, newFakeHttpClient(func(req *http.Request) *http.Response { - return &http.Response{ - StatusCode: statusCode, - // Send response to be tested - Body: ioutil.NopCloser(bytes.NewBufferString(body)), - // Must be set to non-nil value or it panics - Header: make(http.Header), - } - })) -} - -type roundTrip func(req *http.Request) *http.Response - -func (f roundTrip) RoundTrip(req *http.Request) (*http.Response, error) { - return f(req), nil -} - -func newFakeHttpClient(fn roundTrip) *http.Client { - return &http.Client{ - Transport: roundTrip(fn), - } -} diff --git a/components/console-backend-service/internal/domain/resolver.go b/components/console-backend-service/internal/domain/resolver.go deleted file mode 100644 index 89f6cbd1a81b..000000000000 --- a/components/console-backend-service/internal/domain/resolver.go +++ /dev/null @@ -1,193 +0,0 @@ -package domain - -// This file will not be regenerated automatically. -// -// It serves as dependency injection for your app, add any dependencies you require here. - -import ( - "fmt" - "math/rand" - "time" - - "k8s.io/client-go/kubernetes" - - // "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/roles" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/oauth" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/bebEventing" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/eventing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/apigateway" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui" - "github.com/kyma-project/kyma/components/console-backend-service/internal/experimental" - - "github.com/pkg/errors" - "k8s.io/client-go/rest" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8sNew" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -//go:generate go run github.com/99designs/gqlgen - -type Resolver struct { - ui *ui.Resolver - k8s *k8s.Resolver - k8sNew *k8sNew.Resolver - sc *servicecatalog.PluggableContainer - sca *servicecatalogaddons.PluggableContainer - app *application.PluggableContainer - rafter *rafter.PluggableContainer - ag *apigateway.Resolver - serverless *serverless.PluggableContainer - newServerless *serverless.NewResolver - eventing *eventing.Resolver - bebEventing *bebEventing.Resolver - oauth *oauth.Resolver - roles *roles.Resolver -} - -func GetRandomNumber() time.Duration { - rand.Seed(time.Now().Unix()) - return time.Duration(rand.Intn(120)-60) * time.Second -} - -func New(kubeClient kubernetes.Interface, restConfig *rest.Config, appCfg application.Config, rafterCfg rafter.Config, serverlessCfg serverless.Config, informerResyncPeriod time.Duration, _ experimental.FeatureToggles, systemNamespaces []string, useEventSubscription bool) (*Resolver, error) { - serviceFactory, err := resource.NewServiceFactoryForConfig(restConfig, informerResyncPeriod+GetRandomNumber()) - if err != nil { - return nil, errors.Wrap(err, "while initializing service factory") - } - genericServiceFactory, err := resource.NewGenericServiceFactoryForConfig(restConfig, informerResyncPeriod+GetRandomNumber()) - if err != nil { - return nil, errors.Wrap(err, "while initializing generic service factory") - } - - uiContainer, err := ui.New(restConfig, informerResyncPeriod+GetRandomNumber()) - if err != nil { - return nil, errors.Wrap(err, "while initializing UI resolver") - } - makePluggable := module.MakePluggableFunc(uiContainer.BackendModuleInformer) - - rafterContainer, err := rafter.New(serviceFactory, rafterCfg) - if err != nil { - return nil, errors.Wrap(err, "while initializing Rafter resolver") - } - makePluggable(rafterContainer) - - scContainer, err := servicecatalog.New(restConfig, informerResyncPeriod+GetRandomNumber(), rafterContainer.Retriever) - if err != nil { - return nil, errors.Wrap(err, "while initializing ServiceCatalog container") - } - makePluggable(scContainer) - - scaContainer, err := servicecatalogaddons.New(restConfig, informerResyncPeriod+GetRandomNumber(), scContainer.ServiceCatalogRetriever) - if err != nil { - return nil, errors.Wrap(err, "while initializing ServiceCatalogAddons container") - } - makePluggable(scaContainer) - - appContainer, err := application.New(restConfig, appCfg, informerResyncPeriod+GetRandomNumber(), rafterContainer.Retriever) - if err != nil { - return nil, errors.Wrap(err, "while initializing Application resolver") - } - makePluggable(appContainer) - - k8sResolver, err := k8s.New(restConfig, informerResyncPeriod+GetRandomNumber(), appContainer.ApplicationRetriever, scContainer.ServiceCatalogRetriever, scaContainer.ServiceCatalogAddonsRetriever, systemNamespaces) - if err != nil { - return nil, errors.Wrap(err, "while initializing K8S resolver") - } - - k8sNewResolver := k8sNew.New(genericServiceFactory) - makePluggable(k8sNewResolver) - - err = k8sNewResolver.Enable() // enable manually - if err != nil { - return nil, errors.Wrap(err, "while initializing k8sNew resolver") - } - - agResolver := apigateway.New(genericServiceFactory) - makePluggable(agResolver) - - serverlessResolver, err := serverless.New(serviceFactory, serverlessCfg, scaContainer.ServiceCatalogAddonsRetriever) - if err != nil { - return nil, errors.Wrap(err, "while initializing serverless resolver") - } - makePluggable(serverlessResolver) - - newServerlessResolver := serverless.NewR(genericServiceFactory) - makePluggable(newServerlessResolver) - - eventingResolver := eventing.New(genericServiceFactory) - bebEventingResolver := bebEventing.New(genericServiceFactory, kubeClient) - - if useEventSubscription { - fmt.Printf("Enabling module bebeventing...\n") - makePluggable(bebEventingResolver) - eventingResolver.Disable() - } else { - fmt.Printf("Enabling module eventing...\n") - makePluggable(eventingResolver) - bebEventingResolver.Disable() - } - - oAuthResolver := oauth.New(genericServiceFactory) - makePluggable(oAuthResolver) - - rolesResolver := roles.New(genericServiceFactory) - makePluggable(rolesResolver) - err = rolesResolver.Enable() // enable manually - if err != nil { - return nil, errors.Wrap(err, "while initializing roles resolver") - } - - return &Resolver{ - k8s: k8sResolver, - k8sNew: k8sNewResolver, - ui: uiContainer.Resolver, - sc: scContainer, - sca: scaContainer, - app: appContainer, - rafter: rafterContainer, - ag: agResolver, - serverless: serverlessResolver, - newServerless: newServerlessResolver, - eventing: eventingResolver, - bebEventing: bebEventingResolver, - oauth: oAuthResolver, - roles: rolesResolver, - }, nil -} - -// WaitForCacheSync waits for caches to populate. This is blocking operation. -func (r *Resolver) WaitForCacheSync(stopCh <-chan struct{}) { - // Not pluggable modules - r.k8s.WaitForCacheSync(stopCh) - r.ui.WaitForCacheSync(stopCh) - - // Pluggable modules - r.sc.StopCacheSyncOnClose(stopCh) - r.sca.StopCacheSyncOnClose(stopCh) - r.app.StopCacheSyncOnClose(stopCh) - r.rafter.StopCacheSyncOnClose(stopCh) - r.ag.StopCacheSyncOnClose(stopCh) - r.eventing.StopCacheSyncOnClose(stopCh) - r.bebEventing.StopCacheSyncOnClose(stopCh) - r.serverless.StopCacheSyncOnClose(stopCh) - r.newServerless.StopCacheSyncOnClose(stopCh) - r.oauth.StopCacheSyncOnClose(stopCh) - r.roles.StopCacheSyncOnClose(stopCh) -} diff --git a/components/console-backend-service/internal/domain/roles.resolvers.go b/components/console-backend-service/internal/domain/roles.resolvers.go deleted file mode 100644 index 1cc44a4e6cd3..000000000000 --- a/components/console-backend-service/internal/domain/roles.resolvers.go +++ /dev/null @@ -1,59 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/rbac/v1" -) - -func (r *mutationResolver) CreateRoleBinding(ctx context.Context, name string, namespace string, params gqlschema.RoleBindingInput) (*v1.RoleBinding, error) { - return r.roles.CreateRoleBinding(ctx, namespace, name, params) -} - -func (r *mutationResolver) DeleteRoleBinding(ctx context.Context, namespace string, name string) (*v1.RoleBinding, error) { - return r.roles.DeleteRoleBinding(ctx, namespace, name) -} - -func (r *mutationResolver) CreateClusterRoleBinding(ctx context.Context, name string, params gqlschema.ClusterRoleBindingInput) (*v1.ClusterRoleBinding, error) { - return r.roles.CreateClusterRoleBinding(ctx, name, params) -} - -func (r *mutationResolver) DeleteClusterRoleBinding(ctx context.Context, name string) (*v1.ClusterRoleBinding, error) { - return r.roles.DeleteClusterRoleBinding(ctx, name) -} - -func (r *queryResolver) Roles(ctx context.Context, namespace string) ([]*v1.Role, error) { - return r.roles.RolesQuery(ctx, namespace) -} - -func (r *queryResolver) Role(ctx context.Context, namespace string, name string) (*v1.Role, error) { - return r.roles.RoleQuery(ctx, namespace, name) -} - -func (r *queryResolver) ClusterRoles(ctx context.Context) ([]*v1.ClusterRole, error) { - return r.roles.ClusterRolesQuery(ctx) -} - -func (r *queryResolver) ClusterRole(ctx context.Context, name string) (*v1.ClusterRole, error) { - return r.roles.ClusterRoleQuery(ctx, name) -} - -func (r *queryResolver) RoleBindings(ctx context.Context, namespace string) ([]*v1.RoleBinding, error) { - return r.roles.RoleBindingsQuery(ctx, namespace) -} - -func (r *queryResolver) ClusterRoleBindings(ctx context.Context) ([]*v1.ClusterRoleBinding, error) { - return r.roles.ClusterRoleBindingsQuery(ctx) -} - -func (r *subscriptionResolver) RoleBindingEvent(ctx context.Context, namespace string) (<-chan *gqlschema.RoleBindingEvent, error) { - return r.roles.RoleBindingSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ClusterRoleBindingEvent(ctx context.Context) (<-chan *gqlschema.ClusterRoleBindingEvent, error) { - return r.roles.ClusterRoleBindingSubscription(ctx) -} diff --git a/components/console-backend-service/internal/domain/roles/clusterRole.resolver.go b/components/console-backend-service/internal/domain/roles/clusterRole.resolver.go deleted file mode 100644 index 6193da2ac715..000000000000 --- a/components/console-backend-service/internal/domain/roles/clusterRole.resolver.go +++ /dev/null @@ -1,32 +0,0 @@ -package roles - -import ( - "context" - "sort" - - v1 "k8s.io/api/rbac/v1" -) - -type ClusterRolesList []*v1.ClusterRole - -func (l *ClusterRolesList) Append() interface{} { - e := &v1.ClusterRole{} - *l = append(*l, e) - return e -} - -func (r *Resolver) ClusterRolesQuery(ctx context.Context) ([]*v1.ClusterRole, error) { - items := ClusterRolesList{} - var err error - err = r.ClusterRoleService().List(&items) - sort.Slice(items, func(i, j int) bool { - return items[i].Name < items[j].Name - }) - return items, err -} - -func (r *Resolver) ClusterRoleQuery(ctx context.Context, name string) (*v1.ClusterRole, error) { - var result *v1.ClusterRole - err := r.ClusterRoleService().Get(name, &result) - return result, err -} diff --git a/components/console-backend-service/internal/domain/roles/clusterRoleBinding.resolver.go b/components/console-backend-service/internal/domain/roles/clusterRoleBinding.resolver.go deleted file mode 100644 index 5dce32f4718c..000000000000 --- a/components/console-backend-service/internal/domain/roles/clusterRoleBinding.resolver.go +++ /dev/null @@ -1,80 +0,0 @@ -package roles - -import ( - "context" - "sort" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - v1 "k8s.io/api/rbac/v1" -) - -type ClusterRoleBindingList []*v1.ClusterRoleBinding - -func (l *ClusterRoleBindingList) Append() interface{} { - e := &v1.ClusterRoleBinding{} - *l = append(*l, e) - return e -} - -func (r *Resolver) ClusterRoleBindingsQuery(ctx context.Context) ([]*v1.ClusterRoleBinding, error) { - items := ClusterRoleBindingList{} - var err error - err = r.ClusterRoleBindingService().List(&items) - sort.Slice(items, func(i, j int) bool { - return items[i].Name < items[j].Name - }) - return items, err -} - -func (r *Resolver) CreateClusterRoleBinding(ctx context.Context, name string, params gqlschema.ClusterRoleBindingInput) (*v1.ClusterRoleBinding, error) { - convertedSubjects := make([]v1.Subject, len(params.Subjects)) - - for i, sub := range params.Subjects { - convertedSubjects[i] = v1.Subject{ - Kind: string(sub.Kind), - APIGroup: clusterRoleBindingGroupVersionResource.Group, - Name: sub.Name, - } - } - - clusterRoleBinding := &v1.ClusterRoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Subjects: convertedSubjects, - RoleRef: v1.RoleRef{ - Kind: "ClusterRole", - Name: params.RoleName, - }, - } - - result := &v1.ClusterRoleBinding{} - err := r.ClusterRoleBindingService().Create(clusterRoleBinding, result) - return result, err -} - -func (r *Resolver) DeleteClusterRoleBinding(ctx context.Context, name string) (*v1.ClusterRoleBinding, error) { - result := &v1.ClusterRoleBinding{} - err := r.ClusterRoleBindingService().Delete(name, result) - return result, err -} - -func (r *Resolver) ClusterRoleBindingSubscription(ctx context.Context) (<-chan *gqlschema.ClusterRoleBindingEvent, error) { - channel := make(chan *gqlschema.ClusterRoleBindingEvent, 1) - filter := func(apiRule v1.ClusterRoleBinding) bool { return true } - - unsubscribe, err := r.ClusterRoleBindingService().Subscribe(NewClusterRoleBindingEventHandler(channel, filter)) - if err != nil { - return nil, err - } - - go func() { - defer close(channel) - defer unsubscribe() - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/roles/clusterRoleBindingEventHandler.go b/components/console-backend-service/internal/domain/roles/clusterRoleBindingEventHandler.go deleted file mode 100644 index 9cf66ec4c6ae..000000000000 --- a/components/console-backend-service/internal/domain/roles/clusterRoleBindingEventHandler.go +++ /dev/null @@ -1,27 +0,0 @@ -package roles - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/rbac/v1" -) - -type ClusterRoleBindingEventHandler struct { - channel chan<- *gqlschema.ClusterRoleBindingEvent - filter func(binding v1.ClusterRoleBinding) bool - res *v1.ClusterRoleBinding -} - -func (h *ClusterRoleBindingEventHandler) K8sResource() interface{} { - return h.res -} - -func (h *ClusterRoleBindingEventHandler) ShouldNotify() bool { - return h.filter(*h.res) -} - -func (h *ClusterRoleBindingEventHandler) Notify(eventType gqlschema.SubscriptionEventType) { - h.channel <- &gqlschema.ClusterRoleBindingEvent{ - Type: eventType, - ClusterRoleBinding: h.res, - } -} diff --git a/components/console-backend-service/internal/domain/roles/role.resolver.go b/components/console-backend-service/internal/domain/roles/role.resolver.go deleted file mode 100644 index 1318959ce266..000000000000 --- a/components/console-backend-service/internal/domain/roles/role.resolver.go +++ /dev/null @@ -1,32 +0,0 @@ -package roles - -import ( - "context" - "sort" - - v1 "k8s.io/api/rbac/v1" -) - -type RolesList []*v1.Role - -func (l *RolesList) Append() interface{} { - e := &v1.Role{} - *l = append(*l, e) - return e -} - -func (r *Resolver) RolesQuery(ctx context.Context, namespace string) ([]*v1.Role, error) { - items := RolesList{} - var err error - err = r.RoleService().ListInNamespace(namespace, &items) - sort.Slice(items, func(i, j int) bool { - return items[i].Name < items[j].Name - }) - return items, err -} - -func (r *Resolver) RoleQuery(ctx context.Context, namespace string, name string) (*v1.Role, error) { - var result *v1.Role - err := r.RoleService().GetInNamespace(name, namespace, &result) - return result, err -} diff --git a/components/console-backend-service/internal/domain/roles/roleBinding.resolver.go b/components/console-backend-service/internal/domain/roles/roleBinding.resolver.go deleted file mode 100644 index 32b00c1374fd..000000000000 --- a/components/console-backend-service/internal/domain/roles/roleBinding.resolver.go +++ /dev/null @@ -1,82 +0,0 @@ -package roles - -import ( - "context" - "sort" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - v1 "k8s.io/api/rbac/v1" -) - -type RoleBindingList []*v1.RoleBinding - -func (l *RoleBindingList) Append() interface{} { - e := &v1.RoleBinding{} - *l = append(*l, e) - return e -} - -func (r *Resolver) RoleBindingsQuery(ctx context.Context, namespace string) ([]*v1.RoleBinding, error) { - items := RoleBindingList{} - var err error - err = r.RoleBindingService().ListInNamespace(namespace, &items) - sort.Slice(items, func(i, j int) bool { - return items[i].Name < items[j].Name - }) - return items, err -} - -func (r *Resolver) CreateRoleBinding(ctx context.Context, namespace string, name string, params gqlschema.RoleBindingInput) (*v1.RoleBinding, error) { - convertedSubjects := make([]v1.Subject, len(params.Subjects)) - - for i, sub := range params.Subjects { - convertedSubjects[i] = v1.Subject{ - Kind: string(sub.Kind), - APIGroup: roleBindingGroupVersionResource.Group, - Name: sub.Name, - } - } - - roleBinding := &v1.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Subjects: convertedSubjects, - RoleRef: v1.RoleRef{ - Kind: string(params.RoleKind), - Name: params.RoleName, - }, - } - - result := &v1.RoleBinding{} - err := r.RoleBindingService().Create(roleBinding, result) - return result, err -} - -func (r *Resolver) DeleteRoleBinding(ctx context.Context, namespace string, name string) (*v1.RoleBinding, error) { - result := &v1.RoleBinding{} - err := r.RoleBindingService().DeleteInNamespace(namespace, name, result) - return result, err -} - -func (r *Resolver) RoleBindingSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.RoleBindingEvent, error) { - channel := make(chan *gqlschema.RoleBindingEvent, 1) - filter := func(apiRule v1.RoleBinding) bool { - return apiRule.Namespace == namespace - } - unsubscribe, err := r.RoleBindingService().Subscribe(NewRoleBindingEventHandler(channel, filter)) - if err != nil { - return nil, err - } - - go func() { - defer close(channel) - defer unsubscribe() - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/roles/roleBindingEventHandler.go b/components/console-backend-service/internal/domain/roles/roleBindingEventHandler.go deleted file mode 100644 index 7ca324546737..000000000000 --- a/components/console-backend-service/internal/domain/roles/roleBindingEventHandler.go +++ /dev/null @@ -1,27 +0,0 @@ -package roles - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - v1 "k8s.io/api/rbac/v1" -) - -type RoleBindingEventHandler struct { - channel chan<- *gqlschema.RoleBindingEvent - filter func(binding v1.RoleBinding) bool - res *v1.RoleBinding -} - -func (h *RoleBindingEventHandler) K8sResource() interface{} { - return h.res -} - -func (h *RoleBindingEventHandler) ShouldNotify() bool { - return h.filter(*h.res) -} - -func (h *RoleBindingEventHandler) Notify(eventType gqlschema.SubscriptionEventType) { - h.channel <- &gqlschema.RoleBindingEvent{ - Type: eventType, - RoleBinding: h.res, - } -} diff --git a/components/console-backend-service/internal/domain/roles/roles.go b/components/console-backend-service/internal/domain/roles/roles.go deleted file mode 100644 index 2f39845db9fb..000000000000 --- a/components/console-backend-service/internal/domain/roles/roles.go +++ /dev/null @@ -1,38 +0,0 @@ -package roles - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -type Resolver struct { - *resource.Module -} - -func New(factory *resource.GenericServiceFactory) *Resolver { - module := resource.NewModule("roles", factory, resource.ServiceCreators{ - roleGroupVersionResource: NewRoleService, - clusterRoleGroupVersionResource: NewClusterRoleService, - roleBindingGroupVersionResource: NewRoleBindingService, - clusterRoleBindingGroupVersionResource: NewClusterRoleBindingService, - }) - - return &Resolver{ - Module: module, - } -} - -func (r *Resolver) RoleService() *resource.GenericService { - return r.Module.Service(roleGroupVersionResource) -} - -func (r *Resolver) ClusterRoleService() *resource.GenericService { - return r.Module.Service(clusterRoleGroupVersionResource) -} - -func (r *Resolver) RoleBindingService() *resource.GenericService { - return r.Module.Service(roleBindingGroupVersionResource) -} - -func (r *Resolver) ClusterRoleBindingService() *resource.GenericService { - return r.Module.Service(clusterRoleBindingGroupVersionResource) -} diff --git a/components/console-backend-service/internal/domain/roles/service.go b/components/console-backend-service/internal/domain/roles/service.go deleted file mode 100644 index 494b62db4a9d..000000000000 --- a/components/console-backend-service/internal/domain/roles/service.go +++ /dev/null @@ -1,73 +0,0 @@ -package roles - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - v1 "k8s.io/api/rbac/v1" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var roleGroupVersionResource = schema.GroupVersionResource{ - Version: v1.SchemeGroupVersion.Version, - Group: v1.SchemeGroupVersion.Group, - Resource: "roles", -} - -var clusterRoleGroupVersionResource = schema.GroupVersionResource{ - Version: v1.SchemeGroupVersion.Version, - Group: v1.SchemeGroupVersion.Group, - Resource: "clusterroles", -} - -var roleBindingGroupVersionResource = schema.GroupVersionResource{ - Version: v1.SchemeGroupVersion.Version, - Group: v1.SchemeGroupVersion.Group, - Resource: "rolebindings", -} - -var clusterRoleBindingGroupVersionResource = schema.GroupVersionResource{ - Version: v1.SchemeGroupVersion.Version, - Group: v1.SchemeGroupVersion.Group, - Resource: "clusterrolebindings", -} - -type Service struct { - *resource.Service -} - -func NewRoleService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - - return serviceFactory.ForResource(roleGroupVersionResource), nil -} - -func NewClusterRoleService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - return serviceFactory.ForResource(clusterRoleGroupVersionResource), nil -} - -func NewRoleBindingService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - return serviceFactory.ForResource(roleBindingGroupVersionResource), nil -} - -func NewClusterRoleBindingService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - return serviceFactory.ForResource(clusterRoleBindingGroupVersionResource), nil -} - -func NewClusterRoleBindingEventHandler(channel chan<- *gqlschema.ClusterRoleBindingEvent, filter func(binding v1.ClusterRoleBinding) bool) resource.EventHandlerProvider { - return func() resource.EventHandler { - return &ClusterRoleBindingEventHandler{ - channel: channel, - filter: filter, - res: &v1.ClusterRoleBinding{}, - } - } -} - -func NewRoleBindingEventHandler(channel chan<- *gqlschema.RoleBindingEvent, filter func(binding v1.RoleBinding) bool) resource.EventHandlerProvider { - return func() resource.EventHandler { - return &RoleBindingEventHandler{ - channel: channel, - filter: filter, - res: &v1.RoleBinding{}, - } - } -} diff --git a/components/console-backend-service/internal/domain/roles/test/clusterRoleBinding_test.go b/components/console-backend-service/internal/domain/roles/test/clusterRoleBinding_test.go deleted file mode 100644 index a777e3fa02d9..000000000000 --- a/components/console-backend-service/internal/domain/roles/test/clusterRoleBinding_test.go +++ /dev/null @@ -1,91 +0,0 @@ -package test - -import ( - "context" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/rbac/v1" - k8sMeta "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestClusterRoleBindingsService_Query(t *testing.T) { - t.Run("Should return bindings", func(t *testing.T) { - binding1 := createMockClusterRoleBinding("clusterRole binding1 1", "clusterRole") - binding2 := createMockClusterRoleBinding("clusterRole binding1 2", "clusterRole") - service := setupServiceWithObjects(t, runtime.Object(binding1), runtime.Object(binding2)) - - result, err := service.ClusterRoleBindingsQuery(context.Background()) - - require.NoError(t, err) - assert.Equal(t, 2, len(result)) - }) -} - -func TestClusterRoleBindingsService_Create(t *testing.T) { - const name = "binding" - input := gqlschema.ClusterRoleBindingInput{ - RoleName: "clusterRole", - Subjects: nil, - } - - t.Run("Should create", func(t *testing.T) { - service := setupServiceWithObjects(t) - result, err := service.CreateClusterRoleBinding(context.Background(), name, input) - - require.NoError(t, err) - assert.Equal(t, result.Name, name) - }) - - t.Run("Should return error on duplicate", func(t *testing.T) { - binding1 := createMockClusterRoleBinding(name, "clusterRole") - service := setupServiceWithObjects(t, runtime.Object(binding1)) - - _, err := service.CreateClusterRoleBinding(context.Background(), name, input) - - require.Error(t, err) - }) -} - -func TestClusterRoleBindingsService_Delete(t *testing.T) { - const name = "binding" - - t.Run("Should delete", func(t *testing.T) { - binding := createMockClusterRoleBinding(name, "clusterRole") - service := setupServiceWithObjects(t, runtime.Object(binding)) - - result, err := service.DeleteClusterRoleBinding(context.Background(), name) - - require.NoError(t, err) - assert.Equal(t, result.Name, name) - }) - - t.Run("Should return error on not found", func(t *testing.T) { - binding := createMockClusterRoleBinding("other binding", "clusterRole") - service := setupServiceWithObjects(t, runtime.Object(binding)) - - _, err := service.DeleteClusterRoleBinding(context.Background(), name) - - require.Error(t, err) - }) -} - -func createMockClusterRoleBinding(name, clusterRoleName string) *v1.ClusterRoleBinding { - return &v1.ClusterRoleBinding{ - TypeMeta: k8sMeta.TypeMeta{ - Kind: "ClusterRoleBinding", - APIVersion: v1.SchemeGroupVersion.String(), - }, - ObjectMeta: k8sMeta.ObjectMeta{ - Name: name, - }, - Subjects: nil, - RoleRef: v1.RoleRef{ - Kind: "ClusterRole", - Name: clusterRoleName, - }, - } -} diff --git a/components/console-backend-service/internal/domain/roles/test/clusterRole_test.go b/components/console-backend-service/internal/domain/roles/test/clusterRole_test.go deleted file mode 100644 index 07ff840b06f3..000000000000 --- a/components/console-backend-service/internal/domain/roles/test/clusterRole_test.go +++ /dev/null @@ -1,61 +0,0 @@ -package test - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/rbac/v1" - k8sMeta "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestClusterRolesService_Query(t *testing.T) { - t.Run("Should return existing roles", func(t *testing.T) { - clusterRole1 := createMockClusterRole("role 1") - clusterRole2 := createMockClusterRole("role 2") - service := setupServiceWithObjects(t, runtime.Object(clusterRole1), runtime.Object(clusterRole2)) - - result, err := service.ClusterRolesQuery(context.Background()) - - require.NoError(t, err) - - assert.Equal(t, 2, len(result)) - }) - - t.Run("Should filter by name", func(t *testing.T) { - const name = "clusterRole 1" - clusterRole1 := createMockClusterRole(name) - clusterRole2 := createMockClusterRole("clusterRole 2") - service := setupServiceWithObjects(t, runtime.Object(clusterRole1), runtime.Object(clusterRole2)) - - result, err := service.ClusterRoleQuery(context.Background(), name) - - require.NoError(t, err) - - assert.Equal(t, name, result.Name) - }) - - t.Run("Should return error if clusterRole is not found", func(t *testing.T) { - clusterRole := createMockClusterRole("clusterRole 1") - service := setupServiceWithObjects(t, clusterRole) - - _, err := service.ClusterRoleQuery(context.Background(), "clusterRole 2") - - require.Error(t, err) - }) -} - -func createMockClusterRole(name string) *v1.ClusterRole { - return &v1.ClusterRole{ - TypeMeta: k8sMeta.TypeMeta{ - Kind: "ClusterRole", - APIVersion: v1.SchemeGroupVersion.String(), - }, - ObjectMeta: k8sMeta.ObjectMeta{ - Name: name, - }, - Rules: nil, - } -} diff --git a/components/console-backend-service/internal/domain/roles/test/roleBinding_test.go b/components/console-backend-service/internal/domain/roles/test/roleBinding_test.go deleted file mode 100644 index c2ddf2379613..000000000000 --- a/components/console-backend-service/internal/domain/roles/test/roleBinding_test.go +++ /dev/null @@ -1,99 +0,0 @@ -package test - -import ( - "context" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/rbac/v1" - k8sMeta "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestRoleBindingsService_Query(t *testing.T) { - const namespace = "default" - - t.Run("Should filter by namespace", func(t *testing.T) { - binding1 := createMockRoleBinding("role binding1 1", namespace, "role") - binding2 := createMockRoleBinding("role binding1 2", "other-namespace", "role") - service := setupServiceWithObjects(t, runtime.Object(binding1), runtime.Object(binding2)) - - result, err := service.RoleBindingsQuery(context.Background(), namespace) - - require.NoError(t, err) - assert.Equal(t, 1, len(result)) - assert.Equal(t, binding1.Name, result[0].Name) - assert.Equal(t, binding1.Namespace, result[0].Namespace) - }) -} - -func TestRoleBindingsService_Create(t *testing.T) { - const namespace = "default" - const name = "binding" - input := gqlschema.RoleBindingInput{ - RoleName: "role", - RoleKind: "Role", - Subjects: nil, - } - - t.Run("Should create", func(t *testing.T) { - service := setupServiceWithObjects(t) - result, err := service.CreateRoleBinding(context.Background(), namespace, name, input) - - require.NoError(t, err) - assert.Equal(t, result.Name, name) - }) - - t.Run("Should return error on duplicate", func(t *testing.T) { - binding1 := createMockRoleBinding(name, namespace, "role") - service := setupServiceWithObjects(t, runtime.Object(binding1)) - - _, err := service.CreateRoleBinding(context.Background(), namespace, name, input) - - require.Error(t, err) - }) -} - -func TestRoleBindingsService_Delete(t *testing.T) { - const namespace = "default" - const name = "binding" - - t.Run("Should delete", func(t *testing.T) { - binding := createMockRoleBinding(name, namespace, "role") - service := setupServiceWithObjects(t, runtime.Object(binding)) - - result, err := service.DeleteRoleBinding(context.Background(), namespace, name) - - require.NoError(t, err) - assert.Equal(t, result.Name, name) - }) - - t.Run("Should return error on not found", func(t *testing.T) { - binding := createMockRoleBinding(name, "other-namespace", "role") - service := setupServiceWithObjects(t, runtime.Object(binding)) - - _, err := service.DeleteRoleBinding(context.Background(), namespace, name) - - require.Error(t, err) - }) -} - -func createMockRoleBinding(name, namespace, roleName string) *v1.RoleBinding { - return &v1.RoleBinding{ - TypeMeta: k8sMeta.TypeMeta{ - Kind: "RoleBinding", - APIVersion: v1.SchemeGroupVersion.String(), - }, - ObjectMeta: k8sMeta.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Subjects: nil, - RoleRef: v1.RoleRef{ - Kind: "Role", - Name: roleName, - }, - } -} diff --git a/components/console-backend-service/internal/domain/roles/test/role_test.go b/components/console-backend-service/internal/domain/roles/test/role_test.go deleted file mode 100644 index 0318f4d9b34e..000000000000 --- a/components/console-backend-service/internal/domain/roles/test/role_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package test - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/rbac/v1" - k8sMeta "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestRolesService_Query(t *testing.T) { - const namespace = "default" - - t.Run("Should filter by namespace", func(t *testing.T) { - role1 := createMockRole("role 1", namespace) - role2 := createMockRole("role 2", "other-namespace") - service := setupServiceWithObjects(t, runtime.Object(role1), runtime.Object(role2)) - - result, err := service.RolesQuery(context.Background(), namespace) - - require.NoError(t, err) - - assert.Equal(t, 1, len(result)) - assert.Equal(t, role1.Name, result[0].Name) - assert.Equal(t, role1.Namespace, result[0].Namespace) - }) - - t.Run("Should filter by name", func(t *testing.T) { - const name = "role 1" - role1 := createMockRole(name, namespace) - role2 := createMockRole("role 2", namespace) - service := setupServiceWithObjects(t, runtime.Object(role1), runtime.Object(role2)) - - result, err := service.RoleQuery(context.Background(), namespace, name) - - require.NoError(t, err) - - assert.Equal(t, name, result.Name) - }) - - t.Run("Should return error if role is not found", func(t *testing.T) { - role := createMockRole("role 1", namespace) - service := setupServiceWithObjects(t, role) - - _, err := service.RoleQuery(context.Background(), namespace, "role 2") - - require.Error(t, err) - }) -} - -func createMockRole(name, namespace string) *v1.Role { - return &v1.Role{ - TypeMeta: k8sMeta.TypeMeta{ - Kind: "Role", - APIVersion: v1.SchemeGroupVersion.String(), - }, - ObjectMeta: k8sMeta.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Rules: nil, - } -} diff --git a/components/console-backend-service/internal/domain/roles/test/setup.go b/components/console-backend-service/internal/domain/roles/test/setup.go deleted file mode 100644 index d477825f359b..000000000000 --- a/components/console-backend-service/internal/domain/roles/test/setup.go +++ /dev/null @@ -1,24 +0,0 @@ -package test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/roles" - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/rbac/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func setupServiceWithObjects(t *testing.T, objects ...runtime.Object) *roles.Resolver { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1.AddToScheme, objects...) - require.NoError(t, err) - - service := roles.New(serviceFactory) - err = service.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - - return service -} diff --git a/components/console-backend-service/internal/domain/schema.resolvers.go b/components/console-backend-service/internal/domain/schema.resolvers.go deleted file mode 100644 index 7f02b54f915d..000000000000 --- a/components/console-backend-service/internal/domain/schema.resolvers.go +++ /dev/null @@ -1,675 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -func (r *applicationResolver) EnabledInNamespaces(ctx context.Context, obj *gqlschema.Application) ([]string, error) { - return r.app.Resolver.ApplicationEnabledInNamespacesField(ctx, obj) -} - -func (r *applicationResolver) EnabledMappingServices(ctx context.Context, obj *gqlschema.Application) ([]*gqlschema.EnabledMappingService, error) { - return r.app.Resolver.ApplicationEnabledMappingServices(ctx, obj) -} - -func (r *applicationResolver) Status(ctx context.Context, obj *gqlschema.Application) (gqlschema.ApplicationStatus, error) { - return r.app.Resolver.ApplicationStatusField(ctx, obj) -} - -func (r *assetResolver) Files(ctx context.Context, obj *gqlschema.Asset, filterExtensions []string) ([]*gqlschema.File, error) { - return r.rafter.Resolver.AssetFilesField(ctx, obj, filterExtensions) -} - -func (r *assetGroupResolver) Assets(ctx context.Context, obj *gqlschema.AssetGroup, types []string) ([]*gqlschema.Asset, error) { - return r.rafter.Resolver.AssetGroupAssetsField(ctx, obj, types) -} - -func (r *clusterAssetResolver) Files(ctx context.Context, obj *gqlschema.ClusterAsset, filterExtensions []string) ([]*gqlschema.File, error) { - return r.rafter.Resolver.ClusterAssetFilesField(ctx, obj, filterExtensions) -} - -func (r *clusterAssetGroupResolver) Assets(ctx context.Context, obj *gqlschema.ClusterAssetGroup, types []string) ([]*gqlschema.ClusterAsset, error) { - return r.rafter.Resolver.ClusterAssetGroupAssetsField(ctx, obj, types) -} - -func (r *clusterServiceClassResolver) Plans(ctx context.Context, obj *gqlschema.ClusterServiceClass) ([]*gqlschema.ClusterServicePlan, error) { - return r.sc.Resolver.ClusterServiceClassPlansField(ctx, obj) -} - -func (r *clusterServiceClassResolver) Activated(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) (bool, error) { - return r.sc.Resolver.ClusterServiceClassActivatedField(ctx, obj, namespace) -} - -func (r *clusterServiceClassResolver) Instances(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) ([]*gqlschema.ServiceInstance, error) { - return r.sc.Resolver.ClusterServiceClassInstancesField(ctx, obj, namespace) -} - -func (r *clusterServiceClassResolver) ClusterAssetGroup(ctx context.Context, obj *gqlschema.ClusterServiceClass) (*gqlschema.ClusterAssetGroup, error) { - return r.sc.Resolver.ClusterServiceClassClusterAssetGroupField(ctx, obj) -} - -func (r *clusterServicePlanResolver) ClusterAssetGroup(ctx context.Context, obj *gqlschema.ClusterServicePlan) (*gqlschema.ClusterAssetGroup, error) { - return r.sc.Resolver.ClusterServicePlanClusterAssetGroupField(ctx, obj) -} - -func (r *deploymentResolver) BoundServiceInstanceNames(ctx context.Context, obj *gqlschema.Deployment) ([]string, error) { - return r.k8s.DeploymentBoundServiceInstanceNamesField(ctx, obj) -} - -func (r *eventActivationResolver) Events(ctx context.Context, obj *gqlschema.EventActivation) ([]*gqlschema.EventActivationEvent, error) { - return r.app.Resolver.EventActivationEventsField(ctx, obj) -} - -func (r *mutationResolver) CreateResource(ctx context.Context, namespace string, resource gqlschema.JSON) (gqlschema.JSON, error) { - return r.k8s.CreateResourceMutation(ctx, namespace, resource) -} - -func (r *mutationResolver) CreateServiceInstance(ctx context.Context, namespace string, params gqlschema.ServiceInstanceCreateInput) (*gqlschema.ServiceInstance, error) { - return r.sc.Resolver.CreateServiceInstanceMutation(ctx, namespace, params) -} - -func (r *mutationResolver) DeleteServiceInstance(ctx context.Context, name string, namespace string) (*gqlschema.ServiceInstance, error) { - return r.sc.Resolver.DeleteServiceInstanceMutation(ctx, name, namespace) -} - -func (r *mutationResolver) CreateServiceBinding(ctx context.Context, serviceBindingName *string, serviceInstanceName string, namespace string, parameters gqlschema.JSON) (*gqlschema.CreateServiceBindingOutput, error) { - return r.sc.Resolver.CreateServiceBindingMutation(ctx, serviceBindingName, serviceInstanceName, namespace, parameters) -} - -func (r *mutationResolver) DeleteServiceBinding(ctx context.Context, serviceBindingName string, namespace string) (*gqlschema.DeleteServiceBindingOutput, error) { - return r.sc.Resolver.DeleteServiceBindingMutation(ctx, serviceBindingName, namespace) -} - -func (r *mutationResolver) CreateServiceBindingUsage(ctx context.Context, namespace string, createServiceBindingUsageInput *gqlschema.CreateServiceBindingUsageInput) (*gqlschema.ServiceBindingUsage, error) { - return r.sca.Resolver.CreateServiceBindingUsageMutation(ctx, namespace, createServiceBindingUsageInput) -} - -func (r *mutationResolver) DeleteServiceBindingUsage(ctx context.Context, serviceBindingUsageName string, namespace string) (*gqlschema.DeleteServiceBindingUsageOutput, error) { - return r.sca.Resolver.DeleteServiceBindingUsageMutation(ctx, serviceBindingUsageName, namespace) -} - -func (r *mutationResolver) DeleteServiceBindingUsages(ctx context.Context, serviceBindingUsageNames []string, namespace string) ([]*gqlschema.DeleteServiceBindingUsageOutput, error) { - return r.sca.Resolver.DeleteServiceBindingUsagesMutation(ctx, serviceBindingUsageNames, namespace) -} - -func (r *mutationResolver) CreateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.CreateClusterAddonsConfiguration(ctx, name, repositories, urls, labels) -} - -func (r *mutationResolver) UpdateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.UpdateClusterAddonsConfiguration(ctx, name, repositories, urls, labels) -} - -func (r *mutationResolver) DeleteClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.DeleteClusterAddonsConfiguration(ctx, name) -} - -func (r *mutationResolver) AddClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.AddClusterAddonsConfigurationURLs(ctx, name, urls) -} - -func (r *mutationResolver) RemoveClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.RemoveClusterAddonsConfigurationURLs(ctx, name, urls) -} - -func (r *mutationResolver) AddClusterAddonsConfigurationRepository(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.AddClusterAddonsConfigurationRepositories(ctx, name, repositories) -} - -func (r *mutationResolver) RemoveClusterAddonsConfigurationRepository(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.RemoveClusterAddonsConfigurationRepositories(ctx, name, urls) -} - -func (r *mutationResolver) ResyncClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.ResyncClusterAddonsConfiguration(ctx, name) -} - -func (r *mutationResolver) CreateAddonsConfiguration(ctx context.Context, name string, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.CreateAddonsConfiguration(ctx, name, namespace, repositories, urls, labels) -} - -func (r *mutationResolver) UpdateAddonsConfiguration(ctx context.Context, name string, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.UpdateAddonsConfiguration(ctx, name, namespace, repositories, urls, labels) -} - -func (r *mutationResolver) DeleteAddonsConfiguration(ctx context.Context, name string, namespace string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.DeleteAddonsConfiguration(ctx, name, namespace) -} - -func (r *mutationResolver) AddAddonsConfigurationURLs(ctx context.Context, name string, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.AddAddonsConfigurationURLs(ctx, name, namespace, urls) -} - -func (r *mutationResolver) RemoveAddonsConfigurationURLs(ctx context.Context, name string, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.RemoveAddonsConfigurationURLs(ctx, name, namespace, urls) -} - -func (r *mutationResolver) AddAddonsConfigurationRepository(ctx context.Context, name string, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.AddAddonsConfigurationRepositories(ctx, name, namespace, repositories) -} - -func (r *mutationResolver) RemoveAddonsConfigurationRepository(ctx context.Context, name string, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.RemoveAddonsConfigurationRepositories(ctx, name, namespace, urls) -} - -func (r *mutationResolver) ResyncAddonsConfiguration(ctx context.Context, name string, namespace string) (*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.ResyncAddonsConfiguration(ctx, name, namespace) -} - -func (r *mutationResolver) CreateApplication(ctx context.Context, name string, description *string, labels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) { - return r.app.Resolver.CreateApplication(ctx, name, description, labels) -} - -func (r *mutationResolver) UpdateApplication(ctx context.Context, name string, description *string, labels gqlschema.Labels) (*gqlschema.ApplicationMutationOutput, error) { - return r.app.Resolver.UpdateApplication(ctx, name, description, labels) -} - -func (r *mutationResolver) DeleteApplication(ctx context.Context, name string) (*gqlschema.DeleteApplicationOutput, error) { - return r.app.Resolver.DeleteApplication(ctx, name) -} - -func (r *mutationResolver) EnableApplication(ctx context.Context, application string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) { - return r.app.Resolver.EnableApplicationMutation(ctx, application, namespace, allServices, services) -} - -func (r *mutationResolver) OverloadApplication(ctx context.Context, application string, namespace string, allServices *bool, services []*gqlschema.ApplicationMappingService) (*gqlschema.ApplicationMapping, error) { - return r.app.Resolver.OverloadApplicationMutation(ctx, application, namespace, allServices, services) -} - -func (r *mutationResolver) DisableApplication(ctx context.Context, application string, namespace string) (*gqlschema.ApplicationMapping, error) { - return r.app.Resolver.DisableApplicationMutation(ctx, application, namespace) -} - -func (r *mutationResolver) UpdatePod(ctx context.Context, name string, namespace string, pod gqlschema.JSON) (*gqlschema.Pod, error) { - return r.k8s.UpdatePodMutation(ctx, name, namespace, pod) -} - -func (r *mutationResolver) DeletePod(ctx context.Context, name string, namespace string) (*gqlschema.Pod, error) { - return r.k8s.DeletePodMutation(ctx, name, namespace) -} - -func (r *mutationResolver) UpdateSecret(ctx context.Context, name string, namespace string, secret gqlschema.JSON) (*gqlschema.Secret, error) { - return r.k8s.UpdateSecretMutation(ctx, name, namespace, secret) -} - -func (r *mutationResolver) DeleteSecret(ctx context.Context, name string, namespace string) (*gqlschema.Secret, error) { - return r.k8s.DeleteSecretMutation(ctx, name, namespace) -} - -func (r *mutationResolver) UpdateReplicaSet(ctx context.Context, name string, namespace string, replicaSet gqlschema.JSON) (*gqlschema.ReplicaSet, error) { - return r.k8s.UpdateReplicaSetMutation(ctx, name, namespace, replicaSet) -} - -func (r *mutationResolver) DeleteReplicaSet(ctx context.Context, name string, namespace string) (*gqlschema.ReplicaSet, error) { - return r.k8s.DeleteReplicaSetMutation(ctx, name, namespace) -} - -func (r *mutationResolver) UpdateConfigMap(ctx context.Context, name string, namespace string, configMap gqlschema.JSON) (*gqlschema.ConfigMap, error) { - return r.k8s.UpdateConfigMapMutation(ctx, name, namespace, configMap) -} - -func (r *mutationResolver) DeleteConfigMap(ctx context.Context, name string, namespace string) (*gqlschema.ConfigMap, error) { - return r.k8s.DeleteConfigMapMutation(ctx, name, namespace) -} - -func (r *mutationResolver) UpdateService(ctx context.Context, name string, namespace string, service gqlschema.JSON) (*gqlschema.Service, error) { - return r.k8s.UpdateServiceMutation(ctx, name, namespace, service) -} - -func (r *mutationResolver) DeleteService(ctx context.Context, name string, namespace string) (*gqlschema.Service, error) { - return r.k8s.DeleteServiceMutation(ctx, name, namespace) -} - -func (r *mutationResolver) CreateNamespace(ctx context.Context, name string, labels gqlschema.Labels) (*gqlschema.NamespaceMutationOutput, error) { - return r.k8s.CreateNamespace(ctx, name, labels) -} - -func (r *mutationResolver) UpdateNamespace(ctx context.Context, name string, labels gqlschema.Labels) (*gqlschema.NamespaceMutationOutput, error) { - return r.k8s.UpdateNamespace(ctx, name, labels) -} - -func (r *mutationResolver) DeleteNamespace(ctx context.Context, name string) (*gqlschema.Namespace, error) { - return r.k8s.DeleteNamespace(ctx, name) -} - -func (r *mutationResolver) CreateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) { - return r.serverless.Resolver.CreateFunction(ctx, name, namespace, params) -} - -func (r *mutationResolver) UpdateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) { - return r.serverless.Resolver.UpdateFunction(ctx, name, namespace, params) -} - -func (r *mutationResolver) DeleteFunction(ctx context.Context, namespace string, function gqlschema.FunctionMetadataInput) (*gqlschema.FunctionMetadata, error) { - return r.serverless.Resolver.DeleteFunction(ctx, namespace, function) -} - -func (r *mutationResolver) DeleteManyFunctions(ctx context.Context, namespace string, functions []*gqlschema.FunctionMetadataInput) ([]*gqlschema.FunctionMetadata, error) { - return r.serverless.Resolver.DeleteManyFunctions(ctx, namespace, functions) -} - -func (r *namespaceResolver) Pods(ctx context.Context, obj *gqlschema.Namespace) ([]*gqlschema.Pod, error) { - return r.k8s.PodsQuery(ctx, obj.Name, nil, nil) -} - -func (r *namespaceResolver) Deployments(ctx context.Context, obj *gqlschema.Namespace, excludeFunctions *bool) ([]*gqlschema.Deployment, error) { - return r.k8s.DeploymentsQuery(ctx, obj.Name, excludeFunctions) -} - -func (r *namespaceResolver) Applications(ctx context.Context, obj *gqlschema.Namespace) ([]string, error) { - return r.k8s.ApplicationsField(ctx, obj) -} - -func (r *namespaceListItemResolver) PodsCount(ctx context.Context, obj *gqlschema.NamespaceListItem) (int, error) { - return r.k8s.PodsCountField(ctx, obj) -} - -func (r *namespaceListItemResolver) HealthyPodsCount(ctx context.Context, obj *gqlschema.NamespaceListItem) (int, error) { - return r.k8s.HealthyPodsCountField(ctx, obj) -} - -func (r *namespaceListItemResolver) ApplicationsCount(ctx context.Context, obj *gqlschema.NamespaceListItem) (*int, error) { - return r.k8s.ApplicationsCountField(ctx, obj) -} - -func (r *queryResolver) ServiceInstance(ctx context.Context, name string, namespace string) (*gqlschema.ServiceInstance, error) { - return r.sc.Resolver.ServiceInstanceQuery(ctx, name, namespace) -} - -func (r *queryResolver) ServiceInstances(ctx context.Context, namespace string, first *int, offset *int, status *gqlschema.InstanceStatusType) ([]*gqlschema.ServiceInstance, error) { - return r.sc.Resolver.ServiceInstancesQuery(ctx, namespace, first, offset, status) -} - -func (r *queryResolver) ClusterServiceClasses(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceClass, error) { - return r.sc.Resolver.ClusterServiceClassesQuery(ctx, first, offset) -} - -func (r *queryResolver) ClusterServiceClass(ctx context.Context, name string) (*gqlschema.ClusterServiceClass, error) { - return r.sc.Resolver.ClusterServiceClassQuery(ctx, name) -} - -func (r *queryResolver) ServiceClasses(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceClass, error) { - return r.sc.Resolver.ServiceClassesQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) ServiceClass(ctx context.Context, namespace string, name string) (*gqlschema.ServiceClass, error) { - return r.sc.Resolver.ServiceClassQuery(ctx, name, namespace) -} - -func (r *queryResolver) ClusterServiceBrokers(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceBroker, error) { - return r.sc.Resolver.ClusterServiceBrokersQuery(ctx, first, offset) -} - -func (r *queryResolver) ClusterServiceBroker(ctx context.Context, name string) (*gqlschema.ClusterServiceBroker, error) { - return r.sc.Resolver.ClusterServiceBrokerQuery(ctx, name) -} - -func (r *queryResolver) ServiceBrokers(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceBroker, error) { - return r.sc.Resolver.ServiceBrokersQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) ServiceBroker(ctx context.Context, name string, namespace string) (*gqlschema.ServiceBroker, error) { - return r.sc.Resolver.ServiceBrokerQuery(ctx, name, namespace) -} - -func (r *queryResolver) ServiceBindingUsage(ctx context.Context, name string, namespace string) (*gqlschema.ServiceBindingUsage, error) { - return r.sca.Resolver.ServiceBindingUsageQuery(ctx, name, namespace) -} - -func (r *queryResolver) ServiceBindingUsages(ctx context.Context, namespace string, resourceKind *string, resourceName *string) ([]*gqlschema.ServiceBindingUsage, error) { - return r.sca.Resolver.ServiceBindingUsagesQuery(ctx, namespace, resourceKind, resourceName) -} - -func (r *queryResolver) ServiceBinding(ctx context.Context, name string, namespace string) (*gqlschema.ServiceBinding, error) { - return r.sc.Resolver.ServiceBindingQuery(ctx, name, namespace) -} - -func (r *queryResolver) UsageKinds(ctx context.Context, first *int, offset *int) ([]*gqlschema.UsageKind, error) { - return r.sca.Resolver.ListUsageKinds(ctx, first, offset) -} - -func (r *queryResolver) ClusterAddonsConfigurations(ctx context.Context, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.ClusterAddonsConfigurationsQuery(ctx, first, offset) -} - -func (r *queryResolver) AddonsConfigurations(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) { - return r.sca.Resolver.AddonsConfigurationsQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) BindableResources(ctx context.Context, namespace string) ([]*gqlschema.BindableResourcesOutputItem, error) { - return r.sca.Resolver.ListBindableResources(ctx, namespace) -} - -func (r *queryResolver) Application(ctx context.Context, name string) (*gqlschema.Application, error) { - return r.app.Resolver.ApplicationQuery(ctx, name) -} - -func (r *queryResolver) Applications(ctx context.Context, namespace *string, first *int, offset *int) ([]*gqlschema.Application, error) { - return r.app.Resolver.ApplicationsQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) ConnectorService(ctx context.Context, application string) (*gqlschema.ConnectorService, error) { - return r.app.Resolver.ConnectorServiceQuery(ctx, application) -} - -func (r *queryResolver) Namespaces(ctx context.Context, withSystemNamespaces *bool, withInactiveStatus *bool) ([]*gqlschema.NamespaceListItem, error) { - return r.k8s.NamespacesQuery(ctx, withSystemNamespaces, withInactiveStatus) -} - -func (r *queryResolver) Namespace(ctx context.Context, name string) (*gqlschema.Namespace, error) { - return r.k8s.NamespaceQuery(ctx, name) -} - -func (r *queryResolver) Deployments(ctx context.Context, namespace string, excludeFunctions *bool) ([]*gqlschema.Deployment, error) { - return r.k8s.DeploymentsQuery(ctx, namespace, excludeFunctions) -} - -func (r *queryResolver) VersionInfo(ctx context.Context) (*gqlschema.VersionInfo, error) { - return r.k8s.VersionInfoQuery(ctx) -} - -func (r *queryResolver) Pod(ctx context.Context, name string, namespace string) (*gqlschema.Pod, error) { - return r.k8s.PodQuery(ctx, name, namespace) -} - -func (r *queryResolver) Pods(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.Pod, error) { - return r.k8s.PodsQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) Service(ctx context.Context, name string, namespace string) (*gqlschema.Service, error) { - return r.k8s.ServiceQuery(ctx, name, namespace) -} - -func (r *queryResolver) Services(ctx context.Context, namespace string, excludedLabels []string, first *int, offset *int) ([]*gqlschema.Service, error) { - return r.k8s.ServicesQuery(ctx, namespace, excludedLabels, first, offset) -} - -func (r *queryResolver) ConfigMap(ctx context.Context, name string, namespace string) (*gqlschema.ConfigMap, error) { - return r.k8s.ConfigMapQuery(ctx, name, namespace) -} - -func (r *queryResolver) ConfigMaps(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ConfigMap, error) { - return r.k8s.ConfigMapsQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) ReplicaSet(ctx context.Context, name string, namespace string) (*gqlschema.ReplicaSet, error) { - return r.k8s.ReplicaSetQuery(ctx, name, namespace) -} - -func (r *queryResolver) ReplicaSets(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ReplicaSet, error) { - return r.k8s.ReplicaSetsQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) EventActivations(ctx context.Context, namespace string) ([]*gqlschema.EventActivation, error) { - return r.app.Resolver.EventActivationsQuery(ctx, namespace) -} - -func (r *queryResolver) BackendModules(ctx context.Context) ([]*gqlschema.BackendModule, error) { - return r.ui.BackendModulesQuery(ctx) -} - -func (r *queryResolver) Secret(ctx context.Context, name string, namespace string) (*gqlschema.Secret, error) { - return r.k8s.SecretQuery(ctx, name, namespace) -} - -func (r *queryResolver) Secrets(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.Secret, error) { - return r.k8s.SecretsQuery(ctx, namespace, first, offset) -} - -func (r *queryResolver) MicroFrontends(ctx context.Context, namespace string) ([]*gqlschema.MicroFrontend, error) { - return r.ui.MicroFrontendsQuery(ctx, namespace) -} - -func (r *queryResolver) ClusterMicroFrontends(ctx context.Context) ([]*gqlschema.ClusterMicroFrontend, error) { - return r.ui.ClusterMicroFrontendsQuery(ctx) -} - -func (r *queryResolver) SelfSubjectRules(ctx context.Context, namespace *string) ([]*gqlschema.ResourceRule, error) { - return r.k8s.SelfSubjectRulesQuery(ctx, namespace) -} - -func (r *queryResolver) Function(ctx context.Context, name string, namespace string) (*gqlschema.Function, error) { - return r.serverless.FunctionQuery(ctx, name, namespace) -} - -func (r *queryResolver) Functions(ctx context.Context, namespace string) ([]*gqlschema.Function, error) { - return r.serverless.FunctionsQuery(ctx, namespace) -} - -func (r *serviceBindingResolver) Secret(ctx context.Context, obj *gqlschema.ServiceBinding) (*gqlschema.Secret, error) { - return r.k8s.SecretQuery(ctx, obj.SecretName, obj.Namespace) -} - -func (r *serviceBindingUsageResolver) ServiceBinding(ctx context.Context, obj *gqlschema.ServiceBindingUsage) (*gqlschema.ServiceBinding, error) { - return r.sc.Resolver.ServiceBindingQuery(ctx, obj.ServiceBindingName, obj.Namespace) -} - -func (r *serviceClassResolver) Plans(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServicePlan, error) { - return r.sc.Resolver.ServiceClassPlansField(ctx, obj) -} - -func (r *serviceClassResolver) Activated(ctx context.Context, obj *gqlschema.ServiceClass) (bool, error) { - return r.sc.Resolver.ServiceClassActivatedField(ctx, obj) -} - -func (r *serviceClassResolver) Instances(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServiceInstance, error) { - return r.sc.Resolver.ServiceClassInstancesField(ctx, obj) -} - -func (r *serviceClassResolver) ClusterAssetGroup(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.ClusterAssetGroup, error) { - return r.sc.Resolver.ServiceClassClusterAssetGroupField(ctx, obj) -} - -func (r *serviceClassResolver) AssetGroup(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.AssetGroup, error) { - return r.sc.Resolver.ServiceClassAssetGroupField(ctx, obj) -} - -func (r *serviceInstanceResolver) ServiceClass(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServiceClass, error) { - return r.sc.Resolver.ServiceInstanceServiceClassField(ctx, obj) -} - -func (r *serviceInstanceResolver) ClusterServiceClass(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServiceClass, error) { - return r.sc.Resolver.ServiceInstanceClusterServiceClassField(ctx, obj) -} - -func (r *serviceInstanceResolver) ServicePlan(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServicePlan, error) { - return r.sc.Resolver.ServiceInstanceServicePlanField(ctx, obj) -} - -func (r *serviceInstanceResolver) ClusterServicePlan(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServicePlan, error) { - return r.sc.Resolver.ServiceInstanceClusterServicePlanField(ctx, obj) -} - -func (r *serviceInstanceResolver) Bindable(ctx context.Context, obj *gqlschema.ServiceInstance) (bool, error) { - return r.sc.Resolver.ServiceInstanceBindableField(ctx, obj) -} - -func (r *serviceInstanceResolver) ServiceBindings(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServiceBindings, error) { - return r.sc.Resolver.ServiceBindingsToInstanceQuery(ctx, obj.Name, obj.Namespace) -} - -func (r *serviceInstanceResolver) ServiceBindingUsages(ctx context.Context, obj *gqlschema.ServiceInstance) ([]*gqlschema.ServiceBindingUsage, error) { - return r.sca.Resolver.ServiceBindingUsagesOfInstanceQuery(ctx, obj.Name, obj.Namespace) -} - -func (r *servicePlanResolver) ClusterAssetGroup(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.ClusterAssetGroup, error) { - return r.sc.Resolver.ServicePlanClusterAssetGroupField(ctx, obj) -} - -func (r *servicePlanResolver) AssetGroup(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.AssetGroup, error) { - return r.sc.Resolver.ServicePlanAssetGroupField(ctx, obj) -} - -func (r *subscriptionResolver) ClusterAssetEvent(ctx context.Context) (<-chan *gqlschema.ClusterAssetEvent, error) { - return r.rafter.Resolver.ClusterAssetEventSubscription(ctx) -} - -func (r *subscriptionResolver) AssetEvent(ctx context.Context, namespace string) (<-chan *gqlschema.AssetEvent, error) { - return r.rafter.Resolver.AssetEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ClusterAssetGroupEvent(ctx context.Context) (<-chan *gqlschema.ClusterAssetGroupEvent, error) { - return r.rafter.Resolver.ClusterAssetGroupEventSubscription(ctx) -} - -func (r *subscriptionResolver) AssetGroupEvent(ctx context.Context, namespace string) (<-chan *gqlschema.AssetGroupEvent, error) { - return r.rafter.Resolver.AssetGroupEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ServiceInstanceEvent(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceInstanceEvent, error) { - return r.sc.Resolver.ServiceInstanceEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ServiceBindingEvent(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBindingEvent, error) { - return r.sc.Resolver.ServiceBindingEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ServiceBindingUsageEvent(ctx context.Context, namespace string, resourceKind *string, resourceName *string) (<-chan *gqlschema.ServiceBindingUsageEvent, error) { - return r.sca.Resolver.ServiceBindingUsageEventSubscription(ctx, namespace, resourceKind, resourceName) -} - -func (r *subscriptionResolver) ServiceBrokerEvent(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBrokerEvent, error) { - return r.sc.Resolver.ServiceBrokerEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ClusterServiceBrokerEvent(ctx context.Context) (<-chan *gqlschema.ClusterServiceBrokerEvent, error) { - return r.sc.Resolver.ClusterServiceBrokerEventSubscription(ctx) -} - -func (r *subscriptionResolver) ApplicationEvent(ctx context.Context) (<-chan *gqlschema.ApplicationEvent, error) { - return r.app.Resolver.ApplicationEventSubscription(ctx) -} - -func (r *subscriptionResolver) PodEvent(ctx context.Context, namespace string) (<-chan *gqlschema.PodEvent, error) { - return r.k8s.PodEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) DeploymentEvent(ctx context.Context, namespace string) (<-chan *gqlschema.DeploymentEvent, error) { - return r.k8s.DeploymentEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ServiceEvent(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceEvent, error) { - return r.k8s.ServiceEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ConfigMapEvent(ctx context.Context, namespace string) (<-chan *gqlschema.ConfigMapEvent, error) { - return r.k8s.ConfigMapEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) SecretEvent(ctx context.Context, namespace string) (<-chan *gqlschema.SecretEvent, error) { - return r.k8s.SecretEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) ClusterAddonsConfigurationEvent(ctx context.Context) (<-chan *gqlschema.ClusterAddonsConfigurationEvent, error) { - return r.sca.Resolver.ClusterAddonsConfigurationEventSubscription(ctx) -} - -func (r *subscriptionResolver) AddonsConfigurationEvent(ctx context.Context, namespace string) (<-chan *gqlschema.AddonsConfigurationEvent, error) { - return r.sca.Resolver.AddonsConfigurationEventSubscription(ctx, namespace) -} - -func (r *subscriptionResolver) NamespaceEvent(ctx context.Context, withSystemNamespaces *bool) (<-chan *gqlschema.NamespaceEvent, error) { - return r.k8s.NamespaceEventSubscription(ctx, withSystemNamespaces) -} - -func (r *subscriptionResolver) FunctionEvent(ctx context.Context, namespace string, functionName *string) (<-chan *gqlschema.FunctionEvent, error) { - return r.serverless.FunctionEventSubscription(ctx, namespace, functionName) -} - -// Application returns gqlschema.ApplicationResolver implementation. -func (r *Resolver) Application() gqlschema.ApplicationResolver { return &applicationResolver{r} } - -// Asset returns gqlschema.AssetResolver implementation. -func (r *Resolver) Asset() gqlschema.AssetResolver { return &assetResolver{r} } - -// AssetGroup returns gqlschema.AssetGroupResolver implementation. -func (r *Resolver) AssetGroup() gqlschema.AssetGroupResolver { return &assetGroupResolver{r} } - -// ClusterAsset returns gqlschema.ClusterAssetResolver implementation. -func (r *Resolver) ClusterAsset() gqlschema.ClusterAssetResolver { return &clusterAssetResolver{r} } - -// ClusterAssetGroup returns gqlschema.ClusterAssetGroupResolver implementation. -func (r *Resolver) ClusterAssetGroup() gqlschema.ClusterAssetGroupResolver { - return &clusterAssetGroupResolver{r} -} - -// ClusterServiceClass returns gqlschema.ClusterServiceClassResolver implementation. -func (r *Resolver) ClusterServiceClass() gqlschema.ClusterServiceClassResolver { - return &clusterServiceClassResolver{r} -} - -// ClusterServicePlan returns gqlschema.ClusterServicePlanResolver implementation. -func (r *Resolver) ClusterServicePlan() gqlschema.ClusterServicePlanResolver { - return &clusterServicePlanResolver{r} -} - -// Deployment returns gqlschema.DeploymentResolver implementation. -func (r *Resolver) Deployment() gqlschema.DeploymentResolver { return &deploymentResolver{r} } - -// EventActivation returns gqlschema.EventActivationResolver implementation. -func (r *Resolver) EventActivation() gqlschema.EventActivationResolver { - return &eventActivationResolver{r} -} - -// Mutation returns gqlschema.MutationResolver implementation. -func (r *Resolver) Mutation() gqlschema.MutationResolver { return &mutationResolver{r} } - -// Namespace returns gqlschema.NamespaceResolver implementation. -func (r *Resolver) Namespace() gqlschema.NamespaceResolver { return &namespaceResolver{r} } - -// NamespaceListItem returns gqlschema.NamespaceListItemResolver implementation. -func (r *Resolver) NamespaceListItem() gqlschema.NamespaceListItemResolver { - return &namespaceListItemResolver{r} -} - -// Query returns gqlschema.QueryResolver implementation. -func (r *Resolver) Query() gqlschema.QueryResolver { return &queryResolver{r} } - -// ServiceBinding returns gqlschema.ServiceBindingResolver implementation. -func (r *Resolver) ServiceBinding() gqlschema.ServiceBindingResolver { - return &serviceBindingResolver{r} -} - -// ServiceBindingUsage returns gqlschema.ServiceBindingUsageResolver implementation. -func (r *Resolver) ServiceBindingUsage() gqlschema.ServiceBindingUsageResolver { - return &serviceBindingUsageResolver{r} -} - -// ServiceClass returns gqlschema.ServiceClassResolver implementation. -func (r *Resolver) ServiceClass() gqlschema.ServiceClassResolver { return &serviceClassResolver{r} } - -// ServiceInstance returns gqlschema.ServiceInstanceResolver implementation. -func (r *Resolver) ServiceInstance() gqlschema.ServiceInstanceResolver { - return &serviceInstanceResolver{r} -} - -// ServicePlan returns gqlschema.ServicePlanResolver implementation. -func (r *Resolver) ServicePlan() gqlschema.ServicePlanResolver { return &servicePlanResolver{r} } - -// Subscription returns gqlschema.SubscriptionResolver implementation. -func (r *Resolver) Subscription() gqlschema.SubscriptionResolver { return &subscriptionResolver{r} } - -type applicationResolver struct{ *Resolver } -type assetResolver struct{ *Resolver } -type assetGroupResolver struct{ *Resolver } -type clusterAssetResolver struct{ *Resolver } -type clusterAssetGroupResolver struct{ *Resolver } -type clusterServiceClassResolver struct{ *Resolver } -type clusterServicePlanResolver struct{ *Resolver } -type deploymentResolver struct{ *Resolver } -type eventActivationResolver struct{ *Resolver } -type mutationResolver struct{ *Resolver } -type namespaceResolver struct{ *Resolver } -type namespaceListItemResolver struct{ *Resolver } -type queryResolver struct{ *Resolver } -type serviceBindingResolver struct{ *Resolver } -type serviceBindingUsageResolver struct{ *Resolver } -type serviceClassResolver struct{ *Resolver } -type serviceInstanceResolver struct{ *Resolver } -type servicePlanResolver struct{ *Resolver } -type subscriptionResolver struct{ *Resolver } diff --git a/components/console-backend-service/internal/domain/serverless.resolvers.go b/components/console-backend-service/internal/domain/serverless.resolvers.go deleted file mode 100644 index 664073e93fde..000000000000 --- a/components/console-backend-service/internal/domain/serverless.resolvers.go +++ /dev/null @@ -1,30 +0,0 @@ -package domain - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. - -import ( - "context" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" -) - -func (r *mutationResolver) CreateGitRepository(ctx context.Context, namespace string, name string, spec v1alpha1.GitRepositorySpec) (*v1alpha1.GitRepository, error) { - return r.newServerless.CreateGitRepository(ctx, namespace, name, spec) -} - -func (r *mutationResolver) UpdateGitRepository(ctx context.Context, namespace string, name string, spec v1alpha1.GitRepositorySpec) (*v1alpha1.GitRepository, error) { - return r.newServerless.UpdateGitRepository(ctx, namespace, name, spec) -} - -func (r *mutationResolver) DeleteGitRepository(ctx context.Context, namespace string, name string) (*v1alpha1.GitRepository, error) { - return r.newServerless.DeleteGitRepository(ctx, namespace, name) -} - -func (r *queryResolver) GitRepositories(ctx context.Context, namespace string) ([]*v1alpha1.GitRepository, error) { - return r.newServerless.GitRepositoriesQuery(ctx, namespace) -} - -func (r *queryResolver) GitRepository(ctx context.Context, namespace string, name string) (*v1alpha1.GitRepository, error) { - return r.newServerless.GitRepositoryQuery(ctx, namespace, name) -} diff --git a/components/console-backend-service/internal/domain/serverless/automock/export.go b/components/console-backend-service/internal/domain/serverless/automock/export.go deleted file mode 100644 index 833e5c7ec145..000000000000 --- a/components/console-backend-service/internal/domain/serverless/automock/export.go +++ /dev/null @@ -1,9 +0,0 @@ -package automock - -func NewFunctionService() *functionSvc { - return new(functionSvc) -} - -func NewGQLFunctionConverter() *gqlFunctionConverter { - return new(gqlFunctionConverter) -} diff --git a/components/console-backend-service/internal/domain/serverless/automock/function_svc.go b/components/console-backend-service/internal/domain/serverless/automock/function_svc.go deleted file mode 100644 index ac7a81138787..000000000000 --- a/components/console-backend-service/internal/domain/serverless/automock/function_svc.go +++ /dev/null @@ -1,147 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1alpha1 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" -) - -// functionSvc is an autogenerated mock type for the functionSvc type -type functionSvc struct { - mock.Mock -} - -// Create provides a mock function with given fields: function -func (_m *functionSvc) Create(function *v1alpha1.Function) (*v1alpha1.Function, error) { - ret := _m.Called(function) - - var r0 *v1alpha1.Function - if rf, ok := ret.Get(0).(func(*v1alpha1.Function) *v1alpha1.Function); ok { - r0 = rf(function) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Function) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.Function) error); ok { - r1 = rf(function) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: function -func (_m *functionSvc) Delete(function gqlschema.FunctionMetadataInput) error { - ret := _m.Called(function) - - var r0 error - if rf, ok := ret.Get(0).(func(gqlschema.FunctionMetadataInput) error); ok { - r0 = rf(function) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// DeleteMany provides a mock function with given fields: functions -func (_m *functionSvc) DeleteMany(functions []gqlschema.FunctionMetadataInput) error { - ret := _m.Called(functions) - - var r0 error - if rf, ok := ret.Get(0).(func([]gqlschema.FunctionMetadataInput) error); ok { - r0 = rf(functions) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: namespace, name -func (_m *functionSvc) Find(namespace string, name string) (*v1alpha1.Function, error) { - ret := _m.Called(namespace, name) - - var r0 *v1alpha1.Function - if rf, ok := ret.Get(0).(func(string, string) *v1alpha1.Function); ok { - r0 = rf(namespace, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Function) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace -func (_m *functionSvc) List(namespace string) ([]*v1alpha1.Function, error) { - ret := _m.Called(namespace) - - var r0 []*v1alpha1.Function - if rf, ok := ret.Get(0).(func(string) []*v1alpha1.Function); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.Function) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *functionSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *functionSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Update provides a mock function with given fields: function -func (_m *functionSvc) Update(function *v1alpha1.Function) (*v1alpha1.Function, error) { - ret := _m.Called(function) - - var r0 *v1alpha1.Function - if rf, ok := ret.Get(0).(func(*v1alpha1.Function) *v1alpha1.Function); ok { - r0 = rf(function) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Function) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.Function) error); ok { - r1 = rf(function) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/serverless/automock/gql_function_converter.go b/components/console-backend-service/internal/domain/serverless/automock/gql_function_converter.go deleted file mode 100644 index 9cfd26dfe597..000000000000 --- a/components/console-backend-service/internal/domain/serverless/automock/gql_function_converter.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" -) - -// gqlFunctionConverter is an autogenerated mock type for the gqlFunctionConverter type -type gqlFunctionConverter struct { - mock.Mock -} - -// ToFunction provides a mock function with given fields: name, namespace, in -func (_m *gqlFunctionConverter) ToFunction(name string, namespace string, in gqlschema.FunctionMutationInput) (*v1alpha1.Function, error) { - ret := _m.Called(name, namespace, in) - - var r0 *v1alpha1.Function - if rf, ok := ret.Get(0).(func(string, string, gqlschema.FunctionMutationInput) *v1alpha1.Function); ok { - r0 = rf(name, namespace, in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.Function) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, gqlschema.FunctionMutationInput) error); ok { - r1 = rf(name, namespace, in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: item -func (_m *gqlFunctionConverter) ToGQL(item *v1alpha1.Function) (*gqlschema.Function, error) { - ret := _m.Called(item) - - var r0 *gqlschema.Function - if rf, ok := ret.Get(0).(func(*v1alpha1.Function) *gqlschema.Function); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Function) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.Function) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: items -func (_m *gqlFunctionConverter) ToGQLs(items []*v1alpha1.Function) ([]*gqlschema.Function, error) { - ret := _m.Called(items) - - var r0 []*gqlschema.Function - if rf, ok := ret.Get(0).(func([]*v1alpha1.Function) []*gqlschema.Function); ok { - r0 = rf(items) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.Function) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1alpha1.Function) error); ok { - r1 = rf(items) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/serverless/disabled/function_svc.go b/components/console-backend-service/internal/domain/serverless/disabled/function_svc.go deleted file mode 100644 index 548961af95a2..000000000000 --- a/components/console-backend-service/internal/domain/serverless/disabled/function_svc.go +++ /dev/null @@ -1,80 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - v1alpha1 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" -) - -// functionSvc is an autogenerated failing mock type for the functionSvc type -type functionSvc struct { - err error -} - -// NewFunctionSvc creates a new functionSvc type instance -func NewFunctionSvc(err error) *functionSvc { - return &functionSvc{err: err} -} - -// Create provides a failing mock function with given fields: function -func (_m *functionSvc) Create(function *v1alpha1.Function) (*v1alpha1.Function, error) { - var r0 *v1alpha1.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// Delete provides a failing mock function with given fields: function -func (_m *functionSvc) Delete(function gqlschema.FunctionMetadataInput) error { - var r0 error - r0 = _m.err - - return r0 -} - -// DeleteMany provides a failing mock function with given fields: functions -func (_m *functionSvc) DeleteMany(functions []gqlschema.FunctionMetadataInput) error { - var r0 error - r0 = _m.err - - return r0 -} - -// Find provides a failing mock function with given fields: namespace, name -func (_m *functionSvc) Find(namespace string, name string) (*v1alpha1.Function, error) { - var r0 *v1alpha1.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// List provides a failing mock function with given fields: namespace -func (_m *functionSvc) List(namespace string) ([]*v1alpha1.Function, error) { - var r0 []*v1alpha1.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// Subscribe provides a failing mock function with given fields: listener -func (_m *functionSvc) Subscribe(listener resource.Listener) { -} - -// Unsubscribe provides a failing mock function with given fields: listener -func (_m *functionSvc) Unsubscribe(listener resource.Listener) { -} - -// Update provides a failing mock function with given fields: function -func (_m *functionSvc) Update(function *v1alpha1.Function) (*v1alpha1.Function, error) { - var r0 *v1alpha1.Function - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/serverless/disabled/gql_function_converter.go b/components/console-backend-service/internal/domain/serverless/disabled/gql_function_converter.go deleted file mode 100644 index 4f12cb3e4981..000000000000 --- a/components/console-backend-service/internal/domain/serverless/disabled/gql_function_converter.go +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - v1alpha1 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" -) - -// gqlFunctionConverter is an autogenerated failing mock type for the gqlFunctionConverter type -type gqlFunctionConverter struct { - err error -} - -// NewGqlFunctionConverter creates a new gqlFunctionConverter type instance -func NewGqlFunctionConverter(err error) *gqlFunctionConverter { - return &gqlFunctionConverter{err: err} -} - -// ToFunction provides a failing mock function with given fields: name, namespace, in -func (_m *gqlFunctionConverter) ToFunction(name string, namespace string, in gqlschema.FunctionMutationInput) (*v1alpha1.Function, error) { - var r0 *v1alpha1.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ToGQL provides a failing mock function with given fields: item -func (_m *gqlFunctionConverter) ToGQL(item *v1alpha1.Function) (*gqlschema.Function, error) { - var r0 *gqlschema.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ToGQLs provides a failing mock function with given fields: items -func (_m *gqlFunctionConverter) ToGQLs(items []*v1alpha1.Function) ([]*gqlschema.Function, error) { - var r0 []*gqlschema.Function - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/serverless/disabled/resolver.go b/components/console-backend-service/internal/domain/serverless/disabled/resolver.go deleted file mode 100644 index c822833c807e..000000000000 --- a/components/console-backend-service/internal/domain/serverless/disabled/resolver.go +++ /dev/null @@ -1,82 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - context "context" - - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -// Resolver is an autogenerated failing mock type for the Resolver type -type Resolver struct { - err error -} - -// NewResolver creates a new Resolver type instance -func NewResolver(err error) *Resolver { - return &Resolver{err: err} -} - -// CreateFunction provides a failing mock function with given fields: ctx, name, namespace, params -func (_m *Resolver) CreateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) { - var r0 *gqlschema.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteFunction provides a failing mock function with given fields: ctx, namespace, function -func (_m *Resolver) DeleteFunction(ctx context.Context, namespace string, function gqlschema.FunctionMetadataInput) (*gqlschema.FunctionMetadata, error) { - var r0 *gqlschema.FunctionMetadata - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteManyFunctions provides a failing mock function with given fields: ctx, namespace, functions -func (_m *Resolver) DeleteManyFunctions(ctx context.Context, namespace string, functions []*gqlschema.FunctionMetadataInput) ([]*gqlschema.FunctionMetadata, error) { - var r0 []*gqlschema.FunctionMetadata - var r1 error - r1 = _m.err - - return r0, r1 -} - -// FunctionEventSubscription provides a failing mock function with given fields: ctx, namespace, functionName -func (_m *Resolver) FunctionEventSubscription(ctx context.Context, namespace string, functionName *string) (<-chan *gqlschema.FunctionEvent, error) { - var r0 <-chan *gqlschema.FunctionEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// FunctionQuery provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) FunctionQuery(ctx context.Context, name string, namespace string) (*gqlschema.Function, error) { - var r0 *gqlschema.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// FunctionsQuery provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) FunctionsQuery(ctx context.Context, namespace string) ([]*gqlschema.Function, error) { - var r0 []*gqlschema.Function - var r1 error - r1 = _m.err - - return r0, r1 -} - -// UpdateFunction provides a failing mock function with given fields: ctx, name, namespace, params -func (_m *Resolver) UpdateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) { - var r0 *gqlschema.Function - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/serverless/function_converter.go b/components/console-backend-service/internal/domain/serverless/function_converter.go deleted file mode 100644 index 599205c67986..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_converter.go +++ /dev/null @@ -1,465 +0,0 @@ -package serverless - -import ( - "fmt" - "strings" - - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -//go:generate mockery -name=gqlFunctionConverter -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=gqlFunctionConverter -case=underscore -output disabled -outpkg disabled -type gqlFunctionConverter interface { - ToGQL(item *v1alpha1.Function) (*gqlschema.Function, error) - ToGQLs(items []*v1alpha1.Function) ([]*gqlschema.Function, error) - ToFunction(name, namespace string, in gqlschema.FunctionMutationInput) (*v1alpha1.Function, error) -} - -type functionConverter struct { - extractor *functionUnstructuredExtractor -} - -func newFunctionConverter() *functionConverter { - return &functionConverter{ - extractor: newFunctionUnstructuredExtractor(), - } -} - -func (c *functionConverter) ToGQL(function *v1alpha1.Function) (*gqlschema.Function, error) { - if function == nil { - return nil, nil - } - - labels := map[string]string{} - if function.Labels != nil { - labels = function.Labels - } - envVariables := c.toGQLEnv(function.Spec.Env) - resources := c.toGQLResources(function.Spec.Resources) - buildResources := c.toGQLResources(function.Spec.BuildResources) - replicas := c.toGQLReplicas(function.Spec.MinReplicas, function.Spec.MaxReplicas) - status := c.getStatus(function.Status) - - return &gqlschema.Function{ - Name: function.Name, - Namespace: function.Namespace, - UID: string(function.UID), - Labels: labels, - Source: function.Spec.Source, - Dependencies: function.Spec.Deps, - Env: envVariables, - Replicas: replicas, - Resources: resources, - BuildResources: buildResources, - Runtime: stringPtr(string(function.Spec.Runtime)), - SourceType: stringPtr(string(function.Spec.Type)), - BaseDir: stringPtr(function.Spec.BaseDir), - Reference: stringPtr(function.Spec.Reference), - Status: status, - }, nil -} - -func (c *functionConverter) ToGQLs(functions []*v1alpha1.Function) ([]*gqlschema.Function, error) { - if functions == nil { - return nil, nil - } - - var result []*gqlschema.Function - for _, function := range functions { - converted, err := c.ToGQL(function) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *functionConverter) ToFunction(name, namespace string, in gqlschema.FunctionMutationInput) (*v1alpha1.Function, error) { - resources, errs := c.fromGQLResources(in.Resources) - if len(errs) > 0 { - err := apierror.NewInvalid(pretty.Function, errs) - return nil, errors.Wrapf(err, "while converting to graphql resources field for %s [name: %s]. Resources: %v", pretty.Function, name, resources) - } - buildResources, errs := c.fromGQLResources(in.BuildResources) - if len(errs) > 0 { - err := apierror.NewInvalid(pretty.Function, errs) - return nil, errors.Wrapf(err, "while converting to graphql buildResources field for %s [name: %s]. BuildResources: %v", pretty.Function, name, buildResources) - } - envVariables := c.fromGQLEnv(in.Env) - minReplicas, maxReplicas := c.fromGQLReplicas(in.Replicas) - repository := c.fromGQLRepository(in) - - var runtime v1alpha1.Runtime - if in.Runtime != nil { - runtime = v1alpha1.Runtime(*in.Runtime) - } - - var sourceType v1alpha1.SourceType - if in.SourceType != nil { - sourceType = v1alpha1.SourceType(*in.SourceType) - } - - return &v1alpha1.Function{ - TypeMeta: metav1.TypeMeta{ - APIVersion: "serverless.kyma-project.io/v1alpha1", - Kind: "Function", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: in.Labels, - }, - Spec: v1alpha1.FunctionSpec{ - Source: in.Source, - Deps: in.Dependencies, - Env: envVariables, - Resources: resources, - BuildResources: buildResources, - MinReplicas: minReplicas, - MaxReplicas: maxReplicas, - Type: sourceType, - Runtime: runtime, - Repository: repository, - }, - }, nil -} - -func (c *functionConverter) toGQLEnv(env []v1.EnvVar) []*gqlschema.FunctionEnv { - var variables []*gqlschema.FunctionEnv - for _, variable := range env { - if variable.ValueFrom == nil { - variables = append(variables, &gqlschema.FunctionEnv{ - Name: variable.Name, - Value: variable.Value, - }) - continue - } - - configMapKeyRef := variable.ValueFrom.ConfigMapKeyRef - secretKeyRef := variable.ValueFrom.SecretKeyRef - if configMapKeyRef == nil && secretKeyRef == nil { - continue - } - - if configMapKeyRef != nil { - variables = append(variables, &gqlschema.FunctionEnv{ - Name: variable.Name, - ValueFrom: &gqlschema.FunctionEnvValueFrom{ - Type: gqlschema.FunctionEnvValueFromTypeConfigMap, - Name: configMapKeyRef.Name, - Key: configMapKeyRef.Key, - Optional: configMapKeyRef.Optional, - }, - }) - continue - } - variables = append(variables, &gqlschema.FunctionEnv{ - Name: variable.Name, - ValueFrom: &gqlschema.FunctionEnvValueFrom{ - Type: gqlschema.FunctionEnvValueFromTypeSecret, - Name: secretKeyRef.Name, - Key: secretKeyRef.Key, - Optional: secretKeyRef.Optional, - }, - }) - } - return variables -} - -func (c *functionConverter) toGQLReplicas(minReplicas, maxReplicas *int32) *gqlschema.FunctionReplicas { - if minReplicas == nil && maxReplicas == nil { - return nil - } - - intPtr := func(ptrValue *int32) *int { - var ptr *int - if ptrValue != nil { - value := int(*ptrValue) - ptr = &value - } - return ptr - } - - return &gqlschema.FunctionReplicas{ - Min: intPtr(minReplicas), - Max: intPtr(maxReplicas), - } -} - -func (c *functionConverter) toGQLResources(resources v1.ResourceRequirements) *gqlschema.FunctionResources { - extractResourceValues := func(item v1.ResourceList) *gqlschema.ResourceValues { - rv := &gqlschema.ResourceValues{} - if item, ok := item[v1.ResourceMemory]; ok { - rv.Memory = stringPtr(item.String()) - } - if item, ok := item[v1.ResourceCPU]; ok { - rv.CPU = stringPtr(item.String()) - } - return rv - } - - if resources.Requests == nil && resources.Limits == nil { - return nil - } - - gqlResources := &gqlschema.FunctionResources{} - if resources.Requests != nil { - gqlResources.Requests = extractResourceValues(resources.Requests) - } - if resources.Limits != nil { - gqlResources.Limits = extractResourceValues(resources.Limits) - } - return gqlResources -} - -func (c *functionConverter) fromGQLEnv(env []*gqlschema.FunctionEnvInput) []v1.EnvVar { - var variables []v1.EnvVar - for _, variable := range env { - if variable.ValueFrom == nil { - variables = append(variables, v1.EnvVar{ - Name: variable.Name, - Value: variable.Value, - }) - continue - } - - valueFrom := variable.ValueFrom - if valueFrom.Type == gqlschema.FunctionEnvValueFromTypeConfigMap { - variables = append(variables, v1.EnvVar{ - Name: variable.Name, - ValueFrom: &v1.EnvVarSource{ - ConfigMapKeyRef: &v1.ConfigMapKeySelector{ - LocalObjectReference: v1.LocalObjectReference{ - Name: valueFrom.Name, - }, - Key: valueFrom.Key, - Optional: valueFrom.Optional, - }, - }, - }) - continue - } - variables = append(variables, v1.EnvVar{ - Name: variable.Name, - ValueFrom: &v1.EnvVarSource{ - SecretKeyRef: &v1.SecretKeySelector{ - LocalObjectReference: v1.LocalObjectReference{ - Name: valueFrom.Name, - }, - Key: valueFrom.Key, - Optional: valueFrom.Optional, - }, - }, - }) - } - return variables -} - -func (c *functionConverter) fromGQLReplicas(replicas *gqlschema.FunctionReplicasInput) (*int32, *int32) { - if replicas == nil { - return nil, nil - } - intPtr := func(ptrValue *int) *int32 { - var ptr *int32 - if ptrValue != nil { - value := int32(*ptrValue) - ptr = &value - } - return ptr - } - - return intPtr(replicas.Min), intPtr(replicas.Max) -} - -func (c *functionConverter) fromGQLResources(resources *gqlschema.FunctionResourcesInput) (v1.ResourceRequirements, apierror.ErrorFieldAggregate) { - if resources == nil { - return v1.ResourceRequirements{}, nil - } - createResourceList := func(values *gqlschema.ResourceValuesInput, pathPrefix string) (v1.ResourceList, apierror.ErrorFieldAggregate) { - if values == nil { - return nil, nil - } - - var resourcesList v1.ResourceList - var errs apierror.ErrorFieldAggregate - - strMemory := "" - if values.Memory != nil { - strMemory = *values.Memory - } - memoryParsed, err := resource.ParseQuantity(strMemory) - if strMemory != "" { - if err != nil { - errs = append(errs, apierror.NewInvalidField(fmt.Sprintf("%s.memory", pathPrefix), *values.Memory, "while parsing memory")) - } else { - resourcesList = v1.ResourceList{} - resourcesList[v1.ResourceMemory] = memoryParsed - } - } - - strCPU := "" - if values.CPU != nil { - strCPU = *values.CPU - } - cpuParsed, err := resource.ParseQuantity(strCPU) - if strCPU != "" { - if err != nil { - errs = append(errs, apierror.NewInvalidField(fmt.Sprintf("%s.cpu", pathPrefix), *values.CPU, "while parsing cpu")) - } else { - if resourcesList == nil { - resourcesList = v1.ResourceList{} - } - resourcesList[v1.ResourceCPU] = cpuParsed - } - } - - return resourcesList, errs - } - - resourcesReq := v1.ResourceRequirements{} - var errs apierror.ErrorFieldAggregate - - requests, requestsErrs := createResourceList(resources.Requests, "resources.requests") - resourcesReq.Requests = requests - errs = append(errs, requestsErrs...) - - limits, limitsErrs := createResourceList(resources.Limits, "resources.limits") - resourcesReq.Limits = limits - errs = append(errs, limitsErrs...) - - return resourcesReq, errs -} - -func (c *functionConverter) fromGQLRepository(in gqlschema.FunctionMutationInput) v1alpha1.Repository { - var baseDir, reference string - if in.BaseDir != nil { - baseDir = *in.BaseDir - } - if in.Reference != nil { - reference = *in.Reference - } - - var repository v1alpha1.Repository - if baseDir != "" || reference != "" { - repository = v1alpha1.Repository{ - BaseDir: baseDir, - Reference: reference, - } - } - return repository -} - -func (c *functionConverter) getStatus(status v1alpha1.FunctionStatus) *gqlschema.FunctionStatus { - conditions := status.Conditions - - // Initializing phase - if len(conditions) == 0 { - return &gqlschema.FunctionStatus{ - Phase: gqlschema.FunctionPhaseTypeInitializing, - } - } - - functionConfigCreated := c.hasTrueType(v1alpha1.ConditionConfigurationReady, conditions) - functionJobFinished := c.hasTrueType(v1alpha1.ConditionBuildReady, conditions) - functionIsRunning := c.hasTrueType(v1alpha1.ConditionRunning, conditions) - - // Failed phase - hasFailed, condition := c.getFailedCondition(conditions) - if hasFailed { - reasonType := c.getReasonType(condition.Type) - if functionIsRunning { - return &gqlschema.FunctionStatus{ - Phase: gqlschema.FunctionPhaseTypeNewRevisionError, - Reason: &reasonType, - Message: &condition.Message, - } - } - - return &gqlschema.FunctionStatus{ - Phase: gqlschema.FunctionPhaseTypeFailed, - Reason: &reasonType, - Message: &condition.Message, - } - } - - var phase gqlschema.FunctionPhaseType - - if functionConfigCreated { - if functionJobFinished { - if functionIsRunning { - phase = gqlschema.FunctionPhaseTypeRunning - } else { - phase = gqlschema.FunctionPhaseTypeDeploying - } - } else { - phase = gqlschema.FunctionPhaseTypeBuilding - } - } else { - phase = gqlschema.FunctionPhaseTypeInitializing - } - - return &gqlschema.FunctionStatus{ - Phase: phase, - } -} - -func (c *functionConverter) hasTrueType(conditionType v1alpha1.ConditionType, conditions []v1alpha1.Condition) bool { - for _, cond := range conditions { - if cond.Type == conditionType && cond.Status == v1.ConditionTrue { - return true - } - } - return false -} - -func (c *functionConverter) getFailedCondition(conditions []v1alpha1.Condition) (bool, v1alpha1.Condition) { - for _, cond := range conditions { - if cond.Status == v1.ConditionFalse { - return true, cond - } - } - return false, v1alpha1.Condition{} -} - -func (c *functionConverter) getReasonType(conditionType v1alpha1.ConditionType) gqlschema.FunctionReasonType { - switch conditionType { - case v1alpha1.ConditionConfigurationReady: - return gqlschema.FunctionReasonTypeConfig - case v1alpha1.ConditionBuildReady: - return gqlschema.FunctionReasonTypeJob - case v1alpha1.ConditionRunning: - return gqlschema.FunctionReasonTypeService - default: - return gqlschema.FunctionReasonTypeConfig - } -} - -func (c *functionConverter) containsReason(reason v1alpha1.ConditionReason, subStrings []string) bool { - reasonStr := string(reason) - for _, subString := range subStrings { - if strings.Contains(reasonStr, subString) { - return true - } - } - return false -} - -func stringPtr(str string) *string { - if str == "" { - return nil - } - return &str -} diff --git a/components/console-backend-service/internal/domain/serverless/function_converter_test.go b/components/console-backend-service/internal/domain/serverless/function_converter_test.go deleted file mode 100644 index c11b6d778447..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_converter_test.go +++ /dev/null @@ -1,538 +0,0 @@ -package serverless - -import ( - "testing" - - "k8s.io/apimachinery/pkg/api/resource" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -func TestFunctionConverter_ToGQL(t *testing.T) { - expectedName := "expectedName" - expectedNamespace := "expectedNamespace" - expectedUID := "expectedUID" - expectedSource := "expectedSource" - expectedDependencies := "expectedDependencies" - expectedRuntime := v1alpha1.Python38 - expectedRuntimeString := "python38" - expectedLabels := map[string]string{"foo": "bar"} - - t.Run("Success - plain Function", func(t *testing.T) { - function := fixFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedLabels, expectedRuntime) - gqlFunction := fixGQLFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedRuntimeString, expectedLabels) - - converter := newFunctionConverter() - result, err := converter.ToGQL(function) - - require.NoError(t, err) - assert.Equal(t, gqlFunction, result) - }) - - t.Run("Success - git Function", func(t *testing.T) { - function := fixFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedLabels, expectedRuntime) - gitFunction := fixGitFunction(function, "git-url", "./handler", "master") - gqlFunction := fixGQLFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedRuntimeString, expectedLabels) - gqlGitFunction := fixGQLGitFunction(gqlFunction, "git-url", "./handler", "master") - - converter := newFunctionConverter() - result, err := converter.ToGQL(gitFunction) - - require.NoError(t, err) - assert.Equal(t, gqlGitFunction, result) - }) - - t.Run("Empty", func(t *testing.T) { - function := &v1alpha1.Function{} - - expected := gqlschema.Function{ - Status: &gqlschema.FunctionStatus{ - Phase: gqlschema.FunctionPhaseTypeInitializing, - }, - Labels: map[string]string{}, - } - - converter := newFunctionConverter() - result, err := converter.ToGQL(function) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := newFunctionConverter() - result, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestFunctionConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expectedName := "expectedName" - expectedNamespace := "expectedNamespace" - expectedUID := "expectedUID" - expectedSource := "expectedSource" - expectedDependencies := "expectedDependencies" - expectedLabels := map[string]string{"foo": "bar"} - expectedRuntime := v1alpha1.Nodejs14 - expectedRuntimeString := "nodejs14" - - function1 := fixFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedLabels, expectedRuntime) - function2 := fixFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedLabels, expectedRuntime) - functions := []*v1alpha1.Function{function1, function2} - - gqlFunction1 := fixGQLFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedRuntimeString, expectedLabels) - gqlFunction2 := fixGQLFunction(expectedName, expectedNamespace, expectedUID, expectedSource, expectedDependencies, expectedRuntimeString, expectedLabels) - gqlFunctions := []*gqlschema.Function{gqlFunction1, gqlFunction2} - - converter := newFunctionConverter() - result, err := converter.ToGQLs(functions) - - require.NoError(t, err) - assert.Equal(t, gqlFunctions, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := newFunctionConverter() - result, err := converter.ToGQLs([]*v1alpha1.Function{}) - - require.NoError(t, err) - assert.Equal(t, []*gqlschema.Function(nil), result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := newFunctionConverter() - result, err := converter.ToGQLs(nil) - - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestFunctionConverter_ToFunction(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expectedName := "expectedName" - expectedNamespace := "expectedNamespace" - expectedSource := "expectedSource" - expectedDependencies := "expectedDependencies" - expectedRuntime := v1alpha1.Python38 - expectedRuntimeString := "python38" - expectedLabels := map[string]string{"foo": "bar"} - - function := fixFunction(expectedName, expectedNamespace, "", expectedSource, expectedDependencies, expectedLabels, expectedRuntime) - gqlMutationInput := fixGQLMutationInput(expectedSource, expectedDependencies, expectedRuntimeString, expectedLabels) - gqlMutationInput.Env = []*gqlschema.FunctionEnvInput{ - { - Name: "foo", - Value: "bar", - }, - } - - converter := newFunctionConverter() - result, err := converter.ToFunction(expectedName, expectedNamespace, *gqlMutationInput) - - require.NoError(t, err) - assert.Equal(t, function, result) - }) -} - -func TestFunctionConverter_Env(t *testing.T) { - converter := newFunctionConverter() - kubernetesEnv := []v1.EnvVar{ - { - Name: "foo", - Value: "bar", - }, - { - Name: "bar", - Value: "foo", - }, - { - Name: "configMap", - ValueFrom: &v1.EnvVarSource{ - ConfigMapKeyRef: &v1.ConfigMapKeySelector{ - LocalObjectReference: v1.LocalObjectReference{ - Name: "configMap", - }, - Key: "key", - Optional: new(bool), - }, - }, - }, - { - Name: "secret", - ValueFrom: &v1.EnvVarSource{ - SecretKeyRef: &v1.SecretKeySelector{ - LocalObjectReference: v1.LocalObjectReference{ - Name: "secret", - }, - Key: "key", - Optional: nil, - }, - }, - }, - } - gqlEnv := []*gqlschema.FunctionEnv{ - { - Name: "foo", - Value: "bar", - }, - { - Name: "bar", - Value: "foo", - }, - { - Name: "configMap", - ValueFrom: &gqlschema.FunctionEnvValueFrom{ - Type: gqlschema.FunctionEnvValueFromTypeConfigMap, - Name: "configMap", - Key: "key", - Optional: new(bool), - }, - }, - { - Name: "secret", - ValueFrom: &gqlschema.FunctionEnvValueFrom{ - Type: gqlschema.FunctionEnvValueFromTypeSecret, - Name: "secret", - Key: "key", - }, - }, - } - gqlEnvInput := []*gqlschema.FunctionEnvInput{ - { - Name: "foo", - Value: "bar", - }, - { - Name: "bar", - Value: "foo", - }, - { - Name: "configMap", - ValueFrom: &gqlschema.FunctionEnvValueFromInput{ - Type: gqlschema.FunctionEnvValueFromTypeConfigMap, - Name: "configMap", - Key: "key", - Optional: new(bool), - }, - }, - { - Name: "secret", - ValueFrom: &gqlschema.FunctionEnvValueFromInput{ - Type: gqlschema.FunctionEnvValueFromTypeSecret, - Name: "secret", - Key: "key", - }, - }, - } - - t.Run("Success - toGQLEnv", func(t *testing.T) { - result := converter.toGQLEnv(kubernetesEnv) - assert.ElementsMatch(t, gqlEnv, result) - }) - - t.Run("Empty - toGQLEnv", func(t *testing.T) { - result := converter.toGQLEnv([]v1.EnvVar{}) - assert.ElementsMatch(t, []*gqlschema.FunctionEnv{}, result) - }) - - t.Run("Success - fromGQLEnv", func(t *testing.T) { - result := converter.fromGQLEnv(gqlEnvInput) - assert.ElementsMatch(t, kubernetesEnv, result) - }) - - t.Run("Empty - fromGQLEnv", func(t *testing.T) { - result := converter.fromGQLEnv([]*gqlschema.FunctionEnvInput{}) - assert.ElementsMatch(t, []v1.EnvVar{}, result) - }) -} - -func TestFunctionConverter_Replicas(t *testing.T) { - converter := newFunctionConverter() - min := 5 - max := 7 - int32Min := int32(min) - int32Max := int32(max) - - gqlReplicas := &gqlschema.FunctionReplicas{ - Min: &min, - Max: &max, - } - gqlReplicasInput := &gqlschema.FunctionReplicasInput{ - Min: &min, - Max: &max, - } - - t.Run("Success - toGQLReplicas", func(t *testing.T) { - result := converter.toGQLReplicas(&int32Min, &int32Max) - assert.Equal(t, gqlReplicas, result) - }) - - t.Run("Empty - toGQLReplicas", func(t *testing.T) { - result := converter.toGQLReplicas(nil, nil) - assert.ElementsMatch(t, gqlschema.FunctionReplicas{}, result) - }) - - t.Run("Success - fromGQLReplicas", func(t *testing.T) { - k8sMin, k8sMax := converter.fromGQLReplicas(gqlReplicasInput) - assert.Equal(t, int32Min, *k8sMin) - assert.Equal(t, int32Max, *k8sMax) - }) - - t.Run("Empty - fromGQLReplicas", func(t *testing.T) { - k8sMin, k8sMax := converter.fromGQLReplicas(&gqlschema.FunctionReplicasInput{}) - assert.Nil(t, k8sMin) - assert.Nil(t, k8sMax) - }) -} - -func TestFunctionConverter_Resources(t *testing.T) { - converter := newFunctionConverter() - - t.Run("Success - toGQLResources", func(t *testing.T) { - cpu := resource.NewQuantity(3006477108, resource.DecimalSI) - resources := v1.ResourceRequirements{ - Requests: v1.ResourceList{ - v1.ResourceCPU: *cpu, - }, - } - gqlCPU := "3006477108" - gqlResources := &gqlschema.FunctionResources{ - Requests: &gqlschema.ResourceValues{ - CPU: &gqlCPU, - }, - } - - result := converter.toGQLResources(resources) - assert.Equal(t, gqlResources, result) - }) - - t.Run("Empty - toGQLResources", func(t *testing.T) { - result := converter.toGQLResources(v1.ResourceRequirements{}) - assert.ElementsMatch(t, gqlschema.FunctionResources{}, result) - }) - - t.Run("Success - fromGQLResources", func(t *testing.T) { - gqlCPU := "3006477108" - gqlResources := &gqlschema.FunctionResourcesInput{ - Requests: &gqlschema.ResourceValuesInput{ - CPU: &gqlCPU, - }, - } - - cpuParsed, err := resource.ParseQuantity(gqlCPU) - assert.NoError(t, err) - resources := v1.ResourceRequirements{ - Requests: v1.ResourceList{ - v1.ResourceCPU: cpuParsed, - }, - } - - result, errs := converter.fromGQLResources(gqlResources) - assert.Len(t, errs, 0) - assert.Equal(t, resources, result) - }) - - t.Run("Error - fromGQLResources", func(t *testing.T) { - gqlCPU := "pico-bello" - gqlResources := &gqlschema.FunctionResourcesInput{ - Requests: &gqlschema.ResourceValuesInput{ - CPU: &gqlCPU, - }, - } - - result, errs := converter.fromGQLResources(gqlResources) - assert.Len(t, errs, 1) - assert.Equal(t, v1.ResourceRequirements{}, result) - }) - - t.Run("Empty - fromGQLResources", func(t *testing.T) { - result, errs := converter.fromGQLResources(&gqlschema.FunctionResourcesInput{}) - assert.Len(t, errs, 0) - assert.Equal(t, v1.ResourceRequirements{}, result) - }) -} - -func TestFunctionConverter_Repository(t *testing.T) { - converter := newFunctionConverter() - - t.Run("Success - fromGQLRepository", func(t *testing.T) { - baseDir := "./handler" - input := gqlschema.FunctionMutationInput{ - BaseDir: stringPtr(baseDir), - } - expected := v1alpha1.Repository{ - BaseDir: baseDir, - } - - result := converter.fromGQLRepository(input) - assert.Equal(t, expected, result) - }) - - t.Run("Empty - fromGQLRepository", func(t *testing.T) { - result := converter.fromGQLRepository(gqlschema.FunctionMutationInput{}) - assert.Equal(t, v1alpha1.Repository{}, result) - }) -} - -func TestFunctionConverter_Status(t *testing.T) { - converter := newFunctionConverter() - - t.Run("Initializing", func(t *testing.T) { - status := v1alpha1.FunctionStatus{Conditions: []v1alpha1.Condition{}} - gqlStatus := converter.getStatus(status) - - assert.Equal(t, gqlschema.FunctionPhaseTypeInitializing, gqlStatus.Phase) - }) - - t.Run("Building", func(t *testing.T) { - status := v1alpha1.FunctionStatus{Conditions: []v1alpha1.Condition{ - { - Type: v1alpha1.ConditionConfigurationReady, - Status: v1.ConditionTrue, - }, - }} - gqlStatus := converter.getStatus(status) - - assert.Equal(t, gqlschema.FunctionPhaseTypeBuilding, gqlStatus.Phase) - }) - - t.Run("Deploying", func(t *testing.T) { - status := v1alpha1.FunctionStatus{Conditions: []v1alpha1.Condition{ - { - Type: v1alpha1.ConditionConfigurationReady, - Status: v1.ConditionTrue, - }, - { - Type: v1alpha1.ConditionBuildReady, - Status: v1.ConditionTrue, - }, - }} - gqlStatus := converter.getStatus(status) - - assert.Equal(t, gqlschema.FunctionPhaseTypeDeploying, gqlStatus.Phase) - }) - - t.Run("Running", func(t *testing.T) { - status := v1alpha1.FunctionStatus{Conditions: []v1alpha1.Condition{ - { - Type: v1alpha1.ConditionConfigurationReady, - Status: v1.ConditionTrue, - }, - { - Type: v1alpha1.ConditionBuildReady, - Status: v1.ConditionTrue, - }, - { - Type: v1alpha1.ConditionRunning, - Status: v1.ConditionTrue, - }, - }} - gqlStatus := converter.getStatus(status) - - assert.Equal(t, gqlschema.FunctionPhaseTypeRunning, gqlStatus.Phase) - }) - - t.Run("Failed", func(t *testing.T) { - errorMessage := "Error" - - status := v1alpha1.FunctionStatus{Conditions: []v1alpha1.Condition{ - { - Type: v1alpha1.ConditionConfigurationReady, - Status: v1.ConditionFalse, - Message: errorMessage, - }, - { - Type: v1alpha1.ConditionBuildReady, - Status: v1.ConditionTrue, - Message: errorMessage, - }, - { - Type: v1alpha1.ConditionRunning, - Status: v1.ConditionUnknown, - Message: errorMessage, - }, - }} - gqlStatus := converter.getStatus(status) - - // Config Failed - reason := gqlschema.FunctionReasonTypeConfig - expected := &gqlschema.FunctionStatus{ - Phase: gqlschema.FunctionPhaseTypeFailed, - Reason: &reason, - Message: &errorMessage, - } - - assert.Equal(t, expected, gqlStatus) - - // Job Failed - status.Conditions[0].Status = v1.ConditionTrue - status.Conditions[1].Status = v1.ConditionFalse - - reason = gqlschema.FunctionReasonTypeJob - expected.Reason = &reason - - gqlStatus = converter.getStatus(status) - assert.Equal(t, expected, gqlStatus) - - // Service Failed - status.Conditions[1].Status = v1.ConditionTrue - status.Conditions[2].Status = v1.ConditionFalse - - reason = gqlschema.FunctionReasonTypeService - expected.Reason = &reason - - gqlStatus = converter.getStatus(status) - assert.Equal(t, expected, gqlStatus) - }) - - t.Run("NewRevisionError", func(t *testing.T) { - errorMessage := "Error" - - status := v1alpha1.FunctionStatus{Conditions: []v1alpha1.Condition{ - { - Type: v1alpha1.ConditionConfigurationReady, - Status: v1.ConditionFalse, - Message: errorMessage, - }, - { - Type: v1alpha1.ConditionBuildReady, - Status: v1.ConditionTrue, - Message: errorMessage, - }, - { - Type: v1alpha1.ConditionRunning, - Status: v1.ConditionTrue, - }, - }} - gqlStatus := converter.getStatus(status) - - // Config Failed - reason := gqlschema.FunctionReasonTypeConfig - expected := &gqlschema.FunctionStatus{ - Phase: gqlschema.FunctionPhaseTypeNewRevisionError, - Reason: &reason, - Message: &errorMessage, - } - - assert.Equal(t, expected, gqlStatus) - - // Job Failed - status.Conditions[0].Status = v1.ConditionTrue - status.Conditions[1].Status = v1.ConditionFalse - - reason = gqlschema.FunctionReasonTypeJob - expected.Reason = &reason - - gqlStatus = converter.getStatus(status) - assert.Equal(t, expected, gqlStatus) - }) -} diff --git a/components/console-backend-service/internal/domain/serverless/function_listener.go b/components/console-backend-service/internal/domain/serverless/function_listener.go deleted file mode 100644 index 673344ca2786..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_listener.go +++ /dev/null @@ -1,70 +0,0 @@ -package serverless - -import ( - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/pkg/errors" -) - -type functionListener struct { - channel chan<- *gqlschema.FunctionEvent - filter func(entity *v1alpha1.Function) bool - converter gqlFunctionConverter - extractor *functionUnstructuredExtractor -} - -func newFunctionListener(channel chan<- *gqlschema.FunctionEvent, filter func(entity *v1alpha1.Function) bool, converter gqlFunctionConverter) *functionListener { - return &functionListener{ - channel: channel, - filter: filter, - converter: converter, - extractor: newFunctionUnstructuredExtractor(), - } -} - -func (l *functionListener) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *functionListener) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *functionListener) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *functionListener) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, err := l.extractor.do(object) - if err != nil { - glog.Error(errors.Wrapf(err, "incorrect object type: %T, should be: *%s", object, pretty.FunctionType)) - return - } - if entity == nil { - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *functionListener) notify(eventType gqlschema.SubscriptionEventType, entity *v1alpha1.Function) { - gqlFunction, err := l.converter.ToGQL(entity) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *%s", pretty.FunctionType)) - return - } - if gqlFunction == nil { - return - } - - event := &gqlschema.FunctionEvent{ - Type: eventType, - Function: gqlFunction, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/serverless/function_listener_test.go b/components/console-backend-service/internal/domain/serverless/function_listener_test.go deleted file mode 100644 index 87114b572f59..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_listener_test.go +++ /dev/null @@ -1,198 +0,0 @@ -package serverless - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/stretchr/testify/assert" -) - -func TestFunctionListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlFunction := new(gqlschema.Function) - function := new(v1alpha1.Function) - converter := automock.NewGQLFunctionConverter() - - channel := make(chan *gqlschema.FunctionEvent, 1) - defer close(channel) - converter.On("ToGQL", function).Return(gqlFunction, nil).Once() - defer converter.AssertExpectations(t) - functionListener := newFunctionListener(channel, filterFunctionEventTrue, converter) - - // when - functionListener.OnAdd(function) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlFunction, result.Function) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventFalse, nil) - - // when - functionListener.OnAdd(new(v1alpha1.Function)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventTrue, nil) - - // when - functionListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - function := new(v1alpha1.Function) - converter := automock.NewGQLFunctionConverter() - - converter.On("ToGQL", function).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - functionListener := newFunctionListener(nil, filterFunctionEventTrue, converter) - - // when - functionListener.OnAdd(function) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventTrue, nil) - - // when - functionListener.OnAdd(new(struct{})) - }) -} - -func TestFunctionListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlFunction := new(gqlschema.Function) - function := new(v1alpha1.Function) - converter := automock.NewGQLFunctionConverter() - - channel := make(chan *gqlschema.FunctionEvent, 1) - defer close(channel) - converter.On("ToGQL", function).Return(gqlFunction, nil).Once() - defer converter.AssertExpectations(t) - functionListener := newFunctionListener(channel, filterFunctionEventTrue, converter) - - // when - functionListener.OnDelete(function) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlFunction, result.Function) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventFalse, nil) - - // when - functionListener.OnDelete(new(v1alpha1.Function)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventTrue, nil) - - // when - functionListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - function := new(v1alpha1.Function) - converter := automock.NewGQLFunctionConverter() - - converter.On("ToGQL", function).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - functionListener := newFunctionListener(nil, filterFunctionEventTrue, converter) - - // when - functionListener.OnDelete(function) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventTrue, nil) - - // when - functionListener.OnDelete(new(struct{})) - }) -} - -func TestFunctionListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlFunction := new(gqlschema.Function) - function := new(v1alpha1.Function) - converter := automock.NewGQLFunctionConverter() - - channel := make(chan *gqlschema.FunctionEvent, 1) - defer close(channel) - converter.On("ToGQL", function).Return(gqlFunction, nil).Once() - defer converter.AssertExpectations(t) - functionListener := newFunctionListener(channel, filterFunctionEventTrue, converter) - - // when - functionListener.OnUpdate(function, function) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlFunction, result.Function) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventFalse, nil) - - // when - functionListener.OnUpdate(new(v1alpha1.Function), new(v1alpha1.Function)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventTrue, nil) - - // when - functionListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - function := new(v1alpha1.Function) - converter := automock.NewGQLFunctionConverter() - - converter.On("ToGQL", function).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - functionListener := newFunctionListener(nil, filterFunctionEventTrue, converter) - - // when - functionListener.OnUpdate(function, function) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - functionListener := newFunctionListener(nil, filterFunctionEventTrue, nil) - - // when - functionListener.OnUpdate(new(struct{}), new(struct{})) - }) -} - -func filterFunctionEventTrue(o *v1alpha1.Function) bool { - return true -} - -func filterFunctionEventFalse(o *v1alpha1.Function) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/serverless/function_resolver.go b/components/console-backend-service/internal/domain/serverless/function_resolver.go deleted file mode 100644 index 4dfa41bf2941..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_resolver.go +++ /dev/null @@ -1,175 +0,0 @@ -package serverless - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/pkg/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/pretty" - scaPretty "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type functionResolver struct { - functionService functionSvc - functionConverter gqlFunctionConverter - cfg *Config - scaRetriever shared.ServiceCatalogAddonsRetriever -} - -func newFunctionResolver(functionService functionSvc, functionConverter gqlFunctionConverter, cfg *Config, scaRetriever shared.ServiceCatalogAddonsRetriever) *functionResolver { - return &functionResolver{ - functionService: functionService, - functionConverter: functionConverter, - cfg: cfg, - scaRetriever: scaRetriever, - } -} - -func (r *functionResolver) FunctionQuery(ctx context.Context, name string, namespace string) (*gqlschema.Function, error) { - item, err := r.functionService.Find(namespace, name) - if err != nil { - glog.Error(errors.Wrapf(err, "while finding %s [name: %s, namespace: %s]", pretty.Functions, name, namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - function, err := r.functionConverter.ToGQL(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s GQL [name: %s, namespace: %s]", pretty.Function, name, namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return function, nil -} - -func (r *functionResolver) FunctionsQuery(ctx context.Context, namespace string) ([]*gqlschema.Function, error) { - items, err := r.functionService.List(namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s [namespace: %s]", pretty.Functions, namespace)) - return nil, gqlerror.New(err, pretty.Functions, gqlerror.WithNamespace(namespace)) - } - - functions, err := r.functionConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s GQLs [namespace: %s]", pretty.Functions, namespace)) - return nil, gqlerror.New(err, pretty.Functions, gqlerror.WithNamespace(namespace)) - } - - return functions, nil -} - -func (r *functionResolver) CreateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) { - item, err := r.functionConverter.ToFunction(name, namespace, params) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting GQL to %s [name: %s, namespace: %s, params: %v]", pretty.Function, name, namespace, params)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - createdItem, err := r.functionService.Create(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s [name: %s, namespace: %s]", pretty.Function, name, namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - function, err := r.functionConverter.ToGQL(createdItem) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s to GQL [name: %s, namespace: %s]", pretty.Function, name, namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return function, nil -} - -func (r *functionResolver) UpdateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) { - item, err := r.functionConverter.ToFunction(name, namespace, params) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting GQL to %s [name: %s, namespace: %s, params: %v]", pretty.Function, name, namespace, params)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - updatedItem, err := r.functionService.Update(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s [name: %s, namespace: %s]", pretty.Function, name, namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - function, err := r.functionConverter.ToGQL(updatedItem) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s to GQL [name: %s, namespace: %s]", pretty.Function, name, namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return function, nil -} - -func (r *functionResolver) DeleteFunction(ctx context.Context, namespace string, function gqlschema.FunctionMetadataInput) (*gqlschema.FunctionMetadata, error) { - err := r.functionService.Delete(function) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s [name: %s, namespace: %s]", pretty.Function, function.Name, function.Namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(function.Name), gqlerror.WithNamespace(function.Namespace)) - } - - err = r.scaRetriever.ServiceBindingUsage().DeleteAllByUsageKind(function.Namespace, r.cfg.UsageKind, function.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - glog.Error(errors.Wrapf(err, "while deleting %s for %s [name: %s, namespace: %s]", scaPretty.ServiceBindingUsages, pretty.Function, function.Name, function.Namespace)) - return nil, gqlerror.New(err, pretty.Function, gqlerror.WithName(function.Name), gqlerror.WithNamespace(function.Namespace)) - } - - return &gqlschema.FunctionMetadata{ - Name: function.Name, - Namespace: function.Namespace, - }, nil -} - -func (r *functionResolver) DeleteManyFunctions(ctx context.Context, namespace string, functions []*gqlschema.FunctionMetadataInput) ([]*gqlschema.FunctionMetadata, error) { - deletedFunctions := make([]*gqlschema.FunctionMetadata, 0) - for _, function := range functions { - _, err := r.DeleteFunction(ctx, namespace, *function) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s [namespace: %s]", pretty.Functions, function.Namespace)) - return deletedFunctions, gqlerror.New(err, pretty.Functions, gqlerror.WithNamespace(function.Namespace)) - } - - deletedFunctions = append(deletedFunctions, &gqlschema.FunctionMetadata{ - Name: function.Name, - Namespace: function.Namespace, - }) - } - return deletedFunctions, nil -} - -func (r *functionResolver) FunctionEventSubscription(ctx context.Context, namespace string, functionName *string) (<-chan *gqlschema.FunctionEvent, error) { - channel := make(chan *gqlschema.FunctionEvent, 1) - filter := func(entity *v1alpha1.Function) bool { - if entity == nil { - return false - } - - correctNamespace := entity.Namespace == namespace - if functionName != nil { - return correctNamespace && entity.Name == *functionName - } - return correctNamespace - } - - listener := newFunctionListener(channel, filter, r.functionConverter) - - r.functionService.Subscribe(listener) - go func() { - defer close(channel) - defer r.functionService.Unsubscribe(listener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/serverless/function_resolver_test.go b/components/console-backend-service/internal/domain/serverless/function_resolver_test.go deleted file mode 100644 index 6459f0751a20..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_resolver_test.go +++ /dev/null @@ -1,457 +0,0 @@ -package serverless - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/automock" - shared "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" -) - -func TestFunctionResolver_FunctionQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Python38) - gqlFunction := fixGQLFunction("1", "a", "1", "content", "dependencies", "python38", labels) - - svc := automock.NewFunctionService() - svc.On("Find", "a", "1").Return(function, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToGQL", function).Return(gqlFunction, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.FunctionQuery(nil, "1", "a") - require.NoError(t, err) - assert.Equal(t, gqlFunction, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var resource *v1alpha1.Function - var expected *gqlschema.Function - - svc := automock.NewFunctionService() - svc.On("Find", "a", "1").Return(resource, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToGQL", resource).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.FunctionQuery(nil, "1", "a") - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Error") - var resource *v1alpha1.Function - - svc := automock.NewFunctionService() - svc.On("Find", "a", "1").Return(resource, expected).Once() - defer svc.AssertExpectations(t) - - resolver := newFunctionResolver(svc, nil, nil, nil) - - _, err := resolver.FunctionQuery(nil, "1", "a") - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestFunctionResolver_FunctionsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Python38) - function2 := fixFunction("2", "a", "1", "content", "dependencies", labels, v1alpha1.Python38) - gqlFunction1 := fixGQLFunction("1", "a", "1", "content", "dependencies", "python38", labels) - gqlFunction2 := fixGQLFunction("2", "a", "1", "content", "dependencies", "python38", labels) - functions := []*v1alpha1.Function{function1, function2} - expected := []*gqlschema.Function{gqlFunction1, gqlFunction2} - - svc := automock.NewFunctionService() - svc.On("List", "a").Return(functions, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToGQLs", functions).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.FunctionsQuery(nil, "a") - require.NoError(t, err) - assert.ElementsMatch(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var resources []*v1alpha1.Function - var expected []*gqlschema.Function - - svc := automock.NewFunctionService() - svc.On("List", "a").Return(resources, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.FunctionsQuery(nil, "a") - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Error") - var resources []*v1alpha1.Function - - svc := automock.NewFunctionService() - svc.On("List", "a").Return(resources, expected).Once() - defer svc.AssertExpectations(t) - - resolver := newFunctionResolver(svc, nil, nil, nil) - - _, err := resolver.FunctionsQuery(nil, "a") - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestFunctionResolver_CreateFunction(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Nodejs14) - gqlFunction := fixGQLFunction("1", "a", "1", "content", "dependencies", "nodejs14", labels) - mutationInput := fixGQLMutationInput("content", "dependencies", "dupa", labels) - - svc := automock.NewFunctionService() - svc.On("Create", function).Return(function, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToFunction", "1", "a", *mutationInput).Return(function, nil) - converter.On("ToGQL", function).Return(gqlFunction, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.CreateFunction(nil, "1", "a", *mutationInput) - require.NoError(t, err) - assert.Equal(t, gqlFunction, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Error") - labels := map[string]string{"foo": "bar"} - function := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Nodejs12) - mutationInput := fixGQLMutationInput("content", "dependencies", "nodejs12", labels) - - svc := automock.NewFunctionService() - svc.On("Create", function).Return(function, expected).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToFunction", "1", "a", *mutationInput).Return(function, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.CreateFunction(nil, "1", "a", *mutationInput) - require.Error(t, err) - require.Nil(t, result) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestFunctionResolver_UpdateFunction(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Nodejs14) - gqlFunction := fixGQLFunction("1", "a", "1", "content", "dependencies", "nodejs14", labels) - mutationInput := fixGQLMutationInput("content", "dependencies", "nodejs14", labels) - - svc := automock.NewFunctionService() - svc.On("Update", function).Return(function, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToFunction", "1", "a", *mutationInput).Return(function, nil) - converter.On("ToGQL", function).Return(gqlFunction, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.UpdateFunction(nil, "1", "a", *mutationInput) - require.NoError(t, err) - assert.Equal(t, gqlFunction, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Error") - labels := map[string]string{"foo": "bar"} - function := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Python38) - mutationInput := fixGQLMutationInput("content", "dependencies", "python38", labels) - - svc := automock.NewFunctionService() - svc.On("Update", function).Return(function, expected).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLFunctionConverter() - converter.On("ToFunction", "1", "a", *mutationInput).Return(function, nil) - defer converter.AssertExpectations(t) - - resolver := newFunctionResolver(svc, converter, nil, nil) - - result, err := resolver.UpdateFunction(nil, "1", "a", *mutationInput) - require.Error(t, err) - require.Nil(t, result) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestFunctionResolver_DeleteFunction(t *testing.T) { - t.Run("Success", func(t *testing.T) { - usageKind := "lambda" - mutationInput := fixGQLMetadataInput("1", "a") - mutation := fixGQLMetadata("1", "a") - - svc := automock.NewFunctionService() - svc.On("Delete", *mutationInput).Return(nil).Once() - defer svc.AssertExpectations(t) - - resourceLister := new(shared.ServiceBindingUsageLister) - resourceLister.On("DeleteAllByUsageKind", mutationInput.Namespace, usageKind, mutationInput.Name).Return(nil).Once() - defer resourceLister.AssertExpectations(t) - - retriever := new(shared.ServiceCatalogAddonsRetriever) - retriever.On("ServiceBindingUsage").Return(resourceLister) - - resolver := newFunctionResolver(svc, nil, &Config{UsageKind: usageKind}, retriever) - - result, err := resolver.DeleteFunction(nil, "a", *mutationInput) - require.NoError(t, err) - assert.Equal(t, mutation, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Error") - mutationInput := fixGQLMetadataInput("1", "a") - - svc := automock.NewFunctionService() - svc.On("Delete", *mutationInput).Return(expected).Once() - defer svc.AssertExpectations(t) - - resolver := newFunctionResolver(svc, nil, nil, nil) - - result, err := resolver.DeleteFunction(nil, "a", *mutationInput) - require.Error(t, err) - require.Nil(t, result) - }) -} - -func TestFunctionResolver_DeleteManyFunction(t *testing.T) { - t.Run("Success", func(t *testing.T) { - usageKind := "lambda" - mutationInput1 := fixGQLMetadataInput("1", "a") - mutationInput2 := fixGQLMetadataInput("2", "a") - resources := []*gqlschema.FunctionMetadataInput{mutationInput1, mutationInput2} - - mutation1 := fixGQLMetadata("1", "a") - mutation2 := fixGQLMetadata("2", "a") - mutations := []*gqlschema.FunctionMetadata{mutation1, mutation2} - - svc := automock.NewFunctionService() - svc.On("Delete", *mutationInput1).Return(nil).Once() - svc.On("Delete", *mutationInput2).Return(nil).Once() - defer svc.AssertExpectations(t) - - resourceLister := new(shared.ServiceBindingUsageLister) - resourceLister.On("DeleteAllByUsageKind", mutationInput1.Namespace, usageKind, mutationInput1.Name).Return(nil).Once() - resourceLister.On("DeleteAllByUsageKind", mutationInput2.Namespace, usageKind, mutationInput2.Name).Return(nil).Once() - defer resourceLister.AssertExpectations(t) - - retriever := new(shared.ServiceCatalogAddonsRetriever) - retriever.On("ServiceBindingUsage").Return(resourceLister) - - resolver := newFunctionResolver(svc, nil, &Config{UsageKind: usageKind}, retriever) - - result, err := resolver.DeleteManyFunctions(nil, "a", resources) - require.NoError(t, err) - assert.Equal(t, mutations, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Error") - mutationInput1 := fixGQLMetadataInput("1", "a") - mutationInput2 := fixGQLMetadataInput("2", "a") - resources := []*gqlschema.FunctionMetadataInput{mutationInput1, mutationInput2} - - svc := automock.NewFunctionService() - svc.On("Delete", *mutationInput1).Return(expected).Once() - defer svc.AssertExpectations(t) - - resolver := newFunctionResolver(svc, nil, nil, nil) - - result, err := resolver.DeleteManyFunctions(nil, "a", resources) - require.Error(t, err) - require.Equal(t, []*gqlschema.FunctionMetadata{}, result) - }) -} - -func TestFunctionResolver_FunctionEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewFunctionService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := newFunctionResolver(svc, nil, nil, nil) - - _, err := resolver.FunctionEventSubscription(ctx, "", nil) - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewFunctionService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := newFunctionResolver(svc, nil, nil, nil) - - channel, err := resolver.FunctionEventSubscription(ctx, "", nil) - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} - -func fixFakeFunctionService(t *testing.T, objects ...runtime.Object) *functionService { - serviceFactory, err := resourceFake.NewFakeServiceFactory(v1alpha1.AddToScheme, objects...) - require.NoError(t, err) - - service := newFunctionService(serviceFactory) - testingUtils.WaitForInformerStartAtMost(t, time.Second, service.Informer) - - return service -} - -func fixGQLMetadataInput(name, namespace string) *gqlschema.FunctionMetadataInput { - return &gqlschema.FunctionMetadataInput{ - Name: name, - Namespace: namespace, - } -} - -func fixGQLMetadata(name, namespace string) *gqlschema.FunctionMetadata { - return &gqlschema.FunctionMetadata{ - Name: name, - Namespace: namespace, - } -} - -func fixGQLMutationInput(source, dependencies, runtime string, labels map[string]string) *gqlschema.FunctionMutationInput { - return &gqlschema.FunctionMutationInput{ - Labels: labels, - Source: source, - Dependencies: dependencies, - Runtime: stringPtr(runtime), - } -} - -func fixGQLFunction(name, namespace, uid, source, dependencies, runtime string, labels map[string]string) *gqlschema.Function { - return &gqlschema.Function{ - Name: name, - Namespace: namespace, - UID: uid, - Labels: labels, - Source: source, - Dependencies: dependencies, - Runtime: &runtime, - Env: []*gqlschema.FunctionEnv{ - { - Name: "foo", - Value: "bar", - }, - }, - Status: &gqlschema.FunctionStatus{ - Phase: gqlschema.FunctionPhaseTypeInitializing, - }, - } -} - -func fixGQLGitFunction(function *gqlschema.Function, gitRepositoryRef, baseDir, reference string) *gqlschema.Function { - var nilStr string - function.SourceType = stringPtr(string(v1alpha1.SourceTypeGit)) - function.Source = gitRepositoryRef - function.Dependencies = nilStr - function.BaseDir = stringPtr(baseDir) - function.Reference = stringPtr(reference) - return function -} - -func fixFunction(name, namespace, uid, source, dependencies string, labels map[string]string, runtime v1alpha1.Runtime) *v1alpha1.Function { - return &v1alpha1.Function{ - TypeMeta: metav1.TypeMeta{ - Kind: "Function", - APIVersion: "serverless.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: labels, - UID: types.UID(uid), - }, - Spec: v1alpha1.FunctionSpec{ - Source: source, - Runtime: runtime, - Deps: dependencies, - Env: []v1.EnvVar{ - { - Name: "foo", - Value: "bar", - }, - }, - }, - Status: v1alpha1.FunctionStatus{}, - } -} - -func fixGitFunction(function *v1alpha1.Function, gitRepositoryRef, baseDir, reference string) *v1alpha1.Function { - var nilStr string - function.Spec.Type = v1alpha1.SourceTypeGit - function.Spec.Source = gitRepositoryRef - function.Spec.Deps = nilStr - function.Spec.Repository = v1alpha1.Repository{ - BaseDir: baseDir, - Reference: reference, - } - return function -} diff --git a/components/console-backend-service/internal/domain/serverless/function_service.go b/components/console-backend-service/internal/domain/serverless/function_service.go deleted file mode 100644 index 95d381f8288f..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_service.go +++ /dev/null @@ -1,162 +0,0 @@ -package serverless - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/pkg/errors" - apiErrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - notifierResource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" -) - -//go:generate mockery -name=functionSvc -output=automock -outpkg=automock -case=underscore -//go:generate failery -name=functionSvc -case=underscore -output disabled -outpkg disabled -type functionSvc interface { - Find(namespace, name string) (*v1alpha1.Function, error) - List(namespace string) ([]*v1alpha1.Function, error) - Create(function *v1alpha1.Function) (*v1alpha1.Function, error) - Update(function *v1alpha1.Function) (*v1alpha1.Function, error) - Delete(function gqlschema.FunctionMetadataInput) error - DeleteMany(functions []gqlschema.FunctionMetadataInput) error - Subscribe(listener notifierResource.Listener) - Unsubscribe(listener notifierResource.Listener) -} - -type functionService struct { - *resource.Service - notifier notifierResource.Notifier - extractor *functionUnstructuredExtractor -} - -var functionTypeMeta = metav1.TypeMeta{ - Kind: "Function", - APIVersion: "serverless.kyma-project.io/v1alpha1", -} - -func newFunctionService(serviceFactory *resource.ServiceFactory) *functionService { - svc := &functionService{ - Service: serviceFactory.ForResource(schema.GroupVersionResource{ - Version: v1alpha1.GroupVersion.Version, - Group: v1alpha1.GroupVersion.Group, - Resource: "functions", - }), - extractor: &functionUnstructuredExtractor{}, - } - - notifier := notifierResource.NewNotifier() - svc.Informer.AddEventHandler(notifier) - svc.notifier = notifier - - return svc -} - -func (svc *functionService) Find(namespace, name string) (*v1alpha1.Function, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.Informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - function, err := svc.extractor.do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.FunctionType) - } - - return function, nil -} - -func (svc *functionService) List(namespace string) ([]*v1alpha1.Function, error) { - items, err := svc.Informer.GetIndexer().ByIndex("namespace", namespace) - if err != nil { - return nil, err - } - - var functions []*v1alpha1.Function - for _, item := range items { - function, err := svc.extractor.do(item) - if err != nil { - return nil, errors.Wrapf(err, "Incorrect item type: %T, should be: *%s", item, pretty.FunctionType) - } - - functions = append(functions, function) - } - - return functions, nil -} - -func (svc *functionService) Create(function *v1alpha1.Function) (*v1alpha1.Function, error) { - if function == nil { - return nil, errors.New(fmt.Sprintf("%s can't be nil", pretty.FunctionType)) - } - function.TypeMeta = functionTypeMeta - - u, err := svc.extractor.toUnstructured(function) - if err != nil { - return nil, err - } - - created, err := svc.Client.Namespace(function.ObjectMeta.Namespace).Create(context.Background(), u, metav1.CreateOptions{}) - if err != nil { - return nil, err - } - - return svc.extractor.fromUnstructured(created) -} - -func (svc *functionService) Update(function *v1alpha1.Function) (*v1alpha1.Function, error) { - oldFunction, err := svc.Find(function.ObjectMeta.Namespace, function.ObjectMeta.Name) - if err != nil { - return nil, errors.Wrapf(err, "while finding %s [name: %s]", pretty.FunctionType, function.ObjectMeta.Name) - } - - if oldFunction == nil { - return nil, apiErrors.NewNotFound(schema.GroupResource{ - Group: v1alpha1.GroupVersion.Group, - Resource: "functions", - }, function.ObjectMeta.Name) - } - function.ObjectMeta.ResourceVersion = oldFunction.ObjectMeta.ResourceVersion - function.TypeMeta = functionTypeMeta - function.Spec.Labels = oldFunction.Spec.Labels - - u, err := svc.extractor.toUnstructured(function) - if err != nil { - return nil, err - } - - updated, err := svc.Client.Namespace(function.ObjectMeta.Namespace).Update(context.Background(), u, metav1.UpdateOptions{}) - if err != nil { - return nil, err - } - - return svc.extractor.fromUnstructured(updated) -} - -func (svc *functionService) Delete(function gqlschema.FunctionMetadataInput) error { - return svc.Client.Namespace(function.Namespace).Delete(context.Background(), function.Name, metav1.DeleteOptions{}) -} - -func (svc *functionService) DeleteMany(functions []gqlschema.FunctionMetadataInput) error { - for _, function := range functions { - err := svc.Delete(function) - if err != nil { - return err - } - } - return nil -} - -func (svc *functionService) Subscribe(listener notifierResource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *functionService) Unsubscribe(listener notifierResource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/serverless/function_service_test.go b/components/console-backend-service/internal/domain/serverless/function_service_test.go deleted file mode 100644 index 5033fe13a584..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_service_test.go +++ /dev/null @@ -1,235 +0,0 @@ -package serverless - -import ( - "testing" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - apiErrors "k8s.io/apimachinery/pkg/api/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -func TestFunctionService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Python38) - function2 := fixFunction("2", "a", "2", "content", "dependencies", labels, v1alpha1.Nodejs12) - function3 := fixFunction("3", "b", "3", "content", "dependencies", labels, v1alpha1.Nodejs14) - - service := fixFakeFunctionService(t, function1, function2, function3) - - result, err := service.Find("a", "1") - require.NoError(t, err) - assert.Equal(t, function1, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeFunctionService(t) - - result, err := service.Find("a", "1") - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestFunctionService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Nodejs14) - function2 := fixFunction("2", "a", "2", "content", "dependencies", labels, v1alpha1.Nodejs14) - function3 := fixFunction("3", "b", "3", "content", "dependencies", labels, v1alpha1.Nodejs14) - expected := []*v1alpha1.Function{ - function1, - function2, - } - - service := fixFakeFunctionService(t, function1, function2, function3) - - result, err := service.List("a") - require.NoError(t, err) - assert.ElementsMatch(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - service := fixFakeFunctionService(t) - - result, err := service.List("a") - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestFunctionService_Create(t *testing.T) { - t.Run("Success", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Nodejs12) - - service := fixFakeFunctionService(t) - - result, err := service.Create(function1) - require.NoError(t, err) - assert.Equal(t, function1, result) - }) - - t.Run("AlreadyExists", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Nodejs12) - - service := fixFakeFunctionService(t, function1) - - result, err := service.Create(function1) - assert.True(t, apiErrors.IsAlreadyExists(err)) - assert.Nil(t, result) - }) -} - -func TestFunctionService_Update(t *testing.T) { - t.Run("Success", func(t *testing.T) { - oldLabels := map[string]string{"foo": "bar"} - newLabels := map[string]string{"bar": "foo"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", oldLabels, v1alpha1.Nodejs12) - function1.Spec.Labels = oldLabels - function2 := fixFunction("1", "a", "1", "content", "dependencies", newLabels, v1alpha1.Python38) - function2.Spec.Labels = newLabels - - service := fixFakeFunctionService(t, function1) - - result, err := service.Update(function2) - require.NoError(t, err) - assert.Equal(t, function2, result) - }) - - t.Run("NotFound", func(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Python38) - - service := fixFakeFunctionService(t) - - result, err := service.Update(function1) - assert.True(t, apiErrors.IsNotFound(err)) - assert.Nil(t, result) - }) -} - -func TestFunctionService_Delete(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Python38) - function2 := fixFunction("2", "a", "2", "content", "dependencies", labels, v1alpha1.Nodejs12) - function3 := fixFunction("3", "b", "3", "content", "dependencies", labels, v1alpha1.Nodejs12) - - for testName, testData := range map[string]struct { - function gqlschema.FunctionMetadataInput - error bool - }{ - "Success": { - function: gqlschema.FunctionMetadataInput{Name: "1", Namespace: "a"}, - error: false, - }, - "Without namespace": { - function: gqlschema.FunctionMetadataInput{Name: "a2"}, - error: true, - }, - "Without name": { - function: gqlschema.FunctionMetadataInput{Namespace: "a"}, - error: true, - }, - "Empty": { - function: gqlschema.FunctionMetadataInput{}, - error: true, - }, - } { - t.Run(testName, func(t *testing.T) { - service := fixFakeFunctionService(t, function1, function2, function3) - - err := service.Delete(testData.function) - if testData.error { - assert.Error(t, err) - } else { - assert.NoError(t, err) - } - }) - } -} - -func TestFunctionService_DeleteMany(t *testing.T) { - labels := map[string]string{"foo": "bar"} - function1 := fixFunction("1", "a", "1", "content", "dependencies", labels, v1alpha1.Nodejs12) - function2 := fixFunction("2", "a", "2", "content", "dependencies", labels, v1alpha1.Nodejs14) - function3 := fixFunction("3", "b", "3", "content", "dependencies", labels, v1alpha1.Python38) - - for testName, testData := range map[string]struct { - functions []gqlschema.FunctionMetadataInput - error bool - }{ - "Success": { - functions: []gqlschema.FunctionMetadataInput{ - {Name: "1", Namespace: "a"}, - {Name: "2", Namespace: "a"}, - }, - error: false, - }, - "Error": { - functions: []gqlschema.FunctionMetadataInput{ - {Name: "1", Namespace: "a"}, - {Name: "2"}, - }, - error: true, - }, - "Empty": { - functions: []gqlschema.FunctionMetadataInput{}, - error: false, - }, - } { - t.Run(testName, func(t *testing.T) { - service := fixFakeFunctionService(t, function1, function2, function3) - - err := service.DeleteMany(testData.functions) - if testData.error { - assert.Error(t, err) - } else { - assert.NoError(t, err) - } - }) - } -} - -func TestFunctionService_SubscribeAndUnsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - service := fixFakeFunctionService(t) - - functionListener := newFunctionListener(nil, nil, nil) - service.Subscribe(functionListener) - service.Unsubscribe(functionListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - service := fixFakeFunctionService(t) - - functionListener := newFunctionListener(nil, nil, nil) - service.Subscribe(functionListener) - service.Subscribe(functionListener) - - service.Unsubscribe(functionListener) - }) - - t.Run("Multiple", func(t *testing.T) { - service := fixFakeFunctionService(t) - - functionListenerA := newFunctionListener(nil, nil, nil) - functionListenerB := newFunctionListener(nil, nil, nil) - - service.Subscribe(functionListenerA) - service.Subscribe(functionListenerB) - - service.Unsubscribe(functionListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - service := fixFakeFunctionService(t) - - service.Subscribe(nil) - service.Unsubscribe(nil) - }) -} diff --git a/components/console-backend-service/internal/domain/serverless/function_unstructured.go b/components/console-backend-service/internal/domain/serverless/function_unstructured.go deleted file mode 100644 index 3ea51b27c088..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_unstructured.go +++ /dev/null @@ -1,54 +0,0 @@ -package serverless - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/pretty" - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -type functionUnstructuredExtractor struct{} - -func newFunctionUnstructuredExtractor() *functionUnstructuredExtractor { - return &functionUnstructuredExtractor{} -} - -func (ext *functionUnstructuredExtractor) do(obj interface{}) (*v1alpha1.Function, error) { - u, err := ext.toUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.fromUnstructured(u) -} - -func (ext *functionUnstructuredExtractor) toUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.FunctionType, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext *functionUnstructuredExtractor) fromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.Function, error) { - if obj == nil { - return nil, nil - } - - var function v1alpha1.Function - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &function) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.FunctionType, obj.Object) - } - - return &function, nil -} diff --git a/components/console-backend-service/internal/domain/serverless/function_unstructured_test.go b/components/console-backend-service/internal/domain/serverless/function_unstructured_test.go deleted file mode 100644 index 9730b09d0d8d..000000000000 --- a/components/console-backend-service/internal/domain/serverless/function_unstructured_test.go +++ /dev/null @@ -1,53 +0,0 @@ -package serverless - -import ( - "testing" - - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestFunctionUnstructuredExtractor_Do(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := newFunctionUnstructuredExtractor() - - obj := testingUtils.NewUnstructured(v1alpha1.GroupVersion.String(), "Function", map[string]interface{}{ - "name": "ExampleName", - "namespace": "ExampleNamespace", - }, nil, nil) - - expected := &v1alpha1.Function{ - TypeMeta: metav1.TypeMeta{ - Kind: "Function", - APIVersion: v1alpha1.GroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - Namespace: "ExampleNamespace", - }, - } - - result, err := extractor.do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := newFunctionUnstructuredExtractor() - - result, err := extractor.do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := newFunctionUnstructuredExtractor() - - result, err := extractor.do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/serverless/newserverless.go b/components/console-backend-service/internal/domain/serverless/newserverless.go deleted file mode 100644 index 45779f8189ff..000000000000 --- a/components/console-backend-service/internal/domain/serverless/newserverless.go +++ /dev/null @@ -1,22 +0,0 @@ -package serverless - -import "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - -type NewResolver struct { - *resource.Module -} - -// Temporary name - change it when old implementation will be rewritten -func NewR(factory *resource.GenericServiceFactory) *NewResolver { - module := resource.NewModule("serverless", factory, resource.ServiceCreators{ - gitRepositoriesGroupVersionResource: newGitRepositoryService, - }) - - return &NewResolver{ - Module: module, - } -} - -func (r *NewResolver) GitRepositoryService() *resource.GenericService { - return r.Module.Service(gitRepositoriesGroupVersionResource) -} diff --git a/components/console-backend-service/internal/domain/serverless/pretty/kind.go b/components/console-backend-service/internal/domain/serverless/pretty/kind.go deleted file mode 100644 index 97a4a7134cf6..000000000000 --- a/components/console-backend-service/internal/domain/serverless/pretty/kind.go +++ /dev/null @@ -1,38 +0,0 @@ -package pretty - -type Kind int - -const ( - Function Kind = iota - FunctionType - Functions - FunctionsType - - Repository - RepositoryType - Repositories - RepositoriesType -) - -func (k Kind) String() string { - switch k { - case Function: - return "Function" - case FunctionType: - return "Function" - case Functions: - return "Functions" - case FunctionsType: - return "[]Function" - case Repository: - return "GitRepository" - case RepositoryType: - return "GitRepository" - case Repositories: - return "GitRepositories" - case RepositoriesType: - return "[]GitRepository" - default: - return "Function" - } -} diff --git a/components/console-backend-service/internal/domain/serverless/repository_resolver.go b/components/console-backend-service/internal/domain/serverless/repository_resolver.go deleted file mode 100644 index 1ead87c6ceb3..000000000000 --- a/components/console-backend-service/internal/domain/serverless/repository_resolver.go +++ /dev/null @@ -1,60 +0,0 @@ -package serverless - -import ( - "context" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type GitRepositoryList []*v1alpha1.GitRepository - -func (l *GitRepositoryList) Append() interface{} { - e := &v1alpha1.GitRepository{} - *l = append(*l, e) - return e -} - -func (r *NewResolver) GitRepositoriesQuery(ctx context.Context, namespace string) ([]*v1alpha1.GitRepository, error) { - items := GitRepositoryList{} - err := r.GitRepositoryService().ListInNamespace(namespace, &items) - return items, err -} - -func (r *NewResolver) GitRepositoryQuery(ctx context.Context, namespace, name string) (*v1alpha1.GitRepository, error) { - var result *v1alpha1.GitRepository - err := r.GitRepositoryService().GetInNamespace(name, namespace, &result) - return result, err -} - -func (r *NewResolver) CreateGitRepository(ctx context.Context, namespace, name string, spec v1alpha1.GitRepositorySpec) (*v1alpha1.GitRepository, error) { - gitRepository := &v1alpha1.GitRepository{ - TypeMeta: metav1.TypeMeta{ - APIVersion: gitRepositoriesGroupVersionResource.GroupVersion().String(), - Kind: gitRepositoryKind, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: spec, - } - result := &v1alpha1.GitRepository{} - err := r.GitRepositoryService().Create(gitRepository, result) - return result, err -} - -func (r *NewResolver) UpdateGitRepository(ctx context.Context, namespace, name string, spec v1alpha1.GitRepositorySpec) (*v1alpha1.GitRepository, error) { - result := &v1alpha1.GitRepository{} - err := r.GitRepositoryService().UpdateInNamespace(name, namespace, result, func() error { - result.Spec = spec - return nil - }) - return result, err -} - -func (r *NewResolver) DeleteGitRepository(ctx context.Context, namespace string, name string) (*v1alpha1.GitRepository, error) { - result := &v1alpha1.GitRepository{} - err := r.GitRepositoryService().DeleteInNamespace(namespace, name, result) - return result, err -} diff --git a/components/console-backend-service/internal/domain/serverless/repository_service.go b/components/console-backend-service/internal/domain/serverless/repository_service.go deleted file mode 100644 index 64f57dfb1d5c..000000000000 --- a/components/console-backend-service/internal/domain/serverless/repository_service.go +++ /dev/null @@ -1,19 +0,0 @@ -package serverless - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var gitRepositoryKind = "GitRepository" - -var gitRepositoriesGroupVersionResource = schema.GroupVersionResource{ - Version: v1alpha1.GroupVersion.Version, - Group: v1alpha1.GroupVersion.Group, - Resource: "gitrepositories", -} - -func newGitRepositoryService(serviceFactory *resource.GenericServiceFactory) (*resource.GenericService, error) { - return serviceFactory.ForResource(gitRepositoriesGroupVersionResource), nil -} diff --git a/components/console-backend-service/internal/domain/serverless/repository_test.go b/components/console-backend-service/internal/domain/serverless/repository_test.go deleted file mode 100644 index 9b9d38bdb4cb..000000000000 --- a/components/console-backend-service/internal/domain/serverless/repository_test.go +++ /dev/null @@ -1,157 +0,0 @@ -package serverless - -import ( - "context" - "testing" - - resourceFake "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -const ( - name = "test-git-repository" - namespace = "test-namespace" - authType = v1alpha1.RepositoryAuthBasic - url = "test-url" - secretName = "test-secret-name" -) - -func TestGitRepository_Queries(t *testing.T) { - t.Run("Should list a GitRepositories", func(t *testing.T) { - gitRepositoryAuth := fixMockRepositoryAuth(authType, secretName) - gitRepository1 := fixMockGitRepository(name, namespace, url, gitRepositoryAuth) - gitRepository2 := fixMockGitRepository(name, "test-namespace-2", url, gitRepositoryAuth) - resolver := fixMockGitRepositoryResolver(t, gitRepository1, gitRepository2) - - result, err := resolver.GitRepositoriesQuery(context.Background(), "test-namespace-2") - - require.NoError(t, err) - assert.Equal(t, len(result), 1) - assert.Equal(t, gitRepository2, result[0]) - }) -} - -func TestGitRepository_Query(t *testing.T) { - t.Run("Should find a GitRepository", func(t *testing.T) { - gitRepositoryAuth := fixMockRepositoryAuth(authType, secretName) - gitRepository := fixMockGitRepository(name, namespace, url, gitRepositoryAuth) - resolver := fixMockGitRepositoryResolver(t, gitRepository) - - result, err := resolver.GitRepositoryQuery(context.Background(), namespace, name) - - require.NoError(t, err) - assert.Equal(t, gitRepository, result) - }) - - t.Run("Should return error if not found", func(t *testing.T) { - resolver := fixMockGitRepositoryResolver(t) - _, err := resolver.GitRepositoryQuery(context.Background(), namespace, name) - require.Error(t, err) - }) -} - -func TestGitRepository_Create(t *testing.T) { - t.Run("Should create a GitRepository", func(t *testing.T) { - gitRepositoryAuth := fixMockRepositoryAuth(authType, secretName) - gitRepository := fixMockGitRepository(name, namespace, url, gitRepositoryAuth) - resolver := fixMockGitRepositoryResolver(t) - - result, err := resolver.CreateGitRepository(context.Background(), namespace, name, gitRepository.Spec) - require.NoError(t, err) - - require.NoError(t, err) - assert.Equal(t, result.Name, name) - assert.Equal(t, result.Namespace, namespace) - assert.Equal(t, result.Spec, gitRepository.Spec) - }) - - t.Run("Should throw an error if a GitRepository exists", func(t *testing.T) { - gitRepositoryAuth := fixMockRepositoryAuth(authType, secretName) - gitRepository := fixMockGitRepository(name, namespace, url, gitRepositoryAuth) - resolver := fixMockGitRepositoryResolver(t, gitRepository) - - _, err := resolver.CreateGitRepository(context.Background(), namespace, name, gitRepository.Spec) - require.Error(t, err) - }) -} - -func TestGitRepository_Update(t *testing.T) { - t.Run("Should update a GitRepository", func(t *testing.T) { - gitRepositoryAuth := fixMockRepositoryAuth(authType, secretName) - gitRepository := fixMockGitRepository(name, namespace, url, gitRepositoryAuth) - resolver := fixMockGitRepositoryResolver(t, gitRepository) - - gitRepositoryUpdated := fixMockGitRepository(name, namespace, "new-url", gitRepositoryAuth) - result, err := resolver.UpdateGitRepository(context.Background(), namespace, name, gitRepositoryUpdated.Spec) - - require.NoError(t, err) - assert.Equal(t, result.Name, name) - assert.Equal(t, result.Namespace, namespace) - assert.Equal(t, result.Spec, gitRepositoryUpdated.Spec) - }) - - t.Run("Should throw an error if a GitRepository doesn't exist", func(t *testing.T) { - gitRepositoryAuth := fixMockRepositoryAuth(authType, secretName) - gitRepository := fixMockGitRepository(name, namespace, url, gitRepositoryAuth) - resolver := fixMockGitRepositoryResolver(t) - _, err := resolver.UpdateGitRepository(context.Background(), namespace, name, gitRepository.Spec) - require.Error(t, err) - }) -} - -func TestGitRepository_Delete(t *testing.T) { - t.Run("Should delete a GitRepository", func(t *testing.T) { - gitRepositoryAuth := fixMockRepositoryAuth(authType, secretName) - gitRepository := fixMockGitRepository(name, namespace, url, gitRepositoryAuth) - resolver := fixMockGitRepositoryResolver(t, gitRepository) - - _, err := resolver.DeleteGitRepository(context.Background(), namespace, name) - require.NoError(t, err) - }) - - t.Run("Should throw an error if a GitRepository doesn't exist", func(t *testing.T) { - resolver := fixMockGitRepositoryResolver(t) - _, err := resolver.DeleteGitRepository(context.Background(), namespace, name) - require.Error(t, err) - }) -} - -func fixMockGitRepositoryResolver(t *testing.T, items ...runtime.Object) *NewResolver { - serviceFactory, err := resourceFake.NewFakeGenericServiceFactory(v1alpha1.AddToScheme, items...) - require.NoError(t, err) - - resolver := NewR(serviceFactory) - err = resolver.Enable() - require.NoError(t, err) - - serviceFactory.InformerFactory.WaitForCacheSync(make(chan struct{})) - return resolver -} - -func fixMockGitRepository(name, namespace string, url string, auth *v1alpha1.RepositoryAuth) *v1alpha1.GitRepository { - return &v1alpha1.GitRepository{ - TypeMeta: v1.TypeMeta{ - APIVersion: gitRepositoriesGroupVersionResource.GroupVersion().String(), - Kind: gitRepositoryKind, - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.GitRepositorySpec{ - URL: url, - Auth: auth, - }, - } -} - -func fixMockRepositoryAuth(authType v1alpha1.RepositoryAuthType, secretName string) *v1alpha1.RepositoryAuth { - return &v1alpha1.RepositoryAuth{ - Type: authType, - SecretName: secretName, - } -} diff --git a/components/console-backend-service/internal/domain/serverless/serverless.go b/components/console-backend-service/internal/domain/serverless/serverless.go deleted file mode 100644 index ec1420540f70..000000000000 --- a/components/console-backend-service/internal/domain/serverless/serverless.go +++ /dev/null @@ -1,85 +0,0 @@ -package serverless - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless/disabled" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" -) - -type Config struct { - UsageKind string `envconfig:"default=function"` -} - -type PluggableContainer struct { - *module.Pluggable - cfg *resolverConfig - - Resolver - serviceFactory *resource.ServiceFactory -} - -func New(serviceFactory *resource.ServiceFactory, cfg Config, scaRetriever shared.ServiceCatalogAddonsRetriever) (*PluggableContainer, error) { - resolver := &PluggableContainer{ - Pluggable: module.NewPluggable("serverless"), - cfg: &resolverConfig{ - cfg: &cfg, - scaRetriever: scaRetriever, - }, - serviceFactory: serviceFactory, - } - - err := resolver.Disable() - if err != nil { - return nil, err - } - - return resolver, nil -} - -func (r *PluggableContainer) Enable() error { - functionService := newFunctionService(r.serviceFactory) - functionConverter := newFunctionConverter() - - r.Pluggable.EnableAndSyncDynamicInformerFactory(r.serviceFactory.InformerFactory, func() { - r.Resolver = &domainResolver{ - functionResolver: newFunctionResolver(functionService, functionConverter, r.cfg.cfg, r.cfg.scaRetriever), - } - }) - - return nil -} - -func (r *PluggableContainer) Disable() error { - r.Pluggable.Disable(func(disabledErr error) { - r.Resolver = disabled.NewResolver(disabledErr) - }) - - return nil -} - -type resolverConfig struct { - cfg *Config - scaRetriever shared.ServiceCatalogAddonsRetriever -} - -//go:generate failery -name=Resolver -case=underscore -output disabled -outpkg disabled -type Resolver interface { - FunctionQuery(ctx context.Context, name string, namespace string) (*gqlschema.Function, error) - FunctionsQuery(ctx context.Context, namespace string) ([]*gqlschema.Function, error) - - CreateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) - UpdateFunction(ctx context.Context, name string, namespace string, params gqlschema.FunctionMutationInput) (*gqlschema.Function, error) - DeleteFunction(ctx context.Context, namespace string, function gqlschema.FunctionMetadataInput) (*gqlschema.FunctionMetadata, error) - DeleteManyFunctions(ctx context.Context, namespace string, functions []*gqlschema.FunctionMetadataInput) ([]*gqlschema.FunctionMetadata, error) - - FunctionEventSubscription(ctx context.Context, namespace string, functionName *string) (<-chan *gqlschema.FunctionEvent, error) -} - -type domainResolver struct { - *functionResolver -} diff --git a/components/console-backend-service/internal/domain/serverless/serverless_test.go b/components/console-backend-service/internal/domain/serverless/serverless_test.go deleted file mode 100644 index bd5a58ad7f22..000000000000 --- a/components/console-backend-service/internal/domain/serverless/serverless_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package serverless - -import ( - "context" - - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource/fake" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -const testTimes = 3 -const informerResyncPeriod = 30 * time.Second - -func TestPluggableContainer(t *testing.T) { - svcFactory := fake.NewSimpleFakeServiceFactory(informerResyncPeriod) - require.NotNil(t, svcFactory) - - pluggable, err := New(svcFactory, Config{}, nil) - require.NoError(t, err) - - for i := 0; i < testTimes; i++ { - require.NotPanics(t, func() { - err := pluggable.Enable() - require.NoError(t, err) - <-pluggable.Pluggable.SyncCh - - checkInternalMethod(t, pluggable, true) - }) - require.NotPanics(t, func() { - err := pluggable.Disable() - require.NoError(t, err) - - checkInternalMethod(t, pluggable, false) - }) - } -} - -func checkInternalMethod(t *testing.T, resolver *PluggableContainer, enabled bool) { - assert.NotNil(t, resolver.Resolver) - - ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) - defer cancel() - - val, err := resolver.Resolver.FunctionsQuery(ctx, "default") - if enabled { - require.NoError(t, err) - } else { - require.Error(t, err) - require.Nil(t, val) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_broker_svc.go b/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_broker_svc.go deleted file mode 100644 index e62a2b312242..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_broker_svc.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// clusterServiceBrokerSvc is an autogenerated mock type for the clusterServiceBrokerSvc type -type clusterServiceBrokerSvc struct { - mock.Mock -} - -// Find provides a mock function with given fields: name -func (_m *clusterServiceBrokerSvc) Find(name string) (*v1beta1.ClusterServiceBroker, error) { - ret := _m.Called(name) - - var r0 *v1beta1.ClusterServiceBroker - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterServiceBroker); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: pagingParams -func (_m *clusterServiceBrokerSvc) List(pagingParams pager.PagingParams) ([]*v1beta1.ClusterServiceBroker, error) { - ret := _m.Called(pagingParams) - - var r0 []*v1beta1.ClusterServiceBroker - if rf, ok := ret.Get(0).(func(pager.PagingParams) []*v1beta1.ClusterServiceBroker); ok { - r0 = rf(pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ClusterServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(pager.PagingParams) error); ok { - r1 = rf(pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *clusterServiceBrokerSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *clusterServiceBrokerSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_class_getter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_class_getter.go deleted file mode 100644 index f7e2bbbbd561..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_class_getter.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// clusterServiceClassGetter is an autogenerated mock type for the clusterServiceClassGetter type -type clusterServiceClassGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name -func (_m *clusterServiceClassGetter) Find(name string) (*v1beta1.ClusterServiceClass, error) { - ret := _m.Called(name) - - var r0 *v1beta1.ClusterServiceClass - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterServiceClass); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// FindByExternalName provides a mock function with given fields: externalName -func (_m *clusterServiceClassGetter) FindByExternalName(externalName string) (*v1beta1.ClusterServiceClass, error) { - ret := _m.Called(externalName) - - var r0 *v1beta1.ClusterServiceClass - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterServiceClass); ok { - r0 = rf(externalName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(externalName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_class_list_getter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_class_list_getter.go deleted file mode 100644 index e374e1313e81..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_class_list_getter.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// clusterServiceClassListGetter is an autogenerated mock type for the clusterServiceClassListGetter type -type clusterServiceClassListGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name -func (_m *clusterServiceClassListGetter) Find(name string) (*v1beta1.ClusterServiceClass, error) { - ret := _m.Called(name) - - var r0 *v1beta1.ClusterServiceClass - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterServiceClass); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// FindByExternalName provides a mock function with given fields: externalName -func (_m *clusterServiceClassListGetter) FindByExternalName(externalName string) (*v1beta1.ClusterServiceClass, error) { - ret := _m.Called(externalName) - - var r0 *v1beta1.ClusterServiceClass - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterServiceClass); ok { - r0 = rf(externalName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(externalName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: pagingParams -func (_m *clusterServiceClassListGetter) List(pagingParams pager.PagingParams) ([]*v1beta1.ClusterServiceClass, error) { - ret := _m.Called(pagingParams) - - var r0 []*v1beta1.ClusterServiceClass - if rf, ok := ret.Get(0).(func(pager.PagingParams) []*v1beta1.ClusterServiceClass); ok { - r0 = rf(pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ClusterServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(pager.PagingParams) error); ok { - r1 = rf(pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_plan_getter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_plan_getter.go deleted file mode 100644 index c2039bb93411..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_plan_getter.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// clusterServicePlanGetter is an autogenerated mock type for the clusterServicePlanGetter type -type clusterServicePlanGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name -func (_m *clusterServicePlanGetter) Find(name string) (*v1beta1.ClusterServicePlan, error) { - ret := _m.Called(name) - - var r0 *v1beta1.ClusterServicePlan - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterServicePlan); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// FindByExternalName provides a mock function with given fields: planExternalName, className -func (_m *clusterServicePlanGetter) FindByExternalName(planExternalName string, className string) (*v1beta1.ClusterServicePlan, error) { - ret := _m.Called(planExternalName, className) - - var r0 *v1beta1.ClusterServicePlan - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ClusterServicePlan); ok { - r0 = rf(planExternalName, className) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(planExternalName, className) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_plan_lister.go b/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_plan_lister.go deleted file mode 100644 index 74069cee6f41..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/cluster_service_plan_lister.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// clusterServicePlanLister is an autogenerated mock type for the clusterServicePlanLister type -type clusterServicePlanLister struct { - mock.Mock -} - -// ListForClusterServiceClass provides a mock function with given fields: name -func (_m *clusterServicePlanLister) ListForClusterServiceClass(name string) ([]*v1beta1.ClusterServicePlan, error) { - ret := _m.Called(name) - - var r0 []*v1beta1.ClusterServicePlan - if rf, ok := ret.Get(0).(func(string) []*v1beta1.ClusterServicePlan); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ClusterServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/export.go b/components/console-backend-service/internal/domain/servicecatalog/automock/export.go deleted file mode 100644 index 90340a07dc0a..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/export.go +++ /dev/null @@ -1,92 +0,0 @@ -package automock - -// ClusterServiceBroker - -func NewClusterServiceBrokerService() *clusterServiceBrokerSvc { - return new(clusterServiceBrokerSvc) -} - -func NewGQLClusterServiceBrokerConverter() *gqlClusterServiceBrokerConverter { - return new(gqlClusterServiceBrokerConverter) -} - -// ServiceBroker -func NewServiceBrokerService() *serviceBrokerSvc { - return new(serviceBrokerSvc) -} - -func NewGQLServiceBrokerConverter() *gqlServiceBrokerConverter { - return new(gqlServiceBrokerConverter) -} - -// ServiceClass - -func NewInstanceListerByServiceClass() *instanceListerByServiceClass { - return new(instanceListerByServiceClass) -} - -func NewServiceClassListGetter() *serviceClassListGetter { - return new(serviceClassListGetter) -} - -func NewGQLServiceClassConverter() *gqlServiceClassConverter { - return new(gqlServiceClassConverter) -} - -func NewServiceClassGetter() *serviceClassGetter { - return new(serviceClassGetter) -} - -// ClusterServiceClass - -func NewInstanceListerByClusterServiceClass() *instanceListerByClusterServiceClass { - return new(instanceListerByClusterServiceClass) -} - -func NewClusterServiceClassListGetter() *clusterServiceClassListGetter { - return new(clusterServiceClassListGetter) -} - -func NewGQLClusterServiceClassConverter() *gqlClusterServiceClassConverter { - return new(gqlClusterServiceClassConverter) -} - -// ServicePlan - -func NewServicePlanGetter() *servicePlanGetter { - return new(servicePlanGetter) -} - -func NewServicePlanLister() *servicePlanLister { - return new(servicePlanLister) -} - -func NewGQLServicePlanConverter() *gqlServicePlanConverter { - return new(gqlServicePlanConverter) -} - -// ClusterServicePlan - -func NewClusterServicePlanGetter() *clusterServicePlanGetter { - return new(clusterServicePlanGetter) -} - -func NewClusterServicePlanLister() *clusterServicePlanLister { - return new(clusterServicePlanLister) -} - -func NewGQLClusterServicePlanConverter() *gqlClusterServicePlanConverter { - return new(gqlClusterServicePlanConverter) -} - -// Service Instance - -func NewServiceInstanceLister() *serviceInstanceLister { - return new(serviceInstanceLister) -} - -// Service Binding - -func NewServiceBindingOperations() *serviceBindingOperations { - return new(serviceBindingOperations) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_broker_converter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_broker_converter.go deleted file mode 100644 index 9d04e35325e7..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_broker_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlClusterServiceBrokerConverter is an autogenerated mock type for the gqlClusterServiceBrokerConverter type -type gqlClusterServiceBrokerConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterServiceBrokerConverter) ToGQL(in *v1beta1.ClusterServiceBroker) (*gqlschema.ClusterServiceBroker, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterServiceBroker - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterServiceBroker) *gqlschema.ClusterServiceBroker); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterServiceBroker) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlClusterServiceBrokerConverter) ToGQLs(in []*v1beta1.ClusterServiceBroker) ([]*gqlschema.ClusterServiceBroker, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterServiceBroker - if rf, ok := ret.Get(0).(func([]*v1beta1.ClusterServiceBroker) []*gqlschema.ClusterServiceBroker); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ClusterServiceBroker) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_class_converter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_class_converter.go deleted file mode 100644 index fda0d965266f..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_class_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlClusterServiceClassConverter is an autogenerated mock type for the gqlClusterServiceClassConverter type -type gqlClusterServiceClassConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterServiceClassConverter) ToGQL(in *v1beta1.ClusterServiceClass) (*gqlschema.ClusterServiceClass, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterServiceClass - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterServiceClass) *gqlschema.ClusterServiceClass); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterServiceClass) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlClusterServiceClassConverter) ToGQLs(in []*v1beta1.ClusterServiceClass) ([]*gqlschema.ClusterServiceClass, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterServiceClass - if rf, ok := ret.Get(0).(func([]*v1beta1.ClusterServiceClass) []*gqlschema.ClusterServiceClass); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ClusterServiceClass) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_plan_converter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_plan_converter.go deleted file mode 100644 index 7512cb78665b..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_cluster_service_plan_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlClusterServicePlanConverter is an autogenerated mock type for the gqlClusterServicePlanConverter type -type gqlClusterServicePlanConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *gqlClusterServicePlanConverter) ToGQL(item *v1beta1.ClusterServicePlan) (*gqlschema.ClusterServicePlan, error) { - ret := _m.Called(item) - - var r0 *gqlschema.ClusterServicePlan - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterServicePlan) *gqlschema.ClusterServicePlan); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterServicePlan) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlClusterServicePlanConverter) ToGQLs(in []*v1beta1.ClusterServicePlan) ([]*gqlschema.ClusterServicePlan, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterServicePlan - if rf, ok := ret.Get(0).(func([]*v1beta1.ClusterServicePlan) []*gqlschema.ClusterServicePlan); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ClusterServicePlan) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_broker_converter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_broker_converter.go deleted file mode 100644 index 536014d26372..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_broker_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlServiceBrokerConverter is an autogenerated mock type for the gqlServiceBrokerConverter type -type gqlServiceBrokerConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlServiceBrokerConverter) ToGQL(in *v1beta1.ServiceBroker) (*gqlschema.ServiceBroker, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceBroker - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceBroker) *gqlschema.ServiceBroker); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServiceBroker) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlServiceBrokerConverter) ToGQLs(in []*v1beta1.ServiceBroker) ([]*gqlschema.ServiceBroker, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ServiceBroker - if rf, ok := ret.Get(0).(func([]*v1beta1.ServiceBroker) []*gqlschema.ServiceBroker); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ServiceBroker) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_class_converter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_class_converter.go deleted file mode 100644 index 04aef0fd42ca..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_class_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlServiceClassConverter is an autogenerated mock type for the gqlServiceClassConverter type -type gqlServiceClassConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlServiceClassConverter) ToGQL(in *v1beta1.ServiceClass) (*gqlschema.ServiceClass, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceClass - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceClass) *gqlschema.ServiceClass); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServiceClass) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlServiceClassConverter) ToGQLs(in []*v1beta1.ServiceClass) ([]*gqlschema.ServiceClass, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ServiceClass - if rf, ok := ret.Get(0).(func([]*v1beta1.ServiceClass) []*gqlschema.ServiceClass); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ServiceClass) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_plan_converter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_plan_converter.go deleted file mode 100644 index b0afaf6a175b..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/gql_service_plan_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlServicePlanConverter is an autogenerated mock type for the gqlServicePlanConverter type -type gqlServicePlanConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *gqlServicePlanConverter) ToGQL(item *v1beta1.ServicePlan) (*gqlschema.ServicePlan, error) { - ret := _m.Called(item) - - var r0 *gqlschema.ServicePlan - if rf, ok := ret.Get(0).(func(*v1beta1.ServicePlan) *gqlschema.ServicePlan); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServicePlan) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlServicePlanConverter) ToGQLs(in []*v1beta1.ServicePlan) ([]*gqlschema.ServicePlan, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ServicePlan - if rf, ok := ret.Get(0).(func([]*v1beta1.ServicePlan) []*gqlschema.ServicePlan); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ServicePlan) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/instance_lister_by_cluster_service_class.go b/components/console-backend-service/internal/domain/servicecatalog/automock/instance_lister_by_cluster_service_class.go deleted file mode 100644 index c077a225177c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/instance_lister_by_cluster_service_class.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// instanceListerByClusterServiceClass is an autogenerated mock type for the instanceListerByClusterServiceClass type -type instanceListerByClusterServiceClass struct { - mock.Mock -} - -// ListForClusterServiceClass provides a mock function with given fields: className, externalClassName, namespace -func (_m *instanceListerByClusterServiceClass) ListForClusterServiceClass(className string, externalClassName string, namespace *string) ([]*v1beta1.ServiceInstance, error) { - ret := _m.Called(className, externalClassName, namespace) - - var r0 []*v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, string, *string) []*v1beta1.ServiceInstance); ok { - r0 = rf(className, externalClassName, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, *string) error); ok { - r1 = rf(className, externalClassName, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/instance_lister_by_service_class.go b/components/console-backend-service/internal/domain/servicecatalog/automock/instance_lister_by_service_class.go deleted file mode 100644 index a757250780fe..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/instance_lister_by_service_class.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// instanceListerByServiceClass is an autogenerated mock type for the instanceListerByServiceClass type -type instanceListerByServiceClass struct { - mock.Mock -} - -// ListForServiceClass provides a mock function with given fields: className, externalClassName, namespace -func (_m *instanceListerByServiceClass) ListForServiceClass(className string, externalClassName string, namespace string) ([]*v1beta1.ServiceInstance, error) { - ret := _m.Called(className, externalClassName, namespace) - - var r0 []*v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, string, string) []*v1beta1.ServiceInstance); ok { - r0 = rf(className, externalClassName, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, string) error); ok { - r1 = rf(className, externalClassName, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/service_binding_operations.go b/components/console-backend-service/internal/domain/servicecatalog/automock/service_binding_operations.go deleted file mode 100644 index 528fdee53d7d..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/service_binding_operations.go +++ /dev/null @@ -1,108 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// serviceBindingOperations is an autogenerated mock type for the serviceBindingOperations type -type serviceBindingOperations struct { - mock.Mock -} - -// Create provides a mock function with given fields: namespace, sb -func (_m *serviceBindingOperations) Create(namespace string, sb *v1beta1.ServiceBinding) (*v1beta1.ServiceBinding, error) { - ret := _m.Called(namespace, sb) - - var r0 *v1beta1.ServiceBinding - if rf, ok := ret.Get(0).(func(string, *v1beta1.ServiceBinding) *v1beta1.ServiceBinding); ok { - r0 = rf(namespace, sb) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceBinding) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, *v1beta1.ServiceBinding) error); ok { - r1 = rf(namespace, sb) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: namespace, name -func (_m *serviceBindingOperations) Delete(namespace string, name string) error { - ret := _m.Called(namespace, name) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(namespace, name) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: namespace, name -func (_m *serviceBindingOperations) Find(namespace string, name string) (*v1beta1.ServiceBinding, error) { - ret := _m.Called(namespace, name) - - var r0 *v1beta1.ServiceBinding - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceBinding); ok { - r0 = rf(namespace, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceBinding) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListForServiceInstance provides a mock function with given fields: namespace, instanceName -func (_m *serviceBindingOperations) ListForServiceInstance(namespace string, instanceName string) ([]*v1beta1.ServiceBinding, error) { - ret := _m.Called(namespace, instanceName) - - var r0 []*v1beta1.ServiceBinding - if rf, ok := ret.Get(0).(func(string, string) []*v1beta1.ServiceBinding); ok { - r0 = rf(namespace, instanceName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceBinding) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, instanceName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *serviceBindingOperations) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *serviceBindingOperations) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/service_broker_svc.go b/components/console-backend-service/internal/domain/servicecatalog/automock/service_broker_svc.go deleted file mode 100644 index 109bf1cf987e..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/service_broker_svc.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// serviceBrokerSvc is an autogenerated mock type for the serviceBrokerSvc type -type serviceBrokerSvc struct { - mock.Mock -} - -// Find provides a mock function with given fields: name, namespace -func (_m *serviceBrokerSvc) Find(name string, namespace string) (*v1beta1.ServiceBroker, error) { - ret := _m.Called(name, namespace) - - var r0 *v1beta1.ServiceBroker - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceBroker); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *serviceBrokerSvc) List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceBroker, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1beta1.ServiceBroker - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1beta1.ServiceBroker); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *serviceBrokerSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *serviceBrokerSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/service_class_getter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/service_class_getter.go deleted file mode 100644 index f9eb56ff3a63..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/service_class_getter.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// serviceClassGetter is an autogenerated mock type for the serviceClassGetter type -type serviceClassGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name, namespace -func (_m *serviceClassGetter) Find(name string, namespace string) (*v1beta1.ServiceClass, error) { - ret := _m.Called(name, namespace) - - var r0 *v1beta1.ServiceClass - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceClass); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// FindByExternalName provides a mock function with given fields: externalName, namespace -func (_m *serviceClassGetter) FindByExternalName(externalName string, namespace string) (*v1beta1.ServiceClass, error) { - ret := _m.Called(externalName, namespace) - - var r0 *v1beta1.ServiceClass - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceClass); ok { - r0 = rf(externalName, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(externalName, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/service_class_list_getter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/service_class_list_getter.go deleted file mode 100644 index bee653e0d560..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/service_class_list_getter.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// serviceClassListGetter is an autogenerated mock type for the serviceClassListGetter type -type serviceClassListGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name, namespace -func (_m *serviceClassListGetter) Find(name string, namespace string) (*v1beta1.ServiceClass, error) { - ret := _m.Called(name, namespace) - - var r0 *v1beta1.ServiceClass - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceClass); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// FindByExternalName provides a mock function with given fields: externalName, namespace -func (_m *serviceClassListGetter) FindByExternalName(externalName string, namespace string) (*v1beta1.ServiceClass, error) { - ret := _m.Called(externalName, namespace) - - var r0 *v1beta1.ServiceClass - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceClass); ok { - r0 = rf(externalName, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(externalName, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *serviceClassListGetter) List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceClass, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1beta1.ServiceClass - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1beta1.ServiceClass); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceClass) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/service_instance_lister.go b/components/console-backend-service/internal/domain/servicecatalog/automock/service_instance_lister.go deleted file mode 100644 index 545b2df768ed..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/service_instance_lister.go +++ /dev/null @@ -1,86 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - mock "github.com/stretchr/testify/mock" - - status "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// serviceInstanceLister is an autogenerated mock type for the serviceInstanceLister type -type serviceInstanceLister struct { - mock.Mock -} - -// Find provides a mock function with given fields: name, namespace -func (_m *serviceInstanceLister) Find(name string, namespace string) (*v1beta1.ServiceInstance, error) { - ret := _m.Called(name, namespace) - - var r0 *v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceInstance); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *serviceInstanceLister) List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceInstance, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1beta1.ServiceInstance); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListForStatus provides a mock function with given fields: namespace, pagingParams, _a2 -func (_m *serviceInstanceLister) ListForStatus(namespace string, pagingParams pager.PagingParams, _a2 *status.ServiceInstanceStatusType) ([]*v1beta1.ServiceInstance, error) { - ret := _m.Called(namespace, pagingParams, _a2) - - var r0 []*v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, pager.PagingParams, *status.ServiceInstanceStatusType) []*v1beta1.ServiceInstance); ok { - r0 = rf(namespace, pagingParams, _a2) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams, *status.ServiceInstanceStatusType) error); ok { - r1 = rf(namespace, pagingParams, _a2) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/service_plan_getter.go b/components/console-backend-service/internal/domain/servicecatalog/automock/service_plan_getter.go deleted file mode 100644 index 556262eb6144..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/service_plan_getter.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// servicePlanGetter is an autogenerated mock type for the servicePlanGetter type -type servicePlanGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name, namespace -func (_m *servicePlanGetter) Find(name string, namespace string) (*v1beta1.ServicePlan, error) { - ret := _m.Called(name, namespace) - - var r0 *v1beta1.ServicePlan - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServicePlan); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// FindByExternalName provides a mock function with given fields: planExternalName, className, namespace -func (_m *servicePlanGetter) FindByExternalName(planExternalName string, className string, namespace string) (*v1beta1.ServicePlan, error) { - ret := _m.Called(planExternalName, className, namespace) - - var r0 *v1beta1.ServicePlan - if rf, ok := ret.Get(0).(func(string, string, string) *v1beta1.ServicePlan); ok { - r0 = rf(planExternalName, className, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, string) error); ok { - r1 = rf(planExternalName, className, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/automock/service_plan_lister.go b/components/console-backend-service/internal/domain/servicecatalog/automock/service_plan_lister.go deleted file mode 100644 index a826d60df200..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/automock/service_plan_lister.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// servicePlanLister is an autogenerated mock type for the servicePlanLister type -type servicePlanLister struct { - mock.Mock -} - -// ListForServiceClass provides a mock function with given fields: name, namespace -func (_m *servicePlanLister) ListForServiceClass(name string, namespace string) ([]*v1beta1.ServicePlan, error) { - ret := _m.Called(name, namespace) - - var r0 []*v1beta1.ServicePlan - if rf, ok := ret.Get(0).(func(string, string) []*v1beta1.ServicePlan); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServicePlan) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_converter.go b/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_converter.go deleted file mode 100644 index 0edd98068814..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_converter.go +++ /dev/null @@ -1,50 +0,0 @@ -package servicecatalog - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type clusterServiceBrokerConverter struct { - extractor status.BrokerExtractor -} - -func (c *clusterServiceBrokerConverter) ToGQL(item *v1beta1.ClusterServiceBroker) (*gqlschema.ClusterServiceBroker, error) { - if item == nil { - return nil, nil - } - - conditions := item.Status.Conditions - returnStatus := c.extractor.Status(conditions) - - labels := item.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - - broker := gqlschema.ClusterServiceBroker{ - Name: item.Name, - Status: returnStatus, - CreationTimestamp: item.CreationTimestamp.Time, - Labels: labels, - URL: item.Spec.URL, - } - - return &broker, nil -} - -func (c *clusterServiceBrokerConverter) ToGQLs(in []*v1beta1.ClusterServiceBroker) ([]*gqlschema.ClusterServiceBroker, error) { - var result []*gqlschema.ClusterServiceBroker - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_converter_test.go deleted file mode 100644 index eec72153bad1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_converter_test.go +++ /dev/null @@ -1,154 +0,0 @@ -package servicecatalog - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterServiceBrokerConverter_ToGQL(t *testing.T) { - t.Run("All properties are given", func(t *testing.T) { - converter := clusterServiceBrokerConverter{} - var zeroTimeStamp time.Time - labels := map[string]string{ - "label1": "labelValue1", - "label2": "labelValue2", - } - - item := fixClusterServiceBroker() - - expected := gqlschema.ClusterServiceBroker{ - Name: "exampleName", - CreationTimestamp: zeroTimeStamp, - Labels: labels, - URL: "ExampleURL", - Status: &gqlschema.ServiceBrokerStatus{ - Ready: true, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - } - - result, err := converter.ToGQL(item) - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &clusterServiceBrokerConverter{} - _, err := converter.ToGQL(&v1beta1.ClusterServiceBroker{}) - require.NoError(t, err) - }) - - t.Run("Empty auth info", func(t *testing.T) { - converter := &clusterServiceBrokerConverter{} - _, err := converter.ToGQL(&v1beta1.ClusterServiceBroker{ - Spec: v1beta1.ClusterServiceBrokerSpec{ - AuthInfo: &v1beta1.ClusterServiceBrokerAuthInfo{}, - }, - }) - require.NoError(t, err) - }) - - t.Run("Empty basic and bearer", func(t *testing.T) { - converter := &clusterServiceBrokerConverter{} - _, err := converter.ToGQL(&v1beta1.ClusterServiceBroker{ - Spec: v1beta1.ClusterServiceBrokerSpec{ - AuthInfo: &v1beta1.ClusterServiceBrokerAuthInfo{ - Basic: &v1beta1.ClusterBasicAuthConfig{}, - Bearer: &v1beta1.ClusterBearerTokenAuthConfig{}, - }, - }, - }) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &clusterServiceBrokerConverter{} - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestClusterServiceBrokerConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - brokers := []*v1beta1.ClusterServiceBroker{ - fixClusterServiceBroker(), - fixClusterServiceBroker(), - } - - converter := clusterServiceBrokerConverter{} - result, err := converter.ToGQLs(brokers) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "exampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var brokers []*v1beta1.ClusterServiceBroker - - converter := clusterServiceBrokerConverter{} - result, err := converter.ToGQLs(brokers) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - brokers := []*v1beta1.ClusterServiceBroker{ - nil, - fixClusterServiceBroker(), - nil, - } - - converter := clusterServiceBrokerConverter{} - result, err := converter.ToGQLs(brokers) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "exampleName", result[0].Name) - }) -} - -func fixClusterServiceBroker() *v1beta1.ClusterServiceBroker { - var mockTimeStamp metav1.Time - labels := map[string]string{ - "label1": "labelValue1", - "label2": "labelValue2", - } - - return &v1beta1.ClusterServiceBroker{ - - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - CreationTimestamp: mockTimeStamp, - Labels: labels, - }, - Spec: v1beta1.ClusterServiceBrokerSpec{ - CommonServiceBrokerSpec: v1beta1.CommonServiceBrokerSpec{ - URL: "ExampleURL", - }, - }, - Status: v1beta1.ClusterServiceBrokerStatus{ - CommonServiceBrokerStatus: v1beta1.CommonServiceBrokerStatus{ - Conditions: []v1beta1.ServiceBrokerCondition{ - { - Type: v1beta1.ServiceBrokerConditionType("Ready"), - Status: v1beta1.ConditionStatus("True"), - LastTransitionTime: mockTimeStamp, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_resolver.go deleted file mode 100644 index 8f85e2d4420c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_resolver.go +++ /dev/null @@ -1,98 +0,0 @@ -package servicecatalog - -import ( - "context" - - "github.com/golang/glog" - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlClusterServiceBrokerConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterServiceBrokerConverter interface { - ToGQL(in *v1beta1.ClusterServiceBroker) (*gqlschema.ClusterServiceBroker, error) - ToGQLs(in []*v1beta1.ClusterServiceBroker) ([]*gqlschema.ClusterServiceBroker, error) -} - -//go:generate mockery -name=clusterServiceBrokerSvc -output=automock -outpkg=automock -case=underscore -type clusterServiceBrokerSvc interface { - Find(name string) (*v1beta1.ClusterServiceBroker, error) - List(pagingParams pager.PagingParams) ([]*v1beta1.ClusterServiceBroker, error) - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -type clusterServiceBrokerResolver struct { - clusterServiceBrokerSvc clusterServiceBrokerSvc - brokerConverter gqlClusterServiceBrokerConverter -} - -func newClusterServiceBrokerResolver(clusterServiceBrokerSvc clusterServiceBrokerSvc) *clusterServiceBrokerResolver { - return &clusterServiceBrokerResolver{ - clusterServiceBrokerSvc: clusterServiceBrokerSvc, - brokerConverter: &clusterServiceBrokerConverter{}, - } -} - -func (r *clusterServiceBrokerResolver) ClusterServiceBrokersQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceBroker, error) { - items, err := r.clusterServiceBrokerSvc.List(pager.PagingParams{ - First: first, - Offset: offset, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.ClusterServiceBrokers)) - return nil, gqlerror.New(err, pretty.ClusterServiceBrokers) - } - - serviceBrokers, err := r.brokerConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ClusterServiceBrokers)) - return nil, gqlerror.New(err, pretty.ClusterServiceBrokers) - } - - return serviceBrokers, nil -} - -func (r *clusterServiceBrokerResolver) ClusterServiceBrokerQuery(ctx context.Context, name string) (*gqlschema.ClusterServiceBroker, error) { - serviceBroker, err := r.clusterServiceBrokerSvc.Find(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s", pretty.ClusterServiceBroker)) - return nil, gqlerror.New(err, pretty.ClusterServiceBroker, gqlerror.WithName(name)) - } - if serviceBroker == nil { - return nil, nil - } - - result, err := r.brokerConverter.ToGQL(serviceBroker) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting to %s type", pretty.ClusterServiceBroker)) - return nil, gqlerror.New(err, pretty.ClusterServiceBroker, gqlerror.WithName(name)) - } - - return result, nil -} - -func (r *clusterServiceBrokerResolver) ClusterServiceBrokerEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterServiceBrokerEvent, error) { - channel := make(chan *gqlschema.ClusterServiceBrokerEvent, 1) - filter := func(entity *v1beta1.ClusterServiceBroker) bool { - return true - } - - brokerListener := listener.NewClusterServiceBroker(channel, filter, r.brokerConverter) - - r.clusterServiceBrokerSvc.Subscribe(brokerListener) - go func() { - defer close(channel) - defer r.clusterServiceBrokerSvc.Unsubscribe(brokerListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_resolver_test.go deleted file mode 100644 index a0a5c149d139..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_resolver_test.go +++ /dev/null @@ -1,179 +0,0 @@ -package servicecatalog_test - -import ( - "context" - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterServiceBrokerResolver_ClusterServiceBrokerQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.ClusterServiceBroker{ - Name: "Test", - } - resource := &v1beta1.ClusterServiceBroker{} - - svc := automock.NewClusterServiceBrokerService() - svc.On("Find", "broker"). - Return(resource, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLClusterServiceBrokerConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - resolver.SetBrokerConverter(converter) - - result, err := resolver.ClusterServiceBrokerQuery(nil, "broker") - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - svc := automock.NewClusterServiceBrokerService() - svc.On("Find", name).Return(nil, nil).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - - result, err := resolver.ClusterServiceBrokerQuery(nil, name) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - - resource := &v1beta1.ClusterServiceBroker{} - - svc := automock.NewClusterServiceBrokerService() - svc.On("Find", name).Return(resource, expected).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - - result, err := resolver.ClusterServiceBrokerQuery(nil, name) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClusterServiceBrokerResolver_ClusterServiceBrokersQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - resource := - &v1beta1.ClusterServiceBroker{ - ObjectMeta: v1.ObjectMeta{ - Name: "test", - }, - } - resources := []*v1beta1.ClusterServiceBroker{ - resource, resource, - } - expected := []*gqlschema.ClusterServiceBroker{ - { - Name: "Test", - }, { - Name: "Test", - }, - } - - svc := automock.NewClusterServiceBrokerService() - svc.On("List", pager.PagingParams{}).Return(resources, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLClusterServiceBrokerConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - resolver.SetBrokerConverter(converter) - - result, err := resolver.ClusterServiceBrokersQuery(nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var resources []*v1beta1.ClusterServiceBroker - - svc := automock.NewClusterServiceBrokerService() - svc.On("List", pager.PagingParams{}).Return(resources, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - var expected []*gqlschema.ClusterServiceBroker - - result, err := resolver.ClusterServiceBrokersQuery(nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - - var resources []*v1beta1.ClusterServiceBroker - - svc := automock.NewClusterServiceBrokerService() - svc.On("List", pager.PagingParams{}).Return(resources, expected).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - - _, err := resolver.ClusterServiceBrokersQuery(nil, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestClusterServiceBrokerResolver_ClusterServiceBrokerEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewClusterServiceBrokerService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - - _, err := resolver.ClusterServiceBrokerEventSubscription(ctx) - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewClusterServiceBrokerService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalog.NewClusterServiceBrokerResolver(svc) - - channel, err := resolver.ClusterServiceBrokerEventSubscription(ctx) - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_service.go b/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_service.go deleted file mode 100644 index 6a2b6f876310..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_service.go +++ /dev/null @@ -1,62 +0,0 @@ -package servicecatalog - -import ( - "fmt" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "k8s.io/client-go/tools/cache" -) - -type clusterServiceBrokerService struct { - informer cache.SharedIndexInformer - notifier notifier -} - -func newClusterServiceBrokerService(informer cache.SharedIndexInformer) *clusterServiceBrokerService { - return &clusterServiceBrokerService{ - informer: informer, - notifier: resource.NewNotifier(), - } -} - -func (svc *clusterServiceBrokerService) Find(name string) (*v1beta1.ClusterServiceBroker, error) { - item, exists, err := svc.informer.GetStore().GetByKey(name) - if err != nil || !exists { - return nil, err - } - - serviceBroker, ok := item.(*v1beta1.ClusterServiceBroker) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServiceBroker", item) - } - - return serviceBroker, nil -} - -func (svc *clusterServiceBrokerService) List(pagingParams pager.PagingParams) ([]*v1beta1.ClusterServiceBroker, error) { - items, err := pager.From(svc.informer.GetStore()).Limit(pagingParams) - if err != nil { - return nil, err - } - - var serviceBrokers []*v1beta1.ClusterServiceBroker - for _, item := range items { - serviceBroker, ok := item.(*v1beta1.ClusterServiceBroker) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServiceBroker", item) - } - serviceBrokers = append(serviceBrokers, serviceBroker) - } - - return serviceBrokers, nil -} - -func (svc *clusterServiceBrokerService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *clusterServiceBrokerService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_service_test.go deleted file mode 100644 index 304f09bcd294..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterservicebroker_service_test.go +++ /dev/null @@ -1,178 +0,0 @@ -package servicecatalog_test - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -func TestClusterServiceBrokerService_GetServiceBroker(t *testing.T) { - t.Run("Success", func(t *testing.T) { - brokerName := "testExample" - serviceBroker := fixClusterServiceBroker(brokerName) - client := fake.NewSimpleClientset(serviceBroker) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceBrokers().Informer() - - svc := servicecatalog.NewClusterServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - broker, err := svc.Find(brokerName) - require.NoError(t, err) - assert.Equal(t, serviceBroker, broker) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceBrokers().Informer() - - svc := servicecatalog.NewClusterServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - broker, err := svc.Find("doesntExist") - require.NoError(t, err) - assert.Nil(t, broker) - }) -} - -func TestClusterServiceBrokerService_ListServiceBrokers(t *testing.T) { - t.Run("Success", func(t *testing.T) { - serviceBroker1 := fixClusterServiceBroker("1") - serviceBroker2 := fixClusterServiceBroker("2") - serviceBroker3 := fixClusterServiceBroker("3") - client := fake.NewSimpleClientset(serviceBroker1, serviceBroker2, serviceBroker3) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceBrokers().Informer() - - svc := servicecatalog.NewClusterServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - brokers, err := svc.List(pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1beta1.ClusterServiceBroker{ - serviceBroker1, serviceBroker2, serviceBroker3, - }, brokers) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceBrokers().Informer() - - svc := servicecatalog.NewClusterServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - var emptyArray []*v1beta1.ClusterServiceBroker - brokers, err := svc.List(pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, brokers) - }) -} - -func TestClusterServiceBrokerService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - instanceListener := listener.NewClusterServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - instanceListener := listener.NewClusterServiceBroker(nil, nil, nil) - - svc.Subscribe(instanceListener) - svc.Subscribe(instanceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - instanceListenerA := listener.NewClusterServiceBroker(nil, nil, nil) - instanceListenerB := listener.NewClusterServiceBroker(nil, nil, nil) - - svc.Subscribe(instanceListenerA) - svc.Subscribe(instanceListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - - svc.Subscribe(nil) - }) -} - -func TestClusterServiceBrokerService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - instanceListener := listener.NewClusterServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListener) - - svc.Unsubscribe(instanceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - instanceListener := listener.NewClusterServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListener) - svc.Subscribe(instanceListener) - - svc.Unsubscribe(instanceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - instanceListenerA := listener.NewClusterServiceBroker(nil, nil, nil) - instanceListenerB := listener.NewClusterServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListenerA) - svc.Subscribe(instanceListenerB) - - svc.Unsubscribe(instanceListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - svc := servicecatalog.NewClusterServiceBrokerService(fixClusterServiceBrokerInformer()) - - svc.Unsubscribe(nil) - }) -} - -func fixClusterServiceBroker(name string) *v1beta1.ClusterServiceBroker { - var mockTimeStamp metav1.Time - - broker := v1beta1.ClusterServiceBroker{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - CreationTimestamp: mockTimeStamp, - }, - } - - return &broker -} - -func fixClusterServiceBrokerInformer(objects ...runtime.Object) cache.SharedIndexInformer { - client := fake.NewSimpleClientset(objects...) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - informer := informerFactory.Servicecatalog().V1beta1().ClusterServiceBrokers().Informer() - - return informer -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_converter.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_converter.go deleted file mode 100644 index 687a0568b16a..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_converter.go +++ /dev/null @@ -1,70 +0,0 @@ -package servicecatalog - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" -) - -type clusterServiceClassConverter struct{} - -func (c *clusterServiceClassConverter) ToGQL(in *v1beta1.ClusterServiceClass) (*gqlschema.ClusterServiceClass, error) { - if in == nil { - return nil, nil - } - - var externalMetadata map[string]interface{} - var err error - if in.Spec.ExternalMetadata != nil { - externalMetadata, err = resource.ExtractRawToMap("ExternalMetadata", in.Spec.ExternalMetadata.Raw) - if err != nil { - return nil, errors.Wrapf(err, "while converting externalMetadata for ClusterServiceClass `%s`", in.Name) - } - } - - providerDisplayName := resource.ToStringPtr(externalMetadata["providerDisplayName"]) - imageURL := resource.ToStringPtr(externalMetadata["imageUrl"]) - documentationURL := resource.ToStringPtr(externalMetadata["documentationUrl"]) - supportURL := resource.ToStringPtr(externalMetadata["supportUrl"]) - displayName := resource.ToStringPtr(externalMetadata["displayName"]) - longDescription := resource.ToStringPtr(externalMetadata["longDescription"]) - - labels := gqlschema.Labels{} - err = labels.UnmarshalGQL(externalMetadata["labels"]) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling labels in ClusterServiceClass `%s`", in.Name) - } - - class := gqlschema.ClusterServiceClass{ - Name: in.Name, - ExternalName: in.Spec.ExternalName, - DisplayName: displayName, - Description: in.Spec.Description, - LongDescription: longDescription, - ProviderDisplayName: providerDisplayName, - ImageURL: imageURL, - DocumentationURL: documentationURL, - SupportURL: supportURL, - CreationTimestamp: in.CreationTimestamp.Time, - Tags: in.Spec.Tags, - Labels: labels, - } - - return &class, nil -} - -func (c *clusterServiceClassConverter) ToGQLs(in []*v1beta1.ClusterServiceClass) ([]*gqlschema.ClusterServiceClass, error) { - var result []*gqlschema.ClusterServiceClass - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_converter_test.go deleted file mode 100644 index 6225b6b55b07..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_converter_test.go +++ /dev/null @@ -1,202 +0,0 @@ -package servicecatalog - -import ( - "encoding/json" - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" -) - -func TestClusterServiceClassConverter_ToGQL(t *testing.T) { - var mockTimeStamp metav1.Time - var zeroTimeStamp time.Time - t.Run("All properties are given", func(t *testing.T) { - converter := clusterServiceClassConverter{} - - labels := gqlschema.Labels{ - "connected-app": "exampleConnectedApp", - "local": "true", - "showcase": "false", - } - maps := map[string]interface{}{ - "displayName": "exampleDisplayName", - "providerDisplayName": "exampleProviderName", - "imageUrl": "exampleImageURL", - "documentationUrl": "exampleDocumentationURL", - "longDescription": "exampleLongDescription", - "supportUrl": "exampleSupportURL", - "labels": labels, - } - - byteMaps, err := json.Marshal(maps) - item := v1beta1.ClusterServiceClass{ - Spec: v1beta1.ClusterServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: byteMaps}, - ExternalName: "ExampleExternalName", - Tags: []string{"tag1", "tag2"}, - Description: "ExampleDescription", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - UID: types.UID("exampleUid"), - CreationTimestamp: mockTimeStamp, - ResourceVersion: "exampleVersion", - }, - } - - providerDisplayName := "exampleProviderName" - imageURL := "exampleImageURL" - documentationURL := "exampleDocumentationURL" - supportURL := "exampleSupportURL" - displayName := "exampleDisplayName" - longDescription := "exampleLongDescription" - expected := gqlschema.ClusterServiceClass{ - Name: "exampleName", - ExternalName: "ExampleExternalName", - DisplayName: &displayName, - Description: "ExampleDescription", - LongDescription: &longDescription, - ProviderDisplayName: &providerDisplayName, - ImageURL: &imageURL, - DocumentationURL: &documentationURL, - SupportURL: &supportURL, - CreationTimestamp: zeroTimeStamp, - Tags: []string{"tag1", "tag2"}, - Labels: labels, - } - - result, err := converter.ToGQL(&item) - - assert.Equal(t, err, nil) - assert.Equal(t, &expected, result) - }) - - t.Run("Invalid externalMetadata (not equals to maps[string]string)", func(t *testing.T) { - converter := clusterServiceClassConverter{} - maps := "randomString" - byteMaps, err := json.Marshal(maps) - item := v1beta1.ClusterServiceClass{ - Spec: v1beta1.ClusterServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: byteMaps}, - ExternalName: "ExampleExternalName", - Tags: []string{"tag1", "tag2"}, - Description: "ExampleDescription", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - UID: types.UID("exampleUid"), - CreationTimestamp: mockTimeStamp, - ResourceVersion: "exampleVersion", - }, - } - - _, err = converter.ToGQL(&item) - - assert.Error(t, err) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &clusterServiceClassConverter{} - _, err := converter.ToGQL(&v1beta1.ClusterServiceClass{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &clusterServiceClassConverter{} - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestClusterServiceClassConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - classes := []*v1beta1.ClusterServiceClass{ - fixClusterServiceClass(t), - fixClusterServiceClass(t), - } - - converter := clusterServiceClassConverter{} - result, err := converter.ToGQLs(classes) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "exampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var classes []*v1beta1.ClusterServiceClass - - converter := clusterServiceClassConverter{} - result, err := converter.ToGQLs(classes) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - classes := []*v1beta1.ClusterServiceClass{ - nil, - fixClusterServiceClass(t), - nil, - } - - converter := clusterServiceClassConverter{} - result, err := converter.ToGQLs(classes) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "exampleName", result[0].Name) - }) -} - -func fixClusterServiceClass(t require.TestingT) *v1beta1.ClusterServiceClass { - var mockTimeStamp metav1.Time - - labels := gqlschema.Labels{ - "connected-app": "exampleConnectedApp", - "local": "true", - "showcase": "false", - } - maps := map[string]interface{}{ - "displayName": "exampleDisplayName", - "providerDisplayName": "exampleProviderName", - "imageUrl": "exampleImageURL", - "documentationUrl": "exampleDocumentationURL", - "longDescription": "exampleLongDescription", - "supportUrl": "exampleSupportURL", - "labels": labels, - } - - byteMaps, err := json.Marshal(maps) - require.NoError(t, err) - - return &v1beta1.ClusterServiceClass{ - Spec: v1beta1.ClusterServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: byteMaps}, - ExternalName: "ExampleExternalName", - Tags: []string{"tag1", "tag2"}, - Description: "ExampleDescription", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - UID: types.UID("exampleUid"), - CreationTimestamp: mockTimeStamp, - ResourceVersion: "exampleVersion", - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_resolver.go deleted file mode 100644 index 4ef77d99fc27..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_resolver.go +++ /dev/null @@ -1,177 +0,0 @@ -package servicecatalog - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - - "github.com/golang/glog" - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - rafterPretty "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" -) - -//go:generate mockery -name=clusterServiceClassListGetter -output=automock -outpkg=automock -case=underscore -type clusterServiceClassListGetter interface { - clusterServiceClassGetter - List(pagingParams pager.PagingParams) ([]*v1beta1.ClusterServiceClass, error) -} - -//go:generate mockery -name=gqlClusterServiceClassConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterServiceClassConverter interface { - ToGQL(in *v1beta1.ClusterServiceClass) (*gqlschema.ClusterServiceClass, error) - ToGQLs(in []*v1beta1.ClusterServiceClass) ([]*gqlschema.ClusterServiceClass, error) -} - -//go:generate mockery -name=clusterServicePlanLister -output=automock -outpkg=automock -case=underscore -type clusterServicePlanLister interface { - ListForClusterServiceClass(name string) ([]*v1beta1.ClusterServicePlan, error) -} - -//go:generate mockery -name=instanceListerByClusterServiceClass -output=automock -outpkg=automock -case=underscore -type instanceListerByClusterServiceClass interface { - ListForClusterServiceClass(className, externalClassName string, namespace *string) ([]*v1beta1.ServiceInstance, error) -} - -type clusterServiceClassResolver struct { - classLister clusterServiceClassListGetter - planLister clusterServicePlanLister - instanceLister instanceListerByClusterServiceClass - rafterRetriever shared.RafterRetriever - classConverter gqlClusterServiceClassConverter - instanceConverter gqlServiceInstanceConverter - planConverter gqlClusterServicePlanConverter -} - -func newClusterServiceClassResolver(classLister clusterServiceClassListGetter, planLister clusterServicePlanLister, instanceLister instanceListerByClusterServiceClass, rafterRetriever shared.RafterRetriever) *clusterServiceClassResolver { - return &clusterServiceClassResolver{ - classLister: classLister, - planLister: planLister, - instanceLister: instanceLister, - rafterRetriever: rafterRetriever, - classConverter: &clusterServiceClassConverter{}, - planConverter: &clusterServicePlanConverter{}, - instanceConverter: &serviceInstanceConverter{}, - } -} - -func (r *clusterServiceClassResolver) ClusterServiceClassQuery(ctx context.Context, name string) (*gqlschema.ClusterServiceClass, error) { - serviceClass, err := r.classLister.Find(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s", pretty.ClusterServiceClass, name)) - return nil, gqlerror.New(err, pretty.ClusterServiceClass, gqlerror.WithName(name)) - } - if serviceClass == nil { - return nil, nil - } - - result, err := r.classConverter.ToGQL(serviceClass) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting to %s type", pretty.ClusterServiceClass)) - return nil, gqlerror.New(err, pretty.ClusterServiceClass, gqlerror.WithName(name)) - } - - return result, nil -} - -func (r *clusterServiceClassResolver) ClusterServiceClassesQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceClass, error) { - items, err := r.classLister.List(pager.PagingParams{ - First: first, - Offset: offset, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.ClusterServiceClasses)) - return nil, gqlerror.New(err, pretty.ClusterServiceClasses) - } - - serviceClasses, err := r.classConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ClusterServiceClasses)) - return nil, gqlerror.New(err, pretty.ClusterServiceClasses) - } - - return serviceClasses, nil -} - -func (r *clusterServiceClassResolver) ClusterServiceClassPlansField(ctx context.Context, obj *gqlschema.ClusterServiceClass) ([]*gqlschema.ClusterServicePlan, error) { - if obj == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve %s for class"), pretty.ClusterServiceClass, pretty.ClusterServicePlans) - return nil, gqlerror.NewInternal() - } - - items, err := r.planLister.ListForClusterServiceClass(obj.Name) - if err != nil { - glog.Error(errors.Wrap(err, "while getting %s"), pretty.ClusterServicePlans) - return nil, gqlerror.New(err, pretty.ClusterServicePlans) - } - - convertedPlans, err := r.planConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ClusterServicePlans)) - return nil, gqlerror.New(err, pretty.ClusterServicePlans) - } - - return convertedPlans, nil -} - -func (r *clusterServiceClassResolver) ClusterServiceClassInstancesField(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) ([]*gqlschema.ServiceInstance, error) { - if obj == nil { - glog.Error(fmt.Errorf("%s cannot be empty in order to resolve activated field", pretty.ClusterServiceClass)) - return nil, gqlerror.NewInternal() - } - - items, err := r.instanceLister.ListForClusterServiceClass(obj.Name, obj.ExternalName, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for %s %s", pretty.ServiceInstances, pretty.ClusterServiceClass, obj.Name)) - return nil, gqlerror.New(err, pretty.ServiceInstances) - } - - instances, err := r.instanceConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceInstance)) - return nil, gqlerror.New(err, pretty.ServiceInstance) - } - - return instances, nil -} - -func (r *clusterServiceClassResolver) ClusterServiceClassActivatedField(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) (bool, error) { - instances, err := r.ClusterServiceClassInstancesField(ctx, obj, namespace) - if err != nil { - return false, err - } - - return len(instances) > 0, nil -} - -func (r *clusterServiceClassResolver) ClusterServiceClassClusterAssetGroupField(ctx context.Context, obj *gqlschema.ClusterServiceClass) (*gqlschema.ClusterAssetGroup, error) { - if obj == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve `clusterAssetGroup` field"), pretty.ClusterServiceClass) - return nil, gqlerror.NewInternal() - } - - item, err := r.rafterRetriever.ClusterAssetGroup().Find(obj.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", rafterPretty.ClusterAssetGroup, pretty.ClusterServiceClass, obj.Name)) - return nil, gqlerror.New(err, rafterPretty.ClusterAssetGroup) - } - - clusterAssetGroup, err := r.rafterRetriever.ClusterAssetGroupConverter().ToGQL(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", rafterPretty.ClusterAssetGroup)) - return nil, gqlerror.New(err, rafterPretty.ClusterAssetGroup) - } - - return clusterAssetGroup, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_resolver_test.go deleted file mode 100644 index 74cd490586fe..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_resolver_test.go +++ /dev/null @@ -1,516 +0,0 @@ -package servicecatalog_test - -import ( - "fmt" - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/automock" - mock "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - rafterV1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterServiceClassResolver_ClusterServiceClassQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.ClusterServiceClass{ - Name: "Test", - } - name := "name" - resource := &v1beta1.ClusterServiceClass{} - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("Find", name).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLClusterServiceClassConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceClassResolver(resourceGetter, nil, nil, nil) - resolver.SetClassConverter(converter) - - result, err := resolver.ClusterServiceClassQuery(nil, name) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("Find", name).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceClassResolver(resourceGetter, nil, nil, nil) - - result, err := resolver.ClusterServiceClassQuery(nil, name) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - resource := &v1beta1.ClusterServiceClass{} - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("Find", name).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceClassResolver(resourceGetter, nil, nil, nil) - - result, err := resolver.ClusterServiceClassQuery(nil, name) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClusterServiceClassResolver_ClusterServiceClassesQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - resource := - &v1beta1.ClusterServiceClass{ - ObjectMeta: v1.ObjectMeta{ - Name: "test", - }, - } - resources := []*v1beta1.ClusterServiceClass{ - resource, resource, - } - expected := []*gqlschema.ClusterServiceClass{ - { - Name: "Test", - }, { - Name: "Test", - }, - } - - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("List", pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLClusterServiceClassConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewClusterServiceClassResolver(resourceGetter, nil, nil, nil) - resolver.SetClassConverter(converter) - - result, err := resolver.ClusterServiceClassesQuery(nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var resources []*v1beta1.ClusterServiceClass - - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("List", pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewClusterServiceClassResolver(resourceGetter, nil, nil, nil) - var expected []*gqlschema.ClusterServiceClass - - result, err := resolver.ClusterServiceClassesQuery(nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - - var resources []*v1beta1.ClusterServiceClass - - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("List", pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewClusterServiceClassResolver(resourceGetter, nil, nil, nil) - - _, err := resolver.ClusterServiceClassesQuery(nil, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestClusterServiceClassResolver_ClusterServiceClassInstancesField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - - testNs := "test" - for testNo, testCase := range []struct { - Namespace *string - }{ - {Namespace: nil}, - {Namespace: &testNs}, - } { - t.Run(fmt.Sprintf("Test Case %d", testNo), func(t *testing.T) { - name := "name" - ns := "ns" - externalName := "externalName" - resources := []*v1beta1.ServiceInstance{ - fixServiceInstance("foo", "ns"), - fixServiceInstance("bar", "ns"), - } - expected := []gqlschema.ServiceInstance{ - {Name: "foo", Namespace: ns}, - {Name: "bar", Namespace: ns}, - } - - resourceGetter := automock.NewInstanceListerByClusterServiceClass() - resourceGetter.On("ListForClusterServiceClass", name, externalName, testCase.Namespace).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: externalName, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ClusterServiceClassInstancesField(nil, &parentObj, testCase.Namespace) - - require.NoError(t, err) - assert.Len(t, result, len(expected)) - for idx, e := range expected { - assert.Equal(t, e.Name, result[idx].Name) - assert.Equal(t, e.Namespace, result[idx].Namespace) - } - }) - } - }) - - t.Run("NotFound", func(t *testing.T) { - - testNs := "test" - for testNo, testCase := range []struct { - Namespace *string - }{ - {Namespace: nil}, - {Namespace: &testNs}, - } { - t.Run(fmt.Sprintf("Test Case %d", testNo), func(t *testing.T) { - name := "name" - externalName := "externalName" - var expected []*gqlschema.ServiceInstance - resourceGetter := automock.NewInstanceListerByClusterServiceClass() - resourceGetter.On("ListForClusterServiceClass", name, externalName, testCase.Namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := &gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: externalName, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ClusterServiceClassInstancesField(nil, parentObj, testCase.Namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - } - }) - - t.Run("Error", func(t *testing.T) { - - testNs := "test" - for testNo, testCase := range []struct { - Namespace *string - }{ - {Namespace: nil}, - {Namespace: &testNs}, - } { - t.Run(fmt.Sprintf("Test Case %d", testNo), func(t *testing.T) { - expectedErr := errors.New("Test") - name := "name" - externalName := "externalName" - resourceGetter := automock.NewInstanceListerByClusterServiceClass() - resourceGetter.On("ListForClusterServiceClass", name, externalName, testCase.Namespace).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: externalName, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, resourceGetter, nil) - - _, err := resolver.ClusterServiceClassInstancesField(nil, &parentObj, testCase.Namespace) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) - } - - }) -} - -func TestClusterServiceClassResolver_ClusterServiceClassActivatedField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - testNs := "test" - for testNo, testCase := range []struct { - Namespace *string - }{ - {Namespace: nil}, - {Namespace: &testNs}, - } { - t.Run(fmt.Sprintf("Test Case %d", testNo), func(t *testing.T) { - expected := true - name := "name" - externalName := "externalName" - resources := []*v1beta1.ServiceInstance{{}, {}} - resourceGetter := automock.NewInstanceListerByClusterServiceClass() - resourceGetter.On("ListForClusterServiceClass", name, externalName, testCase.Namespace).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: externalName, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ClusterServiceClassActivatedField(nil, &parentObj, testCase.Namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - } - }) - - t.Run("NotFound", func(t *testing.T) { - testNs := "test" - for testNo, testCase := range []struct { - Namespace *string - }{ - {Namespace: nil}, - {Namespace: &testNs}, - } { - t.Run(fmt.Sprintf("Test Case %d", testNo), func(t *testing.T) { - name := "name" - externalName := "externalName" - resourceGetter := automock.NewInstanceListerByClusterServiceClass() - resourceGetter.On("ListForClusterServiceClass", name, externalName, testCase.Namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := &gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: externalName, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ClusterServiceClassActivatedField(nil, parentObj, testCase.Namespace) - - require.NoError(t, err) - assert.False(t, result) - }) - } - }) - - t.Run("Error", func(t *testing.T) { - testNs := "test" - for testNo, testCase := range []struct { - Namespace *string - }{ - {Namespace: nil}, - {Namespace: &testNs}, - } { - t.Run(fmt.Sprintf("Test Case %d", testNo), func(t *testing.T) { - - expectedErr := errors.New("Test") - name := "name" - externalName := "externalName" - resourceGetter := automock.NewInstanceListerByClusterServiceClass() - resourceGetter.On("ListForClusterServiceClass", name, externalName, testCase.Namespace).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: externalName, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, resourceGetter, nil) - - _, err := resolver.ClusterServiceClassActivatedField(nil, &parentObj, testCase.Namespace) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) - } - - }) -} - -func TestClusterServiceClassResolver_ClusterServiceClassPlansField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expectedSingleObj := &gqlschema.ClusterServicePlan{ - Name: "Test", - } - expected := []*gqlschema.ClusterServicePlan{ - expectedSingleObj, - expectedSingleObj, - } - - name := "name" - resource := &v1beta1.ClusterServicePlan{} - resources := []*v1beta1.ClusterServicePlan{ - resource, - resource, - } - resourceGetter := automock.NewClusterServicePlanLister() - resourceGetter.On("ListForClusterServiceClass", name).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLClusterServicePlanConverter() - converter.On("ToGQLs", resources).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - } - resolver := servicecatalog.NewClusterServiceClassResolver(nil, resourceGetter, nil, nil) - resolver.SetPlanConverter(converter) - - result, err := resolver.ClusterServiceClassPlansField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - resourceGetter := automock.NewClusterServicePlanLister() - resourceGetter.On("ListForClusterServiceClass", name).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - } - resolver := servicecatalog.NewClusterServiceClassResolver(nil, resourceGetter, nil, nil) - - result, err := resolver.ClusterServiceClassPlansField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - name := "name" - resourceGetter := automock.NewClusterServicePlanLister() - resourceGetter.On("ListForClusterServiceClass", name).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - } - resolver := servicecatalog.NewClusterServiceClassResolver(nil, resourceGetter, nil, nil) - - result, err := resolver.ClusterServiceClassPlansField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClassResolver_ClusterServiceClassClusterAssetGroupField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "name" - resources := &rafterV1beta1.ClusterAssetGroup{ - ObjectMeta: v1.ObjectMeta{ - Name: name, - }, - } - expected := &gqlschema.ClusterAssetGroup{ - Name: name, - } - - resourceGetter := new(mock.ClusterAssetGroupGetter) - resourceGetter.On("Find", name).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := new(mock.GqlClusterAssetGroupConverter) - converter.On("ToGQL", resources).Return(expected, nil).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("ClusterAssetGroup").Return(resourceGetter) - retriever.On("ClusterAssetGroupConverter").Return(converter) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: name, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ClusterServiceClassClusterAssetGroupField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - - resourceGetter := new(mock.ClusterAssetGroupGetter) - resourceGetter.On("Find", name).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := new(mock.GqlClusterAssetGroupConverter) - converter.On("ToGQL", (*rafterV1beta1.ClusterAssetGroup)(nil)).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("ClusterAssetGroup").Return(resourceGetter) - retriever.On("ClusterAssetGroupConverter").Return(converter) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: name, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ClusterServiceClassClusterAssetGroupField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - name := "name" - - resourceGetter := new(mock.ClusterAssetGroupGetter) - resourceGetter.On("Find", name).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("ClusterAssetGroup").Return(resourceGetter) - - parentObj := gqlschema.ClusterServiceClass{ - Name: name, - ExternalName: name, - } - - resolver := servicecatalog.NewClusterServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ClusterServiceClassClusterAssetGroupField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_service.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_service.go deleted file mode 100644 index a4f9b2472f10..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_service.go +++ /dev/null @@ -1,90 +0,0 @@ -package servicecatalog - -import ( - "fmt" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" - "k8s.io/client-go/tools/cache" -) - -type clusterServiceClassService struct { - informer cache.SharedIndexInformer -} - -func newClusterServiceClassService(informer cache.SharedIndexInformer) (*clusterServiceClassService, error) { - err := informer.AddIndexers(cache.Indexers{ - "externalName": func(obj interface{}) ([]string, error) { - entity, ok := obj.(*v1beta1.ClusterServiceClass) - if !ok { - return nil, errors.New("Cannot convert item") - } - - return []string{entity.Spec.ExternalName}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - return &clusterServiceClassService{ - informer: informer, - }, nil -} - -func (svc *clusterServiceClassService) Find(name string) (*v1beta1.ClusterServiceClass, error) { - item, exists, err := svc.informer.GetStore().GetByKey(name) - if err != nil || !exists { - return nil, err - } - - serviceClass, ok := item.(*v1beta1.ClusterServiceClass) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServiceClass", item) - } - - return serviceClass, nil -} - -func (svc *clusterServiceClassService) FindByExternalName(externalName string) (*v1beta1.ClusterServiceClass, error) { - items, err := svc.informer.GetIndexer().ByIndex("externalName", externalName) - if err != nil { - return nil, err - } - - if len(items) == 0 { - return nil, nil - } - - if len(items) > 1 { - return nil, fmt.Errorf("Multiple ServiceClass resources with the same externalName %s", externalName) - } - - item := items[0] - serviceClass, ok := item.(*v1beta1.ClusterServiceClass) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServiceClass", item) - } - - return serviceClass, nil -} - -func (svc *clusterServiceClassService) List(pagingParams pager.PagingParams) ([]*v1beta1.ClusterServiceClass, error) { - items, err := pager.From(svc.informer.GetStore()).Limit(pagingParams) - if err != nil { - return nil, err - } - - var serviceClasses []*v1beta1.ClusterServiceClass - for _, item := range items { - serviceClass, ok := item.(*v1beta1.ClusterServiceClass) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServiceClass", item) - } - - serviceClasses = append(serviceClasses, serviceClass) - } - - return serviceClasses, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_service_test.go deleted file mode 100644 index c80e264ae4cd..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceclass_service_test.go +++ /dev/null @@ -1,167 +0,0 @@ -package servicecatalog_test - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterServiceClassService_GetServiceClass(t *testing.T) { - t.Run("Success", func(t *testing.T) { - className := "testExample" - serviceClass := fixClusterServiceClass(className, className) - client := fake.NewSimpleClientset(serviceClass) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer() - - svc, err := servicecatalog.NewClusterServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.Find(className) - require.NoError(t, err) - assert.Equal(t, serviceClass, class) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer() - - svc, err := servicecatalog.NewClusterServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.Find("doesntExist") - - require.NoError(t, err) - assert.Nil(t, class) - }) -} - -func TestClusterServiceClassService_FindByExternalName(t *testing.T) { - t.Run("Success", func(t *testing.T) { - className := "testExample" - externalName := "testExternal" - serviceClass := fixClusterServiceClass(className, externalName) - client := fake.NewSimpleClientset(serviceClass) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer() - - svc, err := servicecatalog.NewClusterServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.FindByExternalName(externalName) - require.NoError(t, err) - assert.Equal(t, serviceClass, class) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer() - - svc, err := servicecatalog.NewClusterServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.FindByExternalName("doesntExist") - - require.NoError(t, err) - assert.Nil(t, class) - }) - - t.Run("Error", func(t *testing.T) { - externalName := "duplicateName" - client := fake.NewSimpleClientset( - fixClusterServiceClass("1", externalName), - fixClusterServiceClass("2", externalName), - fixClusterServiceClass("3", externalName), - ) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer() - - svc, err := servicecatalog.NewClusterServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - _, err = svc.FindByExternalName(externalName) - - assert.Error(t, err) - }) -} - -func TestClusterServiceClassService_ListServiceClasses(t *testing.T) { - t.Run("Success", func(t *testing.T) { - serviceClass1 := fixClusterServiceClass("1", "1") - serviceClass2 := fixClusterServiceClass("2", "2") - serviceClass3 := fixClusterServiceClass("3", "3") - client := fake.NewSimpleClientset(serviceClass1, serviceClass2, serviceClass3) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer() - - svc, err := servicecatalog.NewClusterServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - classes, err := svc.List(pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1beta1.ClusterServiceClass{ - serviceClass1, serviceClass2, serviceClass3, - }, classes) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer() - - svc, err := servicecatalog.NewClusterServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - var emptyArray []*v1beta1.ClusterServiceClass - classes, err := svc.List(pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, classes) - }) -} - -func fixClusterServiceClass(name, externalName string) *v1beta1.ClusterServiceClass { - class := v1beta1.ClusterServiceClass{ - Spec: v1beta1.ClusterServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalName: externalName, - Tags: []string{"tag1", "tag2"}, - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } - return &class -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_converter.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_converter.go deleted file mode 100644 index ae7d3c998def..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_converter.go +++ /dev/null @@ -1,73 +0,0 @@ -package servicecatalog - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/jsonschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" -) - -type clusterServicePlanConverter struct{} - -func (p *clusterServicePlanConverter) ToGQL(item *v1beta1.ClusterServicePlan) (*gqlschema.ClusterServicePlan, error) { - if item == nil { - return nil, nil - } - - externalMetadata := map[string]interface{}{} - var err error - if item.Spec.ExternalMetadata != nil { - externalMetadata, err = resource.ExtractRawToMap("ExternalMetadata", item.Spec.ExternalMetadata.Raw) - if err != nil { - return nil, p.wrapConversionError(err, item.Name) - } - } - - instanceCreateParameterSchema := &gqlschema.JSON{} - if item.Spec.InstanceCreateParameterSchema != nil { - instanceCreateParameterSchema, err = jsonschema.Unpack(item.Spec.InstanceCreateParameterSchema.Raw) - if err != nil { - return nil, p.wrapConversionError(err, item.Name) - } - } - bindingCreateParameterSchema := &gqlschema.JSON{} - if item.Spec.ServiceBindingCreateParameterSchema != nil { - bindingCreateParameterSchema, err = jsonschema.Unpack(item.Spec.ServiceBindingCreateParameterSchema.Raw) - if err != nil { - return nil, errors.Wrapf(err, "while unpacking service binding create parameter schema from ClusterServicePlan [%s]", item.Name) - } - } - - displayName := resource.ToStringPtr(externalMetadata["displayName"]) - plan := gqlschema.ClusterServicePlan{ - Name: item.Name, - ExternalName: item.Spec.ExternalName, - DisplayName: displayName, - Description: item.Spec.Description, - RelatedClusterServiceClassName: item.Spec.ClusterServiceClassRef.Name, - InstanceCreateParameterSchema: instanceCreateParameterSchema, - BindingCreateParameterSchema: bindingCreateParameterSchema, - } - - return &plan, nil -} - -func (c *clusterServicePlanConverter) ToGQLs(in []*v1beta1.ClusterServicePlan) ([]*gqlschema.ClusterServicePlan, error) { - var result []*gqlschema.ClusterServicePlan - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (p *clusterServicePlanConverter) wrapConversionError(err error, name string) error { - return errors.Wrapf(err, "while converting item %s to ClusterServicePlan", name) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_converter_test.go deleted file mode 100644 index 2d0588c46174..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_converter_test.go +++ /dev/null @@ -1,323 +0,0 @@ -package servicecatalog - -import ( - "encoding/base64" - "encoding/json" - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" -) - -func TestClusterServicePlanConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := clusterServicePlanConverter{} - metadata := map[string]string{ - "displayName": "ExampleDisplayName", - } - - metadataBytes, err := json.Marshal(metadata) - assert.Nil(t, err) - - parameterSchema := map[string]interface{}{ - "properties": map[string]interface{}{ - "field": "value", - }, - } - - parameterSchemaBytes, err := json.Marshal(parameterSchema) - encodedParameterSchemaBytes := make([]byte, base64.StdEncoding.EncodedLen(len(parameterSchemaBytes))) - base64.StdEncoding.Encode(encodedParameterSchemaBytes, parameterSchemaBytes) - assert.Nil(t, err) - - parameterSchemaJSON := new(gqlschema.JSON) - err = parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := v1beta1.ClusterServicePlan{ - Spec: v1beta1.ClusterServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: metadataBytes}, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - ServiceBindingCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - }, - ClusterServiceClassRef: v1beta1.ClusterObjectReference{ - Name: "serviceClassRef", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - UID: types.UID("uid"), - }, - } - displayName := "ExampleDisplayName" - expected := gqlschema.ClusterServicePlan{ - Name: "ExampleName", - RelatedClusterServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: parameterSchemaJSON, - BindingCreateParameterSchema: parameterSchemaJSON, - } - - result, err := converter.ToGQL(&clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &clusterServicePlanConverter{} - _, err := converter.ToGQL(&v1beta1.ClusterServicePlan{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &clusterServicePlanConverter{} - item, err := converter.ToGQL(nil) - require.NoError(t, err) - assert.Nil(t, item) - }) - - t.Run("CreateParameterSchema with properties", func(t *testing.T) { - converter := &clusterServicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{ - "field": "value", - }, - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixClusterServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ClusterServicePlan{ - Name: "ExampleName", - RelatedClusterServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: parameterSchemaJSON, - BindingCreateParameterSchema: parameterSchemaJSON, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with ref", func(t *testing.T) { - converter := &clusterServicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "$ref": "reference", - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixClusterServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ClusterServicePlan{ - Name: "ExampleName", - RelatedClusterServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: parameterSchemaJSON, - BindingCreateParameterSchema: parameterSchemaJSON, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with empty properties", func(t *testing.T) { - converter := &clusterServicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{}, - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixClusterServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ClusterServicePlan{ - Name: "ExampleName", - RelatedClusterServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: nil, - BindingCreateParameterSchema: nil, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with empty ref", func(t *testing.T) { - converter := &clusterServicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "$ref": "", - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixClusterServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ClusterServicePlan{ - Name: "ExampleName", - RelatedClusterServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: nil, - BindingCreateParameterSchema: nil, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with empty properties and ref", func(t *testing.T) { - converter := &clusterServicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{}, - "$ref": "", - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixClusterServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ClusterServicePlan{ - Name: "ExampleName", - RelatedClusterServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: nil, - BindingCreateParameterSchema: nil, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) -} - -func TestClusterServicePlanConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - parameterSchema := map[string]interface{}{ - "properties": map[string]interface{}{ - "field": "value", - }, - } - - plans := []*v1beta1.ClusterServicePlan{ - fixClusterServicePlan(t, parameterSchema), - fixClusterServicePlan(t, parameterSchema), - } - - converter := clusterServicePlanConverter{} - result, err := converter.ToGQLs(plans) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "ExampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var plans []*v1beta1.ClusterServicePlan - - converter := clusterServicePlanConverter{} - result, err := converter.ToGQLs(plans) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - parameterSchema := map[string]interface{}{ - "properties": map[string]interface{}{ - "field": "value", - }, - } - - plans := []*v1beta1.ClusterServicePlan{ - nil, - fixClusterServicePlan(t, parameterSchema), - nil, - } - - converter := clusterServicePlanConverter{} - result, err := converter.ToGQLs(plans) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "ExampleName", result[0].Name) - }) -} - -func fixClusterServicePlan(t require.TestingT, parameterSchema map[string]interface{}) *v1beta1.ClusterServicePlan { - metadata := map[string]string{ - "displayName": "ExampleDisplayName", - } - - metadataBytes, err := json.Marshal(metadata) - require.NoError(t, err) - - parameterSchemaBytes, err := json.Marshal(parameterSchema) - encodedParameterSchemaBytes := make([]byte, base64.StdEncoding.EncodedLen(len(parameterSchemaBytes))) - base64.StdEncoding.Encode(encodedParameterSchemaBytes, parameterSchemaBytes) - require.NoError(t, err) - - return &v1beta1.ClusterServicePlan{ - Spec: v1beta1.ClusterServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: metadataBytes}, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - ServiceBindingCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - }, - ClusterServiceClassRef: v1beta1.ClusterObjectReference{ - Name: "serviceClassRef", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - UID: types.UID("uid"), - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_resolver.go deleted file mode 100644 index 49e2dec2e0bc..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_resolver.go +++ /dev/null @@ -1,41 +0,0 @@ -package servicecatalog - -import ( - "context" - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type ClusterServicePlanResolver struct { - rafter shared.RafterRetriever -} - -func NewClusterServicePlanResolver(r shared.RafterRetriever) *ClusterServicePlanResolver { - return &ClusterServicePlanResolver{r} -} - -func (r *ClusterServicePlanResolver) ClusterServicePlanClusterAssetGroupField(ctx context.Context, obj *gqlschema.ClusterServicePlan) (*gqlschema.ClusterAssetGroup, error) { - if obj == nil { - glog.Error(fmt.Errorf("while getting %s field obj is empty", pretty.ClusterAssetGroup)) - return nil, gqlerror.NewInternal() - } - - clusterAssetGroup, err := r.rafter.ClusterAssetGroup().Find(obj.Name) - if err != nil { - glog.Errorf("Couldn't find %s with name %s", pretty.ClusterAssetGroup, obj.Name) - return nil, nil - } - - convertedAssetGroup, err := r.rafter.ClusterAssetGroupConverter().ToGQL(clusterAssetGroup) - - if err != nil { - glog.Errorf("Couldn't convert %s with name %s to GQL", pretty.ClusterAssetGroup, obj.Name) - return nil, nil - } - return convertedAssetGroup, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_resolver_test.go deleted file mode 100644 index b8781326039e..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_resolver_test.go +++ /dev/null @@ -1,68 +0,0 @@ -package servicecatalog_test - -import ( - "context" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestClusterServicePlanResolver_ServicePlanClusterAssetGroupField(t *testing.T) { - t.Run("Returns nil if Rafter can't find the ClusterAssetGroup", func(t *testing.T) { - servicePlan := givenClusterServicePlan() - rafter, cagGetter, _ := givenRafterForClusterAssetGroup() - resolver := givenClusterServicePlanResolver(rafter) - - cagGetter.On("Find", servicePlan.Name).Return(nil, errors.New("ClusterAssetGroup not found")) - - result, err := resolver.ClusterServicePlanClusterAssetGroupField(context.Background(), servicePlan) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Returns nil if Rafter can't conver the ClusterAssetGroup to GQL", func(t *testing.T) { - servicePlan := givenClusterServicePlan() - rafter, cagGetter, cagConverter := givenRafterForClusterAssetGroup() - resolver := givenClusterServicePlanResolver(rafter) - - assetGroup := givenClusterAssetGroup(servicePlan.Name) - - cagGetter.On("Find", servicePlan.Name).Return(assetGroup, nil) - cagConverter.On("ToGQL", assetGroup).Return(nil, errors.New("Can't convert it to GQL")) - - result, err := resolver.ClusterServicePlanClusterAssetGroupField(context.Background(), servicePlan) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Returns clusterAssetGroup when it should", func(t *testing.T) { - servicePlan := givenClusterServicePlan() - rafter, cagGetter, cagConverter := givenRafterForClusterAssetGroup() - resolver := givenClusterServicePlanResolver(rafter) - - assetGroup := givenClusterAssetGroup(servicePlan.Name) - assetGroupGQL := clusterAssetGroupToGQL(assetGroup) - - cagGetter.On("Find", servicePlan.Name).Return(assetGroup, nil) - cagConverter.On("ToGQL", assetGroup).Return(assetGroupGQL, nil) - - result, err := resolver.ClusterServicePlanClusterAssetGroupField(context.Background(), servicePlan) - require.NoError(t, err) - assert.Equal(t, servicePlan.Name, result.Name) - }) - -} -func givenClusterServicePlan() *gqlschema.ClusterServicePlan { - return &gqlschema.ClusterServicePlan{ - Name: "testname", - } -} - -func givenClusterServicePlanResolver(rafter shared.RafterRetriever) *servicecatalog.ClusterServicePlanResolver { - return servicecatalog.NewClusterServicePlanResolver(rafter) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_service.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_service.go deleted file mode 100644 index aa8a2574816d..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_service.go +++ /dev/null @@ -1,103 +0,0 @@ -package servicecatalog - -import ( - "fmt" - - "github.com/pkg/errors" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "k8s.io/client-go/tools/cache" -) - -type clusterServicePlanService struct { - informer cache.SharedIndexInformer -} - -func newClusterServicePlanService(informer cache.SharedIndexInformer) (*clusterServicePlanService, error) { - err := informer.AddIndexers(cache.Indexers{ - "relatedServiceClassName": func(obj interface{}) ([]string, error) { - entity, ok := obj.(*v1beta1.ClusterServicePlan) - if !ok { - return nil, errors.New("Cannot convert item") - } - - return []string{entity.Spec.ClusterServiceClassRef.Name}, nil - }, - "classNameAndPlanExternalName": func(obj interface{}) ([]string, error) { - entity, ok := obj.(*v1beta1.ClusterServicePlan) - if !ok { - return nil, errors.New("Cannot convert item") - } - - str := clusterServicePlanIndexKey(entity.Spec.ClusterServiceClassRef.Name, entity.Spec.ExternalName) - return []string{str}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - return &clusterServicePlanService{ - informer: informer, - }, nil -} - -func (svc *clusterServicePlanService) Find(name string) (*v1beta1.ClusterServicePlan, error) { - item, exists, err := svc.informer.GetStore().GetByKey(name) - if err != nil || !exists { - return nil, err - } - - servicePlan, ok := item.(*v1beta1.ClusterServicePlan) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServicePlan", item) - } - - return servicePlan, nil -} - -func (svc *clusterServicePlanService) FindByExternalName(planExternalName, className string) (*v1beta1.ClusterServicePlan, error) { - items, err := svc.informer.GetIndexer().ByIndex("classNameAndPlanExternalName", clusterServicePlanIndexKey(className, planExternalName)) - if err != nil { - return nil, err - } - - if len(items) == 0 { - return nil, nil - } - - if len(items) > 1 { - return nil, fmt.Errorf("Multiple ServicePlan resources with the same externalName %s", planExternalName) - } - - item := items[0] - servicePlan, ok := item.(*v1beta1.ClusterServicePlan) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServicePlan", item) - } - - return servicePlan, nil -} - -func (svc *clusterServicePlanService) ListForClusterServiceClass(name string) ([]*v1beta1.ClusterServicePlan, error) { - plans, err := svc.informer.GetIndexer().ByIndex("relatedServiceClassName", name) - if err != nil { - return nil, err - } - - var servicePlans []*v1beta1.ClusterServicePlan - for _, item := range plans { - servicePlan, ok := item.(*v1beta1.ClusterServicePlan) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ClusterServicePlan", item) - } - - servicePlans = append(servicePlans, servicePlan) - } - - return servicePlans, nil -} - -func clusterServicePlanIndexKey(planExternalName, className string) string { - return fmt.Sprintf("%s/%s", className, planExternalName) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_service_test.go deleted file mode 100644 index 2cfee5384432..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/clusterserviceplan_service_test.go +++ /dev/null @@ -1,173 +0,0 @@ -package servicecatalog_test - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterServicePlanService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - planName := "testExample" - servicePlan := fixClusterServicePlan(planName, "test", planName) - client := fake.NewSimpleClientset(&servicePlan) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer() - - svc, err := servicecatalog.NewClusterServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.Find(planName) - require.NoError(t, err) - assert.Equal(t, &servicePlan, plan) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer() - - svc, err := servicecatalog.NewClusterServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.Find("doesntExist") - require.NoError(t, err) - assert.Nil(t, plan) - }) -} - -func TestClusterServicePlanService_FindByExternalNameForClass(t *testing.T) { - t.Run("Success", func(t *testing.T) { - className := "test" - planName := "testExample" - externalName := "testExternal" - servicePlan := fixClusterServicePlan(planName, className, externalName) - client := fake.NewSimpleClientset(&servicePlan) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer() - - svc, err := servicecatalog.NewClusterServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.FindByExternalName(externalName, className) - require.NoError(t, err) - assert.Equal(t, &servicePlan, plan) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer() - - svc, err := servicecatalog.NewClusterServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.FindByExternalName("doesntExist", "none") - - require.NoError(t, err) - assert.Nil(t, plan) - }) - - t.Run("Error", func(t *testing.T) { - className := "duplicateName" - externalName := "duplicateName" - servicePlan1 := fixClusterServicePlan("1", className, externalName) - servicePlan2 := fixClusterServicePlan("2", className, externalName) - servicePlan3 := fixClusterServicePlan("3", className, externalName) - client := fake.NewSimpleClientset( - &servicePlan1, &servicePlan2, &servicePlan3, - ) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer() - - svc, err := servicecatalog.NewClusterServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - _, err = svc.FindByExternalName(externalName, className) - - assert.Error(t, err) - }) -} - -func TestClusterServicePlanService_ListForClass(t *testing.T) { - t.Run("Success", func(t *testing.T) { - className := "testClassName" - - servicePlan1 := fixClusterServicePlan("1", className, "1") - servicePlan2 := fixClusterServicePlan("2", className, "2") - servicePlan3 := fixClusterServicePlan("3", className, "3") - client := fake.NewSimpleClientset(&servicePlan1, &servicePlan2, &servicePlan3) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer() - - svc, err := servicecatalog.NewClusterServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plans, err := svc.ListForClusterServiceClass(className) - require.NoError(t, err) - assert.ElementsMatch(t, []*v1beta1.ClusterServicePlan{ - &servicePlan1, &servicePlan2, &servicePlan3, - }, plans) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer() - svc, err := servicecatalog.NewClusterServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - var emptyArray []*v1beta1.ClusterServicePlan - plans, err := svc.ListForClusterServiceClass("doesntExist") - require.NoError(t, err) - assert.Equal(t, emptyArray, plans) - }) - -} - -func fixClusterServicePlan(name, relatedServiceClassName, externalName string) v1beta1.ClusterServicePlan { - plan := v1beta1.ClusterServicePlan{ - Spec: v1beta1.ClusterServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - ExternalName: externalName, - }, - ClusterServiceClassRef: v1beta1.ClusterObjectReference{ - Name: relatedServiceClassName, - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } - - return plan -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/dep.go b/components/console-backend-service/internal/domain/servicecatalog/dep.go deleted file mode 100644 index 2b92bff1141c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/dep.go +++ /dev/null @@ -1,88 +0,0 @@ -package servicecatalog - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" -) - -// ServiceClass - -//go:generate mockery -name=serviceClassGetter -output=automock -outpkg=automock -case=underscore -type serviceClassGetter interface { - Find(name, namespace string) (*v1beta1.ServiceClass, error) - FindByExternalName(externalName, namespace string) (*v1beta1.ServiceClass, error) -} - -// ClusterServiceClass - -//go:generate mockery -name=clusterServiceClassGetter -output=automock -outpkg=automock -case=underscore -type clusterServiceClassGetter interface { - Find(name string) (*v1beta1.ClusterServiceClass, error) - FindByExternalName(externalName string) (*v1beta1.ClusterServiceClass, error) -} - -// ServiceInstance -//go:generate mockery -name=serviceInstanceLister -output=automock -outpkg=automock -case=underscore -type serviceInstanceLister interface { - Find(name, namespace string) (*v1beta1.ServiceInstance, error) - List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceInstance, error) - ListForStatus(namespace string, pagingParams pager.PagingParams, status *status.ServiceInstanceStatusType) ([]*v1beta1.ServiceInstance, error) -} - -//go:generate mockery -name=serviceInstanceSvc -inpkg -case=underscore -type serviceInstanceSvc interface { - serviceInstanceLister - Create(params serviceInstanceCreateParameters) (*v1beta1.ServiceInstance, error) - Delete(name, namespace string) error - IsBindableWithClusterRefs(relatedClass *v1beta1.ClusterServiceClass, relatedPlan *v1beta1.ClusterServicePlan) bool - IsBindableWithLocalRefs(relatedClass *v1beta1.ServiceClass, relatedPlan *v1beta1.ServicePlan) bool - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -//go:generate mockery -name=gqlServiceInstanceConverter -inpkg -case=underscore -type gqlServiceInstanceConverter interface { - ToGQL(in *v1beta1.ServiceInstance) (*gqlschema.ServiceInstance, error) - ToGQLs(in []*v1beta1.ServiceInstance) ([]*gqlschema.ServiceInstance, error) - GQLCreateInputToInstanceCreateParameters(in *gqlschema.ServiceInstanceCreateInput, namespace string) *serviceInstanceCreateParameters - ServiceStatusTypeToGQLStatusType(in status.ServiceInstanceStatusType) gqlschema.InstanceStatusType - GQLStatusTypeToServiceStatusType(in gqlschema.InstanceStatusType) status.ServiceInstanceStatusType - GQLStatusToServiceStatus(in *gqlschema.ServiceInstanceStatus) *status.ServiceInstanceStatus - ServiceStatusToGQLStatus(in status.ServiceInstanceStatus) gqlschema.ServiceInstanceStatus -} - -// ClusterServicePlan - -//go:generate mockery -name=gqlClusterServicePlanConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterServicePlanConverter interface { - ToGQL(item *v1beta1.ClusterServicePlan) (*gqlschema.ClusterServicePlan, error) - ToGQLs(in []*v1beta1.ClusterServicePlan) ([]*gqlschema.ClusterServicePlan, error) -} - -// ServicePlan - -//go:generate mockery -name=gqlServicePlanConverter -output=automock -outpkg=automock -case=underscore -type gqlServicePlanConverter interface { - ToGQL(item *v1beta1.ServicePlan) (*gqlschema.ServicePlan, error) - ToGQLs(in []*v1beta1.ServicePlan) ([]*gqlschema.ServicePlan, error) -} - -// Binding - -//go:generate mockery -name=serviceBindingOperations -output=automock -outpkg=automock -case=underscore -type serviceBindingOperations interface { - Create(namespace string, sb *v1beta1.ServiceBinding) (*v1beta1.ServiceBinding, error) - Delete(namespace string, name string) error - Find(namespace string, name string) (*v1beta1.ServiceBinding, error) - ListForServiceInstance(namespace string, instanceName string) ([]*v1beta1.ServiceBinding, error) - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -type notifier interface { - AddListener(observer resource.Listener) - DeleteListener(observer resource.Listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/disabled/resolver.go b/components/console-backend-service/internal/domain/servicecatalog/disabled/resolver.go deleted file mode 100644 index 9f22bde82384..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/disabled/resolver.go +++ /dev/null @@ -1,352 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - context "context" - - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -// Resolver is an autogenerated failing mock type for the Resolver type -type Resolver struct { - err error -} - -// NewResolver creates a new Resolver type instance -func NewResolver(err error) *Resolver { - return &Resolver{err: err} -} - -// ClusterServiceBrokerEventSubscription provides a failing mock function with given fields: ctx -func (_m *Resolver) ClusterServiceBrokerEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterServiceBrokerEvent, error) { - var r0 <-chan *gqlschema.ClusterServiceBrokerEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceBrokerQuery provides a failing mock function with given fields: ctx, name -func (_m *Resolver) ClusterServiceBrokerQuery(ctx context.Context, name string) (*gqlschema.ClusterServiceBroker, error) { - var r0 *gqlschema.ClusterServiceBroker - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceBrokersQuery provides a failing mock function with given fields: ctx, first, offset -func (_m *Resolver) ClusterServiceBrokersQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceBroker, error) { - var r0 []*gqlschema.ClusterServiceBroker - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceClassActivatedField provides a failing mock function with given fields: ctx, obj, namespace -func (_m *Resolver) ClusterServiceClassActivatedField(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) (bool, error) { - var r0 bool - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceClassClusterAssetGroupField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ClusterServiceClassClusterAssetGroupField(ctx context.Context, obj *gqlschema.ClusterServiceClass) (*gqlschema.ClusterAssetGroup, error) { - var r0 *gqlschema.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceClassInstancesField provides a failing mock function with given fields: ctx, obj, namespace -func (_m *Resolver) ClusterServiceClassInstancesField(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) ([]*gqlschema.ServiceInstance, error) { - var r0 []*gqlschema.ServiceInstance - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceClassPlansField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ClusterServiceClassPlansField(ctx context.Context, obj *gqlschema.ClusterServiceClass) ([]*gqlschema.ClusterServicePlan, error) { - var r0 []*gqlschema.ClusterServicePlan - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceClassQuery provides a failing mock function with given fields: ctx, name -func (_m *Resolver) ClusterServiceClassQuery(ctx context.Context, name string) (*gqlschema.ClusterServiceClass, error) { - var r0 *gqlschema.ClusterServiceClass - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServiceClassesQuery provides a failing mock function with given fields: ctx, first, offset -func (_m *Resolver) ClusterServiceClassesQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceClass, error) { - var r0 []*gqlschema.ClusterServiceClass - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterServicePlanClusterAssetGroupField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ClusterServicePlanClusterAssetGroupField(ctx context.Context, obj *gqlschema.ClusterServicePlan) (*gqlschema.ClusterAssetGroup, error) { - var r0 *gqlschema.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// CreateServiceBindingMutation provides a failing mock function with given fields: ctx, serviceBindingName, serviceInstanceName, env, parameters -func (_m *Resolver) CreateServiceBindingMutation(ctx context.Context, serviceBindingName *string, serviceInstanceName string, env string, parameters gqlschema.JSON) (*gqlschema.CreateServiceBindingOutput, error) { - var r0 *gqlschema.CreateServiceBindingOutput - var r1 error - r1 = _m.err - - return r0, r1 -} - -// CreateServiceInstanceMutation provides a failing mock function with given fields: ctx, namespace, params -func (_m *Resolver) CreateServiceInstanceMutation(ctx context.Context, namespace string, params gqlschema.ServiceInstanceCreateInput) (*gqlschema.ServiceInstance, error) { - var r0 *gqlschema.ServiceInstance - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteServiceBindingMutation provides a failing mock function with given fields: ctx, serviceBindingName, env -func (_m *Resolver) DeleteServiceBindingMutation(ctx context.Context, serviceBindingName string, env string) (*gqlschema.DeleteServiceBindingOutput, error) { - var r0 *gqlschema.DeleteServiceBindingOutput - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteServiceInstanceMutation provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) DeleteServiceInstanceMutation(ctx context.Context, name string, namespace string) (*gqlschema.ServiceInstance, error) { - var r0 *gqlschema.ServiceInstance - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBindingEventSubscription provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) ServiceBindingEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBindingEvent, error) { - var r0 <-chan *gqlschema.ServiceBindingEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBindingQuery provides a failing mock function with given fields: ctx, name, env -func (_m *Resolver) ServiceBindingQuery(ctx context.Context, name string, env string) (*gqlschema.ServiceBinding, error) { - var r0 *gqlschema.ServiceBinding - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBindingsToInstanceQuery provides a failing mock function with given fields: ctx, instanceName, namespace -func (_m *Resolver) ServiceBindingsToInstanceQuery(ctx context.Context, instanceName string, namespace string) (*gqlschema.ServiceBindings, error) { - var r0 *gqlschema.ServiceBindings - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBrokerEventSubscription provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) ServiceBrokerEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBrokerEvent, error) { - var r0 <-chan *gqlschema.ServiceBrokerEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBrokerQuery provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) ServiceBrokerQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceBroker, error) { - var r0 *gqlschema.ServiceBroker - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBrokersQuery provides a failing mock function with given fields: ctx, namespace, first, offset -func (_m *Resolver) ServiceBrokersQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceBroker, error) { - var r0 []*gqlschema.ServiceBroker - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceClassActivatedField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceClassActivatedField(ctx context.Context, obj *gqlschema.ServiceClass) (bool, error) { - var r0 bool - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceClassAssetGroupField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceClassAssetGroupField(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.AssetGroup, error) { - var r0 *gqlschema.AssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceClassClusterAssetGroupField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceClassClusterAssetGroupField(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.ClusterAssetGroup, error) { - var r0 *gqlschema.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceClassInstancesField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceClassInstancesField(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServiceInstance, error) { - var r0 []*gqlschema.ServiceInstance - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceClassPlansField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceClassPlansField(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServicePlan, error) { - var r0 []*gqlschema.ServicePlan - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceClassQuery provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) ServiceClassQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceClass, error) { - var r0 *gqlschema.ServiceClass - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceClassesQuery provides a failing mock function with given fields: ctx, namespace, first, offset -func (_m *Resolver) ServiceClassesQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceClass, error) { - var r0 []*gqlschema.ServiceClass - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstanceBindableField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceInstanceBindableField(ctx context.Context, obj *gqlschema.ServiceInstance) (bool, error) { - var r0 bool - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstanceClusterServiceClassField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceInstanceClusterServiceClassField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServiceClass, error) { - var r0 *gqlschema.ClusterServiceClass - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstanceClusterServicePlanField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceInstanceClusterServicePlanField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServicePlan, error) { - var r0 *gqlschema.ClusterServicePlan - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstanceEventSubscription provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) ServiceInstanceEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceInstanceEvent, error) { - var r0 <-chan *gqlschema.ServiceInstanceEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstanceQuery provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) ServiceInstanceQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceInstance, error) { - var r0 *gqlschema.ServiceInstance - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstanceServiceClassField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceInstanceServiceClassField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServiceClass, error) { - var r0 *gqlschema.ServiceClass - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstanceServicePlanField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServiceInstanceServicePlanField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServicePlan, error) { - var r0 *gqlschema.ServicePlan - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceInstancesQuery provides a failing mock function with given fields: ctx, namespace, first, offset, status -func (_m *Resolver) ServiceInstancesQuery(ctx context.Context, namespace string, first *int, offset *int, status *gqlschema.InstanceStatusType) ([]*gqlschema.ServiceInstance, error) { - var r0 []*gqlschema.ServiceInstance - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServicePlanAssetGroupField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServicePlanAssetGroupField(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.AssetGroup, error) { - var r0 *gqlschema.AssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServicePlanClusterAssetGroupField provides a failing mock function with given fields: ctx, obj -func (_m *Resolver) ServicePlanClusterAssetGroupField(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.ClusterAssetGroup, error) { - var r0 *gqlschema.ClusterAssetGroup - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/disabled/service_binding_finder_lister.go b/components/console-backend-service/internal/domain/servicecatalog/disabled/service_binding_finder_lister.go deleted file mode 100644 index 7dbe6c872008..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/disabled/service_binding_finder_lister.go +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - -// ServiceBindingFinderLister is an autogenerated failing mock type for the ServiceBindingFinderLister type -type ServiceBindingFinderLister struct { - err error -} - -// NewServiceBindingFinderLister creates a new ServiceBindingFinderLister type instance -func NewServiceBindingFinderLister(err error) *ServiceBindingFinderLister { - return &ServiceBindingFinderLister{err: err} -} - -// Find provides a failing mock function with given fields: namespace, name -func (_m *ServiceBindingFinderLister) Find(namespace string, name string) (*v1beta1.ServiceBinding, error) { - var r0 *v1beta1.ServiceBinding - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ListForServiceInstance provides a failing mock function with given fields: namespace, instanceName -func (_m *ServiceBindingFinderLister) ListForServiceInstance(namespace string, instanceName string) ([]*v1beta1.ServiceBinding, error) { - var r0 []*v1beta1.ServiceBinding - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/export_test.go b/components/console-backend-service/internal/domain/servicecatalog/export_test.go deleted file mode 100644 index c55ddb45d63b..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/export_test.go +++ /dev/null @@ -1,155 +0,0 @@ -package servicecatalog - -// ServiceInstance -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/typed/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "k8s.io/client-go/tools/cache" - - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset" -) - -func NewServiceInstanceService(informer cache.SharedIndexInformer, client clientset.Interface) (*serviceInstanceService, error) { - return newServiceInstanceService(informer, client) -} - -func NewServiceInstanceResolver(serviceInstanceSvc serviceInstanceSvc, clusterServicePlanGetter clusterServicePlanGetter, clusterServiceClassGetter clusterServiceClassGetter, servicePlanGetter servicePlanGetter, serviceClassGetter serviceClassGetter) *serviceInstanceResolver { - return newServiceInstanceResolver(serviceInstanceSvc, clusterServicePlanGetter, clusterServiceClassGetter, servicePlanGetter, serviceClassGetter) -} - -func NewMockServiceInstanceConverter() *mockGqlServiceInstanceConverter { - return new(mockGqlServiceInstanceConverter) -} - -func NewMockServiceInstanceService() *mockServiceInstanceSvc { - return new(mockServiceInstanceSvc) -} - -func NewServiceInstanceCreateParameters(name, namespace string, labels []string, externalServicePlanName string, servicePlanClusterWide bool, externalServiceClassName string, serviceClassClusterWide bool, schema map[string]interface{}) *serviceInstanceCreateParameters { - return &serviceInstanceCreateParameters{ - Name: name, - Namespace: namespace, - Labels: labels, - PlanRef: instanceCreateResourceRef{ - ExternalName: externalServicePlanName, - ClusterWide: servicePlanClusterWide, - }, - ClassRef: instanceCreateResourceRef{ - ExternalName: externalServiceClassName, - ClusterWide: serviceClassClusterWide, - }, - Schema: schema, - } -} - -func (r *serviceInstanceResolver) SetInstanceConverter(converter gqlServiceInstanceConverter) { - r.instanceConverter = converter -} - -func (r *serviceInstanceResolver) SetClusterServiceClassConverter(converter gqlClusterServiceClassConverter) { - r.clusterServiceClassConverter = converter -} - -func (r *serviceInstanceResolver) SetClusterServicePlanConverter(converter gqlClusterServicePlanConverter) { - r.clusterServicePlanConverter = converter -} - -func (r *serviceInstanceResolver) SetServiceClassConverter(converter gqlServiceClassConverter) { - r.serviceClassConverter = converter -} - -func (r *serviceInstanceResolver) SetServicePlanConverter(converter gqlServicePlanConverter) { - r.servicePlanConverter = converter -} - -// ServiceClass - -func NewServiceClassService(informer cache.SharedIndexInformer) (*serviceClassService, error) { - return newServiceClassService(informer) -} - -func NewServiceClassResolver(classLister serviceClassListGetter, planLister servicePlanLister, instanceLister instanceListerByServiceClass, rafterRetriever shared.RafterRetriever) *serviceClassResolver { - return newServiceClassResolver(classLister, planLister, instanceLister, rafterRetriever) -} - -func (r *serviceClassResolver) SetClassConverter(converter gqlServiceClassConverter) { - r.classConverter = converter -} - -func (r *serviceClassResolver) SetPlanConverter(converter gqlServicePlanConverter) { - r.planConverter = converter -} - -// ClusterServiceClass - -func NewClusterServiceClassService(informer cache.SharedIndexInformer) (*clusterServiceClassService, error) { - return newClusterServiceClassService(informer) -} - -func NewClusterServiceClassResolver(classLister clusterServiceClassListGetter, planLister clusterServicePlanLister, instanceLister instanceListerByClusterServiceClass, rafterRetriever shared.RafterRetriever) *clusterServiceClassResolver { - return newClusterServiceClassResolver(classLister, planLister, instanceLister, rafterRetriever) -} - -func (r *clusterServiceClassResolver) SetClassConverter(converter gqlClusterServiceClassConverter) { - r.classConverter = converter -} - -func (r *clusterServiceClassResolver) SetPlanConverter(converter gqlClusterServicePlanConverter) { - r.planConverter = converter -} - -// ClusterServiceBroker - -func NewClusterServiceBrokerResolver(brokerSvc clusterServiceBrokerSvc) *clusterServiceBrokerResolver { - return newClusterServiceBrokerResolver(brokerSvc) -} - -func (r *clusterServiceBrokerResolver) SetBrokerConverter(converter gqlClusterServiceBrokerConverter) { - r.brokerConverter = converter -} - -func NewClusterServiceBrokerService(informer cache.SharedIndexInformer) *clusterServiceBrokerService { - return newClusterServiceBrokerService(informer) -} - -// ServiceBroker - -func NewServiceBrokerResolver(brokerSvc serviceBrokerSvc) *serviceBrokerResolver { - return newServiceBrokerResolver(brokerSvc) -} - -func (r *serviceBrokerResolver) SetBrokerConverter(converter gqlServiceBrokerConverter) { - r.brokerConverter = converter -} - -func NewServiceBrokerService(informer cache.SharedIndexInformer) *serviceBrokerService { - return newServiceBrokerService(informer) -} - -// ServicePlan - -func NewServicePlanService(informer cache.SharedIndexInformer) (*servicePlanService, error) { - return newServicePlanService(informer) -} - -func NewClusterServicePlanService(informer cache.SharedIndexInformer) (*clusterServicePlanService, error) { - return newClusterServicePlanService(informer) -} - -// ServiceBinding - -func NewServiceBindingResolver(sbService serviceBindingOperations) *serviceBindingResolver { - return newServiceBindingResolver(sbService) -} -func NewServiceBindingService(client v1beta1.ServicecatalogV1beta1Interface, informer cache.SharedIndexInformer, sbName string) (*serviceBindingService, error) { - return newServiceBindingService(client, informer, func() string { - return sbName - }) -} - -// Service Catalog Module - -func (r *PluggableContainer) SetFakeClient() { - r.cfg.scCli = fake.NewSimpleClientset() -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/helpers_test.go b/components/console-backend-service/internal/domain/servicecatalog/helpers_test.go deleted file mode 100644 index f94dcb65bd23..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/helpers_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package servicecatalog_test - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func givenRafterForClusterAssetGroup() (*automock.RafterRetriever, *automock.ClusterAssetGroupGetter, *automock.GqlClusterAssetGroupConverter) { - rafter := &automock.RafterRetriever{} - cagGetter := &automock.ClusterAssetGroupGetter{} - cagConverter := &automock.GqlClusterAssetGroupConverter{} - rafter.On("ClusterAssetGroup").Return(cagGetter) - rafter.On("ClusterAssetGroupConverter").Return(cagConverter) - return rafter, cagGetter, cagConverter -} - -func givenRafterForAssetGroup() (*automock.RafterRetriever, *automock.AssetGroupGetter, *automock.GqlAssetGroupConverter) { - rafter := &automock.RafterRetriever{} - agGetter := &automock.AssetGroupGetter{} - agConverter := &automock.GqlAssetGroupConverter{} - rafter.On("AssetGroup").Return(agGetter) - rafter.On("AssetGroupConverter").Return(agConverter) - return rafter, agGetter, agConverter -} - -func givenClusterAssetGroup(name string) *v1beta1.ClusterAssetGroup { - return &v1beta1.ClusterAssetGroup{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } -} - -func givenAssetGroup(name string) *v1beta1.AssetGroup { - return &v1beta1.AssetGroup{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } -} - -func clusterAssetGroupToGQL(cag *v1beta1.ClusterAssetGroup) *gqlschema.ClusterAssetGroup { - return &gqlschema.ClusterAssetGroup{ - Name: cag.Name, - } -} - -func assetGroupToGQL(cag *v1beta1.AssetGroup) *gqlschema.AssetGroup { - return &gqlschema.AssetGroup{ - Name: cag.Name, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/jsonschema/jsonschema.go b/components/console-backend-service/internal/domain/servicecatalog/jsonschema/jsonschema.go deleted file mode 100644 index 167ac296f26d..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/jsonschema/jsonschema.go +++ /dev/null @@ -1,63 +0,0 @@ -package jsonschema - -import ( - "bytes" - "encoding/base64" - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -func Unpack(raw []byte) (*gqlschema.JSON, error) { - if len(raw) == 0 { - return nil, nil - } - - schema := &gqlschema.JSON{} - var err error - - decoded := make([]byte, base64.StdEncoding.DecodedLen(len(raw))) - _, err = base64.StdEncoding.Decode(decoded, raw) - if err != nil { - *schema, err = extract(raw) - } else { - // We need to trim all null characters, because json.Unmarshal is failing when we give - // data of undesirable length to base64.StdEncoding.DecodedLen function - decoded = bytes.Trim(decoded, "\x00") - *schema, err = extract(decoded) - } - - if len(*schema) == 0 || err != nil { - return nil, err - } - return schema, nil -} - -func extract(raw []byte) (map[string]interface{}, error) { - extracted := make(map[string]interface{}) - - err := json.Unmarshal(raw, &extracted) - if err != nil { - return nil, errors.Wrap(err, "while extracting creation parameter schema") - } - if isEmpty(extracted) { - return nil, nil - } - - return extracted, nil -} - -func isEmpty(schema map[string]interface{}) bool { - if schema["properties"] != nil { - if properties, ok := schema["properties"].(map[string]interface{}); ok && len(properties) != 0 { - return false - } - } - if schema["$ref"] != nil { - if ref, ok := schema["$ref"].(string); ok && ref != "" { - return false - } - } - return true -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/jsonschema/jsonschema_test.go b/components/console-backend-service/internal/domain/servicecatalog/jsonschema/jsonschema_test.go deleted file mode 100644 index a50c09c3d9ff..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/jsonschema/jsonschema_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package jsonschema - -import ( - "encoding/base64" - "encoding/json" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestJSONSchema(t *testing.T) { - for tn, tc := range map[string]struct { - given map[string]interface{} - expected interface{} - }{ - "With properties": { - given: map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{ - "field": "value", - }, - }, - expected: &gqlschema.JSON{ - "additionalProperties": false, - "properties": map[string]interface{}{ - "field": "value", - }, - }, - }, - "With ref": { - given: map[string]interface{}{ - "additionalProperties": false, - "$ref": "reference", - }, - expected: &gqlschema.JSON{ - "additionalProperties": false, - "$ref": "reference", - }, - }, - "Empty properties": { - given: map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{}, - }, - expected: nil, - }, - "Empty ref": { - given: map[string]interface{}{ - "additionalProperties": false, - "$ref": "", - }, - expected: nil, - }, - "Empty properties and ref": { - given: map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{}, - "$ref": "", - }, - expected: nil, - }, - "Without properties and ref": { - given: map[string]interface{}{ - "field": "value", - "field2": map[string]interface{}{ - "subField": "value", - }, - }, - expected: nil, - }, - "Empty": { - given: map[string]interface{}{}, - expected: nil, - }, - } { - t.Run(tn, func(t *testing.T) { - parameterSchemaBytes, err := json.Marshal(tc.given) - encodedParameterSchemaBytes := make([]byte, base64.StdEncoding.EncodedLen(len(parameterSchemaBytes))) - base64.StdEncoding.Encode(encodedParameterSchemaBytes, parameterSchemaBytes) - require.NoError(t, err) - - result, err := Unpack(encodedParameterSchemaBytes) - assert.Nil(t, err) - - if tc.expected == nil { - assert.Nil(t, result) - } else { - assert.Equal(t, tc.expected, result) - } - }) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/export.go b/components/console-backend-service/internal/domain/servicecatalog/listener/automock/export.go deleted file mode 100644 index e821231bf36a..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/export.go +++ /dev/null @@ -1,17 +0,0 @@ -package automock - -func NewGQLBindingConverter() *gqlBindingConverter { - return new(gqlBindingConverter) -} - -func NewGQLInstanceConverter() *gqlInstanceConverter { - return new(gqlInstanceConverter) -} - -func NewGQLServiceBrokerConverter() *gqlServiceBrokerConverter { - return new(gqlServiceBrokerConverter) -} - -func NewGQLClusterServiceBrokerConverter() *gqlClusterServiceBrokerConverter { - return new(gqlClusterServiceBrokerConverter) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_binding_converter.go b/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_binding_converter.go deleted file mode 100644 index ebb8f1104f58..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_binding_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlBindingConverter is an autogenerated mock type for the gqlBindingConverter type -type gqlBindingConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlBindingConverter) ToGQL(in *v1beta1.ServiceBinding) (*gqlschema.ServiceBinding, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceBinding - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceBinding) *gqlschema.ServiceBinding); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceBinding) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServiceBinding) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_cluster_service_broker_converter.go b/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_cluster_service_broker_converter.go deleted file mode 100644 index b5049fbcf997..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_cluster_service_broker_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlClusterServiceBrokerConverter is an autogenerated mock type for the gqlClusterServiceBrokerConverter type -type gqlClusterServiceBrokerConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterServiceBrokerConverter) ToGQL(in *v1beta1.ClusterServiceBroker) (*gqlschema.ClusterServiceBroker, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterServiceBroker - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterServiceBroker) *gqlschema.ClusterServiceBroker); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterServiceBroker) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_instance_converter.go b/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_instance_converter.go deleted file mode 100644 index c23dcbf799b8..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_instance_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlInstanceConverter is an autogenerated mock type for the gqlInstanceConverter type -type gqlInstanceConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlInstanceConverter) ToGQL(in *v1beta1.ServiceInstance) (*gqlschema.ServiceInstance, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceInstance - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceInstance) *gqlschema.ServiceInstance); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServiceInstance) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_service_broker_converter.go b/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_service_broker_converter.go deleted file mode 100644 index b6e3f4a83fc1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/automock/gql_service_broker_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// gqlServiceBrokerConverter is an autogenerated mock type for the gqlServiceBrokerConverter type -type gqlServiceBrokerConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlServiceBrokerConverter) ToGQL(in *v1beta1.ServiceBroker) (*gqlschema.ServiceBroker, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceBroker - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceBroker) *gqlschema.ServiceBroker); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceBroker) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServiceBroker) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/clusterservicebroker.go b/components/console-backend-service/internal/domain/servicecatalog/listener/clusterservicebroker.go deleted file mode 100644 index 8e72a0e5614e..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/clusterservicebroker.go +++ /dev/null @@ -1,71 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlClusterServiceBrokerConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterServiceBrokerConverter interface { - ToGQL(in *api.ClusterServiceBroker) (*gqlschema.ClusterServiceBroker, error) -} - -type ClusterServiceBroker struct { - channel chan<- *gqlschema.ClusterServiceBrokerEvent - filter func(entity *api.ClusterServiceBroker) bool - converter gqlClusterServiceBrokerConverter -} - -func NewClusterServiceBroker(channel chan<- *gqlschema.ClusterServiceBrokerEvent, filter func(entity *api.ClusterServiceBroker) bool, converter gqlClusterServiceBrokerConverter) *ClusterServiceBroker { - return &ClusterServiceBroker{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *ClusterServiceBroker) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *ClusterServiceBroker) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *ClusterServiceBroker) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *ClusterServiceBroker) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, ok := object.(*api.ClusterServiceBroker) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *ClusterServiceBroker", object)) - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *ClusterServiceBroker) notify(eventType gqlschema.SubscriptionEventType, entity *api.ClusterServiceBroker) { - gqlClusterServiceBroker, err := l.converter.ToGQL(entity) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *ClusterServiceBroker")) - return - } - if gqlClusterServiceBroker == nil { - return - } - - event := &gqlschema.ClusterServiceBrokerEvent{ - Type: eventType, - ClusterServiceBroker: gqlClusterServiceBroker, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/clusterservicebroker_test.go b/components/console-backend-service/internal/domain/servicecatalog/listener/clusterservicebroker_test.go deleted file mode 100644 index bf0f548c13e1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/clusterservicebroker_test.go +++ /dev/null @@ -1,241 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" -) - -func TestClusterServiceBrokerListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterServiceBroker := new(gqlschema.ClusterServiceBroker) - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - channel := make(chan *gqlschema.ClusterServiceBrokerEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlClusterServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(channel, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlClusterServiceBroker, result.ClusterServiceBroker) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerFalse, nil) - - // when - serviceBrokerListener.OnAdd(new(v1beta1.ClusterServiceBroker)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - }) -} - -func TestClusterServiceBrokerListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterServiceBroker := new(gqlschema.ClusterServiceBroker) - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - channel := make(chan *gqlschema.ClusterServiceBrokerEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlClusterServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(channel, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlClusterServiceBroker, result.ClusterServiceBroker) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerFalse, nil) - - // when - serviceBrokerListener.OnDelete(new(v1beta1.ClusterServiceBroker)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - }) -} - -func TestClusterServiceBrokerListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterServiceBroker := new(gqlschema.ClusterServiceBroker) - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - channel := make(chan *gqlschema.ClusterServiceBrokerEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlClusterServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(channel, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnUpdate(serviceBroker, serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlClusterServiceBroker, result.ClusterServiceBroker) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerFalse, nil) - - // when - serviceBrokerListener.OnUpdate(new(v1beta1.ClusterServiceBroker), new(v1beta1.ClusterServiceBroker)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnUpdate(nil, serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ClusterServiceBroker) - converter := automock.NewGQLClusterServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewClusterServiceBroker(nil, filterClusterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnUpdate(nil, serviceBroker) - }) -} - -func filterClusterServiceBrokerTrue(o *v1beta1.ClusterServiceBroker) bool { - return true -} - -func filterClusterServiceBrokerFalse(o *v1beta1.ClusterServiceBroker) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebinding.go b/components/console-backend-service/internal/domain/servicecatalog/listener/servicebinding.go deleted file mode 100644 index 745ae36726a6..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebinding.go +++ /dev/null @@ -1,74 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlBindingConverter -output=automock -outpkg=automock -case=underscore -type gqlBindingConverter interface { - ToGQL(in *api.ServiceBinding) (*gqlschema.ServiceBinding, error) -} - -type Binding struct { - channel chan<- *gqlschema.ServiceBindingEvent - filter func(bindingUsage *api.ServiceBinding) bool - converter gqlBindingConverter -} - -func NewBinding(channel chan<- *gqlschema.ServiceBindingEvent, filter func(binding *api.ServiceBinding) bool, converter gqlBindingConverter) *Binding { - return &Binding{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *Binding) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Binding) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Binding) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Binding) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - binding, ok := object.(*api.ServiceBinding) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *ServiceBinding", object)) - return - } - - if l.filter(binding) { - err := l.notify(eventType, binding) - if err != nil { - glog.Error(errors.Wrapf(err, "while notifying on `%s` event", eventType)) - } - } -} - -func (l *Binding) notify(eventType gqlschema.SubscriptionEventType, binding *api.ServiceBinding) error { - gqlBinding, err := l.converter.ToGQL(binding) - if err != nil { - return errors.Wrapf(err, "while converting service binding [%s]", binding.Name) - } - if gqlBinding == nil { - return nil - } - - event := &gqlschema.ServiceBindingEvent{ - Type: eventType, - ServiceBinding: gqlBinding, - } - - l.channel <- event - return nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebinding_test.go b/components/console-backend-service/internal/domain/servicecatalog/listener/servicebinding_test.go deleted file mode 100644 index 6cc6ca30d600..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebinding_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package listener_test - -import ( - "testing" - - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" -) - -func TestBinding_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlBinding := new(gqlschema.ServiceBinding) - binding := new(api.ServiceBinding) - converter := automock.NewGQLBindingConverter() - - channel := make(chan *gqlschema.ServiceBindingEvent, 1) - defer close(channel) - converter.On("ToGQL", binding).Return(gqlBinding, nil).Once() - defer converter.AssertExpectations(t) - bindingListener := listener.NewBinding(channel, filterBindingTrue, converter) - - // when - bindingListener.OnAdd(binding) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlBinding, result.ServiceBinding) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingFalse, nil) - - // when - bindingListener.OnAdd(new(api.ServiceBinding)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingTrue, nil) - - // when - bindingListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - binding := new(api.ServiceBinding) - converter := automock.NewGQLBindingConverter() - - converter.On("ToGQL", binding).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - bindingListener := listener.NewBinding(nil, filterBindingTrue, converter) - - // when - bindingListener.OnAdd(binding) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingTrue, nil) - - // when - bindingListener.OnAdd(new(struct{})) - }) -} - -func TestBinding_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlBinding := new(gqlschema.ServiceBinding) - binding := new(api.ServiceBinding) - converter := automock.NewGQLBindingConverter() - - channel := make(chan *gqlschema.ServiceBindingEvent, 1) - defer close(channel) - converter.On("ToGQL", binding).Return(gqlBinding, nil).Once() - defer converter.AssertExpectations(t) - bindingListener := listener.NewBinding(channel, filterBindingTrue, converter) - - // when - bindingListener.OnDelete(binding) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlBinding, result.ServiceBinding) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingFalse, nil) - - // when - bindingListener.OnDelete(new(api.ServiceBinding)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingTrue, nil) - - // when - bindingListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - binding := new(api.ServiceBinding) - converter := automock.NewGQLBindingConverter() - - converter.On("ToGQL", binding).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - bindingListener := listener.NewBinding(nil, filterBindingTrue, converter) - - // when - bindingListener.OnDelete(binding) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingTrue, nil) - - // when - bindingListener.OnDelete(new(struct{})) - }) -} - -func TestBinding_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlBinding := new(gqlschema.ServiceBinding) - binding := new(api.ServiceBinding) - converter := automock.NewGQLBindingConverter() - - channel := make(chan *gqlschema.ServiceBindingEvent, 1) - defer close(channel) - converter.On("ToGQL", binding).Return(gqlBinding, nil).Once() - defer converter.AssertExpectations(t) - bindingListener := listener.NewBinding(channel, filterBindingTrue, converter) - - // when - bindingListener.OnUpdate(binding, binding) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlBinding, result.ServiceBinding) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingFalse, nil) - - // when - bindingListener.OnUpdate(new(api.ServiceBinding), new(api.ServiceBinding)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingTrue, nil) - - // when - bindingListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - binding := new(api.ServiceBinding) - converter := automock.NewGQLBindingConverter() - - converter.On("ToGQL", binding).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - bindingListener := listener.NewBinding(nil, filterBindingTrue, converter) - - // when - bindingListener.OnUpdate(nil, binding) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - bindingListener := listener.NewBinding(nil, filterBindingTrue, nil) - - // when - bindingListener.OnUpdate(new(struct{}), new(struct{})) - }) -} - -func filterBindingTrue(o *api.ServiceBinding) bool { - return true -} - -func filterBindingFalse(o *api.ServiceBinding) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebroker.go b/components/console-backend-service/internal/domain/servicecatalog/listener/servicebroker.go deleted file mode 100644 index 68be606c5b65..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebroker.go +++ /dev/null @@ -1,71 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlServiceBrokerConverter -output=automock -outpkg=automock -case=underscore -type gqlServiceBrokerConverter interface { - ToGQL(in *api.ServiceBroker) (*gqlschema.ServiceBroker, error) -} - -type ServiceBroker struct { - channel chan<- *gqlschema.ServiceBrokerEvent - filter func(entity *api.ServiceBroker) bool - converter gqlServiceBrokerConverter -} - -func NewServiceBroker(channel chan<- *gqlschema.ServiceBrokerEvent, filter func(entity *api.ServiceBroker) bool, converter gqlServiceBrokerConverter) *ServiceBroker { - return &ServiceBroker{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *ServiceBroker) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *ServiceBroker) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *ServiceBroker) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *ServiceBroker) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, ok := object.(*api.ServiceBroker) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *ServiceBroker", object)) - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *ServiceBroker) notify(eventType gqlschema.SubscriptionEventType, entity *api.ServiceBroker) { - gqlServiceBroker, err := l.converter.ToGQL(entity) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *ServiceBroker")) - return - } - if gqlServiceBroker == nil { - return - } - - event := &gqlschema.ServiceBrokerEvent{ - Type: eventType, - ServiceBroker: gqlServiceBroker, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebroker_test.go b/components/console-backend-service/internal/domain/servicecatalog/listener/servicebroker_test.go deleted file mode 100644 index b6883963cdb8..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/servicebroker_test.go +++ /dev/null @@ -1,241 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" -) - -func TestServiceBrokerListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlServiceBroker := new(gqlschema.ServiceBroker) - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - channel := make(chan *gqlschema.ServiceBrokerEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(channel, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlServiceBroker, result.ServiceBroker) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerFalse, nil) - - // when - serviceBrokerListener.OnAdd(new(v1beta1.ServiceBroker)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - }) -} - -func TestServiceBrokerListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlServiceBroker := new(gqlschema.ServiceBroker) - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - channel := make(chan *gqlschema.ServiceBrokerEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(channel, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlServiceBroker, result.ServiceBroker) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerFalse, nil) - - // when - serviceBrokerListener.OnDelete(new(v1beta1.ServiceBroker)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - }) -} - -func TestServiceBrokerListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlServiceBroker := new(gqlschema.ServiceBroker) - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - channel := make(chan *gqlschema.ServiceBrokerEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(channel, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnUpdate(serviceBroker, serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlServiceBroker, result.ServiceBroker) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerFalse, nil) - - // when - serviceBrokerListener.OnUpdate(new(v1beta1.ServiceBroker), new(v1beta1.ServiceBroker)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnUpdate(nil, serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, nil) - - // when - serviceBrokerListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - serviceBroker := new(v1beta1.ServiceBroker) - converter := automock.NewGQLServiceBrokerConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := listener.NewServiceBroker(nil, filterServiceBrokerTrue, converter) - - // when - serviceBrokerListener.OnUpdate(nil, serviceBroker) - }) -} - -func filterServiceBrokerTrue(o *v1beta1.ServiceBroker) bool { - return true -} - -func filterServiceBrokerFalse(o *v1beta1.ServiceBroker) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/serviceinstance.go b/components/console-backend-service/internal/domain/servicecatalog/listener/serviceinstance.go deleted file mode 100644 index 38fa08968749..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/serviceinstance.go +++ /dev/null @@ -1,71 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlInstanceConverter -output=automock -outpkg=automock -case=underscore -type gqlInstanceConverter interface { - ToGQL(in *api.ServiceInstance) (*gqlschema.ServiceInstance, error) -} - -type Instance struct { - channel chan<- *gqlschema.ServiceInstanceEvent - filter func(instance *api.ServiceInstance) bool - converter gqlInstanceConverter -} - -func NewInstance(channel chan<- *gqlschema.ServiceInstanceEvent, filter func(instance *api.ServiceInstance) bool, converter gqlInstanceConverter) *Instance { - return &Instance{ - channel: channel, - filter: filter, - converter: converter, - } -} - -func (l *Instance) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Instance) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Instance) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Instance) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - instance, ok := object.(*api.ServiceInstance) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *ServiceInstance", object)) - return - } - - if l.filter(instance) { - l.notify(eventType, instance) - } -} - -func (l *Instance) notify(eventType gqlschema.SubscriptionEventType, instance *api.ServiceInstance) { - gqlInstance, err := l.converter.ToGQL(instance) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *ServiceInstance")) - return - } - if gqlInstance == nil { - return - } - - event := &gqlschema.ServiceInstanceEvent{ - Type: eventType, - ServiceInstance: gqlInstance, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/listener/serviceinstance_test.go b/components/console-backend-service/internal/domain/servicecatalog/listener/serviceinstance_test.go deleted file mode 100644 index 2e46e883e909..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/listener/serviceinstance_test.go +++ /dev/null @@ -1,241 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" -) - -func TestInstanceListener_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlInstance := new(gqlschema.ServiceInstance) - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - channel := make(chan *gqlschema.ServiceInstanceEvent, 1) - defer close(channel) - converter.On("ToGQL", instance).Return(gqlInstance, nil).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(channel, filterInstanceTrue, converter) - - // when - instanceListener.OnAdd(instance) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlInstance, result.ServiceInstance) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceFalse, nil) - - // when - instanceListener.OnAdd(new(v1beta1.ServiceInstance)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceTrue, nil) - - // when - instanceListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - converter.On("ToGQL", instance).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(nil, filterInstanceTrue, converter) - - // when - instanceListener.OnAdd(instance) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceTrue, nil) - - // when - instanceListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - converter.On("ToGQL", instance).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(nil, filterInstanceTrue, converter) - - // when - instanceListener.OnAdd(instance) - }) -} - -func TestInstanceListener_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlInstance := new(gqlschema.ServiceInstance) - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - channel := make(chan *gqlschema.ServiceInstanceEvent, 1) - defer close(channel) - converter.On("ToGQL", instance).Return(gqlInstance, nil).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(channel, filterInstanceTrue, converter) - - // when - instanceListener.OnDelete(instance) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlInstance, result.ServiceInstance) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceFalse, nil) - - // when - instanceListener.OnDelete(new(v1beta1.ServiceInstance)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceTrue, nil) - - // when - instanceListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - converter.On("ToGQL", instance).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(nil, filterInstanceTrue, converter) - - // when - instanceListener.OnDelete(instance) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceTrue, nil) - - // when - instanceListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - converter.On("ToGQL", instance).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(nil, filterInstanceTrue, converter) - - // when - instanceListener.OnDelete(instance) - }) -} - -func TestInstanceListener_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlInstance := new(gqlschema.ServiceInstance) - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - channel := make(chan *gqlschema.ServiceInstanceEvent, 1) - defer close(channel) - converter.On("ToGQL", instance).Return(gqlInstance, nil).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(channel, filterInstanceTrue, converter) - - // when - instanceListener.OnUpdate(instance, instance) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlInstance, result.ServiceInstance) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceFalse, nil) - - // when - instanceListener.OnUpdate(new(v1beta1.ServiceInstance), new(v1beta1.ServiceInstance)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceTrue, nil) - - // when - instanceListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - converter.On("ToGQL", instance).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(nil, filterInstanceTrue, converter) - - // when - instanceListener.OnUpdate(nil, instance) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - instanceListener := listener.NewInstance(nil, filterInstanceTrue, nil) - - // when - instanceListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - instance := new(v1beta1.ServiceInstance) - converter := automock.NewGQLInstanceConverter() - - converter.On("ToGQL", instance).Return(nil, errors.New("Conversion error")).Once() - defer converter.AssertExpectations(t) - instanceListener := listener.NewInstance(nil, filterInstanceTrue, converter) - - // when - instanceListener.OnUpdate(nil, instance) - }) -} - -func filterInstanceTrue(o *v1beta1.ServiceInstance) bool { - return true -} - -func filterInstanceFalse(o *v1beta1.ServiceInstance) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/mock_gql_instance_converter.go b/components/console-backend-service/internal/domain/servicecatalog/mock_gql_instance_converter.go deleted file mode 100644 index c621e7160b47..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/mock_gql_instance_converter.go +++ /dev/null @@ -1,136 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. -package servicecatalog - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - status "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// mockGqlInstanceConverter is an autogenerated mock type for the gqlServiceInstanceConverter type -type mockGqlInstanceConverter struct { - mock.Mock -} - -// GQLCreateInputToInstanceCreateParameters provides a mock function with given fields: in -func (_m *mockGqlInstanceConverter) GQLCreateInputToInstanceCreateParameters(in *gqlschema.ServiceInstanceCreateInput) *serviceInstanceCreateParameters { - ret := _m.Called(in) - - var r0 *serviceInstanceCreateParameters - if rf, ok := ret.Get(0).(func(*gqlschema.ServiceInstanceCreateInput) *serviceInstanceCreateParameters); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*serviceInstanceCreateParameters) - } - } - - return r0 -} - -// GQLStatusToServiceStatus provides a mock function with given fields: in -func (_m *mockGqlInstanceConverter) GQLStatusToServiceStatus(in *gqlschema.ServiceInstanceStatus) *status.ServiceInstanceStatus { - ret := _m.Called(in) - - var r0 *status.ServiceInstanceStatus - if rf, ok := ret.Get(0).(func(*gqlschema.ServiceInstanceStatus) *status.ServiceInstanceStatus); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*status.ServiceInstanceStatus) - } - } - - return r0 -} - -// GQLStatusTypeToServiceStatusType provides a mock function with given fields: in -func (_m *mockGqlInstanceConverter) GQLStatusTypeToServiceStatusType(in gqlschema.InstanceStatusType) status.ServiceInstanceStatusType { - ret := _m.Called(in) - - var r0 status.ServiceInstanceStatusType - if rf, ok := ret.Get(0).(func(gqlschema.InstanceStatusType) status.ServiceInstanceStatusType); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(status.ServiceInstanceStatusType) - } - - return r0 -} - -// ServiceStatusToGQLStatus provides a mock function with given fields: in -func (_m *mockGqlInstanceConverter) ServiceStatusToGQLStatus(in status.ServiceInstanceStatus) gqlschema.ServiceInstanceStatus { - ret := _m.Called(in) - - var r0 gqlschema.ServiceInstanceStatus - if rf, ok := ret.Get(0).(func(status.ServiceInstanceStatus) gqlschema.ServiceInstanceStatus); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(gqlschema.ServiceInstanceStatus) - } - - return r0 -} - -// ServiceStatusTypeToGQLStatusType provides a mock function with given fields: in -func (_m *mockGqlInstanceConverter) ServiceStatusTypeToGQLStatusType(in status.ServiceInstanceStatusType) gqlschema.InstanceStatusType { - ret := _m.Called(in) - - var r0 gqlschema.InstanceStatusType - if rf, ok := ret.Get(0).(func(status.ServiceInstanceStatusType) gqlschema.InstanceStatusType); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(gqlschema.InstanceStatusType) - } - - return r0 -} - -// ToGQL provides a mock function with given fields: in -func (_m *mockGqlInstanceConverter) ToGQL(in *v1beta1.ServiceInstance) (*gqlschema.ServiceInstance, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceInstance - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceInstance) *gqlschema.ServiceInstance); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServiceInstance) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *mockGqlInstanceConverter) ToGQLs(in []*v1beta1.ServiceInstance) ([]gqlschema.ServiceInstance, error) { - ret := _m.Called(in) - - var r0 []gqlschema.ServiceInstance - if rf, ok := ret.Get(0).(func([]*v1beta1.ServiceInstance) []gqlschema.ServiceInstance); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]gqlschema.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ServiceInstance) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/mock_gql_service_instance_converter.go b/components/console-backend-service/internal/domain/servicecatalog/mock_gql_service_instance_converter.go deleted file mode 100644 index 38ee19db2c62..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/mock_gql_service_instance_converter.go +++ /dev/null @@ -1,137 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package servicecatalog - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - status "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// mockGqlServiceInstanceConverter is an autogenerated mock type for the gqlServiceInstanceConverter type -type mockGqlServiceInstanceConverter struct { - mock.Mock -} - -// GQLCreateInputToInstanceCreateParameters provides a mock function with given fields: in, namespace -func (_m *mockGqlServiceInstanceConverter) GQLCreateInputToInstanceCreateParameters(in *gqlschema.ServiceInstanceCreateInput, namespace string) *serviceInstanceCreateParameters { - ret := _m.Called(in, namespace) - - var r0 *serviceInstanceCreateParameters - if rf, ok := ret.Get(0).(func(*gqlschema.ServiceInstanceCreateInput, string) *serviceInstanceCreateParameters); ok { - r0 = rf(in, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*serviceInstanceCreateParameters) - } - } - - return r0 -} - -// GQLStatusToServiceStatus provides a mock function with given fields: in -func (_m *mockGqlServiceInstanceConverter) GQLStatusToServiceStatus(in *gqlschema.ServiceInstanceStatus) *status.ServiceInstanceStatus { - ret := _m.Called(in) - - var r0 *status.ServiceInstanceStatus - if rf, ok := ret.Get(0).(func(*gqlschema.ServiceInstanceStatus) *status.ServiceInstanceStatus); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*status.ServiceInstanceStatus) - } - } - - return r0 -} - -// GQLStatusTypeToServiceStatusType provides a mock function with given fields: in -func (_m *mockGqlServiceInstanceConverter) GQLStatusTypeToServiceStatusType(in gqlschema.InstanceStatusType) status.ServiceInstanceStatusType { - ret := _m.Called(in) - - var r0 status.ServiceInstanceStatusType - if rf, ok := ret.Get(0).(func(gqlschema.InstanceStatusType) status.ServiceInstanceStatusType); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(status.ServiceInstanceStatusType) - } - - return r0 -} - -// ServiceStatusToGQLStatus provides a mock function with given fields: in -func (_m *mockGqlServiceInstanceConverter) ServiceStatusToGQLStatus(in status.ServiceInstanceStatus) gqlschema.ServiceInstanceStatus { - ret := _m.Called(in) - - var r0 gqlschema.ServiceInstanceStatus - if rf, ok := ret.Get(0).(func(status.ServiceInstanceStatus) gqlschema.ServiceInstanceStatus); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(gqlschema.ServiceInstanceStatus) - } - - return r0 -} - -// ServiceStatusTypeToGQLStatusType provides a mock function with given fields: in -func (_m *mockGqlServiceInstanceConverter) ServiceStatusTypeToGQLStatusType(in status.ServiceInstanceStatusType) gqlschema.InstanceStatusType { - ret := _m.Called(in) - - var r0 gqlschema.InstanceStatusType - if rf, ok := ret.Get(0).(func(status.ServiceInstanceStatusType) gqlschema.InstanceStatusType); ok { - r0 = rf(in) - } else { - r0 = ret.Get(0).(gqlschema.InstanceStatusType) - } - - return r0 -} - -// ToGQL provides a mock function with given fields: in -func (_m *mockGqlServiceInstanceConverter) ToGQL(in *v1beta1.ServiceInstance) (*gqlschema.ServiceInstance, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceInstance - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceInstance) *gqlschema.ServiceInstance); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ServiceInstance) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *mockGqlServiceInstanceConverter) ToGQLs(in []*v1beta1.ServiceInstance) ([]*gqlschema.ServiceInstance, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ServiceInstance - if rf, ok := ret.Get(0).(func([]*v1beta1.ServiceInstance) []*gqlschema.ServiceInstance); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ServiceInstance) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/mock_service_instance_svc.go b/components/console-backend-service/internal/domain/servicecatalog/mock_service_instance_svc.go deleted file mode 100644 index 55d649af3b44..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/mock_service_instance_svc.go +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package servicecatalog - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - status "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// mockServiceInstanceSvc is an autogenerated mock type for the serviceInstanceSvc type -type mockServiceInstanceSvc struct { - mock.Mock -} - -// Create provides a mock function with given fields: params -func (_m *mockServiceInstanceSvc) Create(params serviceInstanceCreateParameters) (*v1beta1.ServiceInstance, error) { - ret := _m.Called(params) - - var r0 *v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(serviceInstanceCreateParameters) *v1beta1.ServiceInstance); ok { - r0 = rf(params) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(serviceInstanceCreateParameters) error); ok { - r1 = rf(params) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: name, namespace -func (_m *mockServiceInstanceSvc) Delete(name string, namespace string) error { - ret := _m.Called(name, namespace) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(name, namespace) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: name, namespace -func (_m *mockServiceInstanceSvc) Find(name string, namespace string) (*v1beta1.ServiceInstance, error) { - ret := _m.Called(name, namespace) - - var r0 *v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceInstance); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// IsBindableWithClusterRefs provides a mock function with given fields: relatedClass, relatedPlan -func (_m *mockServiceInstanceSvc) IsBindableWithClusterRefs(relatedClass *v1beta1.ClusterServiceClass, relatedPlan *v1beta1.ClusterServicePlan) bool { - ret := _m.Called(relatedClass, relatedPlan) - - var r0 bool - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterServiceClass, *v1beta1.ClusterServicePlan) bool); ok { - r0 = rf(relatedClass, relatedPlan) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// IsBindableWithLocalRefs provides a mock function with given fields: relatedClass, relatedPlan -func (_m *mockServiceInstanceSvc) IsBindableWithLocalRefs(relatedClass *v1beta1.ServiceClass, relatedPlan *v1beta1.ServicePlan) bool { - ret := _m.Called(relatedClass, relatedPlan) - - var r0 bool - if rf, ok := ret.Get(0).(func(*v1beta1.ServiceClass, *v1beta1.ServicePlan) bool); ok { - r0 = rf(relatedClass, relatedPlan) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *mockServiceInstanceSvc) List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceInstance, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1beta1.ServiceInstance); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListForStatus provides a mock function with given fields: namespace, pagingParams, _a2 -func (_m *mockServiceInstanceSvc) ListForStatus(namespace string, pagingParams pager.PagingParams, _a2 *status.ServiceInstanceStatusType) ([]*v1beta1.ServiceInstance, error) { - ret := _m.Called(namespace, pagingParams, _a2) - - var r0 []*v1beta1.ServiceInstance - if rf, ok := ret.Get(0).(func(string, pager.PagingParams, *status.ServiceInstanceStatusType) []*v1beta1.ServiceInstance); ok { - r0 = rf(namespace, pagingParams, _a2) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceInstance) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams, *status.ServiceInstanceStatusType) error); ok { - r1 = rf(namespace, pagingParams, _a2) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *mockServiceInstanceSvc) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *mockServiceInstanceSvc) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/pretty/kind.go b/components/console-backend-service/internal/domain/servicecatalog/pretty/kind.go deleted file mode 100644 index 3723e523f076..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/pretty/kind.go +++ /dev/null @@ -1,65 +0,0 @@ -package pretty - -type Kind int - -const ( - ServiceBinding Kind = iota - ServiceBindings - - ServiceBroker - ServiceBrokers - ClusterServiceBroker - ClusterServiceBrokers - - ServiceClass - ServiceClasses - ClusterServiceClass - ClusterServiceClasses - - ServiceInstance - ServiceInstances - - ServicePlan - ServicePlans - ClusterServicePlan - ClusterServicePlans -) - -func (k Kind) String() string { - switch k { - case ServiceBinding: - return "Service Binding" - case ServiceBindings: - return "Service Bindings" - case ServiceBroker: - return "Service Broker" - case ServiceBrokers: - return "Service Brokers" - case ClusterServiceBroker: - return "Cluster Service Broker" - case ClusterServiceBrokers: - return "Cluster Service Brokers" - case ServiceClass: - return "Service Class" - case ServiceClasses: - return "Service Classes" - case ClusterServiceClass: - return "Cluster Service Class" - case ClusterServiceClasses: - return "Cluster Service Classes" - case ServiceInstance: - return "Service Instance" - case ServiceInstances: - return "Service Instances" - case ServicePlan: - return "Service Plan" - case ServicePlans: - return "Service Plans" - case ClusterServicePlan: - return "Cluster Service Plan" - case ClusterServicePlans: - return "Cluster Service Plans" - default: - return "" - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_converter.go b/components/console-backend-service/internal/domain/servicecatalog/servicebinding_converter.go deleted file mode 100644 index 00f5a3db84c8..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_converter.go +++ /dev/null @@ -1,88 +0,0 @@ -package servicecatalog - -import ( - "encoding/json" - - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime" -) - -type serviceBindingConverter struct { - extractor status.BindingExtractor -} - -func (c *serviceBindingConverter) ToCreateOutputGQL(in *api.ServiceBinding) *gqlschema.CreateServiceBindingOutput { - if in == nil { - return nil - } - - return &gqlschema.CreateServiceBindingOutput{ - Name: in.Name, - Namespace: in.Namespace, - ServiceInstanceName: in.Spec.InstanceRef.Name, - } -} - -func (c *serviceBindingConverter) ToGQL(in *api.ServiceBinding) (*gqlschema.ServiceBinding, error) { - if in == nil { - return nil, nil - } - - params, err := c.extractParameters(in.Spec.Parameters) - if err != nil { - return nil, errors.Wrapf(err, "while extracting parameters from service binding [name: %s][namespace: %s]", in.Name, in.Namespace) - } - - return &gqlschema.ServiceBinding{ - Name: in.Name, - ServiceInstanceName: in.Spec.InstanceRef.Name, - Namespace: in.Namespace, - SecretName: in.Spec.SecretName, - Status: c.extractor.Status(in.Status.Conditions), - Parameters: params, - }, nil -} - -func (c *serviceBindingConverter) ToGQLs(in []*api.ServiceBinding) (*gqlschema.ServiceBindings, error) { - result := &gqlschema.ServiceBindings{Stats: &gqlschema.ServiceBindingsStats{}} - for _, item := range in { - converted, err := c.ToGQL(item) - if err != nil { - return nil, errors.Wrapf(err, "while converting service binding [name: %s][namespace: %s]", item.Name, item.Namespace) - } - if converted != nil { - c.addStat(converted.Status.Type, result.Stats) - result.Items = append(result.Items, converted) - } - } - return result, nil -} - -func (*serviceBindingConverter) addStat(statusType gqlschema.ServiceBindingStatusType, stats *gqlschema.ServiceBindingsStats) { - switch statusType { - case gqlschema.ServiceBindingStatusTypeReady: - stats.Ready += 1 - case gqlschema.ServiceBindingStatusTypeFailed: - stats.Failed += 1 - case gqlschema.ServiceBindingStatusTypePending: - stats.Pending += 1 - case gqlschema.ServiceBindingStatusTypeUnknown: - stats.Unknown += 1 - } -} - -func (*serviceBindingConverter) extractParameters(ext *runtime.RawExtension) (map[string]interface{}, error) { - if ext == nil { - return nil, nil - } - result := make(map[string]interface{}) - err := json.Unmarshal(ext.Raw, &result) - if err != nil { - return nil, errors.Wrap(err, "while unmarshalling binding parameters") - } - - return result, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/servicebinding_converter_test.go deleted file mode 100644 index 5b2ea46056ef..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_converter_test.go +++ /dev/null @@ -1,231 +0,0 @@ -package servicecatalog - -import ( - "fmt" - "testing" - - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestServiceBindingConverter_ToGQL(t *testing.T) { - t.Run("Empty", func(t *testing.T) { - converter := serviceBindingConverter{} - result, err := converter.ToGQL(&api.ServiceBinding{}) - require.NoError(t, err) - - assert.Equal(t, fixEmptyServiceBindingToGQL(), result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := serviceBindingConverter{} - result, err := converter.ToGQL(nil) - require.NoError(t, err) - - assert.Nil(t, result) - }) -} - -func TestServiceBindingConverter_ToGQLs(t *testing.T) { - expectedParams := map[string]interface{}{ - "json": "true", - } - - t.Run("Success", func(t *testing.T) { - bindings := []*api.ServiceBinding{ - fixBinding(api.ServiceBindingConditionReady), - fixBinding(api.ServiceBindingConditionFailed), - fixBinding(""), - } - expected := &gqlschema.ServiceBindings{ - Items: []*gqlschema.ServiceBinding{ - { - Name: "service-binding", - Namespace: "production", - ServiceInstanceName: "instance", - SecretName: "secret-name", - Status: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeReady, - }, - Parameters: expectedParams, - }, - { - Name: "service-binding", - Namespace: "production", - ServiceInstanceName: "instance", - SecretName: "secret-name", - Status: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeFailed, - }, - Parameters: expectedParams, - }, - { - Name: "service-binding", - Namespace: "production", - ServiceInstanceName: "instance", - SecretName: "secret-name", - Status: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeUnknown, - }, - Parameters: expectedParams, - }, - }, - Stats: &gqlschema.ServiceBindingsStats{ - Ready: 1, - Failed: 1, - Unknown: 1, - }, - } - - converter := serviceBindingConverter{} - result, err := converter.ToGQLs(bindings) - require.NoError(t, err) - - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - var bindings []*api.ServiceBinding - - converter := serviceBindingConverter{} - result, err := converter.ToGQLs(bindings) - require.NoError(t, err) - - assert.Empty(t, result.Items) - }) - - t.Run("With nil", func(t *testing.T) { - bindings := []*api.ServiceBinding{ - nil, - fixBinding(api.ServiceBindingConditionReady), - nil, - } - expected := &gqlschema.ServiceBindings{ - Items: []*gqlschema.ServiceBinding{ - { - Name: "service-binding", - Namespace: "production", - ServiceInstanceName: "instance", - SecretName: "secret-name", - Status: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeReady, - }, - Parameters: expectedParams, - }, - }, - Stats: &gqlschema.ServiceBindingsStats{ - Ready: 1, - }, - } - - converter := serviceBindingConverter{} - result, err := converter.ToGQLs(bindings) - require.NoError(t, err) - - assert.Equal(t, expected, result) - }) -} - -func TestServiceBindingConverter_ToCreateOutputGQL(t *testing.T) { - t.Run("Empty", func(t *testing.T) { - converter := serviceBindingConverter{} - result := converter.ToCreateOutputGQL(&api.ServiceBinding{}) - - assert.Empty(t, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := serviceBindingConverter{} - result := converter.ToCreateOutputGQL(nil) - - assert.Nil(t, result) - }) -} - -func TestServiceBindingConversionToGQL(t *testing.T) { - // GIVEN - sut := serviceBindingConverter{} - // WHEN - actual, err := sut.ToGQL(fixBinding(api.ServiceBindingConditionReady)) - // THEN - require.NoError(t, err) - assert.Equal(t, "service-binding", actual.Name) - assert.Equal(t, "production", actual.Namespace) - assert.Equal(t, "secret-name", actual.SecretName) - assert.Equal(t, "instance", actual.ServiceInstanceName) -} - -func TestServiceBindingConversionToCreateOutputGQL(t *testing.T) { - // GIVEN - sut := serviceBindingConverter{} - // WHEN - actual := sut.ToCreateOutputGQL(fixBinding(api.ServiceBindingConditionReady)) - // THEN - assert.Equal(t, "service-binding", actual.Name) - assert.Equal(t, "production", actual.Namespace) - assert.Equal(t, "instance", actual.ServiceInstanceName) -} - -func TestServiceBindingConversionError(t *testing.T) { - // GIVEN - var ( - sut = serviceBindingConverter{} - errBinding = fixErrBinding() - expectedErr = fmt.Sprintf("while extracting parameters from service binding [name: %s][namespace: %s]: while unmarshalling binding parameters: invalid character 'o' in literal null (expecting 'u')", errBinding.Name, errBinding.Namespace) - ) - - // WHEN - _, err := sut.ToGQL(errBinding) - // THEN - assert.EqualError(t, err, expectedErr) -} - -func fixBinding(conditionType api.ServiceBindingConditionType) *api.ServiceBinding { - return &api.ServiceBinding{ - ObjectMeta: v1.ObjectMeta{ - Name: "service-binding", - Namespace: "production", - }, - Spec: api.ServiceBindingSpec{ - InstanceRef: api.LocalObjectReference{Name: "instance"}, - SecretName: "secret-name", - Parameters: &runtime.RawExtension{ - Raw: []byte(`{"json":"true"}`), - }, - }, - Status: api.ServiceBindingStatus{ - Conditions: []api.ServiceBindingCondition{ - { - Type: conditionType, - Status: api.ConditionTrue, - }, - }, - }, - } -} - -func fixErrBinding() *api.ServiceBinding { - return &api.ServiceBinding{ - ObjectMeta: v1.ObjectMeta{ - Name: "service-binding", - Namespace: "production", - }, - Spec: api.ServiceBindingSpec{ - Parameters: &runtime.RawExtension{ - Raw: []byte("not json xd"), - }, - }, - } -} - -func fixEmptyServiceBindingToGQL() *gqlschema.ServiceBinding { - return &gqlschema.ServiceBinding{ - Status: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypePending, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/servicebinding_resolver.go deleted file mode 100644 index 46d56476416f..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_resolver.go +++ /dev/null @@ -1,123 +0,0 @@ -package servicecatalog - -import ( - "context" - "encoding/json" - - "github.com/golang/glog" - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/name" - "github.com/pkg/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -type serviceBindingResolver struct { - operations serviceBindingOperations - converter serviceBindingConverter -} - -func newServiceBindingResolver(op serviceBindingOperations) *serviceBindingResolver { - return &serviceBindingResolver{ - operations: op, - converter: serviceBindingConverter{}, - } -} - -func (r *serviceBindingResolver) CreateServiceBindingMutation(ctx context.Context, serviceBindingName *string, serviceInstanceName, namespace string, parameters gqlschema.JSON) (*gqlschema.CreateServiceBindingOutput, error) { - sbToCreate := &api.ServiceBinding{ - ObjectMeta: metav1.ObjectMeta{ - Name: name.EmptyIfNil(serviceBindingName), - }, - Spec: api.ServiceBindingSpec{ - InstanceRef: api.LocalObjectReference{ - Name: serviceInstanceName, - }, - }, - } - if parameters != nil { - byteArray, err := json.Marshal(parameters) - if err != nil { - glog.Error(errors.Wrapf(err, "while marshalling parameters %s `%s` parameters: %+v", pretty.ServiceBinding, name.EmptyIfNil(serviceBindingName), parameters)) - return nil, gqlerror.New(err, pretty.ServiceBinding, gqlerror.WithName(name.EmptyIfNil(serviceBindingName)), gqlerror.WithNamespace(namespace)) - } - sbToCreate.Spec.Parameters = &runtime.RawExtension{ - Raw: byteArray, - } - } - - sb, err := r.operations.Create(namespace, sbToCreate) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s `%s`", pretty.ServiceBinding, name.EmptyIfNil(serviceBindingName))) - return nil, gqlerror.New(err, pretty.ServiceBinding, gqlerror.WithName(name.EmptyIfNil(serviceBindingName)), gqlerror.WithNamespace(namespace)) - } - - return r.converter.ToCreateOutputGQL(sb), nil -} - -func (r *serviceBindingResolver) DeleteServiceBindingMutation(ctx context.Context, serviceBindingName, namespace string) (*gqlschema.DeleteServiceBindingOutput, error) { - err := r.operations.Delete(namespace, serviceBindingName) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s`", pretty.ServiceBinding, serviceBindingName)) - return nil, gqlerror.New(err, pretty.ServiceBinding, gqlerror.WithName(serviceBindingName), gqlerror.WithNamespace(namespace)) - } - - return &gqlschema.DeleteServiceBindingOutput{ - Namespace: namespace, - Name: serviceBindingName, - }, nil -} - -func (r *serviceBindingResolver) ServiceBindingQuery(ctx context.Context, name, namespace string) (*gqlschema.ServiceBinding, error) { - binding, err := r.operations.Find(namespace, name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s `%s` in namespace `%s`", pretty.ServiceBinding, name, namespace)) - return nil, gqlerror.New(err, pretty.ServiceBinding, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - out, err := r.converter.ToGQL(binding) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s `%s` in namespace `%s`", pretty.ServiceBinding, name, namespace)) - return nil, gqlerror.New(err, pretty.ServiceBinding, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return out, nil -} - -func (r *serviceBindingResolver) ServiceBindingsToInstanceQuery(ctx context.Context, instanceName, namespace string) (*gqlschema.ServiceBindings, error) { - list, err := r.operations.ListForServiceInstance(namespace, instanceName) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting many %s to Instance [instance name: %s. namespace: %s]", pretty.ServiceBindings, instanceName, namespace)) - return nil, gqlerror.New(err, pretty.ServiceBinding, gqlerror.WithNamespace(namespace)) - } - - out, err := r.converter.ToGQLs(list) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting many %s for %s `%s`", pretty.ServiceBindings, pretty.ServiceInstance, instanceName)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(instanceName), gqlerror.WithNamespace(namespace)) - } - - return out, nil -} - -func (r *serviceBindingResolver) ServiceBindingEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBindingEvent, error) { - channel := make(chan *gqlschema.ServiceBindingEvent, 1) - filter := func(binding *api.ServiceBinding) bool { - return binding != nil && binding.Namespace == namespace - } - - bindingListener := listener.NewBinding(channel, filter, &r.converter) - - r.operations.Subscribe(bindingListener) - go func() { - defer close(channel) - defer r.operations.Unsubscribe(bindingListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/servicebinding_resolver_test.go deleted file mode 100644 index eca1b6ed9dda..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_resolver_test.go +++ /dev/null @@ -1,240 +0,0 @@ -package servicecatalog_test - -import ( - "encoding/json" - "testing" - - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - apiErrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -func TestServiceBindingResolver_CreateServiceBindingMutation(t *testing.T) { - t.Run("Success empty name", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - binding := fixServiceBindingToRedis() - binding.Namespace = "" - binding.Name = "" - svc.On("Create", "production", binding). - Return(fixServiceBindingToRedis(), nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - result, err := resolver.CreateServiceBindingMutation(nil, nil, "redis", "production", nil) - - require.NoError(t, err) - assert.Equal(t, fixCreateServiceBindingOutput(), result) - }) - - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - params := gqlschema.JSON(map[string]interface{}{ - "key": "value", - }) - binding := fixServiceBindingToRedis() - binding.Namespace = "" - binding.Name = "generated-name" - byteArray, err := json.Marshal(params) - require.NoError(t, err) - binding.Spec.Parameters = &runtime.RawExtension{ - Raw: byteArray, - } - svc.On("Create", "production", binding). - Return(fixServiceBindingToRedis(), nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - result, err := resolver.CreateServiceBindingMutation(nil, ptr("generated-name"), "redis", "production", params) - - require.NoError(t, err) - assert.Equal(t, fixCreateServiceBindingOutput(), result) - }) - - t.Run("Already exists", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Create", mock.Anything, mock.Anything).Return(nil, apiErrors.NewAlreadyExists(schema.GroupResource{}, "test")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - _, err := resolver.CreateServiceBindingMutation(nil, ptr("redis-binding"), "redis", "production", nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsAlreadyExists(err)) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Create", mock.Anything, mock.Anything).Return(nil, errors.New("nope")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - _, err := resolver.CreateServiceBindingMutation(nil, ptr("redis-binding"), "redis", "production", nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingResolver_DeleteServiceBindingMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Delete", "production", "redis-binding").Return(nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - result, err := resolver.DeleteServiceBindingMutation(nil, "redis-binding", "production") - - require.NoError(t, err) - assert.Equal(t, &gqlschema.DeleteServiceBindingOutput{ - Name: "redis-binding", - Namespace: "production", - }, result) - }) - - t.Run("Not found", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Delete", "production", "redis-binding").Return(apiErrors.NewNotFound(schema.GroupResource{}, "test")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - _, err := resolver.DeleteServiceBindingMutation(nil, "redis-binding", "production") - - require.Error(t, err) - assert.True(t, gqlerror.IsNotFound(err)) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Delete", "production", "redis-binding").Return(errors.New("ta")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - _, err := resolver.DeleteServiceBindingMutation(nil, "redis-binding", "production") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingResolver_ServiceBindingQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Find", "production", "redis-binding"). - Return(fixServiceBindingToRedis(), nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - result, err := resolver.ServiceBindingQuery(nil, "redis-binding", "production") - - require.NoError(t, err) - assert.Equal(t, fixServiceBindingGQLToRedis(), result) - }) - - t.Run("Not found", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Find", "production", "redis-binding"). - Return(nil, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - result, err := resolver.ServiceBindingQuery(nil, "redis-binding", "production") - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("Find", "production", "redis-binding"). - Return(nil, errors.New("nope")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - _, err := resolver.ServiceBindingQuery(nil, "redis-binding", "production") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingResolver_ServiceBindingsToInstanceQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("ListForServiceInstance", "production", "redis"). - Return([]*api.ServiceBinding{ - fixServiceBindingToRedis(), - fixServiceBindingToRedis(), - }, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - result, err := resolver.ServiceBindingsToInstanceQuery(nil, "redis", "production") - - require.NoError(t, err) - assert.Equal(t, &gqlschema.ServiceBindings{ - Items: []*gqlschema.ServiceBinding{ - fixServiceBindingGQLToRedis(), - fixServiceBindingGQLToRedis(), - }, - Stats: &gqlschema.ServiceBindingsStats{ - Pending: 2, - }, - }, result) - }) - - t.Run("Not found", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("ListForServiceInstance", "production", "redis").Return([]*api.ServiceBinding{}, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - result, err := resolver.ServiceBindingsToInstanceQuery(nil, "redis", "production") - - require.NoError(t, err) - assert.Nil(t, result.Items) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingOperations() - svc.On("ListForServiceInstance", "production", "redis").Return(nil, errors.New("yhm")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBindingResolver(svc) - - _, err := resolver.ServiceBindingsToInstanceQuery(nil, "redis", "production") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func fixServiceBindingGQLToRedis() *gqlschema.ServiceBinding { - return &gqlschema.ServiceBinding{ - Name: "redis-binding", - ServiceInstanceName: "redis", - Namespace: "production", - Status: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypePending, - }, - } -} - -func fixCreateServiceBindingOutput() *gqlschema.CreateServiceBindingOutput { - return &gqlschema.CreateServiceBindingOutput{ - Namespace: "production", - ServiceInstanceName: "redis", - Name: "redis-binding", - } -} - -func ptr(s string) *string { - return &s -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_service.go b/components/console-backend-service/internal/domain/servicecatalog/servicebinding_service.go deleted file mode 100644 index 8a5fbd0b328b..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_service.go +++ /dev/null @@ -1,113 +0,0 @@ -package servicecatalog - -import ( - "context" - "fmt" - - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/typed/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/tools/cache" -) - -type serviceBindingService struct { - client v1beta1.ServicecatalogV1beta1Interface - informer cache.SharedIndexInformer - notifier notifier - - nameFunc func() string -} - -func newServiceBindingService(client v1beta1.ServicecatalogV1beta1Interface, informer cache.SharedIndexInformer, nameFunc func() string) (*serviceBindingService, error) { - svc := &serviceBindingService{ - client: client, - informer: informer, - nameFunc: nameFunc, - } - - err := informer.AddIndexers(cache.Indexers{ - "relatedServiceInstanceName": func(obj interface{}) ([]string, error) { - serviceBinding, err := svc.toServiceBinding(obj) - if err != nil { - return nil, errors.Wrapf(err, "while indexing by `relatedServiceInstanceName`") - } - - key := fmt.Sprintf("%s/%s", serviceBinding.Namespace, serviceBinding.Spec.InstanceRef.Name) - return []string{key}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - - svc.notifier = notifier - - return svc, nil -} - -func (f *serviceBindingService) Create(ns string, sb *api.ServiceBinding) (*api.ServiceBinding, error) { - if sb.Name == "" { - sb.Name = f.nameFunc() - } - return f.client.ServiceBindings(ns).Create(context.Background(), sb, v1.CreateOptions{}) -} - -func (f *serviceBindingService) Delete(ns string, name string) error { - return f.client.ServiceBindings(ns).Delete(context.Background(), name, v1.DeleteOptions{}) -} - -func (f *serviceBindingService) Find(ns string, name string) (*api.ServiceBinding, error) { - key := fmt.Sprintf("%s/%s", ns, name) - item, exists, err := f.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - return f.toServiceBinding(item) -} - -func (f *serviceBindingService) ListForServiceInstance(ns string, instanceName string) ([]*api.ServiceBinding, error) { - key := fmt.Sprintf("%s/%s", ns, instanceName) - items, err := f.informer.GetIndexer().ByIndex("relatedServiceInstanceName", key) - if err != nil { - return nil, err - } - - return f.toServiceBindings(items) -} - -func (f *serviceBindingService) Subscribe(listener resource.Listener) { - f.notifier.AddListener(listener) -} - -func (f *serviceBindingService) Unsubscribe(listener resource.Listener) { - f.notifier.DeleteListener(listener) -} - -func (f *serviceBindingService) toServiceBinding(item interface{}) (*api.ServiceBinding, error) { - serviceBinding, ok := item.(*api.ServiceBinding) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *ServiceBinding", item) - } - - return serviceBinding, nil -} - -func (f *serviceBindingService) toServiceBindings(items []interface{}) ([]*api.ServiceBinding, error) { - var serviceBindings []*api.ServiceBinding - for _, item := range items { - serviceBinding, err := f.toServiceBinding(item) - if err != nil { - return nil, err - } - - serviceBindings = append(serviceBindings, serviceBinding) - } - - return serviceBindings, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/servicebinding_service_test.go deleted file mode 100644 index b78de7ba2f0c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebinding_service_test.go +++ /dev/null @@ -1,128 +0,0 @@ -package servicecatalog_test - -import ( - "context" - "testing" - "time" - - api "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - apierrors "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/tools/cache" -) - -func TestBindingServiceCreate(t *testing.T) { - // GIVEN - fakeClient := fake.NewSimpleClientset() - sut, err := servicecatalog.NewServiceBindingService(fakeClient.ServicecatalogV1beta1(), fixBindingInformer(fakeClient), "sb-generated-name") - require.NoError(t, err) - // WHEN - actualBinding, err := sut.Create("production", fixServiceBindingToRedis()) - // THEN - require.NoError(t, err) - bindingFromClientSet, err := fakeClient.ServicecatalogV1beta1().ServiceBindings("production").Get(context.Background(), "redis-binding", v1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, bindingFromClientSet, actualBinding) -} - -func TestBindingServiceCreateWithGeneratedName(t *testing.T) { - // GIVEN - fakeClient := fake.NewSimpleClientset() - sut, err := servicecatalog.NewServiceBindingService(fakeClient.ServicecatalogV1beta1(), fixBindingInformer(fakeClient), "sb-generated-name") - require.NoError(t, err) - sb := fixServiceBindingToRedis() - sb.Name = "" - - // WHEN - actualBinding, err := sut.Create("production", sb) - // THEN - require.NoError(t, err) - bindingFromClientSet, err := fakeClient.ServicecatalogV1beta1().ServiceBindings("production").Get(context.Background(), "sb-generated-name", v1.GetOptions{}) - require.NoError(t, err) - assert.Equal(t, bindingFromClientSet, actualBinding) -} - -func TestBindingServiceDelete(t *testing.T) { - // GIVEN - fakeClient := fake.NewSimpleClientset(fixServiceBindingToRedis()) - sut, err := servicecatalog.NewServiceBindingService(fakeClient.ServicecatalogV1beta1(), fixBindingInformer(fakeClient), "") - require.NoError(t, err) - - // WHEN - err = sut.Delete("production", "redis-binding") - // THEN - require.NoError(t, err) - _, err = fakeClient.ServicecatalogV1beta1().ServiceBindings("production").Get(context.Background(), "redis-binding", v1.GetOptions{}) - assert.True(t, apierrors.IsNotFound(err)) - -} - -func TestBindingServiceFind(t *testing.T) { - // GIVEN - client := fake.NewSimpleClientset(fixServiceBindingToRedis()) - informer := fixBindingInformer(client) - sut, err := servicecatalog.NewServiceBindingService(client.ServicecatalogV1beta1(), informer, "") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - actual, err := sut.Find("production", "redis-binding") - // THEN - require.NoError(t, err) - assert.Equal(t, fixServiceBindingToRedis(), actual) -} - -func TestBindingServiceListForServiceInstance(t *testing.T) { - // GIVEN - client := fake.NewSimpleClientset(fixServiceBindingToRedis(), fixServiceBindingToSql()) - informer := fixBindingInformer(client) - sut, err := servicecatalog.NewServiceBindingService(client.ServicecatalogV1beta1(), informer, "") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - actualBindings, err := sut.ListForServiceInstance("production", "redis") - // THEN - require.NoError(t, err) - assert.Len(t, actualBindings, 1) - assert.Contains(t, actualBindings, fixServiceBindingToRedis()) -} - -func fixServiceBindingToRedis() *api.ServiceBinding { - return &api.ServiceBinding{ - ObjectMeta: v1.ObjectMeta{ - Name: "redis-binding", - Namespace: "production", - }, - Spec: api.ServiceBindingSpec{ - InstanceRef: api.LocalObjectReference{ - Name: "redis", - }, - }, - } -} - -func fixServiceBindingToSql() *api.ServiceBinding { - return &api.ServiceBinding{ - ObjectMeta: v1.ObjectMeta{ - Name: "sql-binding", - Namespace: "production", - }, - Spec: api.ServiceBindingSpec{ - InstanceRef: api.LocalObjectReference{ - Name: "sql", - }, - }, - } -} - -func fixBindingInformer(client *fake.Clientset) cache.SharedIndexInformer { - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - informer := informerFactory.Servicecatalog().V1beta1().ServiceBindings().Informer() - - return informer -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_converter.go b/components/console-backend-service/internal/domain/servicecatalog/servicebroker_converter.go deleted file mode 100644 index ec87c9b3a669..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_converter.go +++ /dev/null @@ -1,46 +0,0 @@ -package servicecatalog - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type serviceBrokerConverter struct { - extractor status.BrokerExtractor -} - -func (c *serviceBrokerConverter) ToGQL(item *v1beta1.ServiceBroker) (*gqlschema.ServiceBroker, error) { - if item == nil { - return nil, nil - } - - conditions := item.Status.Conditions - returnStatus := c.extractor.Status(conditions) - - broker := gqlschema.ServiceBroker{ - Name: item.Name, - Namespace: item.Namespace, - Status: returnStatus, - CreationTimestamp: item.CreationTimestamp.Time, - Labels: item.Labels, - URL: item.Spec.URL, - } - - return &broker, nil -} - -func (c *serviceBrokerConverter) ToGQLs(in []*v1beta1.ServiceBroker) ([]*gqlschema.ServiceBroker, error) { - var result []*gqlschema.ServiceBroker - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/servicebroker_converter_test.go deleted file mode 100644 index eee6aba7c954..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_converter_test.go +++ /dev/null @@ -1,154 +0,0 @@ -package servicecatalog - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestServiceBrokerConverter_ToGQL(t *testing.T) { - t.Run("All properties are given", func(t *testing.T) { - converter := serviceBrokerConverter{} - var zeroTimeStamp time.Time - labels := map[string]string{ - "label1": "labelValue1", - "label2": "labelValue2", - } - - item := fixServiceBroker() - - expected := gqlschema.ServiceBroker{ - Name: "exampleName", - CreationTimestamp: zeroTimeStamp, - Labels: labels, - URL: "ExampleURL", - Status: &gqlschema.ServiceBrokerStatus{ - Ready: true, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - } - - result, err := converter.ToGQL(item) - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &serviceBrokerConverter{} - _, err := converter.ToGQL(&v1beta1.ServiceBroker{}) - require.NoError(t, err) - }) - - t.Run("Empty auth info", func(t *testing.T) { - converter := &serviceBrokerConverter{} - _, err := converter.ToGQL(&v1beta1.ServiceBroker{ - Spec: v1beta1.ServiceBrokerSpec{ - AuthInfo: &v1beta1.ServiceBrokerAuthInfo{}, - }, - }) - require.NoError(t, err) - }) - - t.Run("Empty basic and bearer", func(t *testing.T) { - converter := &serviceBrokerConverter{} - _, err := converter.ToGQL(&v1beta1.ServiceBroker{ - Spec: v1beta1.ServiceBrokerSpec{ - AuthInfo: &v1beta1.ServiceBrokerAuthInfo{ - Basic: &v1beta1.BasicAuthConfig{}, - Bearer: &v1beta1.BearerTokenAuthConfig{}, - }, - }, - }) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &serviceBrokerConverter{} - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestServiceBrokerConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - brokers := []*v1beta1.ServiceBroker{ - fixServiceBroker(), - fixServiceBroker(), - } - - converter := serviceBrokerConverter{} - result, err := converter.ToGQLs(brokers) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "exampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var brokers []*v1beta1.ServiceBroker - - converter := serviceBrokerConverter{} - result, err := converter.ToGQLs(brokers) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - brokers := []*v1beta1.ServiceBroker{ - nil, - fixServiceBroker(), - nil, - } - - converter := serviceBrokerConverter{} - result, err := converter.ToGQLs(brokers) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "exampleName", result[0].Name) - }) -} - -func fixServiceBroker() *v1beta1.ServiceBroker { - var mockTimeStamp metav1.Time - labels := map[string]string{ - "label1": "labelValue1", - "label2": "labelValue2", - } - - return &v1beta1.ServiceBroker{ - - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - CreationTimestamp: mockTimeStamp, - Labels: labels, - }, - Spec: v1beta1.ServiceBrokerSpec{ - CommonServiceBrokerSpec: v1beta1.CommonServiceBrokerSpec{ - URL: "ExampleURL", - }, - }, - Status: v1beta1.ServiceBrokerStatus{ - CommonServiceBrokerStatus: v1beta1.CommonServiceBrokerStatus{ - Conditions: []v1beta1.ServiceBrokerCondition{ - { - Type: v1beta1.ServiceBrokerConditionType("Ready"), - Status: v1beta1.ConditionStatus("True"), - LastTransitionTime: mockTimeStamp, - Reason: "ExampleReason", - Message: "ExampleMessage", - }, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/servicebroker_resolver.go deleted file mode 100644 index 381902537423..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_resolver.go +++ /dev/null @@ -1,98 +0,0 @@ -package servicecatalog - -import ( - "context" - - "github.com/golang/glog" - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlServiceBrokerConverter -output=automock -outpkg=automock -case=underscore -type gqlServiceBrokerConverter interface { - ToGQL(in *v1beta1.ServiceBroker) (*gqlschema.ServiceBroker, error) - ToGQLs(in []*v1beta1.ServiceBroker) ([]*gqlschema.ServiceBroker, error) -} - -//go:generate mockery -name=serviceBrokerSvc -output=automock -outpkg=automock -case=underscore -type serviceBrokerSvc interface { - Find(name, namespace string) (*v1beta1.ServiceBroker, error) - List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceBroker, error) - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -type serviceBrokerResolver struct { - serviceBrokerSvc serviceBrokerSvc - brokerConverter gqlServiceBrokerConverter -} - -func newServiceBrokerResolver(serviceBrokerSvc serviceBrokerSvc) *serviceBrokerResolver { - return &serviceBrokerResolver{ - serviceBrokerSvc: serviceBrokerSvc, - brokerConverter: &serviceBrokerConverter{}, - } -} - -func (r *serviceBrokerResolver) ServiceBrokersQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceBroker, error) { - items, err := r.serviceBrokerSvc.List(namespace, pager.PagingParams{ - First: first, - Offset: offset, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.ServiceBrokers)) - return nil, gqlerror.New(err, pretty.ServiceBrokers) - } - - serviceBrokers, err := r.brokerConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceBrokers)) - return nil, gqlerror.New(err, pretty.ServiceBrokers) - } - - return serviceBrokers, nil -} - -func (r *serviceBrokerResolver) ServiceBrokerQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceBroker, error) { - serviceBroker, err := r.serviceBrokerSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s", pretty.ServiceBroker)) - return nil, gqlerror.New(err, pretty.ServiceBroker, gqlerror.WithName(name)) - } - if serviceBroker == nil { - return nil, nil - } - - result, err := r.brokerConverter.ToGQL(serviceBroker) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting to %s type", pretty.ServiceBroker)) - return nil, gqlerror.New(err, pretty.ServiceBroker, gqlerror.WithName(name)) - } - - return result, nil -} - -func (r *serviceBrokerResolver) ServiceBrokerEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBrokerEvent, error) { - channel := make(chan *gqlschema.ServiceBrokerEvent, 1) - filter := func(entity *v1beta1.ServiceBroker) bool { - return entity != nil && entity.Namespace == namespace - } - - instanceListener := listener.NewServiceBroker(channel, filter, r.brokerConverter) - - r.serviceBrokerSvc.Subscribe(instanceListener) - go func() { - defer close(channel) - defer r.serviceBrokerSvc.Unsubscribe(instanceListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/servicebroker_resolver_test.go deleted file mode 100644 index 9e2c919c8df9..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_resolver_test.go +++ /dev/null @@ -1,186 +0,0 @@ -package servicecatalog_test - -import ( - "context" - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestServiceBrokerResolver_ServiceBrokerQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "name" - ns := "ns" - expected := &gqlschema.ServiceBroker{ - Name: "Test", - } - resource := &v1beta1.ServiceBroker{} - - svc := automock.NewServiceBrokerService() - svc.On("Find", name, ns). - Return(resource, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLServiceBrokerConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceBrokerResolver(svc) - resolver.SetBrokerConverter(converter) - - result, err := resolver.ServiceBrokerQuery(nil, name, ns) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - ns := "ns" - svc := automock.NewServiceBrokerService() - svc.On("Find", name, ns).Return(nil, nil).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalog.NewServiceBrokerResolver(svc) - - result, err := resolver.ServiceBrokerQuery(nil, name, ns) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - name := "name" - ns := "ns" - expected := errors.New("Test") - - resource := &v1beta1.ServiceBroker{} - - svc := automock.NewServiceBrokerService() - svc.On("Find", name, ns).Return(resource, expected).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalog.NewServiceBrokerResolver(svc) - - result, err := resolver.ServiceBrokerQuery(nil, name, ns) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestServiceBrokerResolver_ServiceBrokersQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ns := "ns" - resource := - &v1beta1.ServiceBroker{ - ObjectMeta: v1.ObjectMeta{ - Name: "test", - }, - } - resources := []*v1beta1.ServiceBroker{ - resource, resource, - } - expected := []*gqlschema.ServiceBroker{ - { - Name: "Test", - }, { - Name: "Test", - }, - } - - svc := automock.NewServiceBrokerService() - svc.On("List", ns, pager.PagingParams{}).Return(resources, nil).Once() - defer svc.AssertExpectations(t) - - converter := automock.NewGQLServiceBrokerConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceBrokerResolver(svc) - resolver.SetBrokerConverter(converter) - - result, err := resolver.ServiceBrokersQuery(nil, ns, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - ns := "ns" - var resources []*v1beta1.ServiceBroker - - svc := automock.NewServiceBrokerService() - svc.On("List", ns, pager.PagingParams{}).Return(resources, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBrokerResolver(svc) - var expected []*gqlschema.ServiceBroker - - result, err := resolver.ServiceBrokersQuery(nil, ns, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - ns := "ns" - expected := errors.New("Test") - - var resources []*v1beta1.ServiceBroker - - svc := automock.NewServiceBrokerService() - svc.On("List", ns, pager.PagingParams{}).Return(resources, expected).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalog.NewServiceBrokerResolver(svc) - - _, err := resolver.ServiceBrokersQuery(nil, ns, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBrokerResolver_ServiceBrokerEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewServiceBrokerService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalog.NewServiceBrokerResolver(svc) - - _, err := resolver.ServiceBrokerEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewServiceBrokerService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalog.NewServiceBrokerResolver(svc) - - channel, err := resolver.ServiceBrokerEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_service.go b/components/console-backend-service/internal/domain/servicecatalog/servicebroker_service.go deleted file mode 100644 index 1e147989f526..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_service.go +++ /dev/null @@ -1,63 +0,0 @@ -package servicecatalog - -import ( - "fmt" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "k8s.io/client-go/tools/cache" -) - -type serviceBrokerService struct { - informer cache.SharedIndexInformer - notifier notifier -} - -func newServiceBrokerService(informer cache.SharedIndexInformer) *serviceBrokerService { - return &serviceBrokerService{ - informer: informer, - notifier: resource.NewNotifier(), - } -} - -func (svc *serviceBrokerService) Find(name, namespace string) (*v1beta1.ServiceBroker, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - serviceBroker, ok := item.(*v1beta1.ServiceBroker) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceBroker", item) - } - - return serviceBroker, nil -} - -func (svc *serviceBrokerService) List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceBroker, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - var serviceBrokers []*v1beta1.ServiceBroker - for _, item := range items { - serviceBroker, ok := item.(*v1beta1.ServiceBroker) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceBroker", item) - } - serviceBrokers = append(serviceBrokers, serviceBroker) - } - - return serviceBrokers, nil -} - -func (svc *serviceBrokerService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *serviceBrokerService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/servicebroker_service_test.go deleted file mode 100644 index fc1d94b8b6f0..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicebroker_service_test.go +++ /dev/null @@ -1,181 +0,0 @@ -package servicecatalog_test - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -func TestServiceBrokerService_GetServiceBroker(t *testing.T) { - t.Run("Success", func(t *testing.T) { - brokerName := "testExample" - nsName := "exampleNs" - serviceBroker := fixServiceBroker(brokerName, nsName) - client := fake.NewSimpleClientset(serviceBroker) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ServiceBrokers().Informer() - - svc := servicecatalog.NewServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - broker, err := svc.Find(brokerName, nsName) - require.NoError(t, err) - assert.Equal(t, serviceBroker, broker) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ServiceBrokers().Informer() - - svc := servicecatalog.NewServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - broker, err := svc.Find("doesntExist", "ns") - require.NoError(t, err) - assert.Nil(t, broker) - }) -} - -func TestServiceBrokerService_ListServiceBrokers(t *testing.T) { - t.Run("Success", func(t *testing.T) { - nsName := "exampleNs" - serviceBroker1 := fixServiceBroker("1", nsName) - serviceBroker2 := fixServiceBroker("2", nsName) - serviceBroker3 := fixServiceBroker("3", nsName) - client := fake.NewSimpleClientset(serviceBroker1, serviceBroker2, serviceBroker3) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ServiceBrokers().Informer() - - svc := servicecatalog.NewServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - brokers, err := svc.List(nsName, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1beta1.ServiceBroker{ - serviceBroker1, serviceBroker2, serviceBroker3, - }, brokers) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceBrokerInformer := informerFactory.Servicecatalog().V1beta1().ServiceBrokers().Informer() - - svc := servicecatalog.NewServiceBrokerService(serviceBrokerInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceBrokerInformer) - - var emptyArray []*v1beta1.ServiceBroker - brokers, err := svc.List("ns", pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, brokers) - }) -} - -func TestServiceBrokerService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - instanceListener := listener.NewServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - instanceListener := listener.NewServiceBroker(nil, nil, nil) - - svc.Subscribe(instanceListener) - svc.Subscribe(instanceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - instanceListenerA := listener.NewServiceBroker(nil, nil, nil) - instanceListenerB := listener.NewServiceBroker(nil, nil, nil) - - svc.Subscribe(instanceListenerA) - svc.Subscribe(instanceListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - - svc.Subscribe(nil) - }) -} - -func TestServiceBrokerService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - instanceListener := listener.NewServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListener) - - svc.Unsubscribe(instanceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - instanceListener := listener.NewServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListener) - svc.Subscribe(instanceListener) - - svc.Unsubscribe(instanceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - instanceListenerA := listener.NewServiceBroker(nil, nil, nil) - instanceListenerB := listener.NewServiceBroker(nil, nil, nil) - svc.Subscribe(instanceListenerA) - svc.Subscribe(instanceListenerB) - - svc.Unsubscribe(instanceListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - svc := servicecatalog.NewServiceBrokerService(fixServiceBrokerInformer()) - - svc.Unsubscribe(nil) - }) -} - -func fixServiceBroker(name, namespace string) *v1beta1.ServiceBroker { - var mockTimeStamp metav1.Time - - broker := v1beta1.ServiceBroker{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - CreationTimestamp: mockTimeStamp, - }, - } - - return &broker -} - -func fixServiceBrokerInformer(objects ...runtime.Object) cache.SharedIndexInformer { - client := fake.NewSimpleClientset(objects...) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - informer := informerFactory.Servicecatalog().V1beta1().ServiceBrokers().Informer() - - return informer -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicecatalog.go b/components/console-backend-service/internal/domain/servicecatalog/servicecatalog.go deleted file mode 100644 index d762f8a14895..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicecatalog.go +++ /dev/null @@ -1,194 +0,0 @@ -package servicecatalog - -import ( - "context" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/disabled" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - - bindingApi "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset" - catalogInformers "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/name" - "github.com/pkg/errors" - - "k8s.io/client-go/rest" -) - -type PluggableContainer struct { - *module.Pluggable - cfg *resolverConfig - - Resolver Resolver - ServiceCatalogRetriever *serviceCatalogRetriever - informerFactory catalogInformers.SharedInformerFactory -} - -type serviceCatalogRetriever struct { - ServiceBindingFinderLister ServiceBindingFinderLister -} - -func (r *serviceCatalogRetriever) ServiceBinding() shared.ServiceBindingFinderLister { - return r.ServiceBindingFinderLister -} - -//go:generate failery -name=ServiceBindingFinderLister -case=underscore -output disabled -outpkg disabled -type ServiceBindingFinderLister interface { - Find(namespace string, name string) (*bindingApi.ServiceBinding, error) - ListForServiceInstance(namespace string, instanceName string) ([]*bindingApi.ServiceBinding, error) -} - -func New(restConfig *rest.Config, informerResyncPeriod time.Duration, rafterRetriever shared.RafterRetriever) (*PluggableContainer, error) { - scCli, err := clientset.NewForConfig(restConfig) - if err != nil { - return nil, errors.Wrap(err, "while initializing SC clientset") - } - - container := &PluggableContainer{ - cfg: &resolverConfig{ - scCli: scCli, - informerResyncPeriod: informerResyncPeriod, - rafterRetriever: rafterRetriever, - }, - Pluggable: module.NewPluggable("servicecatalog"), - ServiceCatalogRetriever: &serviceCatalogRetriever{}, - } - err = container.Disable() - if err != nil { - return nil, err - } - - return container, nil -} - -func (r *PluggableContainer) Enable() error { - informerResyncPeriod := r.cfg.informerResyncPeriod - scCli := r.cfg.scCli - - informerFactory := catalogInformers.NewSharedInformerFactory(scCli, informerResyncPeriod) - - r.informerFactory = informerFactory - - serviceInstanceService, err := newServiceInstanceService(informerFactory.Servicecatalog().V1beta1().ServiceInstances().Informer(), scCli) - if err != nil { - return errors.Wrapf(err, "while creating service instance service") - } - servicePlanService, err := newServicePlanService(informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer()) - if err != nil { - return errors.Wrapf(err, "while creating service plan service") - - } - serviceClassService, err := newServiceClassService(informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer()) - if err != nil { - return errors.Wrapf(err, "while creating service class service") - } - serviceBrokerService := newServiceBrokerService(informerFactory.Servicecatalog().V1beta1().ServiceBrokers().Informer()) - serviceBindingService, err := newServiceBindingService(scCli.ServicecatalogV1beta1(), informerFactory.Servicecatalog().V1beta1().ServiceBindings().Informer(), name.Generate) - if err != nil { - return errors.Wrapf(err, "while creating service binding service") - } - - clusterServiceClassService, err := newClusterServiceClassService(informerFactory.Servicecatalog().V1beta1().ClusterServiceClasses().Informer()) - if err != nil { - return errors.Wrapf(err, "while creating cluster service class service") - } - clusterServicePlanService, err := newClusterServicePlanService(informerFactory.Servicecatalog().V1beta1().ClusterServicePlans().Informer()) - if err != nil { - return errors.Wrapf(err, "while creating cluster service plan service") - } - clusterServiceBrokerService := newClusterServiceBrokerService(informerFactory.Servicecatalog().V1beta1().ClusterServiceBrokers().Informer()) - - r.Pluggable.EnableAndSyncInformerFactory(r.informerFactory, func() { - r.Resolver = &domainResolver{ - clusterServiceClassResolver: newClusterServiceClassResolver(clusterServiceClassService, clusterServicePlanService, serviceInstanceService, r.cfg.rafterRetriever), - serviceClassResolver: newServiceClassResolver(serviceClassService, servicePlanService, serviceInstanceService, r.cfg.rafterRetriever), - ClusterServicePlanResolver: NewClusterServicePlanResolver(r.cfg.rafterRetriever), - ServicePlanResolver: NewServicePlanResolver(r.cfg.rafterRetriever), - serviceInstanceResolver: newServiceInstanceResolver(serviceInstanceService, clusterServicePlanService, clusterServiceClassService, servicePlanService, serviceClassService), - clusterServiceBrokerResolver: newClusterServiceBrokerResolver(clusterServiceBrokerService), - serviceBrokerResolver: newServiceBrokerResolver(serviceBrokerService), - serviceBindingResolver: newServiceBindingResolver(serviceBindingService), - } - r.ServiceCatalogRetriever.ServiceBindingFinderLister = serviceBindingService - }) - - return nil -} - -func (r *PluggableContainer) Disable() error { - r.Pluggable.Disable(func(disabledErr error) { - r.Resolver = disabled.NewResolver(disabledErr) - r.ServiceCatalogRetriever.ServiceBindingFinderLister = disabled.NewServiceBindingFinderLister(disabledErr) - r.informerFactory = nil - }) - - return nil -} - -type resolverConfig struct { - scCli clientset.Interface - informerResyncPeriod time.Duration - rafterRetriever shared.RafterRetriever -} - -//go:generate failery -name=Resolver -case=underscore -output disabled -outpkg disabled -type Resolver interface { - ClusterServiceClassQuery(ctx context.Context, name string) (*gqlschema.ClusterServiceClass, error) - ClusterServiceClassesQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceClass, error) - ClusterServiceClassPlansField(ctx context.Context, obj *gqlschema.ClusterServiceClass) ([]*gqlschema.ClusterServicePlan, error) - ClusterServiceClassInstancesField(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) ([]*gqlschema.ServiceInstance, error) - ClusterServiceClassActivatedField(ctx context.Context, obj *gqlschema.ClusterServiceClass, namespace *string) (bool, error) - ClusterServiceClassClusterAssetGroupField(ctx context.Context, obj *gqlschema.ClusterServiceClass) (*gqlschema.ClusterAssetGroup, error) - - ServiceClassQuery(ctx context.Context, name, namespace string) (*gqlschema.ServiceClass, error) - ServiceClassesQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceClass, error) - ServiceClassPlansField(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServicePlan, error) - ServiceClassInstancesField(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServiceInstance, error) - ServiceClassActivatedField(ctx context.Context, obj *gqlschema.ServiceClass) (bool, error) - ServiceClassClusterAssetGroupField(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.ClusterAssetGroup, error) - ServiceClassAssetGroupField(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.AssetGroup, error) - - ClusterServicePlanClusterAssetGroupField(ctx context.Context, obj *gqlschema.ClusterServicePlan) (*gqlschema.ClusterAssetGroup, error) - ServicePlanClusterAssetGroupField(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.ClusterAssetGroup, error) - ServicePlanAssetGroupField(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.AssetGroup, error) - - CreateServiceInstanceMutation(ctx context.Context, namespace string, params gqlschema.ServiceInstanceCreateInput) (*gqlschema.ServiceInstance, error) - DeleteServiceInstanceMutation(ctx context.Context, name, namespace string) (*gqlschema.ServiceInstance, error) - ServiceInstanceQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceInstance, error) - ServiceInstancesQuery(ctx context.Context, namespace string, first *int, offset *int, status *gqlschema.InstanceStatusType) ([]*gqlschema.ServiceInstance, error) - ServiceInstanceEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceInstanceEvent, error) - ServiceInstanceClusterServicePlanField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServicePlan, error) - ServiceInstanceClusterServiceClassField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServiceClass, error) - ServiceInstanceServicePlanField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServicePlan, error) - ServiceInstanceServiceClassField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServiceClass, error) - ServiceInstanceBindableField(ctx context.Context, obj *gqlschema.ServiceInstance) (bool, error) - - ClusterServiceBrokersQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.ClusterServiceBroker, error) - ClusterServiceBrokerQuery(ctx context.Context, name string) (*gqlschema.ClusterServiceBroker, error) - ClusterServiceBrokerEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterServiceBrokerEvent, error) - - ServiceBrokersQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceBroker, error) - ServiceBrokerQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceBroker, error) - ServiceBrokerEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBrokerEvent, error) - - CreateServiceBindingMutation(ctx context.Context, serviceBindingName *string, serviceInstanceName, env string, parameters gqlschema.JSON) (*gqlschema.CreateServiceBindingOutput, error) - DeleteServiceBindingMutation(ctx context.Context, serviceBindingName, env string) (*gqlschema.DeleteServiceBindingOutput, error) - ServiceBindingQuery(ctx context.Context, name, env string) (*gqlschema.ServiceBinding, error) - ServiceBindingsToInstanceQuery(ctx context.Context, instanceName, namespace string) (*gqlschema.ServiceBindings, error) - ServiceBindingEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceBindingEvent, error) -} - -type domainResolver struct { - *clusterServiceClassResolver - *serviceClassResolver - *ClusterServicePlanResolver - *ServicePlanResolver - *serviceInstanceResolver - *clusterServiceBrokerResolver - *serviceBrokerResolver - *serviceBindingResolver -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/servicecatalog_test.go b/components/console-backend-service/internal/domain/servicecatalog/servicecatalog_test.go deleted file mode 100644 index dfc811259d85..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/servicecatalog_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package servicecatalog_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "k8s.io/client-go/rest" -) - -const testTimes = 3 -const informerResyncPeriod = 10 * time.Second - -func TestPluggableContainer(t *testing.T) { - pluggable, err := servicecatalog.New(&rest.Config{}, informerResyncPeriod, nil) - require.NoError(t, err) - - pluggable.SetFakeClient() - - for i := 0; i < testTimes; i++ { - require.NotPanics(t, func() { - err := pluggable.Enable() - require.NoError(t, err) - <-pluggable.Pluggable.SyncCh - - checkExportedFields(t, pluggable, true) - }) - require.NotPanics(t, func() { - err := pluggable.Disable() - require.NoError(t, err) - - checkExportedFields(t, pluggable, false) - }) - } -} - -func checkExportedFields(t *testing.T, resolver *servicecatalog.PluggableContainer, enabled bool) { - assert.NotNil(t, resolver.Resolver) - require.NotNil(t, resolver.ServiceCatalogRetriever) - assert.NotNil(t, resolver.ServiceCatalogRetriever.ServiceBindingFinderLister) - - ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) - defer cancel() - val, err := resolver.Resolver.ClusterServiceClassesQuery(ctx, nil, nil) - if enabled { - require.NoError(t, err) - } else { - require.Error(t, err) - require.Nil(t, val) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_converter.go b/components/console-backend-service/internal/domain/servicecatalog/serviceclass_converter.go deleted file mode 100644 index 930010c36fa5..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_converter.go +++ /dev/null @@ -1,71 +0,0 @@ -package servicecatalog - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" -) - -type serviceClassConverter struct{} - -func (c *serviceClassConverter) ToGQL(in *v1beta1.ServiceClass) (*gqlschema.ServiceClass, error) { - if in == nil { - return nil, nil - } - - var externalMetadata map[string]interface{} - var err error - if in.Spec.ExternalMetadata != nil { - externalMetadata, err = resource.ExtractRawToMap("ExternalMetadata", in.Spec.ExternalMetadata.Raw) - if err != nil { - return nil, errors.Wrapf(err, "while converting externalMetadata for ServiceClass `%s`", in.Name) - } - } - - providerDisplayName := resource.ToStringPtr(externalMetadata["providerDisplayName"]) - imageURL := resource.ToStringPtr(externalMetadata["imageUrl"]) - documentationURL := resource.ToStringPtr(externalMetadata["documentationUrl"]) - supportURL := resource.ToStringPtr(externalMetadata["supportUrl"]) - displayName := resource.ToStringPtr(externalMetadata["displayName"]) - longDescription := resource.ToStringPtr(externalMetadata["longDescription"]) - - labels := gqlschema.Labels{} - err = labels.UnmarshalGQL(externalMetadata["labels"]) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling labels in ServiceClass `%s`", in.Name) - } - - class := gqlschema.ServiceClass{ - Name: in.Name, - Namespace: in.Namespace, - ExternalName: in.Spec.ExternalName, - DisplayName: displayName, - Description: in.Spec.Description, - LongDescription: longDescription, - ProviderDisplayName: providerDisplayName, - ImageURL: imageURL, - DocumentationURL: documentationURL, - SupportURL: supportURL, - CreationTimestamp: in.CreationTimestamp.Time, - Tags: in.Spec.Tags, - Labels: labels, - } - - return &class, nil -} - -func (c *serviceClassConverter) ToGQLs(in []*v1beta1.ServiceClass) ([]*gqlschema.ServiceClass, error) { - var result []*gqlschema.ServiceClass - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceclass_converter_test.go deleted file mode 100644 index 3e17917541a9..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_converter_test.go +++ /dev/null @@ -1,205 +0,0 @@ -package servicecatalog - -import ( - "encoding/json" - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" -) - -func TestServiceClassConverter_ToGQL(t *testing.T) { - var mockTimeStamp metav1.Time - var zeroTimeStamp time.Time - t.Run("All properties are given", func(t *testing.T) { - converter := serviceClassConverter{} - - labels := gqlschema.Labels{ - "connected-app": "exampleConnectedApp", - "local": "true", - "showcase": "false", - } - maps := map[string]interface{}{ - "displayName": "exampleDisplayName", - "providerDisplayName": "exampleProviderName", - "imageUrl": "exampleImageURL", - "documentationUrl": "exampleDocumentationURL", - "longDescription": "exampleLongDescription", - "supportUrl": "exampleSupportURL", - "labels": labels, - } - - byteMaps, err := json.Marshal(maps) - item := v1beta1.ServiceClass{ - Spec: v1beta1.ServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: byteMaps}, - ExternalName: "ExampleExternalName", - Tags: []string{"tag1", "tag2"}, - Description: "ExampleDescription", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Namespace: "exampleNamespace", - UID: types.UID("exampleUid"), - CreationTimestamp: mockTimeStamp, - ResourceVersion: "exampleVersion", - }, - } - - providerDisplayName := "exampleProviderName" - imageURL := "exampleImageURL" - documentationURL := "exampleDocumentationURL" - supportURL := "exampleSupportURL" - displayName := "exampleDisplayName" - longDescription := "exampleLongDescription" - expected := gqlschema.ServiceClass{ - Name: "exampleName", - Namespace: "exampleNamespace", - ExternalName: "ExampleExternalName", - DisplayName: &displayName, - Description: "ExampleDescription", - LongDescription: &longDescription, - ProviderDisplayName: &providerDisplayName, - ImageURL: &imageURL, - DocumentationURL: &documentationURL, - SupportURL: &supportURL, - CreationTimestamp: zeroTimeStamp, - Tags: []string{"tag1", "tag2"}, - Labels: labels, - } - - result, err := converter.ToGQL(&item) - - assert.Equal(t, err, nil) - assert.Equal(t, &expected, result) - }) - - t.Run("Invalid externalMetadata (not equals to maps[string]string)", func(t *testing.T) { - converter := serviceClassConverter{} - maps := "randomString" - byteMaps, err := json.Marshal(maps) - item := v1beta1.ServiceClass{ - Spec: v1beta1.ServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: byteMaps}, - ExternalName: "ExampleExternalName", - Tags: []string{"tag1", "tag2"}, - Description: "ExampleDescription", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - UID: types.UID("exampleUid"), - CreationTimestamp: mockTimeStamp, - ResourceVersion: "exampleVersion", - }, - } - - _, err = converter.ToGQL(&item) - - assert.Error(t, err) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &serviceClassConverter{} - _, err := converter.ToGQL(&v1beta1.ServiceClass{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &serviceClassConverter{} - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestServiceClassConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - classes := []*v1beta1.ServiceClass{ - fixServiceClass(t), - fixServiceClass(t), - } - - converter := serviceClassConverter{} - result, err := converter.ToGQLs(classes) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "exampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var classes []*v1beta1.ServiceClass - - converter := serviceClassConverter{} - result, err := converter.ToGQLs(classes) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - classes := []*v1beta1.ServiceClass{ - nil, - fixServiceClass(t), - nil, - } - - converter := serviceClassConverter{} - result, err := converter.ToGQLs(classes) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "exampleName", result[0].Name) - }) -} - -func fixServiceClass(t require.TestingT) *v1beta1.ServiceClass { - var mockTimeStamp metav1.Time - - labels := gqlschema.Labels{ - "connected-app": "exampleConnectedApp", - "local": "true", - "showcase": "false", - } - maps := map[string]interface{}{ - "displayName": "exampleDisplayName", - "providerDisplayName": "exampleProviderName", - "imageUrl": "exampleImageURL", - "documentationUrl": "exampleDocumentationURL", - "longDescription": "exampleLongDescription", - "supportUrl": "exampleSupportURL", - "labels": labels, - } - - byteMaps, err := json.Marshal(maps) - require.NoError(t, err) - - return &v1beta1.ServiceClass{ - Spec: v1beta1.ServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: byteMaps}, - ExternalName: "ExampleExternalName", - Tags: []string{"tag1", "tag2"}, - Description: "ExampleDescription", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Namespace: "exampleNamespace", - UID: types.UID("exampleUid"), - CreationTimestamp: mockTimeStamp, - ResourceVersion: "exampleVersion", - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/serviceclass_resolver.go deleted file mode 100644 index 82b747b3f44c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_resolver.go +++ /dev/null @@ -1,201 +0,0 @@ -package servicecatalog - -import ( - "context" - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - - "github.com/golang/glog" - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - rafterPretty "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" -) - -//go:generate mockery -name=serviceClassListGetter -output=automock -outpkg=automock -case=underscore -type serviceClassListGetter interface { - serviceClassGetter - List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceClass, error) -} - -//go:generate mockery -name=gqlServiceClassConverter -output=automock -outpkg=automock -case=underscore -type gqlServiceClassConverter interface { - ToGQL(in *v1beta1.ServiceClass) (*gqlschema.ServiceClass, error) - ToGQLs(in []*v1beta1.ServiceClass) ([]*gqlschema.ServiceClass, error) -} - -//go:generate mockery -name=servicePlanLister -output=automock -outpkg=automock -case=underscore -type servicePlanLister interface { - ListForServiceClass(name string, namespace string) ([]*v1beta1.ServicePlan, error) -} - -//go:generate mockery -name=instanceListerByServiceClass -output=automock -outpkg=automock -case=underscore -type instanceListerByServiceClass interface { - ListForServiceClass(className, externalClassName string, namespace string) ([]*v1beta1.ServiceInstance, error) -} - -type serviceClassResolver struct { - classLister serviceClassListGetter - planLister servicePlanLister - instanceLister instanceListerByServiceClass - rafterRetriever shared.RafterRetriever - classConverter gqlServiceClassConverter - instanceConverter gqlServiceInstanceConverter - planConverter gqlServicePlanConverter -} - -func newServiceClassResolver(classLister serviceClassListGetter, planLister servicePlanLister, instanceLister instanceListerByServiceClass, rafterRetriever shared.RafterRetriever) *serviceClassResolver { - return &serviceClassResolver{ - classLister: classLister, - planLister: planLister, - instanceLister: instanceLister, - rafterRetriever: rafterRetriever, - classConverter: &serviceClassConverter{}, - planConverter: &servicePlanConverter{}, - instanceConverter: &serviceInstanceConverter{}, - } -} -func (r *serviceClassResolver) ServiceClassQuery(ctx context.Context, name, namespace string) (*gqlschema.ServiceClass, error) { - serviceClass, err := r.classLister.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s with name %s", pretty.ServiceClass, name)) - return nil, gqlerror.New(err, pretty.ServiceClass, gqlerror.WithName(name)) - } - if serviceClass == nil { - return nil, nil - } - - result, err := r.classConverter.ToGQL(serviceClass) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting to %s type", pretty.ServiceClass)) - return nil, gqlerror.New(err, pretty.ServiceClass, gqlerror.WithName(name)) - } - - return result, nil -} - -func (r *serviceClassResolver) ServiceClassesQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.ServiceClass, error) { - items, err := r.classLister.List(namespace, pager.PagingParams{ - First: first, - Offset: offset, - }) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.ServiceClasses)) - return nil, gqlerror.New(err, pretty.ServiceClasses) - } - - serviceClasses, err := r.classConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceClasses)) - return nil, gqlerror.New(err, pretty.ServiceClasses) - } - - return serviceClasses, nil -} - -func (r *serviceClassResolver) ServiceClassPlansField(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServicePlan, error) { - if obj == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve %s for class"), pretty.ServiceClass, pretty.ServicePlans) - return nil, gqlerror.NewInternal() - } - - items, err := r.planLister.ListForServiceClass(obj.Name, obj.Namespace) - if err != nil { - glog.Error(errors.Wrap(err, "while getting %s"), pretty.ServicePlans) - return nil, gqlerror.New(err, pretty.ServicePlans) - } - - convertedPlans, err := r.planConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServicePlans)) - return nil, gqlerror.New(err, pretty.ServicePlans) - } - - return convertedPlans, nil -} - -func (r *serviceClassResolver) ServiceClassInstancesField(ctx context.Context, obj *gqlschema.ServiceClass) ([]*gqlschema.ServiceInstance, error) { - - if obj == nil { - glog.Error(fmt.Errorf("%s cannot be empty in order to resolve activated field", pretty.ServiceClass)) - return nil, gqlerror.NewInternal() - } - - items, err := r.instanceLister.ListForServiceClass(obj.Name, obj.ExternalName, obj.Namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for %s %s", pretty.ServiceInstances, pretty.ServiceClass, obj.Name)) - return nil, gqlerror.New(err, pretty.ServiceInstances) - } - - instances, err := r.instanceConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceInstance)) - return nil, gqlerror.New(err, pretty.ServiceInstance) - } - - return instances, nil -} - -func (r *serviceClassResolver) ServiceClassActivatedField(ctx context.Context, obj *gqlschema.ServiceClass) (bool, error) { - instances, err := r.ServiceClassInstancesField(ctx, obj) - if err != nil { - return false, err - } - - return len(instances) > 0, nil -} - -func (r *serviceClassResolver) ServiceClassClusterAssetGroupField(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.ClusterAssetGroup, error) { - if obj == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve `clusterAssetGroup` field"), pretty.ServiceClass) - return nil, gqlerror.NewInternal() - } - - item, err := r.rafterRetriever.ClusterAssetGroup().Find(obj.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", rafterPretty.ClusterAssetGroup, pretty.ServiceClass, obj.Name)) - return nil, gqlerror.New(err, rafterPretty.ClusterAssetGroup) - } - - clusterAssetGroup, err := r.rafterRetriever.ClusterAssetGroupConverter().ToGQL(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", rafterPretty.ClusterAssetGroup)) - return nil, gqlerror.New(err, rafterPretty.ClusterAssetGroup) - } - - return clusterAssetGroup, nil -} - -func (r *serviceClassResolver) ServiceClassAssetGroupField(ctx context.Context, obj *gqlschema.ServiceClass) (*gqlschema.AssetGroup, error) { - if obj == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve `assetGroup` field"), pretty.ServiceClass) - return nil, gqlerror.NewInternal() - } - - item, err := r.rafterRetriever.AssetGroup().Find(obj.Namespace, obj.Name) - if err != nil { - if module.IsDisabledModuleError(err) { - return nil, err - } - glog.Error(errors.Wrapf(err, "while gathering %s for %s %s", rafterPretty.AssetGroup, pretty.ServiceClass, obj.Name)) - return nil, gqlerror.New(err, rafterPretty.AssetGroup) - } - - assetGroup, err := r.rafterRetriever.AssetGroupConverter().ToGQL(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", rafterPretty.AssetGroup)) - return nil, gqlerror.New(err, rafterPretty.AssetGroup) - } - - return assetGroup, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceclass_resolver_test.go deleted file mode 100644 index 28aa32d09caf..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_resolver_test.go +++ /dev/null @@ -1,576 +0,0 @@ -package servicecatalog_test - -import ( - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/automock" - mock "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - rafterV1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClassResolver_ServiceClassQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "name" - ns := "ns" - expected := &gqlschema.ServiceClass{ - Name: "Test", - } - resource := &v1beta1.ServiceClass{} - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("Find", name, ns).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLServiceClassConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceClassResolver(resourceGetter, nil, nil, nil) - resolver.SetClassConverter(converter) - - result, err := resolver.ServiceClassQuery(nil, name, ns) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - ns := "ns" - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("Find", name, ns).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceClassResolver(resourceGetter, nil, nil, nil) - - result, err := resolver.ServiceClassQuery(nil, name, ns) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - name := "name" - ns := "ns" - expected := errors.New("Test") - resource := &v1beta1.ServiceClass{} - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("Find", name, ns).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceClassResolver(resourceGetter, nil, nil, nil) - - result, err := resolver.ServiceClassQuery(nil, name, ns) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClassResolver_ServiceClassesQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ns := "ns" - resource := - &v1beta1.ServiceClass{ - ObjectMeta: v1.ObjectMeta{ - Name: "test", - }, - } - resources := []*v1beta1.ServiceClass{ - resource, resource, - } - expected := []*gqlschema.ServiceClass{ - { - Name: "Test", - }, { - Name: "Test", - }, - } - - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("List", ns, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLServiceClassConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceClassResolver(resourceGetter, nil, nil, nil) - resolver.SetClassConverter(converter) - - result, err := resolver.ServiceClassesQuery(nil, ns, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - ns := "ns" - var resources []*v1beta1.ServiceClass - - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("List", ns, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewServiceClassResolver(resourceGetter, nil, nil, nil) - var expected []*gqlschema.ServiceClass - - result, err := resolver.ServiceClassesQuery(nil, ns, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - ns := "ns" - expected := errors.New("Test") - - var resources []*v1beta1.ServiceClass - - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("List", ns, pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewServiceClassResolver(resourceGetter, nil, nil, nil) - - _, err := resolver.ServiceClassesQuery(nil, ns, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestClassResolver_ServiceClassInstancesField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ns := "ns" - name := "name" - externalName := "externalName" - resources := []*v1beta1.ServiceInstance{ - fixServiceInstance("foo", "ns"), - fixServiceInstance("bar", "ns"), - } - expected := []gqlschema.ServiceInstance{ - {Name: "foo", Namespace: ns}, - {Name: "bar", Namespace: ns}, - } - - resourceGetter := automock.NewInstanceListerByServiceClass() - resourceGetter.On("ListForServiceClass", name, externalName, ns).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: externalName, - Namespace: ns, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ServiceClassInstancesField(nil, &parentObj) - - require.NoError(t, err) - assert.Len(t, result, len(expected)) - for idx, e := range expected { - assert.Equal(t, e.Name, result[idx].Name) - assert.Equal(t, e.Namespace, result[idx].Namespace) - } - }) - - t.Run("NotFound", func(t *testing.T) { - ns := "ns" - name := "name" - externalName := "externalName" - var expected []*gqlschema.ServiceInstance - resourceGetter := automock.NewInstanceListerByServiceClass() - resourceGetter.On("ListForServiceClass", name, externalName, ns).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := &gqlschema.ServiceClass{ - Name: name, - ExternalName: externalName, - Namespace: ns, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ServiceClassInstancesField(nil, parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - ns := "ns" - expectedErr := errors.New("Test") - name := "name" - externalName := "externalName" - resourceGetter := automock.NewInstanceListerByServiceClass() - resourceGetter.On("ListForServiceClass", name, externalName, ns).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: externalName, - Namespace: ns, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, resourceGetter, nil) - - _, err := resolver.ServiceClassInstancesField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestClassResolver_ServiceClassActivatedField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ns := "ns" - name := "name" - externalName := "externalName" - resources := []*v1beta1.ServiceInstance{{}, {}} - resourceGetter := automock.NewInstanceListerByServiceClass() - resourceGetter.On("ListForServiceClass", name, externalName, ns).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: externalName, - Namespace: ns, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ServiceClassActivatedField(nil, &parentObj) - - require.NoError(t, err) - assert.True(t, result) - }) - - t.Run("NotFound", func(t *testing.T) { - ns := "ns" - name := "name" - externalName := "externalName" - resourceGetter := automock.NewInstanceListerByServiceClass() - resourceGetter.On("ListForServiceClass", name, externalName, ns).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := &gqlschema.ServiceClass{ - Name: name, - ExternalName: externalName, - Namespace: ns, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, resourceGetter, nil) - - result, err := resolver.ServiceClassActivatedField(nil, parentObj) - - require.NoError(t, err) - assert.False(t, result) - }) - - t.Run("Error", func(t *testing.T) { - ns := "ns" - expectedErr := errors.New("Test") - name := "name" - externalName := "externalName" - resourceGetter := automock.NewInstanceListerByServiceClass() - resourceGetter.On("ListForServiceClass", name, externalName, ns).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: externalName, - Namespace: ns, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, resourceGetter, nil) - - _, err := resolver.ServiceClassActivatedField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestClassResolver_ServiceClassPlansField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ns := "ns" - expectedSingleObj := &gqlschema.ServicePlan{ - Name: "Test", - } - expected := []*gqlschema.ServicePlan{ - expectedSingleObj, - expectedSingleObj, - } - - name := "name" - resource := v1beta1.ServicePlan{} - resources := []*v1beta1.ServicePlan{ - &resource, - &resource, - } - resourceGetter := automock.NewServicePlanLister() - resourceGetter.On("ListForServiceClass", name, ns).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLServicePlanConverter() - converter.On("ToGQLs", resources).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - parentObj := gqlschema.ServiceClass{ - Name: name, - Namespace: ns, - } - resolver := servicecatalog.NewServiceClassResolver(nil, resourceGetter, nil, nil) - resolver.SetPlanConverter(converter) - - result, err := resolver.ServiceClassPlansField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - ns := "ns" - name := "name" - resourceGetter := automock.NewServicePlanLister() - resourceGetter.On("ListForServiceClass", name, ns).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceClass{ - Name: name, - Namespace: ns, - } - resolver := servicecatalog.NewServiceClassResolver(nil, resourceGetter, nil, nil) - - result, err := resolver.ServiceClassPlansField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - ns := "ns" - expectedErr := errors.New("Test") - name := "name" - resourceGetter := automock.NewServicePlanLister() - resourceGetter.On("ListForServiceClass", name, ns).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceClass{ - Name: name, - Namespace: ns, - } - resolver := servicecatalog.NewServiceClassResolver(nil, resourceGetter, nil, nil) - - result, err := resolver.ServiceClassPlansField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClassResolver_ServiceClassClusterAssetGroupField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "name" - namespace := "namespace" - resources := &rafterV1beta1.ClusterAssetGroup{ - ObjectMeta: v1.ObjectMeta{ - Name: name, - }, - } - expected := &gqlschema.ClusterAssetGroup{ - Name: name, - } - - resourceGetter := new(mock.ClusterAssetGroupGetter) - resourceGetter.On("Find", name).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := new(mock.GqlClusterAssetGroupConverter) - converter.On("ToGQL", resources).Return(expected, nil).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("ClusterAssetGroup").Return(resourceGetter) - retriever.On("ClusterAssetGroupConverter").Return(converter) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: name, - Namespace: namespace, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ServiceClassClusterAssetGroupField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - namespace := "namespace" - - resourceGetter := new(mock.ClusterAssetGroupGetter) - resourceGetter.On("Find", name).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := new(mock.GqlClusterAssetGroupConverter) - converter.On("ToGQL", (*rafterV1beta1.ClusterAssetGroup)(nil)).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("ClusterAssetGroup").Return(resourceGetter) - retriever.On("ClusterAssetGroupConverter").Return(converter) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: name, - Namespace: namespace, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ServiceClassClusterAssetGroupField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - name := "name" - namespace := "namespace" - - resourceGetter := new(mock.ClusterAssetGroupGetter) - resourceGetter.On("Find", name).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("ClusterAssetGroup").Return(resourceGetter) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: name, - Namespace: namespace, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ServiceClassClusterAssetGroupField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestClassResolver_ServiceClassAssetGroupField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "name" - namespace := "namespace" - resources := &rafterV1beta1.AssetGroup{ - ObjectMeta: v1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - } - expected := &gqlschema.AssetGroup{ - Name: name, - Namespace: namespace, - } - - resourceGetter := new(mock.AssetGroupGetter) - resourceGetter.On("Find", namespace, name).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := new(mock.GqlAssetGroupConverter) - converter.On("ToGQL", resources).Return(expected, nil).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("AssetGroup").Return(resourceGetter) - retriever.On("AssetGroupConverter").Return(converter) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: name, - Namespace: namespace, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ServiceClassAssetGroupField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - namespace := "namespace" - - resourceGetter := new(mock.AssetGroupGetter) - resourceGetter.On("Find", namespace, name).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := new(mock.GqlAssetGroupConverter) - converter.On("ToGQL", (*rafterV1beta1.AssetGroup)(nil)).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("AssetGroup").Return(resourceGetter) - retriever.On("AssetGroupConverter").Return(converter) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: name, - Namespace: namespace, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ServiceClassAssetGroupField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - name := "name" - namespace := "namespace" - - resourceGetter := new(mock.AssetGroupGetter) - resourceGetter.On("Find", namespace, name).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - retriever := new(mock.RafterRetriever) - retriever.On("AssetGroup").Return(resourceGetter) - - parentObj := gqlschema.ServiceClass{ - Name: name, - ExternalName: name, - Namespace: namespace, - } - - resolver := servicecatalog.NewServiceClassResolver(nil, nil, nil, retriever) - - result, err := resolver.ServiceClassAssetGroupField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_service.go b/components/console-backend-service/internal/domain/servicecatalog/serviceclass_service.go deleted file mode 100644 index 6768ad04c552..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_service.go +++ /dev/null @@ -1,92 +0,0 @@ -package servicecatalog - -import ( - "fmt" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" - "k8s.io/client-go/tools/cache" -) - -type serviceClassService struct { - informer cache.SharedIndexInformer -} - -func newServiceClassService(informer cache.SharedIndexInformer) (*serviceClassService, error) { - err := informer.AddIndexers(cache.Indexers{ - "externalName": func(obj interface{}) ([]string, error) { - entity, ok := obj.(*v1beta1.ServiceClass) - if !ok { - return nil, errors.New("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s", entity.Namespace, entity.Spec.ExternalName)}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - return &serviceClassService{ - informer: informer, - }, nil -} - -func (svc *serviceClassService) Find(name, namespace string) (*v1beta1.ServiceClass, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - serviceClass, ok := item.(*v1beta1.ServiceClass) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceClass", item) - } - - return serviceClass, nil -} - -func (svc *serviceClassService) FindByExternalName(externalName, namespace string) (*v1beta1.ServiceClass, error) { - key := fmt.Sprintf("%s/%s", namespace, externalName) - items, err := svc.informer.GetIndexer().ByIndex("externalName", key) - if err != nil { - return nil, err - } - - if len(items) == 0 { - return nil, nil - } - - if len(items) > 1 { - return nil, fmt.Errorf("Multiple ServiceClass resources with the same externalName %s", externalName) - } - - item := items[0] - serviceClass, ok := item.(*v1beta1.ServiceClass) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceClass", item) - } - - return serviceClass, nil -} - -func (svc *serviceClassService) List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceClass, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - var serviceClasses []*v1beta1.ServiceClass - for _, item := range items { - serviceClass, ok := item.(*v1beta1.ServiceClass) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceClass", item) - } - - serviceClasses = append(serviceClasses, serviceClass) - } - - return serviceClasses, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceclass_service_test.go deleted file mode 100644 index 938f0743a93f..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceclass_service_test.go +++ /dev/null @@ -1,172 +0,0 @@ -package servicecatalog_test - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestServiceClassService_GetServiceClass(t *testing.T) { - t.Run("Success", func(t *testing.T) { - nsName := "ns" - className := "testExample" - serviceClass := fixServiceClass(className, className, nsName) - client := fake.NewSimpleClientset(serviceClass) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer() - - svc, err := servicecatalog.NewServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.Find(className, nsName) - require.NoError(t, err) - assert.Equal(t, serviceClass, class) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer() - - svc, err := servicecatalog.NewServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.Find("doesntExist", "ns") - - require.NoError(t, err) - assert.Nil(t, class) - }) -} - -func TestServiceClassService_FindByExternalName(t *testing.T) { - t.Run("Success", func(t *testing.T) { - className := "testExample" - externalName := "testExternal" - nsName := "exampleNs" - serviceClass := fixServiceClass(className, externalName, nsName) - client := fake.NewSimpleClientset(serviceClass) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer() - - svc, err := servicecatalog.NewServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.FindByExternalName(externalName, nsName) - require.NoError(t, err) - assert.Equal(t, serviceClass, class) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer() - - svc, err := servicecatalog.NewServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - class, err := svc.FindByExternalName("doesntExist", "ns") - - require.NoError(t, err) - assert.Nil(t, class) - }) - - t.Run("Error", func(t *testing.T) { - nsName := "ns" - externalName := "duplicateName" - client := fake.NewSimpleClientset( - fixServiceClass("1", externalName, nsName), - fixServiceClass("2", externalName, nsName), - fixServiceClass("3", externalName, nsName), - ) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer() - - svc, err := servicecatalog.NewServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - _, err = svc.FindByExternalName(externalName, nsName) - - assert.Error(t, err) - }) -} - -func TestServiceClassService_ListServiceClasses(t *testing.T) { - t.Run("Success", func(t *testing.T) { - nsName := "exampleNs" - serviceClass1 := fixServiceClass("1", "1", nsName) - serviceClass2 := fixServiceClass("2", "2", nsName) - serviceClass3 := fixServiceClass("3", "3", nsName) - client := fake.NewSimpleClientset(serviceClass1, serviceClass2, serviceClass3) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer() - - svc, err := servicecatalog.NewServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - classes, err := svc.List(nsName, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1beta1.ServiceClass{ - serviceClass1, serviceClass2, serviceClass3, - }, classes) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceClassInformer := informerFactory.Servicecatalog().V1beta1().ServiceClasses().Informer() - - svc, err := servicecatalog.NewServiceClassService(serviceClassInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceClassInformer) - - var emptyArray []*v1beta1.ServiceClass - classes, err := svc.List("ns", pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, classes) - }) -} - -func fixServiceClass(name, externalName, namespace string) *v1beta1.ServiceClass { - class := v1beta1.ServiceClass{ - Spec: v1beta1.ServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - ExternalName: externalName, - Tags: []string{"tag1", "tag2"}, - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - } - return &class -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_converter.go b/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_converter.go deleted file mode 100644 index 8739ef4ebcca..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_converter.go +++ /dev/null @@ -1,235 +0,0 @@ -package servicecatalog - -import ( - "fmt" - "strings" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime" -) - -type serviceInstanceConverter struct { - extractor status.InstanceExtractor -} - -func (c *serviceInstanceConverter) ToGQL(in *v1beta1.ServiceInstance) (*gqlschema.ServiceInstance, error) { - if in == nil { - return nil, nil - } - - instanceLabels := c.extractLabels(in) - servicePlanSpec, err := c.extractServicePlanSpec(in.Spec.Parameters) - if err != nil { - return nil, errors.Wrapf(err, "while converting servicePlanSpec for %s `%s`", pretty.ServiceInstance, in.Name) - } - - var planReference *gqlschema.ServiceInstanceResourceRef - - if in.Spec.ClusterServicePlanRef != nil { - - planReference = &gqlschema.ServiceInstanceResourceRef{ - Name: in.Spec.ClusterServicePlanRef.Name, - DisplayName: in.Spec.ClusterServicePlanExternalName, - ClusterWide: true, - } - - } else if in.Spec.ServicePlanRef != nil { - planReference = &gqlschema.ServiceInstanceResourceRef{ - Name: in.Spec.ServicePlanRef.Name, - DisplayName: in.Spec.ServicePlanExternalName, - ClusterWide: false, - } - } - - var classReference *gqlschema.ServiceInstanceResourceRef - - if in.Spec.ClusterServiceClassRef != nil { - classReference = &gqlschema.ServiceInstanceResourceRef{ - Name: in.Spec.ClusterServiceClassRef.Name, - DisplayName: in.Spec.ClusterServiceClassExternalName, - ClusterWide: true, - } - } else if in.Spec.ServiceClassRef != nil { - classReference = &gqlschema.ServiceInstanceResourceRef{ - Name: in.Spec.ServiceClassRef.Name, - DisplayName: in.Spec.ServiceClassExternalName, - ClusterWide: false, - } - } - - instance := gqlschema.ServiceInstance{ - Name: in.Name, - Namespace: in.Namespace, - PlanReference: planReference, - ClassReference: classReference, - PlanSpec: servicePlanSpec, - Labels: instanceLabels, - Status: c.ServiceStatusToGQLStatus(c.extractor.Status(*in)), - CreationTimestamp: in.CreationTimestamp.Time, - } - - return &instance, nil -} - -func (c *serviceInstanceConverter) ToGQLs(in []*v1beta1.ServiceInstance) ([]*gqlschema.ServiceInstance, error) { - var result []*gqlschema.ServiceInstance - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *serviceInstanceConverter) GQLCreateInputToInstanceCreateParameters(in *gqlschema.ServiceInstanceCreateInput, namespace string) *serviceInstanceCreateParameters { - if in == nil { - return nil - } - - var parameterSchema map[string]interface{} - if in.ParameterSchema != nil { - parameterSchema = in.ParameterSchema - } - - var labels []string - for _, label := range in.Labels { - labels = append(labels, label) - } - - parameters := serviceInstanceCreateParameters{ - Name: in.Name, - Namespace: namespace, - Labels: labels, - Schema: parameterSchema, - ClassRef: refFromGql(in.ClassRef), - PlanRef: refFromGql(in.PlanRef), - } - - return ¶meters -} - -func refFromGql(ref *gqlschema.ServiceInstanceCreateInputResourceRef) instanceCreateResourceRef { - if ref == nil { - return instanceCreateResourceRef{} - } - return instanceCreateResourceRef{ - ExternalName: ref.ExternalName, - ClusterWide: ref.ClusterWide, - } -} - -func (c *serviceInstanceConverter) ServiceStatusTypeToGQLStatusType(in status.ServiceInstanceStatusType) gqlschema.InstanceStatusType { - if &in == nil { - return "" - } - - switch in { - case status.ServiceInstanceStatusTypeRunning: - return gqlschema.InstanceStatusTypeRunning - case status.ServiceInstanceStatusTypeProvisioning: - return gqlschema.InstanceStatusTypeProvisioning - case status.ServiceInstanceStatusTypeDeprovisioning: - return gqlschema.InstanceStatusTypeDeprovisioning - case status.ServiceInstanceStatusTypeFailed: - return gqlschema.InstanceStatusTypeFailed - default: - return gqlschema.InstanceStatusTypePending - } -} - -func (c *serviceInstanceConverter) GQLStatusTypeToServiceStatusType(in gqlschema.InstanceStatusType) status.ServiceInstanceStatusType { - if &in == nil { - return "" - } - - switch in { - case gqlschema.InstanceStatusTypeRunning: - return status.ServiceInstanceStatusTypeRunning - case gqlschema.InstanceStatusTypeProvisioning: - return status.ServiceInstanceStatusTypeProvisioning - case gqlschema.InstanceStatusTypeDeprovisioning: - return status.ServiceInstanceStatusTypeDeprovisioning - case gqlschema.InstanceStatusTypeFailed: - return status.ServiceInstanceStatusTypeFailed - default: - return status.ServiceInstanceStatusTypePending - } -} - -func (c *serviceInstanceConverter) GQLStatusToServiceStatus(in *gqlschema.ServiceInstanceStatus) *status.ServiceInstanceStatus { - if in == nil { - return nil - } - - return &status.ServiceInstanceStatus{ - Type: c.GQLStatusTypeToServiceStatusType(in.Type), - Reason: in.Reason, - Message: in.Message, - } -} - -func (c *serviceInstanceConverter) ServiceStatusToGQLStatus(in status.ServiceInstanceStatus) gqlschema.ServiceInstanceStatus { - return gqlschema.ServiceInstanceStatus{ - Type: c.ServiceStatusTypeToGQLStatusType(in.Type), - Reason: in.Reason, - Message: in.Message, - } -} - -func (c *serviceInstanceConverter) extractLabels(in *v1beta1.ServiceInstance) []string { - if in == nil || len(in.Annotations["tags"]) == 0 { - return []string{} - } - - return strings.Split(in.Annotations["tags"], ",") -} - -func (c *serviceInstanceConverter) populateLabels(inputLabels interface{}) ([]string, error) { - if inputLabels == nil { - return []string{}, nil - } - - items, ok := inputLabels.([]interface{}) - if !ok { - return []string{}, fmt.Errorf("Incorrect items type %T: should be []interface{}", inputLabels) - } - - var labels []string - for _, item := range items { - label, ok := item.(string) - if !ok { - return []string{}, fmt.Errorf("Incorrect item type %T: should be string", inputLabels) - } - labels = append(labels, label) - } - - return labels, nil -} - -func (c *serviceInstanceConverter) extractServicePlanSpec(raw *runtime.RawExtension) (*gqlschema.JSON, error) { - if raw == nil { - return nil, nil - } - - extracted, err := resource.ExtractRawToMap("ServicePlanSpec", raw.Raw) - if err != nil { - return nil, err - } - - result := make(gqlschema.JSON) - for k, v := range extracted { - result[k] = v - } - - return &result, err -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_converter_test.go deleted file mode 100644 index a823ebb20c4f..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_converter_test.go +++ /dev/null @@ -1,402 +0,0 @@ -package servicecatalog - -import ( - "encoding/json" - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" -) - -func TestServiceInstanceConverter_ToGQL(t *testing.T) { - var mockTimeStamp metav1.Time - var zeroTimeStamp time.Time - t.Run("All properties are given", func(t *testing.T) { - converter := serviceInstanceConverter{} - parameterSchema := map[string]interface{}{ - "first": "1", - "second": map[string]interface{}{ - "value": "2", - }, - } - - parameterSchemaBytes, err := json.Marshal(parameterSchema) - require.NoError(t, err) - - parameterSchemaJSON := new(gqlschema.JSON) - err = parameterSchemaJSON.UnmarshalGQL(parameterSchema) - require.NoError(t, err) - - testClassName := "testClass" - testPlanName := "testPlan" - - in := v1beta1.ServiceInstance{ - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Namespace: "Namespace", - UID: types.UID("uid"), - CreationTimestamp: mockTimeStamp, - Annotations: map[string]string{ - "tags": "test1,test2", - }, - }, - Spec: v1beta1.ServiceInstanceSpec{ - ClusterServiceClassRef: &v1beta1.ClusterObjectReference{ - Name: testClassName, - }, - ClusterServicePlanRef: &v1beta1.ClusterObjectReference{ - Name: testPlanName, - }, - Parameters: &runtime.RawExtension{Raw: parameterSchemaBytes}, - }, - Status: v1beta1.ServiceInstanceStatus{ - AsyncOpInProgress: false, - Conditions: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionTrue, - Message: "Working", - Reason: "Testing", - }, - }, - }, - } - - expected := gqlschema.ServiceInstance{ - Name: "exampleName", - Namespace: "Namespace", - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: testClassName, - ClusterWide: true, - }, - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: testPlanName, - ClusterWide: true, - }, - PlanSpec: parameterSchemaJSON, - Labels: []string{"test1", "test2"}, - CreationTimestamp: zeroTimeStamp, - Status: gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypeRunning, - Reason: "Testing", - Message: "Working", - }, - } - - result, err := converter.ToGQL(&in) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Parameters not provided", func(t *testing.T) { - converter := serviceInstanceConverter{} - - in := v1beta1.ServiceInstance{ - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Namespace: "Namespace", - UID: types.UID("uid"), - CreationTimestamp: mockTimeStamp, - }, - Spec: v1beta1.ServiceInstanceSpec{ - ClusterServiceClassRef: &v1beta1.ClusterObjectReference{ - Name: "testClass", - }, - ClusterServicePlanRef: &v1beta1.ClusterObjectReference{ - Name: "testPlan", - }, - }, - Status: v1beta1.ServiceInstanceStatus{ - AsyncOpInProgress: false, - Conditions: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionTrue, - Message: "Working", - Reason: "Testing", - }, - }, - }, - } - - testClassName := "testClass" - testPlanName := "testPlan" - expected := gqlschema.ServiceInstance{ - Name: "exampleName", - Namespace: "Namespace", - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: testClassName, - ClusterWide: true, - }, - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: testPlanName, - ClusterWide: true, - }, - Labels: []string{}, - CreationTimestamp: zeroTimeStamp, - Status: gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypeRunning, - Reason: "Testing", - Message: "Working", - }, - } - - result, err := converter.ToGQL(&in) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &serviceInstanceConverter{} - item, err := converter.ToGQL(&v1beta1.ServiceInstance{}) - - expected := &gqlschema.ServiceInstance{ - Labels: []string{}, - Status: gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypePending, - }, - } - - require.NoError(t, err) - assert.Equal(t, expected, item) - }) - - t.Run("Empty properties", func(t *testing.T) { - converter := &serviceInstanceConverter{} - item, err := converter.ToGQL(&v1beta1.ServiceInstance{ - Status: v1beta1.ServiceInstanceStatus{ - InProgressProperties: &v1beta1.ServiceInstancePropertiesState{}, - ExternalProperties: &v1beta1.ServiceInstancePropertiesState{}, - }, - }) - - expected := &gqlschema.ServiceInstance{ - Labels: []string{}, - Status: gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypePending, - }, - } - - require.NoError(t, err) - assert.Equal(t, expected, item) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &serviceInstanceConverter{} - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestServiceInstanceConverter_GQLCreateInputToInstanceCreateParameters(t *testing.T) { - t.Run("Success", func(t *testing.T) { - JSON := gqlschema.JSON{ - "key1": "val1", - "key2": "val2", - } - input := gqlschema.ServiceInstanceCreateInput{ - Name: "name", - Labels: []string{"test", "label"}, - ParameterSchema: JSON, - ClassRef: &gqlschema.ServiceInstanceCreateInputResourceRef{ - ExternalName: "className", - ClusterWide: true, - }, - PlanRef: &gqlschema.ServiceInstanceCreateInputResourceRef{ - ExternalName: "planName", - ClusterWide: true, - }, - } - expected := &serviceInstanceCreateParameters{ - Name: "name", - Namespace: "ns", - Labels: []string{"test", "label"}, - Schema: JSON, - ClassRef: instanceCreateResourceRef{ - ExternalName: "className", - ClusterWide: true, - }, - PlanRef: instanceCreateResourceRef{ - ExternalName: "planName", - ClusterWide: true, - }, - } - converter := serviceInstanceConverter{} - - result := converter.GQLCreateInputToInstanceCreateParameters(&input, "ns") - - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := serviceInstanceConverter{} - result := converter.GQLCreateInputToInstanceCreateParameters(&gqlschema.ServiceInstanceCreateInput{}, "") - - assert.Empty(t, result) - }) - - t.Run("Nil", func(t *testing.T) { - converter := serviceInstanceConverter{} - result := converter.GQLCreateInputToInstanceCreateParameters(nil, "") - - assert.Nil(t, result) - }) -} - -func TestServiceInstanceConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instances := []*v1beta1.ServiceInstance{ - fixServiceInstance(t), - fixServiceInstance(t), - } - - converter := serviceInstanceConverter{} - result, err := converter.ToGQLs(instances) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "exampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var instances []*v1beta1.ServiceInstance - - converter := serviceInstanceConverter{} - result, err := converter.ToGQLs(instances) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - instances := []*v1beta1.ServiceInstance{ - nil, - fixServiceInstance(t), - nil, - } - - converter := serviceInstanceConverter{} - result, err := converter.ToGQLs(instances) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "exampleName", result[0].Name) - }) -} - -func TestServiceInstanceConverter_ServiceStatusToGQLStatus(t *testing.T) { - t.Run("Success", func(t *testing.T) { - s := status.ServiceInstanceStatus{ - Type: status.ServiceInstanceStatusTypeRunning, - Reason: "Testing", - Message: "Working", - } - expected := gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypeRunning, - Reason: "Testing", - Message: "Working", - } - - converter := serviceInstanceConverter{} - result := converter.ServiceStatusToGQLStatus(s) - - assert.Equal(t, expected, result) - }) -} - -func TestServiceInstanceConverter_GQLStatusToServiceStatus(t *testing.T) { - t.Run("Success", func(t *testing.T) { - s := gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypeRunning, - Reason: "Testing", - Message: "Working", - } - expected := status.ServiceInstanceStatus{ - Type: status.ServiceInstanceStatusTypeRunning, - Reason: "Testing", - Message: "Working", - } - - converter := serviceInstanceConverter{} - result := converter.GQLStatusToServiceStatus(&s) - - assert.Equal(t, &expected, result) - }) -} - -func TestServiceInstanceConverter_ServiceStatusToGQLStatusWithConvert(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instance := v1beta1.ServiceInstance{ - Status: v1beta1.ServiceInstanceStatus{ - AsyncOpInProgress: false, - Conditions: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionTrue, - Message: "Working", - Reason: "Testing", - }, - }, - }, - } - expected := gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypeRunning, - Reason: "Testing", - Message: "Working", - } - - converter := serviceInstanceConverter{} - result := converter.ServiceStatusToGQLStatus(converter.extractor.Status(instance)) - - assert.Equal(t, expected, result) - }) -} - -func fixServiceInstance(t require.TestingT) *v1beta1.ServiceInstance { - var mockTimeStamp metav1.Time - rawMap := map[string]interface{}{ - "labels": []string{"test1", "test2"}, - } - raw, err := json.Marshal(rawMap) - require.NoError(t, err) - - return &v1beta1.ServiceInstance{ - ObjectMeta: metav1.ObjectMeta{ - Name: "exampleName", - Namespace: "Namespace", - UID: types.UID("uid"), - CreationTimestamp: mockTimeStamp, - }, - Spec: v1beta1.ServiceInstanceSpec{ - ClusterServiceClassRef: &v1beta1.ClusterObjectReference{ - Name: "testClass", - }, - ClusterServicePlanRef: &v1beta1.ClusterObjectReference{ - Name: "testPlan", - }, - Parameters: &runtime.RawExtension{Raw: raw}, - }, - Status: v1beta1.ServiceInstanceStatus{ - AsyncOpInProgress: false, - Conditions: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionTrue, - Message: "Working", - Reason: "Testing", - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_resolver.go deleted file mode 100644 index 03e8d10c69fc..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_resolver.go +++ /dev/null @@ -1,422 +0,0 @@ -package servicecatalog - -import ( - "context" - "fmt" - - "github.com/golang/glog" - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/pkg/errors" -) - -//go:generate mockery -name=clusterServicePlanGetter -output=automock -outpkg=automock -case=underscore -type clusterServicePlanGetter interface { - Find(name string) (*v1beta1.ClusterServicePlan, error) - FindByExternalName(planExternalName, className string) (*v1beta1.ClusterServicePlan, error) -} - -//go:generate mockery -name=servicePlanGetter -output=automock -outpkg=automock -case=underscore -type servicePlanGetter interface { - Find(name, namespace string) (*v1beta1.ServicePlan, error) - FindByExternalName(planExternalName, className, namespace string) (*v1beta1.ServicePlan, error) -} - -type serviceInstanceResolver struct { - instanceSvc serviceInstanceSvc - clusterServicePlanGetter clusterServicePlanGetter - clusterServiceClassGetter clusterServiceClassGetter - servicePlanGetter servicePlanGetter - serviceClassGetter serviceClassGetter - instanceConverter gqlServiceInstanceConverter - clusterServiceClassConverter gqlClusterServiceClassConverter - clusterServicePlanConverter gqlClusterServicePlanConverter - serviceClassConverter gqlServiceClassConverter - servicePlanConverter gqlServicePlanConverter -} - -func newServiceInstanceResolver(instanceSvc serviceInstanceSvc, clusterServicePlanGetter clusterServicePlanGetter, clusterServiceClassGetter clusterServiceClassGetter, servicePlanGetter servicePlanGetter, serviceClassGetter serviceClassGetter) *serviceInstanceResolver { - return &serviceInstanceResolver{ - instanceSvc: instanceSvc, - clusterServicePlanGetter: clusterServicePlanGetter, - clusterServiceClassGetter: clusterServiceClassGetter, - servicePlanGetter: servicePlanGetter, - serviceClassGetter: serviceClassGetter, - instanceConverter: &serviceInstanceConverter{}, - clusterServiceClassConverter: &clusterServiceClassConverter{}, - clusterServicePlanConverter: &clusterServicePlanConverter{}, - serviceClassConverter: &serviceClassConverter{}, - servicePlanConverter: &servicePlanConverter{}, - } -} - -func (r *serviceInstanceResolver) CreateServiceInstanceMutation(ctx context.Context, namespace string, params gqlschema.ServiceInstanceCreateInput) (*gqlschema.ServiceInstance, error) { - parameters := r.instanceConverter.GQLCreateInputToInstanceCreateParameters(¶ms, namespace) - item, err := r.instanceSvc.Create(*parameters) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s `%s` in namespace `%s`", pretty.ServiceInstance, params.Name, namespace)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(params.Name), gqlerror.WithNamespace(namespace)) - } - - // ServicePlan and ServiceClass references are empty just after the resource has been created - // Adding these references manually, because they are needed to resolve all Service Instance fields - - var clusterServiceClass *v1beta1.ClusterServiceClass - var serviceClass *v1beta1.ServiceClass - - if parameters.ClassRef.ClusterWide { - clusterServiceClass, err = r.clusterServiceClassGetter.FindByExternalName(parameters.ClassRef.ExternalName) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for externalName `%s`", pretty.ClusterServiceClass, parameters.ClassRef.ExternalName)) - return nil, gqlerror.New(err, pretty.ClusterServiceClass, gqlerror.WithCustomArgument("externalName", parameters.ClassRef.ExternalName)) - } - if clusterServiceClass == nil { - glog.Error(fmt.Errorf("cannot find %s with externalName `%s`", pretty.ClusterServiceClass, parameters.ClassRef.ExternalName)) - return nil, gqlerror.NewNotFound(pretty.ClusterServiceClass, gqlerror.WithCustomArgument("externalName", parameters.ClassRef.ExternalName)) - } - } else { - serviceClass, err = r.serviceClassGetter.FindByExternalName(parameters.ClassRef.ExternalName, parameters.Namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for externalName `%s`", pretty.ServiceClass, parameters.ClassRef.ExternalName)) - return nil, gqlerror.New(err, pretty.ServiceClass, gqlerror.WithCustomArgument("externalName", parameters.ClassRef.ExternalName)) - } - if serviceClass == nil { - glog.Error(fmt.Errorf("cannot find %s with externalName `%s`", pretty.ServiceClass, parameters.ClassRef.ExternalName)) - return nil, gqlerror.NewNotFound(pretty.ServiceClass, gqlerror.WithCustomArgument("externalName", parameters.ClassRef.ExternalName)) - } - } - - var clusterServicePlan *v1beta1.ClusterServicePlan - var servicePlan *v1beta1.ServicePlan - - if parameters.PlanRef.ClusterWide { - clusterServicePlan, err = r.clusterServicePlanGetter.FindByExternalName(parameters.PlanRef.ExternalName, clusterServiceClass.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for externalName `%s` for %s `%s`", pretty.ClusterServicePlan, parameters.PlanRef.ExternalName, pretty.ClusterServiceClass, clusterServiceClass.Name)) - return nil, gqlerror.New(err, pretty.ClusterServicePlan, gqlerror.WithCustomArgument("externalName", parameters.PlanRef.ExternalName)) - } - if clusterServicePlan == nil { - glog.Error(fmt.Errorf("cannot find %s with externalName `%s`", pretty.ClusterServicePlan, parameters.PlanRef.ExternalName)) - return nil, gqlerror.NewNotFound(pretty.ClusterServicePlan, gqlerror.WithCustomArgument("externalName", parameters.PlanRef.ExternalName)) - } - } else { - servicePlan, err = r.servicePlanGetter.FindByExternalName(parameters.PlanRef.ExternalName, serviceClass.Name, parameters.Namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for externalName `%s` for %s `%s`", pretty.ServicePlan, parameters.PlanRef.ExternalName, pretty.ServiceClass, serviceClass.Name)) - return nil, gqlerror.New(err, pretty.ServicePlan, gqlerror.WithCustomArgument("externalName", parameters.PlanRef.ExternalName)) - } - if servicePlan == nil { - glog.Error(fmt.Errorf("cannot find %s with externalName `%s`", pretty.ServicePlan, parameters.PlanRef.ExternalName)) - return nil, gqlerror.NewNotFound(pretty.ServicePlan, gqlerror.WithCustomArgument("externalName", parameters.PlanRef.ExternalName)) - } - } - - instanceCopy := item.DeepCopy() - - if clusterServiceClass != nil { - instanceCopy.Spec.ClusterServiceClassRef = &v1beta1.ClusterObjectReference{ - Name: clusterServiceClass.Name, - } - } else if serviceClass != nil { - instanceCopy.Spec.ServiceClassRef = &v1beta1.LocalObjectReference{ - Name: serviceClass.Name, - } - } - - if clusterServicePlan != nil { - instanceCopy.Spec.ClusterServicePlanRef = &v1beta1.ClusterObjectReference{ - Name: clusterServicePlan.Name, - } - } else if servicePlan != nil { - instanceCopy.Spec.ServicePlanRef = &v1beta1.LocalObjectReference{ - Name: servicePlan.Name, - } - } - - instance, err := r.instanceConverter.ToGQL(instanceCopy) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceInstance)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(params.Name), gqlerror.WithNamespace(namespace)) - } - - return instance, nil -} - -func (r *serviceInstanceResolver) DeleteServiceInstanceMutation(ctx context.Context, name, namespace string) (*gqlschema.ServiceInstance, error) { - instance, err := r.instanceSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while finding %s `%s` in namespace `%s`", pretty.ServiceInstance, name, namespace)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - if instance == nil { - glog.Error(fmt.Errorf("cannot find %s `%s` in namespace `%s`", pretty.ServiceInstance, name, namespace)) - return nil, gqlerror.NewNotFound(pretty.ServiceInstance, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - instanceCopy := instance.DeepCopy() - err = r.instanceSvc.Delete(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s `%s` from namespace `%s`", pretty.ServiceInstance, name, namespace)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - deletedInstance, err := r.instanceConverter.ToGQL(instanceCopy) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceInstance)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return deletedInstance, nil -} - -func (r *serviceInstanceResolver) ServiceInstanceQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceInstance, error) { - serviceInstance, err := r.instanceSvc.Find(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s `%s` from namespace `%s`", pretty.ServiceInstance, name, namespace)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - if serviceInstance == nil { - return nil, nil - } - - result, err := r.instanceConverter.ToGQL(serviceInstance) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceInstance)) - return nil, gqlerror.New(err, pretty.ServiceInstance, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - return result, nil -} - -func (r *serviceInstanceResolver) ServiceInstancesQuery(ctx context.Context, namespace string, first *int, offset *int, status *gqlschema.InstanceStatusType) ([]*gqlschema.ServiceInstance, error) { - var items []*v1beta1.ServiceInstance - var err error - - if status != nil { - statusType := r.instanceConverter.GQLStatusTypeToServiceStatusType(*status) - items, err = r.instanceSvc.ListForStatus(namespace, pager.PagingParams{ - First: first, - Offset: offset, - }, &statusType) - } else { - items, err = r.instanceSvc.List(namespace, pager.PagingParams{ - First: first, - Offset: offset, - }) - } - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s for namespace %s", pretty.ServiceInstances, namespace)) - return nil, gqlerror.New(err, pretty.ServiceInstances, gqlerror.WithNamespace(namespace)) - } - - serviceInstances, err := r.instanceConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceInstances)) - return nil, gqlerror.New(err, pretty.ServiceInstances, gqlerror.WithNamespace(namespace)) - } - - return serviceInstances, nil -} - -func (r *serviceInstanceResolver) ServiceInstanceEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.ServiceInstanceEvent, error) { - channel := make(chan *gqlschema.ServiceInstanceEvent, 1) - filter := func(instance *v1beta1.ServiceInstance) bool { - return instance != nil && instance.Namespace == namespace - } - - instanceListener := listener.NewInstance(channel, filter, r.instanceConverter) - - r.instanceSvc.Subscribe(instanceListener) - go func() { - defer close(channel) - defer r.instanceSvc.Unsubscribe(instanceListener) - <-ctx.Done() - }() - - return channel, nil -} - -func (r *serviceInstanceResolver) ServiceInstanceClusterServicePlanField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServicePlan, error) { - if obj == nil { - glog.Error(fmt.Errorf("%s cannot be empty in order to resolve %s for instance", pretty.ServiceInstance, pretty.ClusterServicePlan)) - return nil, gqlerror.NewInternal() - } - - if obj.PlanReference == nil { - glog.Warning(fmt.Sprintf("PlanReference is empty during resolving %s for instance", pretty.ClusterServicePlan)) - return nil, nil - } - - if !obj.PlanReference.ClusterWide { - return nil, nil - } - - item, err := r.clusterServicePlanGetter.Find(obj.PlanReference.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for %s `%s` in namespace `%s`", pretty.ClusterServicePlan, pretty.ServiceInstance, obj.Name, obj.Namespace)) - return nil, gqlerror.New(err, pretty.ClusterServicePlan, gqlerror.WithName(obj.PlanReference.Name)) - } - if item == nil { - return nil, nil - } - - plan, err := r.clusterServicePlanConverter.ToGQL(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s %s to %s type", pretty.ClusterServicePlan, plan.Name, pretty.ClusterServicePlan)) - return nil, gqlerror.New(err, pretty.ClusterServicePlan, gqlerror.WithName(obj.PlanReference.Name)) - } - - return plan, nil -} - -func (r *serviceInstanceResolver) ServiceInstanceClusterServiceClassField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ClusterServiceClass, error) { - if obj == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve %s for instance"), pretty.ServiceInstance, pretty.ClusterServiceClass) - return nil, gqlerror.NewInternal() - } - - if obj.ClassReference == nil { - glog.Warning(fmt.Sprintf("ClassReference is empty during resolving %s for instance", pretty.ClusterServiceClass)) - return nil, nil - } - - if !obj.ClassReference.ClusterWide { - return nil, nil - } - - serviceClass, err := r.clusterServiceClassGetter.Find(obj.ClassReference.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for %s %s in namespace `%s`", pretty.ClusterServiceClass, pretty.ServiceInstance, obj.Name, obj.Namespace)) - return nil, gqlerror.New(err, pretty.ClusterServiceClass, gqlerror.WithName(obj.ClassReference.Name)) - } - if serviceClass == nil { - return nil, nil - } - - result, err := r.clusterServiceClassConverter.ToGQL(serviceClass) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s %s to %s type", pretty.ClusterServiceClass, serviceClass.Name, pretty.ClusterServiceClass)) - return nil, gqlerror.New(err, pretty.ClusterServiceClass, gqlerror.WithName(obj.ClassReference.Name)) - } - - return result, nil -} - -func (r *serviceInstanceResolver) ServiceInstanceServicePlanField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServicePlan, error) { - if obj == nil { - glog.Error(fmt.Errorf("%s cannot be empty in order to resolve %s for instance", pretty.ServiceInstance, pretty.ServicePlan)) - return nil, gqlerror.NewInternal() - } - - if obj.PlanReference == nil { - glog.Warning(fmt.Sprintf("PlanReference is empty during resolving %s for instance", pretty.ServicePlan)) - return nil, nil - } - - if obj.PlanReference.ClusterWide { - return nil, nil - } - - item, err := r.servicePlanGetter.Find(obj.PlanReference.Name, obj.Namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for %s `%s` in namespace `%s`", pretty.ServicePlan, pretty.ServiceInstance, obj.Name, obj.Namespace)) - return nil, gqlerror.New(err, pretty.ServicePlan, gqlerror.WithName(obj.PlanReference.Name)) - } - if item == nil { - return nil, nil - } - - plan, err := r.servicePlanConverter.ToGQL(item) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s %s to %s type", pretty.ServicePlan, plan.Name, pretty.ServicePlan)) - return nil, gqlerror.New(err, pretty.ServicePlan, gqlerror.WithName(obj.PlanReference.Name)) - } - - return plan, nil -} - -func (r *serviceInstanceResolver) ServiceInstanceServiceClassField(ctx context.Context, obj *gqlschema.ServiceInstance) (*gqlschema.ServiceClass, error) { - if obj == nil { - glog.Error(errors.New("%s cannot be empty in order to resolve %s for instance"), pretty.ServiceInstance, pretty.ServiceClass) - return nil, gqlerror.NewInternal() - } - - if obj.ClassReference == nil { - glog.Warning(fmt.Sprintf("ClassReference is empty during resolving %s for instance", pretty.ServiceClass)) - return nil, nil - } - - if obj.ClassReference.ClusterWide { - return nil, nil - } - - serviceClass, err := r.serviceClassGetter.Find(obj.ClassReference.Name, obj.Namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for %s %s in namespace `%s`", pretty.ServiceClass, pretty.ServiceInstance, obj.Name, obj.Namespace)) - return nil, gqlerror.New(err, pretty.ServiceClass, gqlerror.WithName(obj.ClassReference.Name)) - } - if serviceClass == nil { - return nil, nil - } - - result, err := r.serviceClassConverter.ToGQL(serviceClass) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s %s to %s type", pretty.ServiceClass, serviceClass.Name, pretty.ServiceClass)) - return nil, gqlerror.New(err, pretty.ServiceClass, gqlerror.WithName(obj.ClassReference.Name)) - } - - return result, nil -} - -func (r *serviceInstanceResolver) ServiceInstanceBindableField(ctx context.Context, obj *gqlschema.ServiceInstance) (bool, error) { - if obj == nil { - glog.Error(errors.New("ServiceInstance cannot be empty in order to resolve `bindable` field for instance")) - return false, gqlerror.NewInternal() - } - - if obj.ClassReference == nil { - glog.Warning("ClassReference is empty during resolving `bindable` field for instance") - return false, nil - } - - if obj.PlanReference == nil { - glog.Warning("PlanReference is empty during resolving `bindable` field for instance") - return false, nil - } - - if !obj.ClassReference.ClusterWide { - serviceClass, err := r.serviceClassGetter.Find(obj.ClassReference.Name, obj.Namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for instance %s in namespace `%s` in order to resolve `bindable` field", pretty.ServiceClass, obj.Name, obj.Namespace)) - return false, gqlerror.New(err, pretty.ServiceClass, gqlerror.WithName(obj.ClassReference.Name)) - } - - servicePlan, err := r.servicePlanGetter.Find(obj.PlanReference.Name, obj.Namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for instance %s in namespace `%s` in order to resolve `bindable` field", pretty.ServicePlan, obj.Name, obj.Namespace)) - return false, gqlerror.New(err, pretty.ServicePlan, gqlerror.WithName(obj.PlanReference.Name)) - } - - return r.instanceSvc.IsBindableWithLocalRefs(serviceClass, servicePlan), nil - } - - serviceClass, err := r.clusterServiceClassGetter.Find(obj.ClassReference.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for instance %s in namespace `%s` in order to resolve `bindable` field", pretty.ClusterServiceClass, obj.Name, obj.Namespace)) - return false, gqlerror.New(err, pretty.ClusterServiceClass, gqlerror.WithName(obj.ClassReference.Name)) - } - - servicePlan, err := r.clusterServicePlanGetter.Find(obj.PlanReference.Name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s for instance %s in namespace `%s` in order to resolve `bindable` field", pretty.ClusterServicePlan, obj.Name, obj.Namespace)) - return false, gqlerror.New(err, pretty.ClusterServicePlan, gqlerror.WithName(obj.PlanReference.Name)) - } - - return r.instanceSvc.IsBindableWithClusterRefs(serviceClass, servicePlan), nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_resolver_test.go deleted file mode 100644 index bf786104c231..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_resolver_test.go +++ /dev/null @@ -1,815 +0,0 @@ -package servicecatalog_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestServiceInstanceResolver_ServiceInstanceQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.ServiceInstance{ - Name: "Test", - } - name := "name" - namespace := "namespace" - resource := &v1beta1.ServiceInstance{} - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("Find", name, namespace).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := servicecatalog.NewMockServiceInstanceConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ServiceInstanceQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - namespace := "namespace" - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("Find", name, namespace).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - - result, err := resolver.ServiceInstanceQuery(nil, name, namespace) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - name := "name" - namespace := "namespace" - resource := &v1beta1.ServiceInstance{} - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("Find", name, namespace).Return(resource, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - - result, err := resolver.ServiceInstanceQuery(nil, name, namespace) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestServiceInstanceResolver_ServiceInstancesQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "namespace" - resource := - &v1beta1.ServiceInstance{ - ObjectMeta: v1.ObjectMeta{ - Name: "Test", - }, - } - resources := []*v1beta1.ServiceInstance{ - resource, resource, - } - expected := []*gqlschema.ServiceInstance{ - { - Name: "Test", - }, - { - Name: "Test", - }, - } - - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := servicecatalog.NewMockServiceInstanceConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ServiceInstancesQuery(nil, namespace, nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "namespace" - var resources []*v1beta1.ServiceInstance - - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - var expected []*gqlschema.ServiceInstance - - result, err := resolver.ServiceInstancesQuery(nil, namespace, nil, nil, nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - - namespace := "namespace" - var resources []*v1beta1.ServiceInstance - - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("List", namespace, pager.PagingParams{}).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - - _, err := resolver.ServiceInstancesQuery(nil, namespace, nil, nil, nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceInstanceResolver_ServiceInstancesWithStatusQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "namespace" - resource := - &v1beta1.ServiceInstance{ - ObjectMeta: v1.ObjectMeta{ - Name: "Test", - }, - Status: v1beta1.ServiceInstanceStatus{ - AsyncOpInProgress: false, - Conditions: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionTrue, - Message: "Working", - Reason: "Testing", - }, - }, - }, - } - resources := []*v1beta1.ServiceInstance{ - resource, resource, - } - expected := []*gqlschema.ServiceInstance{ - { - Name: "Test", - Status: gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypeRunning, - Message: "Working", - Reason: "Testing", - }, - }, - { - Name: "Test", - Status: gqlschema.ServiceInstanceStatus{ - Type: gqlschema.InstanceStatusTypeRunning, - Message: "Working", - Reason: "Testing", - }, - }, - } - - statusType := status.ServiceInstanceStatusTypeRunning - gqlStatusType := gqlschema.InstanceStatusTypeRunning - - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("ListForStatus", namespace, pager.PagingParams{}, &statusType).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := servicecatalog.NewMockServiceInstanceConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - converter.On("GQLStatusTypeToServiceStatusType", gqlStatusType).Return(statusType) - defer converter.AssertExpectations(t) - - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - resolver.SetInstanceConverter(converter) - - result, err := resolver.ServiceInstancesQuery(nil, namespace, nil, nil, &gqlStatusType) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "namespace" - statusType := status.ServiceInstanceStatusTypeRunning - gqlStatusType := gqlschema.InstanceStatusTypeRunning - var resources []*v1beta1.ServiceInstance - - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("ListForStatus", namespace, pager.PagingParams{}, &statusType).Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - - result, err := resolver.ServiceInstancesQuery(nil, namespace, nil, nil, &gqlStatusType) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - - namespace := "namespace" - statusType := status.ServiceInstanceStatusTypeRunning - gqlStatusType := gqlschema.InstanceStatusTypeRunning - var resources []*v1beta1.ServiceInstance - - resourceGetter := servicecatalog.NewMockServiceInstanceService() - resourceGetter.On("ListForStatus", namespace, pager.PagingParams{}, &statusType).Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := servicecatalog.NewServiceInstanceResolver(resourceGetter, nil, nil, nil, nil) - - _, err := resolver.ServiceInstancesQuery(nil, namespace, nil, nil, &gqlStatusType) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceInstanceResolver_ServiceInstanceClusterServicePlanField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - planName := "name" - expected := &gqlschema.ClusterServicePlan{ - Name: planName, - } - resource := &v1beta1.ClusterServicePlan{} - resourceGetter := automock.NewClusterServicePlanGetter() - resourceGetter.On("Find", planName).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLClusterServicePlanConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: planName, - ClusterWide: true, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, resourceGetter, nil, nil, nil) - resolver.SetClusterServicePlanConverter(converter) - - result, err := resolver.ServiceInstanceClusterServicePlanField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - resourceGetter := automock.NewClusterServicePlanGetter() - resourceGetter.On("Find", name).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: true, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, resourceGetter, nil, nil, nil) - - result, err := resolver.ServiceInstanceClusterServicePlanField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("ServicePlanName not provided", func(t *testing.T) { - parentObj := gqlschema.ServiceInstance{ - Name: "test", - PlanReference: nil, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, nil, nil) - - result, err := resolver.ServiceInstanceClusterServicePlanField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - name := "name" - resourceGetter := automock.NewClusterServicePlanGetter() - resourceGetter.On("Find", name).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: true, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, resourceGetter, nil, nil, nil) - - result, err := resolver.ServiceInstanceClusterServicePlanField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestServiceInstanceResolver_ServiceInstanceClusterServiceClassField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.ClusterServiceClass{ - Name: "Test", - } - name := "name" - resource := &v1beta1.ClusterServiceClass{} - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("Find", name).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLClusterServiceClassConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: true, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, resourceGetter, nil, nil) - resolver.SetClusterServiceClassConverter(converter) - - result, err := resolver.ServiceInstanceClusterServiceClassField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - name := "name" - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("Find", name).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: true, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, resourceGetter, nil, nil) - - result, err := resolver.ServiceInstanceClusterServiceClassField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("ServiceClassName not provided", func(t *testing.T) { - parentObj := gqlschema.ServiceInstance{ - Name: "test", - ClassReference: nil, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, nil, nil) - - result, err := resolver.ServiceInstanceClusterServiceClassField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - name := "name" - resourceGetter := automock.NewClusterServiceClassListGetter() - resourceGetter.On("Find", name).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: true, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, resourceGetter, nil, nil) - - result, err := resolver.ServiceInstanceClusterServiceClassField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestServiceInstanceResolver_ServiceInstanceServicePlanField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ns := "ns" - planName := "name" - expected := &gqlschema.ServicePlan{ - Name: planName, - Namespace: ns, - } - resource := &v1beta1.ServicePlan{} - resourceGetter := automock.NewServicePlanGetter() - resourceGetter.On("Find", planName, ns).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLServicePlanConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: planName, - ClusterWide: false, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, resourceGetter, nil) - resolver.SetServicePlanConverter(converter) - - result, err := resolver.ServiceInstanceServicePlanField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - ns := "ns" - name := "name" - resourceGetter := automock.NewServicePlanGetter() - resourceGetter.On("Find", name, ns).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: false, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, resourceGetter, nil) - - result, err := resolver.ServiceInstanceServicePlanField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("ServicePlanName not provided", func(t *testing.T) { - ns := "ns" - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - PlanReference: nil, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, nil, nil) - - result, err := resolver.ServiceInstanceServicePlanField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - expectedErr := errors.New("Test") - ns := "ns" - name := "name" - resourceGetter := automock.NewServicePlanGetter() - resourceGetter.On("Find", name, ns).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - PlanReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: false, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, resourceGetter, nil) - - result, err := resolver.ServiceInstanceServicePlanField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestServiceInstanceResolver_ServiceInstanceServiceClassField(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := &gqlschema.ServiceClass{ - Name: "Test", - Namespace: "ns", - } - - ns := "ns" - name := "name" - resource := &v1beta1.ServiceClass{} - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("Find", name, ns).Return(resource, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewGQLServiceClassConverter() - converter.On("ToGQL", resource).Return(expected, nil).Once() - defer converter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: false, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, nil, resourceGetter) - resolver.SetServiceClassConverter(converter) - - result, err := resolver.ServiceInstanceServiceClassField(nil, &parentObj) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - ns := "ns" - name := "name" - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("Find", name, ns).Return(nil, nil).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: false, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, nil, resourceGetter) - - result, err := resolver.ServiceInstanceServiceClassField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("ServiceClassName not provided", func(t *testing.T) { - ns := "ns" - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - ClassReference: nil, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, nil, nil) - - result, err := resolver.ServiceInstanceServiceClassField(nil, &parentObj) - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - ns := "ns" - expectedErr := errors.New("Test") - name := "name" - resourceGetter := automock.NewServiceClassListGetter() - resourceGetter.On("Find", name, ns).Return(nil, expectedErr).Once() - defer resourceGetter.AssertExpectations(t) - - parentObj := gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - ClassReference: &gqlschema.ServiceInstanceResourceRef{ - Name: name, - ClusterWide: false, - }, - } - - resolver := servicecatalog.NewServiceInstanceResolver(nil, nil, nil, nil, resourceGetter) - - result, err := resolver.ServiceInstanceServiceClassField(nil, &parentObj) - - assert.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - assert.Nil(t, result) - }) -} - -func TestServiceInstanceResolver_ServiceInstanceBindableField(t *testing.T) { - testErr := errors.New("Test") - className := "className" - planName := "planName" - - t.Run("ClusterWide", func(t *testing.T) { - for _, tc := range []struct { - // Input - className *string - planName *string - planErr error - classErr error - instanceBindable bool - - // Expected result - expectedResult bool - shouldReturnError bool - }{ - {className: &className, planName: &planName, planErr: nil, classErr: nil, instanceBindable: true, expectedResult: true, shouldReturnError: false}, - {className: &className, planName: &planName, planErr: nil, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: false}, - {className: &className, planName: &planName, planErr: testErr, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: true}, - {className: &className, planName: &planName, planErr: nil, classErr: testErr, instanceBindable: false, expectedResult: false, shouldReturnError: true}, - {className: &className, planName: nil, planErr: nil, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: false}, - {className: nil, planName: &planName, planErr: nil, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: false}, - } { - class := &v1beta1.ClusterServiceClass{} - plan := &v1beta1.ClusterServicePlan{} - - planGetter := automock.NewClusterServicePlanGetter() - planGetter.On("Find", planName).Return(plan, tc.planErr).Once() - classGetter := automock.NewClusterServiceClassListGetter() - classGetter.On("Find", className).Return(class, tc.classErr).Once() - instanceSvc := servicecatalog.NewMockServiceInstanceService() - instanceSvc.On("IsBindableWithClusterRefs", class, plan).Return(tc.instanceBindable).Once() - - resolver := servicecatalog.NewServiceInstanceResolver(instanceSvc, planGetter, classGetter, nil, nil) - - var classReference *gqlschema.ServiceInstanceResourceRef - if tc.className != nil { - classReference = &gqlschema.ServiceInstanceResourceRef{ - Name: *tc.className, - ClusterWide: true, - } - } - - var planReference *gqlschema.ServiceInstanceResourceRef - if tc.planName != nil { - planReference = &gqlschema.ServiceInstanceResourceRef{ - Name: *tc.planName, - ClusterWide: true, - } - } - - parentObj := &gqlschema.ServiceInstance{ - Name: "test", - ClassReference: classReference, - PlanReference: planReference, - } - - result, err := resolver.ServiceInstanceBindableField(nil, parentObj) - - if tc.shouldReturnError { - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - } else { - require.NoError(t, err) - } - assert.Equal(t, tc.expectedResult, result) - } - }) - - t.Run("Local", func(t *testing.T) { - ns := "ns" - - for _, tc := range []struct { - // Input - className *string - planName *string - planErr error - classErr error - instanceBindable bool - - // Expected result - expectedResult bool - shouldReturnError bool - }{ - {className: &className, planName: &planName, planErr: nil, classErr: nil, instanceBindable: true, expectedResult: true, shouldReturnError: false}, - {className: &className, planName: &planName, planErr: nil, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: false}, - {className: &className, planName: &planName, planErr: testErr, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: true}, - {className: &className, planName: &planName, planErr: nil, classErr: testErr, instanceBindable: false, expectedResult: false, shouldReturnError: true}, - {className: &className, planName: nil, planErr: nil, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: false}, - {className: nil, planName: &planName, planErr: nil, classErr: nil, instanceBindable: false, expectedResult: false, shouldReturnError: false}, - } { - class := &v1beta1.ServiceClass{} - plan := &v1beta1.ServicePlan{} - - planGetter := automock.NewServicePlanGetter() - planGetter.On("Find", planName, ns).Return(plan, tc.planErr).Once() - classGetter := automock.NewServiceClassListGetter() - classGetter.On("Find", className, ns).Return(class, tc.classErr).Once() - instanceSvc := servicecatalog.NewMockServiceInstanceService() - instanceSvc.On("IsBindableWithLocalRefs", class, plan).Return(tc.instanceBindable).Once() - - resolver := servicecatalog.NewServiceInstanceResolver(instanceSvc, nil, nil, planGetter, classGetter) - - var classReference *gqlschema.ServiceInstanceResourceRef - if tc.className != nil { - classReference = &gqlschema.ServiceInstanceResourceRef{ - Name: *tc.className, - ClusterWide: false, - } - } - - var planReference *gqlschema.ServiceInstanceResourceRef - if tc.planName != nil { - planReference = &gqlschema.ServiceInstanceResourceRef{ - Name: *tc.planName, - ClusterWide: false, - } - } - - parentObj := &gqlschema.ServiceInstance{ - Name: "test", - Namespace: ns, - ClassReference: classReference, - PlanReference: planReference, - } - - result, err := resolver.ServiceInstanceBindableField(nil, parentObj) - - if tc.shouldReturnError { - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - } else { - require.NoError(t, err) - } - assert.Equal(t, tc.expectedResult, result) - } - }) -} - -func TestServiceInstanceResolver_ServiceInstanceEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := servicecatalog.NewMockServiceInstanceService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalog.NewServiceInstanceResolver(svc, nil, nil, nil, nil) - - _, err := resolver.ServiceInstanceEventSubscription(ctx, "test") - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := servicecatalog.NewMockServiceInstanceService() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalog.NewServiceInstanceResolver(svc, nil, nil, nil, nil) - - channel, err := resolver.ServiceInstanceEventSubscription(ctx, "test") - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_service.go b/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_service.go deleted file mode 100644 index 71a69959f4c6..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_service.go +++ /dev/null @@ -1,369 +0,0 @@ -package servicecatalog - -import ( - "context" - "encoding/json" - "fmt" - "regexp" - "strings" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -type serviceInstanceService struct { - informer cache.SharedIndexInformer - client clientset.Interface - notifier notifier - instanceExt status.InstanceExtractor -} - -func newServiceInstanceService(informer cache.SharedIndexInformer, client clientset.Interface) (*serviceInstanceService, error) { - instanceExt := status.InstanceExtractor{} - err := informer.AddIndexers(cache.Indexers{ - "externalClusterServiceClassName": func(obj interface{}) ([]string, error) { - serviceInstance, ok := obj.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Cannot convert item") - } - - return []string{serviceInstance.Spec.PlanReference.ClusterServiceClassExternalName}, nil - }, - "clusterServiceClassName": func(obj interface{}) ([]string, error) { - serviceInstance, ok := obj.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Cannot convert item") - } - return []string{serviceInstance.Spec.PlanReference.ClusterServiceClassName}, nil - }, - "ns/externalClusterServiceClassName": func(obj interface{}) ([]string, error) { - serviceInstance, ok := obj.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s", serviceInstance.Namespace, serviceInstance.Spec.PlanReference.ClusterServiceClassExternalName)}, nil - }, - "ns/clusterServiceClassName": func(obj interface{}) ([]string, error) { - serviceInstance, ok := obj.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Cannot convert item") - } - return []string{fmt.Sprintf("%s/%s", serviceInstance.Namespace, serviceInstance.Spec.PlanReference.ClusterServiceClassName)}, nil - }, - "externalServiceClassName": func(obj interface{}) ([]string, error) { - serviceInstance, ok := obj.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s", serviceInstance.Namespace, serviceInstance.Spec.PlanReference.ServiceClassExternalName)}, nil - }, - "serviceClassName": func(obj interface{}) ([]string, error) { - serviceInstance, ok := obj.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Cannot convert item") - } - return []string{fmt.Sprintf("%s/%s", serviceInstance.Namespace, serviceInstance.Spec.PlanReference.ServiceClassName)}, nil - }, - "statusType": func(obj interface{}) ([]string, error) { - serviceInstance, ok := obj.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Cannot convert item") - } - - if obj == nil { - return nil, fmt.Errorf("Nil reference") - } - - key := fmt.Sprintf("%s/%s", serviceInstance.ObjectMeta.Namespace, instanceExt.Status(*serviceInstance).Type) - return []string{key}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - - return &serviceInstanceService{ - informer: informer, - client: client, - notifier: notifier, - instanceExt: instanceExt, - }, nil -} - -func (svc *serviceInstanceService) Find(name, namespace string) (*v1beta1.ServiceInstance, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - serviceInstance, ok := item.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceInstance", item) - } - - return serviceInstance, nil -} - -func (svc *serviceInstanceService) List(namespace string, pagingParams pager.PagingParams) ([]*v1beta1.ServiceInstance, error) { - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "namespace", namespace).Limit(pagingParams) - if err != nil { - return nil, err - } - - var serviceInstances []*v1beta1.ServiceInstance - for _, item := range items { - serviceInstance, ok := item.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceInstance", item) - } - serviceInstances = append(serviceInstances, serviceInstance) - } - - return serviceInstances, nil -} - -func (svc *serviceInstanceService) ListForStatus(namespace string, pagingParams pager.PagingParams, status *status.ServiceInstanceStatusType) ([]*v1beta1.ServiceInstance, error) { - key := fmt.Sprintf("%s/%s", namespace, *status) - items, err := pager.FromIndexer(svc.informer.GetIndexer(), "statusType", key).Limit(pagingParams) - if err != nil { - return nil, err - } - - var serviceInstances []*v1beta1.ServiceInstance - for _, item := range items { - serviceInstance, ok := item.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceInstance", item) - } - serviceInstances = append(serviceInstances, serviceInstance) - } - - return serviceInstances, nil -} - -func (svc *serviceInstanceService) ListForClusterServiceClass(className, externalClassName string, namespace *string) ([]*v1beta1.ServiceInstance, error) { - indexName := func(indexName string) string { - if namespace == nil { - return indexName - } - - return fmt.Sprintf("ns/%s", indexName) - } - - indexValue := func(value string) string { - if namespace == nil { - return value - } - - return fmt.Sprintf("%s/%s", *namespace, value) - } - - indexer := svc.informer.GetIndexer() - itemsByClassName, err := indexer.ByIndex(indexName("clusterServiceClassName"), indexValue(className)) - if err != nil { - return nil, err - } - - itemsByExternalClassName, err := indexer.ByIndex(indexName("externalClusterServiceClassName"), indexValue(externalClassName)) - if err != nil { - return nil, err - } - - items := append(itemsByClassName, itemsByExternalClassName...) - var serviceInstances []*v1beta1.ServiceInstance - for _, item := range items { - serviceInstance, ok := item.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceInstance", item) - } - - serviceInstances = append(serviceInstances, serviceInstance) - } - - return svc.uniqueInstances(serviceInstances), nil -} - -func (svc *serviceInstanceService) ListForServiceClass(className, externalClassName string, namespace string) ([]*v1beta1.ServiceInstance, error) { - indexer := svc.informer.GetIndexer() - itemsByClassName, err := indexer.ByIndex("serviceClassName", fmt.Sprintf("%s/%s", namespace, className)) - if err != nil { - return nil, err - } - - itemsByExternalClassName, err := indexer.ByIndex("externalServiceClassName", fmt.Sprintf("%s/%s", namespace, externalClassName)) - if err != nil { - return nil, err - } - - items := append(itemsByClassName, itemsByExternalClassName...) - var serviceInstances []*v1beta1.ServiceInstance - for _, item := range items { - serviceInstance, ok := item.(*v1beta1.ServiceInstance) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServiceInstance", item) - } - - serviceInstances = append(serviceInstances, serviceInstance) - } - - return svc.uniqueInstances(serviceInstances), nil -} - -type instanceCreateResourceRef struct { - ExternalName string - ClusterWide bool -} - -type serviceInstanceCreateParameters struct { - Name string - Namespace string - Labels []string - PlanRef instanceCreateResourceRef - ClassRef instanceCreateResourceRef - Schema map[string]interface{} -} - -func (svc *serviceInstanceService) Create(params serviceInstanceCreateParameters) (*v1beta1.ServiceInstance, error) { - specParameters, err := svc.createInstanceParameters(params.Schema) - if err != nil { - return nil, errors.Wrap(err, "while creating spec parameters") - } - - filtered := svc.filterTags(params.Labels) - annotations := map[string]string{ - "tags": strings.Join(filtered, ","), - } - - var clusterServicePlanExternalName string - var servicePlanExternalName string - - if params.PlanRef.ClusterWide { - clusterServicePlanExternalName = params.PlanRef.ExternalName - } else { - servicePlanExternalName = params.PlanRef.ExternalName - } - - var clusterServiceClassExternalName string - var serviceClassExternalName string - - if params.ClassRef.ClusterWide { - clusterServiceClassExternalName = params.ClassRef.ExternalName - } else { - serviceClassExternalName = params.ClassRef.ExternalName - } - - instance := v1beta1.ServiceInstance{ - TypeMeta: v1.TypeMeta{ - APIVersion: "servicecatalog.k8s.io/v1beta1", - Kind: "ServiceInstance", - }, - ObjectMeta: v1.ObjectMeta{ - Name: params.Name, - Namespace: params.Namespace, - Annotations: annotations, - }, - Spec: v1beta1.ServiceInstanceSpec{ - PlanReference: v1beta1.PlanReference{ - ClusterServiceClassExternalName: clusterServiceClassExternalName, - ClusterServicePlanExternalName: clusterServicePlanExternalName, - ServiceClassExternalName: serviceClassExternalName, - ServicePlanExternalName: servicePlanExternalName, - }, - Parameters: specParameters, - }, - } - - return svc.client.ServicecatalogV1beta1().ServiceInstances(params.Namespace).Create(context.Background(), &instance, v1.CreateOptions{}) -} - -func (svc *serviceInstanceService) Delete(name, namespace string) error { - return svc.client.ServicecatalogV1beta1().ServiceInstances(namespace).Delete(context.Background(), name, v1.DeleteOptions{}) -} - -func (svc *serviceInstanceService) IsBindableWithClusterRefs(relatedClass *v1beta1.ClusterServiceClass, relatedPlan *v1beta1.ClusterServicePlan) bool { - if relatedPlan != nil && relatedPlan.Spec.Bindable != nil { - return *relatedPlan.Spec.Bindable - } - - if relatedClass != nil { - return relatedClass.Spec.Bindable - } - - return false -} - -func (svc *serviceInstanceService) IsBindableWithLocalRefs(relatedClass *v1beta1.ServiceClass, relatedPlan *v1beta1.ServicePlan) bool { - if relatedPlan != nil && relatedPlan.Spec.Bindable != nil { - return *relatedPlan.Spec.Bindable - } - - if relatedClass != nil { - return relatedClass.Spec.Bindable - } - - return false -} - -func (svc *serviceInstanceService) Subscribe(listener resource.Listener) { - svc.notifier.AddListener(listener) -} - -func (svc *serviceInstanceService) Unsubscribe(listener resource.Listener) { - svc.notifier.DeleteListener(listener) -} - -func (svc *serviceInstanceService) createInstanceParameters(schema map[string]interface{}) (*runtime.RawExtension, error) { - parameters := runtime.DeepCopyJSON(schema) - - byteArray, err := json.Marshal(parameters) - if err != nil { - return nil, errors.Wrap(err, "while marshalling parameters") - } - - return &runtime.RawExtension{ - Raw: byteArray, - }, nil -} - -func (svc *serviceInstanceService) uniqueInstances(items []*v1beta1.ServiceInstance) []*v1beta1.ServiceInstance { - keys := make(map[string]bool) - var uniqueItems []*v1beta1.ServiceInstance - - for _, item := range items { - if _, value := keys[item.Name]; !value { - keys[item.Name] = true - uniqueItems = append(uniqueItems, item) - } - } - - return uniqueItems -} - -func (svc *serviceInstanceService) filterTags(labels []string) []string { - r := regexp.MustCompile("[^a-zA-Z0-9 _-]") - - var filtered []string - for _, v := range labels { - clean := strings.TrimSpace(r.ReplaceAllString(v, "")) - - if len(clean) > 0 { - filtered = append(filtered, clean) - } - } - - return filtered -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_service_test.go deleted file mode 100644 index 987a2b997d78..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceinstance_service_test.go +++ /dev/null @@ -1,557 +0,0 @@ -package servicecatalog_test - -import ( - "fmt" - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - listener "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - testing2 "k8s.io/client-go/testing" - "k8s.io/client-go/tools/cache" -) - -func TestServiceInstanceService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instanceName := "testExample" - namespace := "testNs" - - serviceInstance := fixServiceInstance(instanceName, namespace) - serviceInstanceInformer := fixInformer(serviceInstance) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - instance, err := svc.Find(instanceName, namespace) - require.NoError(t, err) - assert.Equal(t, serviceInstance, instance) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - serviceInstanceInformer := informerFactory.Servicecatalog().V1beta1().ServiceInstances().Informer() - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - instance, err := svc.Find("doesntExist", "notExistingNs") - require.NoError(t, err) - assert.Nil(t, instance) - }) -} - -func TestServiceInstanceService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "ns" - serviceInstance1 := fixServiceInstance("1", namespace) - serviceInstance2 := fixServiceInstance("2", namespace) - serviceInstance3 := fixServiceInstance("3", "ns3") - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - instances, err := svc.List(namespace, pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, []*v1beta1.ServiceInstance{ - serviceInstance1, serviceInstance2, - }, instances) - }) - - t.Run("NotFound", func(t *testing.T) { - serviceInstanceInformer := fixInformer() - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - var emptyArray []*v1beta1.ServiceInstance - instances, err := svc.List("notExisting", pager.PagingParams{}) - require.NoError(t, err) - assert.Equal(t, emptyArray, instances) - }) -} - -func TestServiceInstanceService_ListForStatus(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "ns" - status := status.ServiceInstanceStatusTypeRunning - - serviceInstance1 := fixServiceInstanceWithStatus("1", namespace) - serviceInstance2 := fixServiceInstanceWithStatus("2", namespace) - serviceInstance3 := fixServiceInstanceWithStatus("3", "ns2") - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - instances, err := svc.ListForStatus(namespace, pager.PagingParams{}, &status) - require.NoError(t, err) - assert.Equal(t, []*v1beta1.ServiceInstance{ - serviceInstance1, serviceInstance2, - }, instances) - }) - - t.Run("NotFound", func(t *testing.T) { - status := status.ServiceInstanceStatusTypeRunning - - serviceInstanceInformer := fixInformer() - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - var emptyArray []*v1beta1.ServiceInstance - instances, err := svc.ListForStatus("notExisting", pager.PagingParams{}, &status) - require.NoError(t, err) - assert.Equal(t, emptyArray, instances) - }) -} - -func TestServiceInstanceService_ListForClusterServiceClass(t *testing.T) { - t.Run("Service Instance exist", func(t *testing.T) { - className := "exampleClassName" - externalClassName := "exampleExternalClassName" - - namespace := "ns" - serviceInstance1 := fixServiceInstanceWithClusterPlanRef("1", namespace, className, "") - serviceInstance2 := fixServiceInstanceWithClusterPlanRef("2", namespace, "", externalClassName) - serviceInstance3 := fixServiceInstanceWithClusterPlanRef("3", "ns2", className, externalClassName) - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - expected := []*v1beta1.ServiceInstance{ - serviceInstance1, serviceInstance2, serviceInstance3, - } - - instances, err := svc.ListForClusterServiceClass(className, externalClassName, nil) - require.NoError(t, err) - assert.ElementsMatch(t, expected, instances) - }) - - t.Run("Service Instance don't exist", func(t *testing.T) { - className := "exampleClassName" - externalClassName := "exampleExternalClassName" - - testClassName := "test" - testExternalClassName := "test" - - serviceInstance1 := fixServiceInstanceWithClusterPlanRef("1", "ns", className, "") - serviceInstance2 := fixServiceInstanceWithClusterPlanRef("2", "ns2", "", externalClassName) - serviceInstance3 := fixServiceInstanceWithClusterPlanRef("3", "ns3", className, externalClassName) - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - var emptyArray []*v1beta1.ServiceInstance - instances, err := svc.ListForClusterServiceClass(testClassName, testExternalClassName, nil) - require.NoError(t, err) - assert.Equal(t, emptyArray, instances) - }) - - t.Run("Service Instance exist in namespace", func(t *testing.T) { - className := "exampleClassName" - externalClassName := "exampleExternalClassName" - - namespace := "ns" - serviceInstance1 := fixServiceInstanceWithClusterPlanRef("1", namespace, className, "") - serviceInstance2 := fixServiceInstanceWithClusterPlanRef("2", namespace, "", externalClassName) - serviceInstance3 := fixServiceInstanceWithClusterPlanRef("3", "ns2", className, externalClassName) - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - expected := []*v1beta1.ServiceInstance{ - serviceInstance1, serviceInstance2, - } - - instances, err := svc.ListForClusterServiceClass(className, externalClassName, &namespace) - require.NoError(t, err) - assert.ElementsMatch(t, expected, instances) - }) - - t.Run("Service Instance don't exist in namespace", func(t *testing.T) { - className := "exampleClassName" - externalClassName := "exampleExternalClassName" - - testClassName := "test" - testExternalClassName := "test" - - namespace := "ns" - serviceInstance1 := fixServiceInstanceWithClusterPlanRef("1", namespace, className, "") - serviceInstance2 := fixServiceInstanceWithClusterPlanRef("2", "ns2", "", externalClassName) - serviceInstance3 := fixServiceInstanceWithClusterPlanRef("3", "ns3", className, externalClassName) - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - var emptyArray []*v1beta1.ServiceInstance - instances, err := svc.ListForClusterServiceClass(testClassName, testExternalClassName, &namespace) - require.NoError(t, err) - assert.Equal(t, emptyArray, instances) - }) -} - -func TestServiceInstanceService_ListForServiceClass(t *testing.T) { - t.Run("Service Instances exist", func(t *testing.T) { - className := "exampleClassName" - externalClassName := "exampleExternalClassName" - - namespace := "ns" - serviceInstance1 := fixServiceInstanceWithPlanRef("1", namespace, className, "") - serviceInstance2 := fixServiceInstanceWithPlanRef("2", namespace, "", externalClassName) - serviceInstance3 := fixServiceInstanceWithPlanRef("3", "ns2", className, externalClassName) - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - expected := []*v1beta1.ServiceInstance{ - serviceInstance1, serviceInstance2, - } - - instances, err := svc.ListForServiceClass(className, externalClassName, namespace) - require.NoError(t, err) - assert.ElementsMatch(t, expected, instances) - }) - - t.Run("Service Instances don't exist", func(t *testing.T) { - className := "exampleClassName" - externalClassName := "exampleExternalClassName" - - namespace := "ns" - testClassName := "test" - testExternalClassName := "test" - - serviceInstance1 := fixServiceInstanceWithPlanRef("1", "ns", className, "") - serviceInstance2 := fixServiceInstanceWithPlanRef("2", "ns2", "", externalClassName) - serviceInstance3 := fixServiceInstanceWithPlanRef("3", "ns3", className, externalClassName) - - serviceInstanceInformer := fixInformer(serviceInstance1, serviceInstance2, serviceInstance3) - - svc, err := servicecatalog.NewServiceInstanceService(serviceInstanceInformer, nil) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, serviceInstanceInformer) - - var emptyArray []*v1beta1.ServiceInstance - instances, err := svc.ListForServiceClass(testClassName, testExternalClassName, namespace) - require.NoError(t, err) - assert.Equal(t, emptyArray, instances) - }) -} - -func TestServiceInstanceService_Create(t *testing.T) { - t.Run("Success", func(t *testing.T) { - expected := fixServiceInstance("test", "test") - client := fake.NewSimpleClientset(expected) - client.PrependReactor("*", "*", func(action testing2.Action) (handled bool, ret runtime.Object, err error) { - return true, expected, nil - }) - - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), client) - require.NoError(t, err) - - params := servicecatalog.NewServiceInstanceCreateParameters("name", "namespace", []string{"test", "label"}, "planName", true, "className", true, nil) - result, err := svc.Create(*params) - - assert.NoError(t, err) - assert.Equal(t, expected, result) - }) - -} - -func TestServiceInstanceService_Delete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - instance := fixServiceInstance("test", "test") - client := fake.NewSimpleClientset(instance) - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), client) - require.NoError(t, err) - - err = svc.Delete("test", "test") - - assert.NoError(t, err) - }) - - t.Run("Error", func(t *testing.T) { - testErr := fmt.Errorf("Test") - instance := fixServiceInstance("test", "test") - client := fake.NewSimpleClientset(instance) - client.PrependReactor("*", "*", func(action testing2.Action) (handled bool, ret runtime.Object, err error) { - return true, nil, testErr - }) - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), client) - require.NoError(t, err) - - err = svc.Delete("test", "test") - - assert.Equal(t, testErr, err) - }) -} - -func TestServiceInstanceService_IsBindableWithClusterRefs(t *testing.T) { - trueVal := true - falseVal := false - - for _, tc := range []struct { - classBindable bool - planBindable *bool - expected bool - }{ - {true, &trueVal, true}, - {false, &falseVal, false}, - {true, nil, true}, - {false, nil, false}, - {true, &falseVal, false}, - {false, &trueVal, true}, - } { - class := &v1beta1.ClusterServiceClass{ - Spec: v1beta1.ClusterServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - Bindable: tc.classBindable, - }, - }, - } - plan := &v1beta1.ClusterServicePlan{ - Spec: v1beta1.ClusterServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - Bindable: tc.planBindable, - }, - }, - } - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - - result := svc.IsBindableWithClusterRefs(class, plan) - - assert.Equal(t, tc.expected, result) - } -} - -func TestServiceInstanceService_IsBindableWithLocalRefs(t *testing.T) { - trueVal := true - falseVal := false - - for _, tc := range []struct { - classBindable bool - planBindable *bool - expected bool - }{ - {true, &trueVal, true}, - {false, &falseVal, false}, - {true, nil, true}, - {false, nil, false}, - {true, &falseVal, false}, - {false, &trueVal, true}, - } { - class := &v1beta1.ServiceClass{ - Spec: v1beta1.ServiceClassSpec{ - CommonServiceClassSpec: v1beta1.CommonServiceClassSpec{ - Bindable: tc.classBindable, - }, - }, - } - plan := &v1beta1.ServicePlan{ - Spec: v1beta1.ServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - Bindable: tc.planBindable, - }, - }, - } - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - - result := svc.IsBindableWithLocalRefs(class, plan) - - assert.Equal(t, tc.expected, result) - } -} - -func TestServiceInstanceService_Subscribe(t *testing.T) { - t.Run("Simple", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - instanceListener := listener.NewInstance(nil, nil, nil) - svc.Subscribe(instanceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - instanceListener := listener.NewInstance(nil, nil, nil) - - svc.Subscribe(instanceListener) - svc.Subscribe(instanceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - instanceListenerA := listener.NewInstance(nil, nil, nil) - instanceListenerB := listener.NewInstance(nil, nil, nil) - - svc.Subscribe(instanceListenerA) - svc.Subscribe(instanceListenerB) - }) - - t.Run("Nil", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - - svc.Subscribe(nil) - }) -} - -func TestServiceInstanceService_Unsubscribe(t *testing.T) { - t.Run("Existing", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - instanceListener := listener.NewInstance(nil, nil, nil) - svc.Subscribe(instanceListener) - - svc.Unsubscribe(instanceListener) - }) - - t.Run("Duplicated", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - instanceListener := listener.NewInstance(nil, nil, nil) - svc.Subscribe(instanceListener) - svc.Subscribe(instanceListener) - - svc.Unsubscribe(instanceListener) - }) - - t.Run("Multiple", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - instanceListenerA := listener.NewInstance(nil, nil, nil) - instanceListenerB := listener.NewInstance(nil, nil, nil) - svc.Subscribe(instanceListenerA) - svc.Subscribe(instanceListenerB) - - svc.Unsubscribe(instanceListenerA) - }) - - t.Run("Nil", func(t *testing.T) { - svc, err := servicecatalog.NewServiceInstanceService(fixInformer(), nil) - require.NoError(t, err) - - svc.Unsubscribe(nil) - }) -} - -func fixServiceInstance(name, namespace string) *v1beta1.ServiceInstance { - instance := v1beta1.ServiceInstance{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1beta1.ServiceInstanceSpec{ - PlanReference: v1beta1.PlanReference{ - ClusterServiceClassName: "", - ClusterServiceClassExternalName: "", - }, - }, - } - - return &instance -} - -func fixServiceInstanceWithClusterPlanRef(name, namespace, className, externalClassName string) *v1beta1.ServiceInstance { - plan := v1beta1.ServiceInstance{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1beta1.ServiceInstanceSpec{ - PlanReference: v1beta1.PlanReference{ - ClusterServiceClassName: className, - ClusterServiceClassExternalName: externalClassName, - }, - }, - } - - return &plan -} - -func fixServiceInstanceWithPlanRef(name, namespace, className, externalClassName string) *v1beta1.ServiceInstance { - plan := v1beta1.ServiceInstance{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1beta1.ServiceInstanceSpec{ - PlanReference: v1beta1.PlanReference{ - ServiceClassName: className, - ServiceClassExternalName: externalClassName, - }, - }, - } - - return &plan -} - -func fixServiceInstanceWithStatus(name, namespace string) *v1beta1.ServiceInstance { - plan := v1beta1.ServiceInstance{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Status: v1beta1.ServiceInstanceStatus{ - AsyncOpInProgress: false, - Conditions: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionTrue, - Message: "Working", - Reason: "Testing", - }, - }, - }, - } - - return &plan -} - -func fixInformer(objects ...runtime.Object) cache.SharedIndexInformer { - client := fake.NewSimpleClientset(objects...) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - informer := informerFactory.Servicecatalog().V1beta1().ServiceInstances().Informer() - - return informer -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_converter.go b/components/console-backend-service/internal/domain/servicecatalog/serviceplan_converter.go deleted file mode 100644 index 109ad1b85c0a..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_converter.go +++ /dev/null @@ -1,74 +0,0 @@ -package servicecatalog - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog/jsonschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/pkg/errors" -) - -type servicePlanConverter struct{} - -func (p *servicePlanConverter) ToGQL(item *v1beta1.ServicePlan) (*gqlschema.ServicePlan, error) { - if item == nil { - return nil, nil - } - - var externalMetadata map[string]interface{} - var err error - if item.Spec.ExternalMetadata != nil { - externalMetadata, err = resource.ExtractRawToMap("ExternalMetadata", item.Spec.ExternalMetadata.Raw) - if err != nil { - return nil, p.wrapConversionError(err, item.Name) - } - } - - var instanceCreateParameterSchema *gqlschema.JSON - if item.Spec.InstanceCreateParameterSchema != nil { - instanceCreateParameterSchema, err = jsonschema.Unpack(item.Spec.InstanceCreateParameterSchema.Raw) - if err != nil { - return nil, errors.Wrapf(err, "while unpacking service instance create parameter schema from ServicePlan [%s]", item.Name) - } - } - var bindingCreateParameterSchema *gqlschema.JSON - if item.Spec.ServiceBindingCreateParameterSchema != nil { - bindingCreateParameterSchema, err = jsonschema.Unpack(item.Spec.ServiceBindingCreateParameterSchema.Raw) - if err != nil { - return nil, errors.Wrapf(err, "while unpacking service binding create parameter schema from ServicePlan [%s]", item.Name) - } - } - - displayName := resource.ToStringPtr(externalMetadata["displayName"]) - plan := gqlschema.ServicePlan{ - Name: item.Name, - Namespace: item.Namespace, - ExternalName: item.Spec.ExternalName, - DisplayName: displayName, - Description: item.Spec.Description, - RelatedServiceClassName: item.Spec.ServiceClassRef.Name, - InstanceCreateParameterSchema: instanceCreateParameterSchema, - BindingCreateParameterSchema: bindingCreateParameterSchema, - } - - return &plan, nil -} - -func (c *servicePlanConverter) ToGQLs(in []*v1beta1.ServicePlan) ([]*gqlschema.ServicePlan, error) { - var result []*gqlschema.ServicePlan - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (p *servicePlanConverter) wrapConversionError(err error, name string) error { - return errors.Wrapf(err, "while converting item %s to ServicePlan", name) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_converter_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceplan_converter_test.go deleted file mode 100644 index d00be19ceef7..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_converter_test.go +++ /dev/null @@ -1,324 +0,0 @@ -package servicecatalog - -import ( - "encoding/base64" - "encoding/json" - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" -) - -func TestServicePlanConverter_ToGQL(t *testing.T) { - t.Run("Success", func(t *testing.T) { - converter := servicePlanConverter{} - metadata := map[string]string{ - "displayName": "ExampleDisplayName", - } - - metadataBytes, err := json.Marshal(metadata) - assert.Nil(t, err) - - parameterSchema := map[string]interface{}{ - "properties": map[string]interface{}{ - "field": "value", - }, - } - - parameterSchemaBytes, err := json.Marshal(parameterSchema) - encodedParameterSchemaBytes := make([]byte, base64.StdEncoding.EncodedLen(len(parameterSchemaBytes))) - base64.StdEncoding.Encode(encodedParameterSchemaBytes, parameterSchemaBytes) - assert.Nil(t, err) - - parameterSchemaJSON := new(gqlschema.JSON) - err = parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := v1beta1.ServicePlan{ - Spec: v1beta1.ServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: metadataBytes}, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - ServiceBindingCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - }, - ServiceClassRef: v1beta1.LocalObjectReference{ - Name: "serviceClassRef", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - UID: types.UID("uid"), - }, - } - displayName := "ExampleDisplayName" - expected := gqlschema.ServicePlan{ - Name: "ExampleName", - RelatedServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: parameterSchemaJSON, - BindingCreateParameterSchema: parameterSchemaJSON, - } - - result, err := converter.ToGQL(&clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &servicePlanConverter{} - _, err := converter.ToGQL(&v1beta1.ServicePlan{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &servicePlanConverter{} - item, err := converter.ToGQL(nil) - require.NoError(t, err) - assert.Nil(t, item) - }) - - t.Run("CreateParameterSchema with properties", func(t *testing.T) { - converter := &servicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{ - "field": "value", - }, - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ServicePlan{ - Name: "ExampleName", - RelatedServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: parameterSchemaJSON, - BindingCreateParameterSchema: parameterSchemaJSON, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with ref", func(t *testing.T) { - converter := &servicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "$ref": "reference", - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ServicePlan{ - Name: "ExampleName", - RelatedServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: parameterSchemaJSON, - BindingCreateParameterSchema: parameterSchemaJSON, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with empty properties", func(t *testing.T) { - converter := &servicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{}, - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ServicePlan{ - Name: "ExampleName", - RelatedServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: nil, - BindingCreateParameterSchema: nil, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with empty ref", func(t *testing.T) { - converter := &servicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "$ref": "", - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ServicePlan{ - Name: "ExampleName", - RelatedServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: nil, - BindingCreateParameterSchema: nil, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) - - t.Run("CreateParameterSchema with empty properties and ref", func(t *testing.T) { - converter := &servicePlanConverter{} - parameterSchema := map[string]interface{}{ - "additionalProperties": false, - "properties": map[string]interface{}{}, - "$ref": "", - } - - parameterSchemaJSON := new(gqlschema.JSON) - err := parameterSchemaJSON.UnmarshalGQL(parameterSchema) - assert.Nil(t, err) - - clusterServicePlan := fixServicePlan(t, parameterSchema) - displayName := "ExampleDisplayName" - expected := gqlschema.ServicePlan{ - Name: "ExampleName", - RelatedServiceClassName: "serviceClassRef", - DisplayName: &displayName, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: nil, - BindingCreateParameterSchema: nil, - } - - result, err := converter.ToGQL(clusterServicePlan) - assert.Nil(t, err) - - assert.Equal(t, &expected, result) - }) -} - -func TestServicePlanConverter_ToGQLs(t *testing.T) { - t.Run("Success", func(t *testing.T) { - parameterSchema := map[string]interface{}{ - "properties": map[string]interface{}{ - "field": "value", - }, - } - - plans := []*v1beta1.ServicePlan{ - fixServicePlan(t, parameterSchema), - fixServicePlan(t, parameterSchema), - } - - converter := servicePlanConverter{} - result, err := converter.ToGQLs(plans) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, "ExampleName", result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var plans []*v1beta1.ServicePlan - - converter := servicePlanConverter{} - result, err := converter.ToGQLs(plans) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - parameterSchema := map[string]interface{}{ - "first": "1", - "second": map[string]interface{}{ - "value": "2", - }, - } - - plans := []*v1beta1.ServicePlan{ - nil, - fixServicePlan(t, parameterSchema), - nil, - } - - converter := servicePlanConverter{} - result, err := converter.ToGQLs(plans) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, "ExampleName", result[0].Name) - }) -} - -func fixServicePlan(t require.TestingT, parameterSchema map[string]interface{}) *v1beta1.ServicePlan { - metadata := map[string]string{ - "displayName": "ExampleDisplayName", - } - - metadataBytes, err := json.Marshal(metadata) - require.NoError(t, err) - - parameterSchemaBytes, err := json.Marshal(parameterSchema) - encodedParameterSchemaBytes := make([]byte, base64.StdEncoding.EncodedLen(len(parameterSchemaBytes))) - base64.StdEncoding.Encode(encodedParameterSchemaBytes, parameterSchemaBytes) - require.NoError(t, err) - - return &v1beta1.ServicePlan{ - Spec: v1beta1.ServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - ExternalMetadata: &runtime.RawExtension{Raw: metadataBytes}, - ExternalName: "ExampleExternalName", - InstanceCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - ServiceBindingCreateParameterSchema: &runtime.RawExtension{ - Raw: encodedParameterSchemaBytes, - }, - }, - ServiceClassRef: v1beta1.LocalObjectReference{ - Name: "serviceClassRef", - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - UID: types.UID("uid"), - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_resolver.go b/components/console-backend-service/internal/domain/servicecatalog/serviceplan_resolver.go deleted file mode 100644 index 7ab1005a08c6..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_resolver.go +++ /dev/null @@ -1,62 +0,0 @@ -package servicecatalog - -import ( - "context" - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type ServicePlanResolver struct { - rafter shared.RafterRetriever -} - -func NewServicePlanResolver(r shared.RafterRetriever) *ServicePlanResolver { - return &ServicePlanResolver{r} -} - -func (r *ServicePlanResolver) ServicePlanClusterAssetGroupField(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.ClusterAssetGroup, error) { - if obj == nil { - glog.Error(fmt.Errorf("while getting %s since Service Plan is empty", pretty.ClusterAssetGroup)) - return nil, gqlerror.NewInternal() - } - - assetGroup, err := r.rafter.ClusterAssetGroup().Find(obj.Name) - if err != nil { - glog.Errorf("Couldn't find %s with name %s", pretty.ClusterAssetGroup, obj.Name) - return nil, nil - } - - convertedAssetGroup, err := r.rafter.ClusterAssetGroupConverter().ToGQL(assetGroup) - - if err != nil { - glog.Errorf("Couldn't convert %s with name %s to GQL", pretty.ClusterAssetGroup, obj.Name) - return nil, nil - } - return convertedAssetGroup, nil -} - -func (r *ServicePlanResolver) ServicePlanAssetGroupField(ctx context.Context, obj *gqlschema.ServicePlan) (*gqlschema.AssetGroup, error) { - if obj == nil { - glog.Error(fmt.Errorf("while getting %s since Service Plan is empty", pretty.AssetGroup)) - return nil, gqlerror.NewInternal() - } - - assetGroup, err := r.rafter.AssetGroup().Find(obj.Name, obj.Namespace) - if err != nil { - glog.Errorf("Couldn't find %s with name %s", pretty.AssetGroup, obj.Name) - return nil, nil - } - - convertedAssetGroup, err := r.rafter.AssetGroupConverter().ToGQL(assetGroup) - - if err != nil { - glog.Errorf("Couldn't convert %s with name %s to GQL", pretty.AssetGroup, obj.Name) - return nil, nil - } - return convertedAssetGroup, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceplan_resolver_test.go deleted file mode 100644 index 5452f06b88ba..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_resolver_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package servicecatalog_test - -import ( - "context" - "testing" - - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" -) - -func TestServicePlanResolver_ServicePlanClusterAssetGroupField(t *testing.T) { - t.Run("Returns nil if Rafter can't find the ClusterAssetGroup", func(t *testing.T) { - servicePlan := givenServicePlan() - rafter, cagGetter, _ := givenRafterForClusterAssetGroup() - resolver := givenServicePlanResolver(rafter) - - cagGetter.On("Find", servicePlan.Name).Return(nil, errors.New("ClusterAssetGroup not found")) - - result, err := resolver.ServicePlanClusterAssetGroupField(context.Background(), servicePlan) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Returns nil if Rafter can't conver the ClusterAssetGroup to GQL", func(t *testing.T) { - servicePlan := givenServicePlan() - rafter, cagGetter, cagConverter := givenRafterForClusterAssetGroup() - resolver := givenServicePlanResolver(rafter) - - assetGroup := givenClusterAssetGroup(servicePlan.Name) - - cagGetter.On("Find", servicePlan.Name).Return(assetGroup, nil) - cagConverter.On("ToGQL", assetGroup).Return(nil, errors.New("Can't convert it to GQL")) - - result, err := resolver.ServicePlanClusterAssetGroupField(context.Background(), servicePlan) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Returns clusterAssetGroup when it should", func(t *testing.T) { - servicePlan := givenServicePlan() - rafter, cagGetter, cagConverter := givenRafterForClusterAssetGroup() - resolver := givenServicePlanResolver(rafter) - - assetGroup := givenClusterAssetGroup(servicePlan.Name) - assetGroupGQL := clusterAssetGroupToGQL(assetGroup) - - cagGetter.On("Find", servicePlan.Name).Return(assetGroup, nil) - cagConverter.On("ToGQL", assetGroup).Return(assetGroupGQL, nil) - - result, err := resolver.ServicePlanClusterAssetGroupField(context.Background(), servicePlan) - require.NoError(t, err) - assert.Equal(t, servicePlan.Name, result.Name) - }) - -} - -func TestServicePlanResolver_ServicePlanAssetGroupField(t *testing.T) { - t.Run("Returns assetGroup when it should", func(t *testing.T) { - servicePlan := givenServicePlan() - rafter, agGetter, agConverter := givenRafterForAssetGroup() - resolver := givenServicePlanResolver(rafter) - - assetGroup := givenAssetGroup(servicePlan.Name) - assetGroupGQL := assetGroupToGQL(assetGroup) - - agGetter.On("Find", servicePlan.Name, servicePlan.Namespace).Return(assetGroup, nil) - agConverter.On("ToGQL", assetGroup).Return(assetGroupGQL, nil) - - result, err := resolver.ServicePlanAssetGroupField(context.Background(), servicePlan) - require.NoError(t, err) - assert.Equal(t, servicePlan.Name, result.Name) - }) -} - -func givenServicePlan() *gqlschema.ServicePlan { - return &gqlschema.ServicePlan{ - Name: "testname", - Namespace: "testnamespace", - } -} - -func givenServicePlanResolver(rafter shared.RafterRetriever) *servicecatalog.ServicePlanResolver { - return servicecatalog.NewServicePlanResolver(rafter) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_service.go b/components/console-backend-service/internal/domain/servicecatalog/serviceplan_service.go deleted file mode 100644 index d254a24ff537..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_service.go +++ /dev/null @@ -1,105 +0,0 @@ -package servicecatalog - -import ( - "fmt" - - "github.com/pkg/errors" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "k8s.io/client-go/tools/cache" -) - -type servicePlanService struct { - informer cache.SharedIndexInformer -} - -func newServicePlanService(informer cache.SharedIndexInformer) (*servicePlanService, error) { - err := informer.AddIndexers(cache.Indexers{ - "relatedServiceClassName": func(obj interface{}) ([]string, error) { - entity, ok := obj.(*v1beta1.ServicePlan) - if !ok { - return nil, errors.New("Cannot convert item") - } - - return []string{fmt.Sprintf("%s/%s", entity.Namespace, entity.Spec.ServiceClassRef.Name)}, nil - }, - "classNameAndPlanExternalName": func(obj interface{}) ([]string, error) { - entity, ok := obj.(*v1beta1.ServicePlan) - if !ok { - return nil, errors.New("Cannot convert item") - } - - str := servicePlanIndexKey(entity.Namespace, entity.Spec.ServiceClassRef.Name, entity.Spec.ExternalName) - return []string{str}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - return &servicePlanService{ - informer: informer, - }, nil -} - -func (svc *servicePlanService) Find(name, namespace string) (*v1beta1.ServicePlan, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := svc.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - servicePlan, ok := item.(*v1beta1.ServicePlan) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServicePlan", item) - } - - return servicePlan, nil -} - -func (svc *servicePlanService) FindByExternalName(planExternalName, className, namespace string) (*v1beta1.ServicePlan, error) { - items, err := svc.informer.GetIndexer().ByIndex("classNameAndPlanExternalName", servicePlanIndexKey(namespace, className, planExternalName)) - if err != nil { - return nil, err - } - - if len(items) == 0 { - return nil, nil - } - - if len(items) > 1 { - return nil, fmt.Errorf("Multiple ServicePlan resources with the same externalName %s", planExternalName) - } - - item := items[0] - servicePlan, ok := item.(*v1beta1.ServicePlan) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServicePlan", item) - } - - return servicePlan, nil -} - -func (svc *servicePlanService) ListForServiceClass(name string, namespace string) ([]*v1beta1.ServicePlan, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - plans, err := svc.informer.GetIndexer().ByIndex("relatedServiceClassName", key) - if err != nil { - return nil, err - } - - var servicePlans []*v1beta1.ServicePlan - for _, item := range plans { - servicePlan, ok := item.(*v1beta1.ServicePlan) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *ServicePlan", item) - } - - servicePlans = append(servicePlans, servicePlan) - } - - return servicePlans, nil -} - -func servicePlanIndexKey(namespace, planExternalName, className string) string { - return fmt.Sprintf("%s/%s/%s", namespace, className, planExternalName) -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_service_test.go b/components/console-backend-service/internal/domain/servicecatalog/serviceplan_service_test.go deleted file mode 100644 index ac573d314a6d..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/serviceplan_service_test.go +++ /dev/null @@ -1,176 +0,0 @@ -package servicecatalog_test - -import ( - "testing" - "time" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kubernetes-sigs/service-catalog/pkg/client/clientset_generated/clientset/fake" - "github.com/kubernetes-sigs/service-catalog/pkg/client/informers_generated/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalog" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestServicePlanService_Find(t *testing.T) { - t.Run("Success", func(t *testing.T) { - nsName := "ns" - planName := "testExample" - servicePlan := fixServicePlan(planName, "test", planName, nsName) - client := fake.NewSimpleClientset(&servicePlan) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer() - - svc, err := servicecatalog.NewServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.Find(planName, nsName) - require.NoError(t, err) - assert.Equal(t, &servicePlan, plan) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer() - - svc, err := servicecatalog.NewServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.Find("doesntExist", "ns") - require.NoError(t, err) - assert.Nil(t, plan) - }) -} - -func TestServicePlanService_FindByExternalNameForClass(t *testing.T) { - t.Run("Success", func(t *testing.T) { - nsName := "ns" - className := "test" - planName := "testExample" - externalName := "testExternal" - servicePlan := fixServicePlan(planName, className, externalName, nsName) - client := fake.NewSimpleClientset(&servicePlan) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer() - - svc, err := servicecatalog.NewServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.FindByExternalName(externalName, className, nsName) - require.NoError(t, err) - assert.Equal(t, &servicePlan, plan) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer() - - svc, err := servicecatalog.NewServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plan, err := svc.FindByExternalName("doesntExist", "none", "ns") - - require.NoError(t, err) - assert.Nil(t, plan) - }) - - t.Run("Error", func(t *testing.T) { - nsName := "ns" - className := "duplicateName" - externalName := "duplicateName" - - servicePlan1 := fixServicePlan("1", className, externalName, nsName) - servicePlan2 := fixServicePlan("2", className, externalName, nsName) - servicePlan3 := fixServicePlan("3", className, externalName, nsName) - client := fake.NewSimpleClientset(&servicePlan1, &servicePlan2, &servicePlan3) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer() - - svc, err := servicecatalog.NewServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - _, err = svc.FindByExternalName(externalName, className, nsName) - - assert.Error(t, err) - }) -} - -func TestServicePlanService_ListForClass(t *testing.T) { - t.Run("Success", func(t *testing.T) { - nsName := "ns" - className := "testClassName" - - servicePlan1 := fixServicePlan("1", className, "1", nsName) - servicePlan2 := fixServicePlan("2", className, "2", nsName) - servicePlan3 := fixServicePlan("3", className, "3", nsName) - client := fake.NewSimpleClientset(&servicePlan1, &servicePlan2, &servicePlan3) - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer() - - svc, err := servicecatalog.NewServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - plans, err := svc.ListForServiceClass(className, nsName) - require.NoError(t, err) - assert.ElementsMatch(t, []*v1beta1.ServicePlan{ - &servicePlan1, &servicePlan2, &servicePlan3, - }, plans) - }) - - t.Run("NotFound", func(t *testing.T) { - client := fake.NewSimpleClientset() - - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - servicePlanInformer := informerFactory.Servicecatalog().V1beta1().ServicePlans().Informer() - svc, err := servicecatalog.NewServicePlanService(servicePlanInformer) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, servicePlanInformer) - - var emptyArray []*v1beta1.ServicePlan - plans, err := svc.ListForServiceClass("doesntExist", "ns") - require.NoError(t, err) - assert.ElementsMatch(t, emptyArray, plans) - }) -} - -func fixServicePlan(name, relatedServiceClassName, externalName, namespace string) v1beta1.ServicePlan { - plan := v1beta1.ServicePlan{ - Spec: v1beta1.ServicePlanSpec{ - CommonServicePlanSpec: v1beta1.CommonServicePlanSpec{ - ExternalName: externalName, - }, - ServiceClassRef: v1beta1.LocalObjectReference{ - Name: relatedServiceClassName, - }, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - } - - return plan -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/status/binding.go b/components/console-backend-service/internal/domain/servicecatalog/status/binding.go deleted file mode 100644 index aed0411fbda1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/status/binding.go +++ /dev/null @@ -1,65 +0,0 @@ -package status - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type BindingExtractor struct{} - -func (ext *BindingExtractor) Status(conditions []v1beta1.ServiceBindingCondition) gqlschema.ServiceBindingStatus { - activeConditions := ext.findActiveConditions(conditions) - - if len(activeConditions) == 0 { - return gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypePending, - } - } - - if cond, found := ext.findReadyCondition(activeConditions); found { - return gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeReady, - Message: cond.Message, - Reason: cond.Reason, - } - } - if cond, found := ext.findFailedCondition(activeConditions); found { - return gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeFailed, - Message: cond.Message, - Reason: cond.Reason, - } - } - - return gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeUnknown, - } -} - -func (*BindingExtractor) findActiveConditions(conditions []v1beta1.ServiceBindingCondition) []v1beta1.ServiceBindingCondition { - var result []v1beta1.ServiceBindingCondition - for _, cond := range conditions { - if cond.Status == v1beta1.ConditionTrue { - result = append(result, cond) - } - } - return result -} - -func (*BindingExtractor) findReadyCondition(conditions []v1beta1.ServiceBindingCondition) (v1beta1.ServiceBindingCondition, bool) { - for _, item := range conditions { - if item.Type == v1beta1.ServiceBindingConditionReady { - return item, true - } - } - return v1beta1.ServiceBindingCondition{}, false -} - -func (*BindingExtractor) findFailedCondition(conditions []v1beta1.ServiceBindingCondition) (v1beta1.ServiceBindingCondition, bool) { - for _, item := range conditions { - if item.Type == v1beta1.ServiceBindingConditionFailed { - return item, true - } - } - return v1beta1.ServiceBindingCondition{}, false -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/status/binding_test.go b/components/console-backend-service/internal/domain/servicecatalog/status/binding_test.go deleted file mode 100644 index 1948c03465eb..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/status/binding_test.go +++ /dev/null @@ -1,70 +0,0 @@ -package status - -import ( - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" -) - -func TestBindingExtractor_Status(t *testing.T) { - // GIVEN - ext := BindingExtractor{} - for tn, tc := range map[string]struct { - given []v1beta1.ServiceBindingCondition - expected gqlschema.ServiceBindingStatus - }{ - "ReadyStatus": { - given: []v1beta1.ServiceBindingCondition{ - { - Status: v1beta1.ConditionTrue, - Type: v1beta1.ServiceBindingConditionReady, - }, - }, - expected: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeReady, - }, - }, - "FailedStatus": { - given: []v1beta1.ServiceBindingCondition{ - { - Status: v1beta1.ConditionTrue, - Reason: "error", - Message: "supa error", - Type: v1beta1.ServiceBindingConditionFailed, - }, - }, - expected: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeFailed, - Reason: "error", - Message: "supa error", - }, - }, - "EmptyStatus": { - given: []v1beta1.ServiceBindingCondition{}, - expected: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypePending, - }, - }, - "UnknownStatus": { - given: []v1beta1.ServiceBindingCondition{ - { - Status: v1beta1.ConditionTrue, - Type: "different", - }, - }, - expected: gqlschema.ServiceBindingStatus{ - Type: gqlschema.ServiceBindingStatusTypeUnknown, - }, - }, - } { - - t.Run(tn, func(t *testing.T) { - // WHEN - result := ext.Status(tc.given) - // THEN - assert.Equal(t, tc.expected, result) - }) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/status/broker.go b/components/console-backend-service/internal/domain/servicecatalog/status/broker.go deleted file mode 100644 index 2aa10348161c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/status/broker.go +++ /dev/null @@ -1,42 +0,0 @@ -package status - -import ( - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type BrokerExtractor struct{} - -func (e *BrokerExtractor) Status(conditions []v1beta1.ServiceBrokerCondition) *gqlschema.ServiceBrokerStatus { - readyStatus, exists := e.findReadyCondition(conditions) - if exists { - return &gqlschema.ServiceBrokerStatus{ - Ready: readyStatus.Status == v1beta1.ConditionTrue, - Reason: readyStatus.Reason, - Message: readyStatus.Message, - } - } - - var reason, message string - if len(conditions) > 0 { - condition := conditions[0] - reason = condition.Reason - message = condition.Message - } - - return &gqlschema.ServiceBrokerStatus{ - Ready: false, - Reason: reason, - Message: message, - } -} - -func (e *BrokerExtractor) findReadyCondition(conditions []v1beta1.ServiceBrokerCondition) (v1beta1.ServiceBrokerCondition, bool) { - for _, condition := range conditions { - if condition.Type == "Ready" { - return condition, true - } - } - - return v1beta1.ServiceBrokerCondition{}, false -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/status/instance.go b/components/console-backend-service/internal/domain/servicecatalog/status/instance.go deleted file mode 100644 index 070284837807..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/status/instance.go +++ /dev/null @@ -1,102 +0,0 @@ -package status - -import ( - "strings" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -type InstanceExtractor struct{} - -type ServiceInstanceStatusType string - -const ( - ServiceInstanceStatusTypeRunning ServiceInstanceStatusType = "RUNNING" - ServiceInstanceStatusTypeProvisioning ServiceInstanceStatusType = "PROVISIONING" - ServiceInstanceStatusTypeDeprovisioning ServiceInstanceStatusType = "DEPROVISIONING" - ServiceInstanceStatusTypePending ServiceInstanceStatusType = "PENDING" - ServiceInstanceStatusTypeFailed ServiceInstanceStatusType = "FAILED" -) - -type ServiceInstanceStatus struct { - Type ServiceInstanceStatusType - Reason string - Message string -} - -func (ext *InstanceExtractor) Status(serviceInstance v1beta1.ServiceInstance) ServiceInstanceStatus { - conditions := serviceInstance.Status.Conditions - activeCondition := ext.findActiveConditions(conditions) - - if len(conditions) == 0 { - return ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypePending, - } - } - if cond, found := ext.findConditionOfType(activeCondition, v1beta1.ServiceInstanceConditionReady); found { - return ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeRunning, - Reason: cond.Reason, - Message: cond.Message, - } - } - if cond, found := ext.findConditionOfType(activeCondition, v1beta1.ServiceInstanceConditionFailed); found { - return ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeFailed, - Reason: cond.Reason, - Message: cond.Message, - } - } - - condition, _ := ext.findConditionOfType(conditions, v1beta1.ServiceInstanceConditionReady) - return ServiceInstanceStatus{ - Type: ext.getProvisioningStatus(condition.Reason), - Message: condition.Message, - Reason: condition.Reason, - } -} - -func (*InstanceExtractor) findActiveConditions(conditions []v1beta1.ServiceInstanceCondition) []v1beta1.ServiceInstanceCondition { - var result []v1beta1.ServiceInstanceCondition - for _, cond := range conditions { - if cond.Status == v1beta1.ConditionTrue { - result = append(result, cond) - } - } - return result -} - -func (*InstanceExtractor) findConditionOfType(conditions []v1beta1.ServiceInstanceCondition, typeOf v1beta1.ServiceInstanceConditionType) (v1beta1.ServiceInstanceCondition, bool) { - for _, cond := range conditions { - if cond.Type == typeOf { - return cond, true - } - } - return v1beta1.ServiceInstanceCondition{}, false -} - -func (ext *InstanceExtractor) getProvisioningStatus(reason string) ServiceInstanceStatusType { - failedStatus := []string{"Error", "Nonexistent", "Failed", "Deleted", "Invalid"} - provisionedStatus := []string{"Provision", "Updat"} - deprovisionedStatus := []string{"Deprovision"} - - switch { - case ext.containsReason(reason, failedStatus): - return ServiceInstanceStatusTypeFailed - case ext.containsReason(reason, provisionedStatus): - return ServiceInstanceStatusTypeProvisioning - case ext.containsReason(reason, deprovisionedStatus): - return ServiceInstanceStatusTypeDeprovisioning - default: - return ServiceInstanceStatusTypePending - } -} - -func (*InstanceExtractor) containsReason(reason string, subStrings []string) bool { - for _, subString := range subStrings { - if strings.Contains(reason, subString) { - return true - } - } - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalog/status/instance_test.go b/components/console-backend-service/internal/domain/servicecatalog/status/instance_test.go deleted file mode 100644 index dd5fe87e3dea..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalog/status/instance_test.go +++ /dev/null @@ -1,205 +0,0 @@ -package status - -import ( - "testing" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/stretchr/testify/assert" -) - -func TestInstanceExtractor_Status(t *testing.T) { - ext := InstanceExtractor{} - for tn, tc := range map[string]struct { - given []v1beta1.ServiceInstanceCondition - expected ServiceInstanceStatus - }{ - "ReadyStatus": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionTrue, - }, { - Type: v1beta1.ServiceInstanceConditionFailed, - Status: v1beta1.ConditionFalse, - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeRunning, - }, - }, - "FailedStatus": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - }, { - Type: v1beta1.ServiceInstanceConditionFailed, - Status: v1beta1.ConditionTrue, - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeFailed, - }, - }, - "FailedStatusv2": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "ProvisionCallFailed", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeFailed, - Reason: "ProvisionCallFailed", - }, - }, - "FailedStatusv3": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "ReferencesNonexistentServiceClass", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeFailed, - Reason: "ReferencesNonexistentServiceClass", - }, - }, - "FailedStatusv4": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "ErrorFindingNamespaceForInstance", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeFailed, - Reason: "ErrorFindingNamespaceForInstance", - }, - }, - "FailedStatusv5": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "InvalidDeprovisionStatus", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeFailed, - Reason: "InvalidDeprovisionStatus", - }, - }, - "PendingStatus": { - given: []v1beta1.ServiceInstanceCondition{}, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypePending, - }, - }, - "PendingStatusv2": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "UnknownReason", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypePending, - Reason: "UnknownReason", - }, - }, - "ProvisioningStatus": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "Provisioning", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeProvisioning, - Reason: "Provisioning", - }, - }, - "ProvisioningStatusv2": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "ProvisionRequestInFlight", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeProvisioning, - Reason: "ProvisionRequestInFlight", - }, - }, - "ProvisioningStatusv3": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "UpdatingInstance", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeProvisioning, - Reason: "UpdatingInstance", - }, - }, - "ProvisioningStatusv4": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "UpdateInstanceRequestInFlight", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeProvisioning, - Reason: "UpdateInstanceRequestInFlight", - }, - }, - "DeprovisioningStatus": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "Deprovisioning", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeDeprovisioning, - Reason: "Deprovisioning", - }, - }, - "DeprovisioningStatusv2": { - given: []v1beta1.ServiceInstanceCondition{ - { - Type: v1beta1.ServiceInstanceConditionReady, - Status: v1beta1.ConditionFalse, - Reason: "DeprovisionRequestInFlight", - }, - }, - expected: ServiceInstanceStatus{ - Type: ServiceInstanceStatusTypeDeprovisioning, - Reason: "DeprovisionRequestInFlight", - }, - }, - } { - instance := v1beta1.ServiceInstance{ - Status: v1beta1.ServiceInstanceStatus{ - AsyncOpInProgress: false, - Conditions: tc.given, - }, - } - t.Run(tn, func(t *testing.T) { - result := ext.Status(instance) - assert.Equal(t, tc.expected, result) - }) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_converter.go deleted file mode 100644 index 9cdc42d56fc2..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_converter.go +++ /dev/null @@ -1,88 +0,0 @@ -package servicecatalogaddons - -import ( - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type addonsConfigurationConverter struct{} - -func (c *addonsConfigurationConverter) ToGQL(item *v1alpha1.AddonsConfiguration) *gqlschema.AddonsConfiguration { - if item == nil { - return nil - } - - urls := []string{} - repositories := []*gqlschema.AddonsConfigurationRepository{} - for _, repo := range item.Spec.Repositories { - urls = append(urls, repo.URL) - repositories = append(repositories, parseRepository(repo)) - } - - labels := item.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - - addonsCfg := gqlschema.AddonsConfiguration{ - Name: item.Name, - Labels: labels, - Urls: urls, - Status: parseStatus(item.Status.CommonAddonsConfigurationStatus), - Repositories: repositories, - } - - return &addonsCfg -} - -func (c *addonsConfigurationConverter) ToGQLs(in []*v1alpha1.AddonsConfiguration) []*gqlschema.AddonsConfiguration { - var result []*gqlschema.AddonsConfiguration - for _, u := range in { - converted := c.ToGQL(u) - if converted != nil { - result = append(result, converted) - } - } - return result -} - -func parseRepository(repo v1alpha1.SpecRepository) *gqlschema.AddonsConfigurationRepository { - secretRef := &gqlschema.ResourceRef{} - if repo.SecretRef != nil { - secretRef.Name = repo.SecretRef.Name - secretRef.Namespace = repo.SecretRef.Namespace - } else { - secretRef = nil - } - return &gqlschema.AddonsConfigurationRepository{ - URL: repo.URL, - SecretRef: secretRef, - } -} - -func parseStatus(status v1alpha1.CommonAddonsConfigurationStatus) *gqlschema.AddonsConfigurationStatus { - repositories := []*gqlschema.AddonsConfigurationStatusRepository{} - for _, repo := range status.Repositories { - addons := make([]*gqlschema.AddonsConfigurationStatusAddons, 0) - for _, addon := range repo.Addons { - addons = append(addons, &gqlschema.AddonsConfigurationStatusAddons{ - Status: string(addon.Status), - Name: addon.Name, - Version: addon.Version, - Message: addon.Message, - Reason: string(addon.Reason), - }) - } - repositories = append(repositories, &gqlschema.AddonsConfigurationStatusRepository{ - Status: string(repo.Status), - URL: repo.URL, - Addons: addons, - Message: repo.Message, - Reason: string(repo.Reason), - }) - } - return &gqlschema.AddonsConfigurationStatus{ - Phase: string(status.Phase), - Repositories: repositories, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_converter_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_converter_test.go deleted file mode 100644 index 38f54f2f7dbb..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_converter_test.go +++ /dev/null @@ -1,114 +0,0 @@ -package servicecatalogaddons_test - -import ( - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAddonsConfigurationConverter_ToGQL(t *testing.T) { - converter := servicecatalogaddons.NewAddonsConfigurationConverter() - url := "ww.fix.k" - for tn, tc := range map[string]struct { - givenAddon *v1alpha1.AddonsConfiguration - expectedAddonsConfig *gqlschema.AddonsConfiguration - }{ - "empty": { - givenAddon: &v1alpha1.AddonsConfiguration{}, - expectedAddonsConfig: &gqlschema.AddonsConfiguration{ - Labels: gqlschema.Labels{}, - Status: &gqlschema.AddonsConfigurationStatus{Repositories: []*gqlschema.AddonsConfigurationStatusRepository{}}, - Repositories: []*gqlschema.AddonsConfigurationRepository{}, - Urls: []string{}, - }, - }, - "full": { - givenAddon: &v1alpha1.AddonsConfiguration{ - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Labels: map[string]string{ - "add": "it", - "ion": "al", - }, - }, - Spec: v1alpha1.AddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: url, - SecretRef: &v1.SecretReference{ - Namespace: "test", - Name: "test", - }, - }, - }, - }, - }, - Status: v1alpha1.AddonsConfigurationStatus{ - CommonAddonsConfigurationStatus: v1alpha1.CommonAddonsConfigurationStatus{ - Phase: v1alpha1.AddonsConfigurationReady, - Repositories: []v1alpha1.StatusRepository{ - { - Status: v1alpha1.RepositoryStatus("Failed"), - Message: "fix", - Reason: v1alpha1.RepositoryStatusReason("reason"), - URL: "rul", - Addons: []v1alpha1.Addon{ - { - Status: v1alpha1.AddonStatusFailed, - Message: "test", - Name: "addon", - }, - }, - }, - }, - }, - }, - }, - expectedAddonsConfig: &gqlschema.AddonsConfiguration{ - Name: "test", - Labels: gqlschema.Labels{ - "add": "it", - "ion": "al", - }, - Urls: []string{url}, - Repositories: []*gqlschema.AddonsConfigurationRepository{ - { - URL: url, - SecretRef: &gqlschema.ResourceRef{ - Namespace: "test", - Name: "test", - }, - }, - }, - Status: &gqlschema.AddonsConfigurationStatus{ - Phase: string(v1alpha1.AddonsConfigurationReady), - Repositories: []*gqlschema.AddonsConfigurationStatusRepository{ - { - Status: "Failed", - URL: "rul", - Reason: "reason", - Message: "fix", - Addons: []*gqlschema.AddonsConfigurationStatusAddons{ - { - Status: "Failed", - Message: "test", - Name: "addon", - }, - }, - }, - }, - }, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - assert.Equal(t, tc.expectedAddonsConfig, converter.ToGQL(tc.givenAddon)) - }) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_resolver.go b/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_resolver.go deleted file mode 100644 index b3ed0672e4ea..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_resolver.go +++ /dev/null @@ -1,200 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - "strings" - - "github.com/golang/glog" - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" -) - -//go:generate mockery -name=addonsCfgService -output=automock -outpkg=automock -case=underscore -type addonsCfgService interface { - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -//go:generate mockery -name=addonsCfgLister -output=automock -outpkg=automock -case=underscore -type addonsCfgLister interface { - List(namespace string, pagingParams pager.PagingParams) ([]*v1alpha1.AddonsConfiguration, error) -} - -//go:generate mockery -name=addonsCfgUpdater -output=automock -outpkg=automock -case=underscore -type addonsCfgUpdater interface { - AddRepos(name, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput) (*v1alpha1.AddonsConfiguration, error) - RemoveRepos(name, namespace string, reposToRemove []string) (*v1alpha1.AddonsConfiguration, error) - Resync(name, namespace string) (*v1alpha1.AddonsConfiguration, error) -} - -//go:generate mockery -name=addonsCfgMutations -output=automock -outpkg=automock -case=underscore -type addonsCfgMutations interface { - Create(name, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.AddonsConfiguration, error) - Update(name, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.AddonsConfiguration, error) - Delete(name, namespace string) (*v1alpha1.AddonsConfiguration, error) -} - -type addonsConfigurationResolver struct { - addonsCfgUpdater addonsCfgUpdater - addonsCfgLister addonsCfgLister - addonsCfgService addonsCfgService - addonsCfgMutations addonsCfgMutations - addonsCfgConverter addonsConfigurationConverter -} - -func newAddonsConfigurationResolver(svc *addonsConfigurationService) *addonsConfigurationResolver { - return &addonsConfigurationResolver{ - addonsCfgLister: svc, - addonsCfgUpdater: svc, - addonsCfgService: svc, - addonsCfgMutations: svc, - addonsCfgConverter: addonsConfigurationConverter{}, - } -} - -func (r *addonsConfigurationResolver) AddonsConfigurationsQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) { - params := pager.PagingParams{First: first, Offset: offset} - - addons, err := r.addonsCfgLister.List(namespace, params) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.AddonsConfigurations)) - return nil, gqlerror.New(err, pretty.AddonsConfigurations) - } - - return r.addonsCfgConverter.ToGQLs(addons), nil -} - -func (r *addonsConfigurationResolver) CreateAddonsConfiguration(ctx context.Context, name, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - repositories, err := resolveRepositories(repositories, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while resolving repositories from %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name), gqlerror.WithDetails(err.Error())) - } - - addon, err := r.addonsCfgMutations.Create(name, namespace, repositories, labels) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name), gqlerror.WithCustomArgument("urls", strings.Join(urls, "\n"))) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *addonsConfigurationResolver) UpdateAddonsConfiguration(ctx context.Context, name, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - repositories, err := resolveRepositories(repositories, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while resolving repositories from %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name), gqlerror.WithDetails(err.Error())) - } - addon, err := r.addonsCfgMutations.Update(name, namespace, repositories, labels) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name), gqlerror.WithCustomArgument("urls", strings.Join(urls, "\n"))) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *addonsConfigurationResolver) DeleteAddonsConfiguration(ctx context.Context, name, namespace string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgMutations.Delete(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *addonsConfigurationResolver) RemoveAddonsConfigurationRepositories(ctx context.Context, name, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.RemoveRepos(name, namespace, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while removing repository from %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *addonsConfigurationResolver) AddAddonsConfigurationRepositories(ctx context.Context, name, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.AddRepos(name, namespace, repositories) - if err != nil { - glog.Error(errors.Wrapf(err, "while adding additional repositories to %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -// DEPRECATED: Delete after UI migrate to AddAddonsConfigurationRepositories -func (r *addonsConfigurationResolver) AddAddonsConfigurationURLs(ctx context.Context, name, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - repositories, err := resolveRepositories(nil, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while resolving repositories from %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name), gqlerror.WithDetails(err.Error())) - } - addon, err := r.addonsCfgUpdater.AddRepos(name, namespace, repositories) - if err != nil { - glog.Error(errors.Wrapf(err, "while adding additional repositories to %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -// DEPRECATED: Delete after UI migrate to RemoveAddonsConfigurationRepositories -func (r *addonsConfigurationResolver) RemoveAddonsConfigurationURLs(ctx context.Context, name, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.RemoveRepos(name, namespace, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while removing repository from %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *addonsConfigurationResolver) ResyncAddonsConfiguration(ctx context.Context, name, namespace string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.Resync(name, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while resyncing repository from %s %s", pretty.AddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.AddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *addonsConfigurationResolver) AddonsConfigurationEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AddonsConfigurationEvent, error) { - channel := make(chan *gqlschema.AddonsConfigurationEvent, 1) - - filter := func(entity *v1alpha1.AddonsConfiguration) bool { - return entity != nil && entity.Namespace == namespace - } - - brokerListener := listener.NewAddonsConfiguration(channel, filter, &r.addonsCfgConverter) - r.addonsCfgService.Subscribe(brokerListener) - go func() { - defer close(channel) - defer r.addonsCfgService.Unsubscribe(brokerListener) - <-ctx.Done() - }() - - return channel, nil -} - -func resolveRepositories(repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string) ([]*gqlschema.AddonsConfigurationRepositoryInput, error) { - if repositories != nil && urls != nil { - return nil, errors.New("provide only repositories or urls field") - } - if repositories == nil { - repositories = make([]*gqlschema.AddonsConfigurationRepositoryInput, 0) - for _, url := range urls { - repositories = append(repositories, &gqlschema.AddonsConfigurationRepositoryInput{URL: url}) - } - } - return repositories, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_resolver_test.go deleted file mode 100644 index a4bd02d2ddd1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_resolver_test.go +++ /dev/null @@ -1,200 +0,0 @@ -package servicecatalogaddons_test - -import ( - "context" - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestAddonsConfigurationResolver_AddonsConfigurationsQuery(t *testing.T) { - // given - addonsCfgLister := automock.NewAddonsCfgLister() - defer addonsCfgLister.AssertExpectations(t) - - fixNS := "test" - listedAddons := []*v1alpha1.AddonsConfiguration{fixAddonsConfiguration(fixNS)} - addonsCfgLister.On("List", fixNS, pager.PagingParams{}). - Return(listedAddons, nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(nil, nil, addonsCfgLister) - - // when - res, err := resolver.AddonsConfigurationsQuery(context.Background(), fixNS, nil, nil) - - // then - require.NoError(t, err) - assert.Equal(t, []*gqlschema.AddonsConfiguration{fixGQLAddonsConfiguration(fixNS)}, res) -} - -func TestAddonsConfigurationResolver_CreateAddonsConfiguration(t *testing.T) { - // given - fixNS := "test" - addonsCfgMutation := automock.NewAddonsCfgMutations() - defer addonsCfgMutation.AssertExpectations(t) - - addonsCfgMutation.On("Create", fixNS, fixNS, []*gqlschema.AddonsConfigurationRepositoryInput{}, gqlschema.Labels{}). - Return(fixAddonsConfiguration(fixNS), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(nil, addonsCfgMutation, nil) - - // when - res, err := resolver.CreateAddonsConfiguration(context.Background(), fixNS, fixNS, nil, []string{}, gqlschema.Labels{}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(fixNS), res) -} - -func TestAddonsConfigurationResolver_UpdateAddonsConfiguration(t *testing.T) { - // given - const addonName = "test" - addonsCfgMutation := automock.NewAddonsCfgMutations() - defer addonsCfgMutation.AssertExpectations(t) - addonsCfgMutation.On("Update", addonName, addonName, []*gqlschema.AddonsConfigurationRepositoryInput{}, gqlschema.Labels{}). - Return(fixAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(nil, addonsCfgMutation, nil) - - // when - cfgs, err := resolver.UpdateAddonsConfiguration(context.Background(), addonName, addonName, nil, []string{}, gqlschema.Labels{}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestAddonsConfigurationResolver_DeleteAddonsConfiguration(t *testing.T) { - // given - const addonName = "test" - addonsCfgMutation := automock.NewAddonsCfgMutations() - defer addonsCfgMutation.AssertExpectations(t) - addonsCfgMutation.On("Delete", addonName, addonName). - Return(fixAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(nil, addonsCfgMutation, nil) - - // when - cfgs, err := resolver.DeleteAddonsConfiguration(context.Background(), addonName, addonName) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestAddonsConfigurationResolver_AddAddonsConfigurationURLs(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("AddRepos", addonName, addonName, []*gqlschema.AddonsConfigurationRepositoryInput{{URL: "app.gg"}}). - Return(fixAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.AddAddonsConfigurationURLs(context.Background(), addonName, addonName, []string{"app.gg"}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestAddonsConfigurationResolver_RemoveAddonsConfigurationURLs(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("RemoveRepos", addonName, addonName, []string{"www.piko.bo"}). - Return(fixAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.RemoveAddonsConfigurationURLs(context.Background(), addonName, addonName, []string{"www.piko.bo"}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestAddonsConfigurationResolver_AddAddonsConfigurationRepository(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - url := "app.gg" - addonsCfgUpdater.On("AddRepos", addonName, addonName, []*gqlschema.AddonsConfigurationRepositoryInput{{URL: url}}). - Return(fixAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.AddAddonsConfigurationRepositories(context.Background(), addonName, addonName, []*gqlschema.AddonsConfigurationRepositoryInput{{URL: url}}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestAddonsConfigurationResolver_RemoveAddonsConfigurationRepository(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - url := "www.piko.bo" - addonsCfgUpdater.On("RemoveRepos", addonName, addonName, []string{url}). - Return(fixAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.RemoveAddonsConfigurationRepositories(context.Background(), addonName, addonName, []string{url}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestAddonsConfigurationResolver_ResyncAddonsConfigurationURLs(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("Resync", addonName, addonName). - Return(fixAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.ResyncAddonsConfiguration(context.Background(), addonName, addonName) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func fixGQLAddonsConfiguration(name string) *gqlschema.AddonsConfiguration { - url := "www.piko.bello" - return &gqlschema.AddonsConfiguration{ - Name: name, - Urls: []string{ - url, - }, - Repositories: []*gqlschema.AddonsConfigurationRepository{ - { - URL: url, - }, - }, - Labels: gqlschema.Labels{}, - Status: &gqlschema.AddonsConfigurationStatus{ - Repositories: []*gqlschema.AddonsConfigurationStatusRepository{}, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_service.go b/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_service.go deleted file mode 100644 index 440ae9f38039..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_service.go +++ /dev/null @@ -1,275 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - "fmt" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/util/retry" -) - -type addonsConfigurationService struct { - addonsNotifier notifier - addonsCfgClient dynamic.NamespaceableResourceInterface - addonsCfgInformer cache.SharedIndexInformer - - extractor extractor.AddonsUnstructuredExtractor -} - -func newAddonsConfigurationService(addonsCfgInformer cache.SharedIndexInformer, addonsCfgClient dynamic.NamespaceableResourceInterface) *addonsConfigurationService { - addonsNotifier := resource.NewNotifier() - addonsCfgInformer.AddEventHandler(addonsNotifier) - - return &addonsConfigurationService{ - addonsCfgClient: addonsCfgClient, - addonsCfgInformer: addonsCfgInformer, - addonsNotifier: addonsNotifier, - extractor: extractor.AddonsUnstructuredExtractor{}, - } -} - -func (s *addonsConfigurationService) List(namespace string, pagingParams pager.PagingParams) ([]*v1alpha1.AddonsConfiguration, error) { - items, err := s.addonsCfgInformer.GetIndexer().ByIndex("namespace", namespace) - if err != nil { - return nil, err - } - - var addons []*v1alpha1.AddonsConfiguration - for _, item := range items { - u, ok := item.(*unstructured.Unstructured) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *v1alpha1.AddonsConfiguration", item) - } - - addon, err := s.extractor.FromUnstructured(u) - if err != nil { - return nil, err - } - addons = append(addons, addon) - } - - return addons, nil -} - -func (s *addonsConfigurationService) AddRepos(name, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*v1alpha1.AddonsConfiguration, error) { - var addon *v1alpha1.AddonsConfiguration - var err error - if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { - addon, err = s.getAddonsConfiguration(name, namespace) - if err != nil { - return err - } - addon.Spec.Repositories = append(addon.Spec.Repositories, toSpecRepositories(repositories)...) - - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return err - } - - _, err = s.addonsCfgClient.Namespace(namespace).Update(context.Background(), obj, metav1.UpdateOptions{}) - return err - }); err != nil { - return nil, errors.Wrapf(err, "while updating %s %s", pretty.AddonsConfiguration, name) - } - - return addon, nil -} - -func (s *addonsConfigurationService) RemoveRepos(name, namespace string, reposToRemove []string) (*v1alpha1.AddonsConfiguration, error) { - var addon *v1alpha1.AddonsConfiguration - var err error - if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { - addon, err = s.getAddonsConfiguration(name, namespace) - if err != nil { - return err - } - resultRepos := filterOutRepositories(addon.Spec.Repositories, reposToRemove) - addon.Spec.Repositories = resultRepos - - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return err - } - - _, err = s.addonsCfgClient.Namespace(namespace).Update(context.Background(), obj, metav1.UpdateOptions{}) - return err - }); err != nil { - return nil, errors.Wrapf(err, "while updating %s %s", pretty.AddonsConfiguration, name) - } - - return addon, nil -} - -func (s *addonsConfigurationService) Create(name, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.AddonsConfiguration, error) { - addon := &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "AddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: toMapLabels(labels), - }, - Spec: v1alpha1.AddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: toSpecRepositories(repository), - }, - }, - } - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return nil, err - } - _, err = s.addonsCfgClient.Namespace(namespace).Create(context.Background(), obj, metav1.CreateOptions{}) - if err != nil { - return nil, errors.Wrapf(err, "while creating %s %s", pretty.AddonsConfiguration, addon.Name) - } - - return addon, nil -} - -func (s *addonsConfigurationService) Update(name, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.AddonsConfiguration, error) { - addon, err := s.getAddonsConfiguration(name, namespace) - if err != nil { - return nil, err - } - addon.Spec.Repositories = toSpecRepositories(repository) - addon.Labels = toMapLabels(labels) - - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return nil, err - } - - _, err = s.addonsCfgClient.Namespace(namespace).Update(context.Background(), obj, metav1.UpdateOptions{}) - if err != nil { - return nil, errors.Wrapf(err, "while updating %s %s", pretty.AddonsConfiguration, addon.Name) - } - - return addon, nil -} - -func (s *addonsConfigurationService) Delete(name, namespace string) (*v1alpha1.AddonsConfiguration, error) { - addon, err := s.getAddonsConfiguration(name, namespace) - if err != nil { - return nil, err - } - - if err := s.addonsCfgClient.Namespace(namespace).Delete(context.Background(), name, metav1.DeleteOptions{}); err != nil { - return nil, errors.Wrapf(err, "while deleting %s %s", pretty.AddonsConfiguration, addon.Name) - } - - return addon, nil -} - -func (s *addonsConfigurationService) Resync(name, namespace string) (*v1alpha1.AddonsConfiguration, error) { - var addon *v1alpha1.AddonsConfiguration - var err error - if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { - addon, err = s.getAddonsConfiguration(name, namespace) - if err != nil { - return err - } - addon.Spec.ReprocessRequest++ - - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return err - } - - _, err = s.addonsCfgClient.Namespace(namespace).Update(context.Background(), obj, metav1.UpdateOptions{}) - return err - }); err != nil { - return nil, errors.Wrapf(err, "cannot update AddonsConfiguration %s/%s", name, namespace) - } - - return addon, nil -} - -func (s *addonsConfigurationService) getAddonsConfiguration(name, namespace string) (*v1alpha1.AddonsConfiguration, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := s.addonsCfgInformer.GetStore().GetByKey(key) - if err != nil { - return nil, errors.Wrapf(err, "while getting %s %s", pretty.AddonsConfiguration, name) - } - if !exists { - return nil, errors.Errorf("%s doesn't exists", name) - } - - u, ok := item.(*unstructured.Unstructured) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *unstructured.Unstructured", item) - } - addons, err := s.extractor.FromUnstructured(u) - if err != nil { - return nil, err - } - - return addons, nil -} - -func filterOutRepositories(repository []v1alpha1.SpecRepository, repos []string) []v1alpha1.SpecRepository { - idxURLs := map[string]struct{}{} - for _, repo := range repos { - idxURLs[repo] = struct{}{} - } - - result := make([]v1alpha1.SpecRepository, 0) - for _, r := range repository { - if _, found := idxURLs[r.URL]; !found { - result = append(result, r) - } - } - return result -} - -func toMapLabels(givenLabels gqlschema.Labels) map[string]string { - if givenLabels == nil { - return nil - } - - labels := map[string]string{} - for k, v := range givenLabels { - labels[k] = v - } - return labels -} - -func toSpecRepository(repo *gqlschema.AddonsConfigurationRepositoryInput) v1alpha1.SpecRepository { - secretRef := &v1.SecretReference{} - if repo.SecretRef != nil { - secretRef.Name = repo.SecretRef.Name - secretRef.Namespace = repo.SecretRef.Namespace - } else { - secretRef = nil - } - return v1alpha1.SpecRepository{URL: repo.URL, SecretRef: secretRef} -} - -func toSpecRepositories(repositories []*gqlschema.AddonsConfigurationRepositoryInput) []v1alpha1.SpecRepository { - var result []v1alpha1.SpecRepository - - for _, repo := range repositories { - result = append(result, toSpecRepository(repo)) - } - return result -} - -func (svc *addonsConfigurationService) Subscribe(listener resource.Listener) { - svc.addonsNotifier.AddListener(listener) -} - -func (svc *addonsConfigurationService) Unsubscribe(listener resource.Listener) { - svc.addonsNotifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_service_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_service_test.go deleted file mode 100644 index a089cbb7179e..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/addonsconfiguration_service_test.go +++ /dev/null @@ -1,525 +0,0 @@ -package servicecatalogaddons_test - -import ( - "fmt" - "testing" - "time" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - bindingUsageApi "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/tools/cache" -) - -func TestAddonsConfigurationService_AddRepos_Success(t *testing.T) { - for tn, tc := range map[string]struct { - name string - urls []*gqlschema.AddonsConfigurationRepositoryInput - }{ - "add URL": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - {URL: "www.next"}, - }, - }, - "add many URLs": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - {URL: "www.next"}, - {URL: "www.one"}, - {URL: "www.two"}, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - fixAddonCfg := fixAddonsConfiguration(tc.name) - url := "www.already.present.url" - fixAddonCfg.Spec.Repositories = []v1alpha1.SpecRepository{ - {URL: url}, - } - expURLs := append(tc.urls, &gqlschema.AddonsConfigurationRepositoryInput{URL: url}) - - client, err := newDynamicClient(fixAddonCfg) - require.NoError(t, err) - - informer := fixAddonsConfigurationInformer(client) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - svc := servicecatalogaddons.NewAddonsConfigurationService(informer, client.Resource(addonsConfigGVR)) - - // when - result, err := svc.AddRepos(tc.name, "test", tc.urls) - - // then - require.NoError(t, err) - assert.Len(t, result.Spec.Repositories, len(expURLs)) - }) - } -} - -func TestAddonsConfigurationService_AddRepos_Failure(t *testing.T) { - // given - fixAddonCfgName := "not-existing-cfg" - fixURLs := []*gqlschema.AddonsConfigurationRepositoryInput{{URL: "www.www"}} - - client, err := newDynamicClient() - require.NoError(t, err) - - informer := fixAddonsConfigurationInformer(client) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - svc := servicecatalogaddons.NewAddonsConfigurationService(informer, client.Resource(addonsConfigGVR)) - - // when - result, err := svc.AddRepos(fixAddonCfgName, "test", fixURLs) - - // then - assert.Error(t, err) - assert.Nil(t, result) -} - -func TestAddonsConfigurationService_DeleteRepos(t *testing.T) { - for tn, tc := range map[string]struct { - name string - repos []v1alpha1.SpecRepository - urlsToRemove []string - }{ - "delete URL": { - name: "test", - repos: []v1alpha1.SpecRepository{ - {URL: "www.already.present.url"}, - {URL: "www.next"}, - }, - urlsToRemove: []string{"www.next"}, - }, - "delete many URLs": { - name: "test", - repos: []v1alpha1.SpecRepository{ - {URL: "www.already.present.url"}, - {URL: "www.next"}, - {URL: "www.second"}, - }, - urlsToRemove: []string{"www.next", "www.second"}, - }, - "delete all URLs": { - name: "test", - repos: []v1alpha1.SpecRepository{ - {URL: "www.already.present.url"}, - {URL: "www.next"}, - {URL: "www.second"}, - }, - - urlsToRemove: []string{"www.already.present.url", "www.next", "www.second"}, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - cfg := fixAddonsConfiguration(tc.name) - cfg.Spec.Repositories = tc.repos - - client, err := newDynamicClient(cfg) - require.NoError(t, err) - - inf := fixAddonsConfigurationInformer(client) - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(addonsConfigGVR)) - - // when - result, err := svc.RemoveRepos(tc.name, "test", tc.urlsToRemove) - - // then - require.NoError(t, err) - assert.NotNil(t, result.Spec.Repositories) - var normalizedResultURLs []string - for _, r := range result.Spec.Repositories { - normalizedResultURLs = append(normalizedResultURLs, r.URL) - } - for _, url := range tc.urlsToRemove { - assert.NotContains(t, normalizedResultURLs, url) - } - }) - } -} - -func TestAddonsConfigurationService_DeleteRepos_Failure(t *testing.T) { - // given - fixAddonCfgName := "not-existing-cfg" - fixURLs := []string{"ww.fix.k"} - client, err := newDynamicClient() - require.NoError(t, err) - - inf := fixAddonsConfigurationInformer(client) - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(addonsConfigGVR)) - - // when - result, err := svc.RemoveRepos(fixAddonCfgName, "test", fixURLs) - - // then - assert.Error(t, err) - assert.Nil(t, result) -} - -func TestAddonsConfigurationService_CreateAddonsConfiguration(t *testing.T) { - for tn, tc := range map[string]struct { - name string - urls []*gqlschema.AddonsConfigurationRepositoryInput - labels gqlschema.Labels - - expectedResult *v1alpha1.AddonsConfiguration - }{ - "successWithLabels": { - name: "test", - labels: gqlschema.Labels{ - "add": "it", - "ion": "al", - }, - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - }, - }, - expectedResult: &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "AddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Labels: map[string]string{ - "add": "it", - "ion": "al", - }, - }, - Spec: v1alpha1.AddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - }, - }, - }, - }, - }, - }, - "successWithNilLabels": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - }, - }, - expectedResult: &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "AddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - }, - Spec: v1alpha1.AddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - }, - }, - }, - }, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - client, err := newDynamicClient() - require.NoError(t, err) - inf := fixAddonsConfigurationInformer(client) - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(addonsConfigGVR)) - - // when - result, err := svc.Create(tc.name, "test", tc.urls, tc.labels) - - // then - require.NoError(t, err) - assert.Equal(t, tc.expectedResult, result) - }) - } -} - -func TestAddonsConfigurationService_UpdateAddonsConfiguration(t *testing.T) { - for tn, tc := range map[string]struct { - name string - urls []*gqlschema.AddonsConfigurationRepositoryInput - labels gqlschema.Labels - - expectedResult *v1alpha1.AddonsConfiguration - }{ - "successWithLabels": { - name: "test", - labels: gqlschema.Labels{ - "add": "it", - "ion": "al", - }, - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - }, - }, - expectedResult: &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "addonsconfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Namespace: "test", - Labels: map[string]string{ - "add": "it", - "ion": "al", - }, - }, - Spec: v1alpha1.AddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - }, - }, - }, - }, - }, - }, - "successWithNilLabels": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - }, - }, - expectedResult: &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "addonsconfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Namespace: "test", - }, - Spec: v1alpha1.AddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - }, - }, - }, - }, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - client, err := newDynamicClient(fixAddonsConfiguration(tc.name)) - require.NoError(t, err) - - inf := fixAddonsConfigurationInformer(client) - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(addonsConfigGVR)) - - // when - result, err := svc.Update(tc.name, "test", tc.urls, tc.labels) - - // then - require.NoError(t, err) - assert.Equal(t, tc.expectedResult, result) - }) - } -} - -func TestAddonsConfigurationService_DeleteAddonsConfiguration(t *testing.T) { - // given - fixAddonCfgName := "test" - expectedCfg := fixAddonsConfiguration(fixAddonCfgName) - client, err := newDynamicClient(expectedCfg) - require.NoError(t, err) - inf := fixAddonsConfigurationInformer(client) - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(addonsConfigGVR)) - - // when - cfg, err := svc.Delete(fixAddonCfgName, "test") - - // then - require.NoError(t, err) - assert.Equal(t, expectedCfg, cfg) -} - -func TestAddonsConfigurationService_DeleteAddonsConfiguration_Error(t *testing.T) { - // given - fixAddonCfgName := "not-existing-cfg" - expErrMsg := fmt.Sprintf("%s doesn't exists", fixAddonCfgName) - client, err := newDynamicClient() - require.NoError(t, err) - inf := fixAddonsConfigurationInformer(client) - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(addonsConfigGVR)) - - // when - cfg, err := svc.Delete(fixAddonCfgName, "test") - - // then - assert.EqualError(t, err, expErrMsg) - assert.Nil(t, cfg) -} - -func TestAddonsConfigurationService_ListAddonsConfigurations(t *testing.T) { - for tn, tc := range map[string]struct { - alreadyExitedCfgs []runtime.Object - expectedAddonsCfgs []*v1alpha1.AddonsConfiguration - }{ - "empty": { - alreadyExitedCfgs: []runtime.Object{}, - expectedAddonsCfgs: []*v1alpha1.AddonsConfiguration(nil), - }, - "few addons configurations": { - alreadyExitedCfgs: []runtime.Object{ - fixAddonsConfiguration("test"), - fixAddonsConfiguration("test2"), - }, - expectedAddonsCfgs: []*v1alpha1.AddonsConfiguration{ - fixAddonsConfiguration("test"), - fixAddonsConfiguration("test2"), - }, - }, - "wrong namespace": { - alreadyExitedCfgs: []runtime.Object{ - &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "addonsconfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Namespace: "wrong", - }, - }, - }, - expectedAddonsCfgs: nil, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - client, err := newDynamicClient(tc.alreadyExitedCfgs...) - require.NoError(t, err) - - inf := fixAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - // when - result, err := svc.List("test", pager.PagingParams{}) - - // then - require.NoError(t, err) - assert.ElementsMatch(t, tc.expectedAddonsCfgs, result) - }) - } -} - -func TestAddonsConfigurationService_ResyncAddonsConfiguration(t *testing.T) { - // given - fixAddonCfgName := "test" - expectedCfg := fixAddonsConfiguration(fixAddonCfgName) - - client, err := newDynamicClient(expectedCfg) - require.NoError(t, err) - - inf := fixAddonsConfigurationInformer(client) - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewAddonsConfigurationService(inf, client.Resource(addonsConfigGVR)) - - expectedCfg.Spec.ReprocessRequest = 1 - - // when - cfg, err := svc.Resync(fixAddonCfgName, expectedCfg.Namespace) - - // then - require.NoError(t, err) - assert.Equal(t, expectedCfg, cfg) -} - -var ( - usageKindsGVR = schema.GroupVersionResource{ - Version: bindingUsageApi.SchemeGroupVersion.Version, - Group: bindingUsageApi.SchemeGroupVersion.Group, - Resource: "usagekinds", - } - bindingUsageGVR = schema.GroupVersionResource{ - Version: bindingUsageApi.SchemeGroupVersion.Version, - Group: bindingUsageApi.SchemeGroupVersion.Group, - Resource: "servicebindingusages", - } - addonsConfigGVR = schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "addonsconfigurations", - } - clusterAddonsConfigGVR = schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "clusteraddonsconfigurations", - } -) - -func fixAddonsConfiguration(name string) *v1alpha1.AddonsConfiguration { - return &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "addonsconfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: "test", - }, - Spec: v1alpha1.AddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - {URL: "www.piko.bello"}, - }, - }, - }, - } -} - -func fixAddonsConfigurationInformer(dynamic dynamic.Interface) cache.SharedIndexInformer { - return dynamicinformer.NewDynamicSharedInformerFactory(dynamic, 10).ForResource(addonsConfigGVR).Informer() -} - -func fixClusterAddonsConfigurationInformer(dynamic dynamic.Interface) cache.SharedIndexInformer { - return dynamicinformer.NewDynamicSharedInformerFactory(dynamic, 10).ForResource(clusterAddonsConfigGVR).Informer() -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_lister.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_lister.go deleted file mode 100644 index f1ddf775936d..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_lister.go +++ /dev/null @@ -1,38 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// addonsCfgLister is an autogenerated mock type for the addonsCfgLister type -type addonsCfgLister struct { - mock.Mock -} - -// List provides a mock function with given fields: namespace, pagingParams -func (_m *addonsCfgLister) List(namespace string, pagingParams pager.PagingParams) ([]*v1alpha1.AddonsConfiguration, error) { - ret := _m.Called(namespace, pagingParams) - - var r0 []*v1alpha1.AddonsConfiguration - if rf, ok := ret.Get(0).(func(string, pager.PagingParams) []*v1alpha1.AddonsConfiguration); ok { - r0 = rf(namespace, pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.AddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, pager.PagingParams) error); ok { - r1 = rf(namespace, pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_mutations.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_mutations.go deleted file mode 100644 index 081c8b3e2aa1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_mutations.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// addonsCfgMutations is an autogenerated mock type for the addonsCfgMutations type -type addonsCfgMutations struct { - mock.Mock -} - -// Create provides a mock function with given fields: name, namespace, repository, labels -func (_m *addonsCfgMutations) Create(name string, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.AddonsConfiguration, error) { - ret := _m.Called(name, namespace, repository, labels) - - var r0 *v1alpha1.AddonsConfiguration - if rf, ok := ret.Get(0).(func(string, string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) *v1alpha1.AddonsConfiguration); ok { - r0 = rf(name, namespace, repository, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.AddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) error); ok { - r1 = rf(name, namespace, repository, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: name, namespace -func (_m *addonsCfgMutations) Delete(name string, namespace string) (*v1alpha1.AddonsConfiguration, error) { - ret := _m.Called(name, namespace) - - var r0 *v1alpha1.AddonsConfiguration - if rf, ok := ret.Get(0).(func(string, string) *v1alpha1.AddonsConfiguration); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.AddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Update provides a mock function with given fields: name, namespace, repository, labels -func (_m *addonsCfgMutations) Update(name string, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.AddonsConfiguration, error) { - ret := _m.Called(name, namespace, repository, labels) - - var r0 *v1alpha1.AddonsConfiguration - if rf, ok := ret.Get(0).(func(string, string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) *v1alpha1.AddonsConfiguration); ok { - r0 = rf(name, namespace, repository, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.AddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) error); ok { - r1 = rf(name, namespace, repository, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_service.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_service.go deleted file mode 100644 index 16e50d7c81a1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_service.go +++ /dev/null @@ -1,23 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" -) - -// addonsCfgService is an autogenerated mock type for the addonsCfgService type -type addonsCfgService struct { - mock.Mock -} - -// Subscribe provides a mock function with given fields: listener -func (_m *addonsCfgService) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *addonsCfgService) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_updater.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_updater.go deleted file mode 100644 index 5d8325b9289f..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/addons_cfg_updater.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// addonsCfgUpdater is an autogenerated mock type for the addonsCfgUpdater type -type addonsCfgUpdater struct { - mock.Mock -} - -// AddRepos provides a mock function with given fields: name, namespace, repository -func (_m *addonsCfgUpdater) AddRepos(name string, namespace string, repository []*gqlschema.AddonsConfigurationRepositoryInput) (*v1alpha1.AddonsConfiguration, error) { - ret := _m.Called(name, namespace, repository) - - var r0 *v1alpha1.AddonsConfiguration - if rf, ok := ret.Get(0).(func(string, string, []*gqlschema.AddonsConfigurationRepositoryInput) *v1alpha1.AddonsConfiguration); ok { - r0 = rf(name, namespace, repository) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.AddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []*gqlschema.AddonsConfigurationRepositoryInput) error); ok { - r1 = rf(name, namespace, repository) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// RemoveRepos provides a mock function with given fields: name, namespace, reposToRemove -func (_m *addonsCfgUpdater) RemoveRepos(name string, namespace string, reposToRemove []string) (*v1alpha1.AddonsConfiguration, error) { - ret := _m.Called(name, namespace, reposToRemove) - - var r0 *v1alpha1.AddonsConfiguration - if rf, ok := ret.Get(0).(func(string, string, []string) *v1alpha1.AddonsConfiguration); ok { - r0 = rf(name, namespace, reposToRemove) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.AddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []string) error); ok { - r1 = rf(name, namespace, reposToRemove) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Resync provides a mock function with given fields: name, namespace -func (_m *addonsCfgUpdater) Resync(name string, namespace string) (*v1alpha1.AddonsConfiguration, error) { - ret := _m.Called(name, namespace) - - var r0 *v1alpha1.AddonsConfiguration - if rf, ok := ret.Get(0).(func(string, string) *v1alpha1.AddonsConfiguration); ok { - r0 = rf(name, namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.AddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(name, namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/bindable_resource_lister.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/bindable_resource_lister.go deleted file mode 100644 index 54bf8cea77cc..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/bindable_resource_lister.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" -) - -// bindableResourceLister is an autogenerated mock type for the bindableResourceLister type -type bindableResourceLister struct { - mock.Mock -} - -// ListResources provides a mock function with given fields: namespace -func (_m *bindableResourceLister) ListResources(namespace string) ([]*gqlschema.BindableResourcesOutputItem, error) { - ret := _m.Called(namespace) - - var r0 []*gqlschema.BindableResourcesOutputItem - if rf, ok := ret.Get(0).(func(string) []*gqlschema.BindableResourcesOutputItem); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.BindableResourcesOutputItem) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_lister.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_lister.go deleted file mode 100644 index aeaaa6e7776c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_lister.go +++ /dev/null @@ -1,38 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// clusterAddonsCfgLister is an autogenerated mock type for the clusterAddonsCfgLister type -type clusterAddonsCfgLister struct { - mock.Mock -} - -// List provides a mock function with given fields: pagingParams -func (_m *clusterAddonsCfgLister) List(pagingParams pager.PagingParams) ([]*v1alpha1.ClusterAddonsConfiguration, error) { - ret := _m.Called(pagingParams) - - var r0 []*v1alpha1.ClusterAddonsConfiguration - if rf, ok := ret.Get(0).(func(pager.PagingParams) []*v1alpha1.ClusterAddonsConfiguration); ok { - r0 = rf(pagingParams) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.ClusterAddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(pager.PagingParams) error); ok { - r1 = rf(pagingParams) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_mutations.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_mutations.go deleted file mode 100644 index 953a7a57d1df..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_mutations.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// clusterAddonsCfgMutations is an autogenerated mock type for the clusterAddonsCfgMutations type -type clusterAddonsCfgMutations struct { - mock.Mock -} - -// Create provides a mock function with given fields: name, repository, labels -func (_m *clusterAddonsCfgMutations) Create(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.ClusterAddonsConfiguration, error) { - ret := _m.Called(name, repository, labels) - - var r0 *v1alpha1.ClusterAddonsConfiguration - if rf, ok := ret.Get(0).(func(string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) *v1alpha1.ClusterAddonsConfiguration); ok { - r0 = rf(name, repository, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ClusterAddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) error); ok { - r1 = rf(name, repository, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: name -func (_m *clusterAddonsCfgMutations) Delete(name string) (*v1alpha1.ClusterAddonsConfiguration, error) { - ret := _m.Called(name) - - var r0 *v1alpha1.ClusterAddonsConfiguration - if rf, ok := ret.Get(0).(func(string) *v1alpha1.ClusterAddonsConfiguration); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ClusterAddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Update provides a mock function with given fields: name, repository, labels -func (_m *clusterAddonsCfgMutations) Update(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.ClusterAddonsConfiguration, error) { - ret := _m.Called(name, repository, labels) - - var r0 *v1alpha1.ClusterAddonsConfiguration - if rf, ok := ret.Get(0).(func(string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) *v1alpha1.ClusterAddonsConfiguration); ok { - r0 = rf(name, repository, labels) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ClusterAddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, []*gqlschema.AddonsConfigurationRepositoryInput, gqlschema.Labels) error); ok { - r1 = rf(name, repository, labels) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_service.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_service.go deleted file mode 100644 index 63a7bfeb61d4..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_service.go +++ /dev/null @@ -1,23 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" -) - -// clusterAddonsCfgService is an autogenerated mock type for the clusterAddonsCfgService type -type clusterAddonsCfgService struct { - mock.Mock -} - -// Subscribe provides a mock function with given fields: listener -func (_m *clusterAddonsCfgService) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *clusterAddonsCfgService) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_updater.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_updater.go deleted file mode 100644 index 19f61afbf617..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/cluster_addons_cfg_updater.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// clusterAddonsCfgUpdater is an autogenerated mock type for the clusterAddonsCfgUpdater type -type clusterAddonsCfgUpdater struct { - mock.Mock -} - -// AddRepos provides a mock function with given fields: name, repository -func (_m *clusterAddonsCfgUpdater) AddRepos(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput) (*v1alpha1.ClusterAddonsConfiguration, error) { - ret := _m.Called(name, repository) - - var r0 *v1alpha1.ClusterAddonsConfiguration - if rf, ok := ret.Get(0).(func(string, []*gqlschema.AddonsConfigurationRepositoryInput) *v1alpha1.ClusterAddonsConfiguration); ok { - r0 = rf(name, repository) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ClusterAddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, []*gqlschema.AddonsConfigurationRepositoryInput) error); ok { - r1 = rf(name, repository) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// RemoveRepos provides a mock function with given fields: name, reposToRemove -func (_m *clusterAddonsCfgUpdater) RemoveRepos(name string, reposToRemove []string) (*v1alpha1.ClusterAddonsConfiguration, error) { - ret := _m.Called(name, reposToRemove) - - var r0 *v1alpha1.ClusterAddonsConfiguration - if rf, ok := ret.Get(0).(func(string, []string) *v1alpha1.ClusterAddonsConfiguration); ok { - r0 = rf(name, reposToRemove) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ClusterAddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, []string) error); ok { - r1 = rf(name, reposToRemove) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Resync provides a mock function with given fields: name -func (_m *clusterAddonsCfgUpdater) Resync(name string) (*v1alpha1.ClusterAddonsConfiguration, error) { - ret := _m.Called(name) - - var r0 *v1alpha1.ClusterAddonsConfiguration - if rf, ok := ret.Get(0).(func(string) *v1alpha1.ClusterAddonsConfiguration); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ClusterAddonsConfiguration) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/export.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/export.go deleted file mode 100644 index 1563456d7484..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/export.go +++ /dev/null @@ -1,53 +0,0 @@ -package automock - -// AddonsConfiguration - -func NewAddonsCfgLister() *addonsCfgLister { - return new(addonsCfgLister) -} - -func NewAddonsCfgMutations() *addonsCfgMutations { - return new(addonsCfgMutations) -} - -func NewAddonsCfgUpdater() *addonsCfgUpdater { - return new(addonsCfgUpdater) -} - -func NewClusterAddonsCfgLister() *clusterAddonsCfgLister { - return new(clusterAddonsCfgLister) -} - -func NewClusterAddonsCfgMutations() *clusterAddonsCfgMutations { - return new(clusterAddonsCfgMutations) -} - -func NewClusterAddonsCfgUpdater() *clusterAddonsCfgUpdater { - return new(clusterAddonsCfgUpdater) -} - -// Service Binding Usage - -func NewServiceBindingUsageOperations() *serviceBindingUsageOperations { - return new(serviceBindingUsageOperations) -} - -func NewServiceBindingUsageConverter() *gqlServiceBindingUsageConverter { - return new(gqlServiceBindingUsageConverter) -} - -func NewStatusBindingUsageExtractor() *statusBindingUsageExtractor { - return new(statusBindingUsageExtractor) -} - -// Usage Kind - -func NewUsageKindServices() *usageKindServices { - return new(usageKindServices) -} - -// Bindable Resources - -func NewBindableResourcesLister() *bindableResourceLister { - return new(bindableResourceLister) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/gql_service_binding_usage_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/gql_service_binding_usage_converter.go deleted file mode 100644 index 499802e7cef3..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/gql_service_binding_usage_converter.go +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// gqlServiceBindingUsageConverter is an autogenerated mock type for the gqlServiceBindingUsageConverter type -type gqlServiceBindingUsageConverter struct { - mock.Mock -} - -// InputToK8s provides a mock function with given fields: in -func (_m *gqlServiceBindingUsageConverter) InputToK8s(in *gqlschema.CreateServiceBindingUsageInput) (*v1alpha1.ServiceBindingUsage, error) { - ret := _m.Called(in) - - var r0 *v1alpha1.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(*gqlschema.CreateServiceBindingUsageInput) *v1alpha1.ServiceBindingUsage); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*gqlschema.CreateServiceBindingUsageInput) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQL provides a mock function with given fields: item -func (_m *gqlServiceBindingUsageConverter) ToGQL(item *v1alpha1.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) { - ret := _m.Called(item) - - var r0 *gqlschema.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(*v1alpha1.ServiceBindingUsage) *gqlschema.ServiceBindingUsage); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.ServiceBindingUsage) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlServiceBindingUsageConverter) ToGQLs(in []*v1alpha1.ServiceBindingUsage) ([]*gqlschema.ServiceBindingUsage, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ServiceBindingUsage - if rf, ok := ret.Get(0).(func([]*v1alpha1.ServiceBindingUsage) []*gqlschema.ServiceBindingUsage); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1alpha1.ServiceBindingUsage) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/service_binding_usage_operations.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/service_binding_usage_operations.go deleted file mode 100644 index 80fd4b73a603..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/service_binding_usage_operations.go +++ /dev/null @@ -1,131 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - resource "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// serviceBindingUsageOperations is an autogenerated mock type for the serviceBindingUsageOperations type -type serviceBindingUsageOperations struct { - mock.Mock -} - -// Create provides a mock function with given fields: namespace, sb -func (_m *serviceBindingUsageOperations) Create(namespace string, sb *v1alpha1.ServiceBindingUsage) (*v1alpha1.ServiceBindingUsage, error) { - ret := _m.Called(namespace, sb) - - var r0 *v1alpha1.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(string, *v1alpha1.ServiceBindingUsage) *v1alpha1.ServiceBindingUsage); ok { - r0 = rf(namespace, sb) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, *v1alpha1.ServiceBindingUsage) error); ok { - r1 = rf(namespace, sb) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Delete provides a mock function with given fields: namespace, name -func (_m *serviceBindingUsageOperations) Delete(namespace string, name string) error { - ret := _m.Called(namespace, name) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(namespace, name) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Find provides a mock function with given fields: namespace, name -func (_m *serviceBindingUsageOperations) Find(namespace string, name string) (*v1alpha1.ServiceBindingUsage, error) { - ret := _m.Called(namespace, name) - - var r0 *v1alpha1.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(string, string) *v1alpha1.ServiceBindingUsage); ok { - r0 = rf(namespace, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1alpha1.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListByUsageKind provides a mock function with given fields: namespace, resourceKind, resourceName -func (_m *serviceBindingUsageOperations) ListByUsageKind(namespace string, resourceKind string, resourceName string) ([]*v1alpha1.ServiceBindingUsage, error) { - ret := _m.Called(namespace, resourceKind, resourceName) - - var r0 []*v1alpha1.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(string, string, string) []*v1alpha1.ServiceBindingUsage); ok { - r0 = rf(namespace, resourceKind, resourceName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, string) error); ok { - r1 = rf(namespace, resourceKind, resourceName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListForServiceInstance provides a mock function with given fields: namespace, instanceName -func (_m *serviceBindingUsageOperations) ListForServiceInstance(namespace string, instanceName string) ([]*v1alpha1.ServiceBindingUsage, error) { - ret := _m.Called(namespace, instanceName) - - var r0 []*v1alpha1.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(string, string) []*v1alpha1.ServiceBindingUsage); ok { - r0 = rf(namespace, instanceName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, instanceName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Subscribe provides a mock function with given fields: listener -func (_m *serviceBindingUsageOperations) Subscribe(listener resource.Listener) { - _m.Called(listener) -} - -// Unsubscribe provides a mock function with given fields: listener -func (_m *serviceBindingUsageOperations) Unsubscribe(listener resource.Listener) { - _m.Called(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/status_binding_usage_extractor.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/status_binding_usage_extractor.go deleted file mode 100644 index 1de41954c8c3..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/status_binding_usage_extractor.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// statusBindingUsageExtractor is an autogenerated mock type for the statusBindingUsageExtractor type -type statusBindingUsageExtractor struct { - mock.Mock -} - -// Status provides a mock function with given fields: conditions -func (_m *statusBindingUsageExtractor) Status(conditions []v1alpha1.ServiceBindingUsageCondition) gqlschema.ServiceBindingUsageStatus { - ret := _m.Called(conditions) - - var r0 gqlschema.ServiceBindingUsageStatus - if rf, ok := ret.Get(0).(func([]v1alpha1.ServiceBindingUsageCondition) gqlschema.ServiceBindingUsageStatus); ok { - r0 = rf(conditions) - } else { - r0 = ret.Get(0).(gqlschema.ServiceBindingUsageStatus) - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/usage_kind_services.go b/components/console-backend-service/internal/domain/servicecatalogaddons/automock/usage_kind_services.go deleted file mode 100644 index 146d8cd27a2c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/automock/usage_kind_services.go +++ /dev/null @@ -1,38 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - pager "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// usageKindServices is an autogenerated mock type for the usageKindServices type -type usageKindServices struct { - mock.Mock -} - -// List provides a mock function with given fields: params -func (_m *usageKindServices) List(params pager.PagingParams) ([]*v1alpha1.UsageKind, error) { - ret := _m.Called(params) - - var r0 []*v1alpha1.UsageKind - if rf, ok := ret.Get(0).(func(pager.PagingParams) []*v1alpha1.UsageKind); ok { - r0 = rf(params) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.UsageKind) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(pager.PagingParams) error); ok { - r1 = rf(params) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/bindableresources_resolver.go b/components/console-backend-service/internal/domain/servicecatalogaddons/bindableresources_resolver.go deleted file mode 100644 index afa1aed089f8..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/bindableresources_resolver.go +++ /dev/null @@ -1,38 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -//go:generate mockery -name=bindableResourceLister -output=automock -outpkg=automock -case=underscore -type bindableResourceLister interface { - ListResources(namespace string) ([]*gqlschema.BindableResourcesOutputItem, error) -} - -type bindableResourcesResolver struct { - converter gqlUsageKindConverter - lister bindableResourceLister -} - -func newBindableResourcesResolver(lister bindableResourceLister) *bindableResourcesResolver { - return &bindableResourcesResolver{ - lister: lister, - converter: &usageKindConverter{}, - } -} - -func (rsv *bindableResourcesResolver) ListBindableResources(ctx context.Context, namespace string) ([]*gqlschema.BindableResourcesOutputItem, error) { - res, err := rsv.lister.ListResources(namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s for %s in namespace `%s`", pretty.BindableResources, pretty.UsageKind, namespace)) - return nil, gqlerror.New(err, pretty.BindableResources, gqlerror.WithNamespace(namespace)) - } - - return res, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/bindableresources_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/bindableresources_resolver_test.go deleted file mode 100644 index af1b65e1a34a..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/bindableresources_resolver_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package servicecatalogaddons_test - -import ( - "context" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestBindableResourcesResolver_ListBindableResources(t *testing.T) { - // GIVEN - svc := automock.NewBindableResourcesLister() - svc.On("ListResources", fixUsageKindResourceNamespace()). - Return(fixBindableResourcesOutputItems(), nil). - Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewBindableResourcesResolver(svc) - - // WHEN - result, err := resolver.ListBindableResources(context.Background(), fixUsageKindResourceNamespace()) - - // THEN - require.NoError(t, err) - assert.Equal(t, fixBindableResourcesOutputItems(), result) -} - -func fixBindableResourcesOutputItems() []*gqlschema.BindableResourcesOutputItem { - return []*gqlschema.BindableResourcesOutputItem{ - { - Kind: "deployment", - DisplayName: "Deployments", - Resources: []*gqlschema.UsageKindResource{}, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_converter.go deleted file mode 100644 index 873837bb9fae..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_converter.go +++ /dev/null @@ -1,47 +0,0 @@ -package servicecatalogaddons - -import ( - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type clusterAddonsConfigurationConverter struct{} - -func (c *clusterAddonsConfigurationConverter) ToGQL(item *v1alpha1.ClusterAddonsConfiguration) *gqlschema.AddonsConfiguration { - if item == nil { - return nil - } - - urls := []string{} - repositories := []*gqlschema.AddonsConfigurationRepository{} - for _, repo := range item.Spec.Repositories { - urls = append(urls, repo.URL) - repositories = append(repositories, parseRepository(repo)) - } - - labels := item.Labels - if labels == nil { - labels = gqlschema.Labels{} - } - - addonsCfg := gqlschema.AddonsConfiguration{ - Name: item.Name, - Labels: labels, - Urls: urls, - Status: parseStatus(item.Status.CommonAddonsConfigurationStatus), - Repositories: repositories, - } - - return &addonsCfg -} - -func (c *clusterAddonsConfigurationConverter) ToGQLs(in []*v1alpha1.ClusterAddonsConfiguration) []*gqlschema.AddonsConfiguration { - var result []*gqlschema.AddonsConfiguration - for _, u := range in { - converted := c.ToGQL(u) - if converted != nil { - result = append(result, converted) - } - } - return result -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_converter_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_converter_test.go deleted file mode 100644 index 3e7c5db40622..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_converter_test.go +++ /dev/null @@ -1,199 +0,0 @@ -package servicecatalogaddons_test - -import ( - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAddonsConfigurationConverter_ToGQL(t *testing.T) { - converter := servicecatalogaddons.NewClusterAddonsConfigurationConverter() - url := "ww.fix.k" - - for tn, tc := range map[string]struct { - givenAddon *v1alpha1.ClusterAddonsConfiguration - expectedAddonsConfig *gqlschema.AddonsConfiguration - }{ - "empty": { - givenAddon: &v1alpha1.ClusterAddonsConfiguration{}, - expectedAddonsConfig: &gqlschema.AddonsConfiguration{ - Labels: gqlschema.Labels{}, - Status: &gqlschema.AddonsConfigurationStatus{Repositories: []*gqlschema.AddonsConfigurationStatusRepository{}}, - Repositories: []*gqlschema.AddonsConfigurationRepository{}, - Urls: []string{}, - }, - }, - "full": { - givenAddon: &v1alpha1.ClusterAddonsConfiguration{ - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Labels: map[string]string{ - "add": "it", - "ion": "al", - }, - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - {URL: url}, - }, - }, - }, - Status: v1alpha1.ClusterAddonsConfigurationStatus{ - CommonAddonsConfigurationStatus: v1alpha1.CommonAddonsConfigurationStatus{ - Phase: v1alpha1.AddonsConfigurationReady, - Repositories: []v1alpha1.StatusRepository{ - { - Status: v1alpha1.RepositoryStatus("Failed"), - Message: "fix", - Reason: v1alpha1.RepositoryStatusReason("reason"), - URL: "rul", - Addons: []v1alpha1.Addon{ - { - Status: v1alpha1.AddonStatusFailed, - Message: "test", - Name: "addon", - }, - }, - }, - }, - }, - }, - }, - expectedAddonsConfig: &gqlschema.AddonsConfiguration{ - Name: "test", - Labels: gqlschema.Labels{ - "add": "it", - "ion": "al", - }, - Urls: []string{url}, - Repositories: []*gqlschema.AddonsConfigurationRepository{ - { - URL: url, - }, - }, - Status: &gqlschema.AddonsConfigurationStatus{ - Phase: string(v1alpha1.AddonsConfigurationReady), - Repositories: []*gqlschema.AddonsConfigurationStatusRepository{ - { - Status: "Failed", - URL: "rul", - Reason: "reason", - Message: "fix", - Addons: []*gqlschema.AddonsConfigurationStatusAddons{ - { - Status: "Failed", - Message: "test", - Name: "addon", - }, - }, - }, - }, - }, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - assert.Equal(t, tc.expectedAddonsConfig, converter.ToGQL(tc.givenAddon)) - }) - } -} - -func TestClusterAddonsConfigurationConverter_ToGQLs(t *testing.T) { - converter := servicecatalogaddons.NewClusterAddonsConfigurationConverter() - url := "www.example.com" - - for tn, tc := range map[string]struct { - givenAddons []*v1alpha1.ClusterAddonsConfiguration - expectedAddonsConfig []*gqlschema.AddonsConfiguration - }{ - "empty": { - givenAddons: []*v1alpha1.ClusterAddonsConfiguration{}, - expectedAddonsConfig: []*gqlschema.AddonsConfiguration(nil), - }, - "full": { - givenAddons: []*v1alpha1.ClusterAddonsConfiguration{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Labels: map[string]string{ - "test": "test", - }, - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: url, - SecretRef: &v1.SecretReference{ - Name: "test", - Namespace: "test", - }, - }, - }, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "test2", - Labels: map[string]string{ - "test2": "test2", - }, - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - {URL: url}, - }, - }, - }}, - }, - expectedAddonsConfig: []*gqlschema.AddonsConfiguration{ - { - Name: "test", - Labels: gqlschema.Labels{ - "test": "test", - }, - Urls: []string{url}, - Repositories: []*gqlschema.AddonsConfigurationRepository{ - { - URL: url, - SecretRef: &gqlschema.ResourceRef{ - Name: "test", - Namespace: "test", - }, - }, - }, - Status: &gqlschema.AddonsConfigurationStatus{ - Repositories: []*gqlschema.AddonsConfigurationStatusRepository{}, - }, - }, - { - Name: "test2", - Labels: gqlschema.Labels{ - "test2": "test2", - }, - Urls: []string{url}, - Repositories: []*gqlschema.AddonsConfigurationRepository{ - { - URL: url, - }, - }, - Status: &gqlschema.AddonsConfigurationStatus{ - Repositories: []*gqlschema.AddonsConfigurationStatusRepository{}, - }, - }, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - assert.Equal(t, tc.expectedAddonsConfig, converter.ToGQLs(tc.givenAddons)) - }) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_resolver.go b/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_resolver.go deleted file mode 100644 index 675ffa4b8162..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_resolver.go +++ /dev/null @@ -1,189 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - "strings" - - "github.com/golang/glog" - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" -) - -//go:generate mockery -name=clusterAddonsCfgService -output=automock -outpkg=automock -case=underscore -type clusterAddonsCfgService interface { - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -//go:generate mockery -name=clusterAddonsCfgLister -output=automock -outpkg=automock -case=underscore -type clusterAddonsCfgLister interface { - List(pagingParams pager.PagingParams) ([]*v1alpha1.ClusterAddonsConfiguration, error) -} - -//go:generate mockery -name=clusterAddonsCfgUpdater -output=automock -outpkg=automock -case=underscore -type clusterAddonsCfgUpdater interface { - AddRepos(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput) (*v1alpha1.ClusterAddonsConfiguration, error) - RemoveRepos(name string, reposToRemove []string) (*v1alpha1.ClusterAddonsConfiguration, error) - Resync(name string) (*v1alpha1.ClusterAddonsConfiguration, error) -} - -//go:generate mockery -name=clusterAddonsCfgMutations -output=automock -outpkg=automock -case=underscore -type clusterAddonsCfgMutations interface { - Create(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.ClusterAddonsConfiguration, error) - Update(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.ClusterAddonsConfiguration, error) - Delete(name string) (*v1alpha1.ClusterAddonsConfiguration, error) -} - -type clusterAddonsConfigurationResolver struct { - addonsCfgUpdater clusterAddonsCfgUpdater - addonsCfgLister clusterAddonsCfgLister - addonsCfgService clusterAddonsCfgService - addonsCfgMutations clusterAddonsCfgMutations - addonsCfgConverter clusterAddonsConfigurationConverter -} - -func newClusterAddonsConfigurationResolver(svc *clusterAddonsConfigurationService) *clusterAddonsConfigurationResolver { - return &clusterAddonsConfigurationResolver{ - addonsCfgLister: svc, - addonsCfgUpdater: svc, - addonsCfgService: svc, - addonsCfgMutations: svc, - addonsCfgConverter: clusterAddonsConfigurationConverter{}, - } -} - -func (r *clusterAddonsConfigurationResolver) ClusterAddonsConfigurationsQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) { - params := pager.PagingParams{First: first, Offset: offset} - - addons, err := r.addonsCfgLister.List(params) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.ClusterAddonsConfigurations)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfigurations) - } - - return r.addonsCfgConverter.ToGQLs(addons), nil -} - -func (r *clusterAddonsConfigurationResolver) CreateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - repositories, err := resolveRepositories(repositories, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while resolving repositories from %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name), gqlerror.WithDetails(err.Error())) - } - - addon, err := r.addonsCfgMutations.Create(name, repositories, labels) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name), gqlerror.WithCustomArgument("urls", strings.Join(urls, "\n"))) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *clusterAddonsConfigurationResolver) UpdateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - repositories, err := resolveRepositories(repositories, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while resolving repositories from %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name), gqlerror.WithDetails(err.Error())) - } - - addon, err := r.addonsCfgMutations.Update(name, repositories, labels) - if err != nil { - glog.Error(errors.Wrapf(err, "while updating %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name), gqlerror.WithCustomArgument("urls", strings.Join(urls, "\n"))) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *clusterAddonsConfigurationResolver) DeleteClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgMutations.Delete(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *clusterAddonsConfigurationResolver) AddClusterAddonsConfigurationRepositories(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.AddRepos(name, repositories) - if err != nil { - glog.Error(errors.Wrapf(err, "while adding additional repositories to %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *clusterAddonsConfigurationResolver) RemoveClusterAddonsConfigurationRepositories(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.RemoveRepos(name, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while removing repository from %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -// DEPRECATED: Delete after UI migrate to AddClusterAddonsConfigurationRepositories -func (r *clusterAddonsConfigurationResolver) AddClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - repositories, err := resolveRepositories(nil, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while resolving repositories from %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name), gqlerror.WithDetails(err.Error())) - } - - addon, err := r.addonsCfgUpdater.AddRepos(name, repositories) - if err != nil { - glog.Error(errors.Wrapf(err, "while adding additional repositories to %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -// DEPRECATED: Delete after UI migrate to RemoveClusterAddonsConfigurationRepositories -func (r *clusterAddonsConfigurationResolver) RemoveClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.RemoveRepos(name, urls) - if err != nil { - glog.Error(errors.Wrapf(err, "while removing repository from %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *clusterAddonsConfigurationResolver) ResyncClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) { - addon, err := r.addonsCfgUpdater.Resync(name) - if err != nil { - glog.Error(errors.Wrapf(err, "while resyncing repository from %s %s", pretty.ClusterAddonsConfiguration, name)) - return nil, gqlerror.New(err, pretty.ClusterAddonsConfiguration, gqlerror.WithName(name)) - } - - return r.addonsCfgConverter.ToGQL(addon), nil -} - -func (r *clusterAddonsConfigurationResolver) ClusterAddonsConfigurationEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAddonsConfigurationEvent, error) { - channel := make(chan *gqlschema.ClusterAddonsConfigurationEvent, 1) - - filter := func(entity *v1alpha1.ClusterAddonsConfiguration) bool { - return entity != nil - } - - brokerListener := listener.NewClusterAddonsConfiguration(channel, filter, &r.addonsCfgConverter) - r.addonsCfgService.Subscribe(brokerListener) - go func() { - defer close(channel) - defer r.addonsCfgService.Unsubscribe(brokerListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_resolver_test.go deleted file mode 100644 index 1b421aa3b18b..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_resolver_test.go +++ /dev/null @@ -1,179 +0,0 @@ -package servicecatalogaddons_test - -import ( - "context" - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestClusterAddonsConfigurationResolver_AddonsConfigurationsQuery(t *testing.T) { - // given - addonsCfgLister := automock.NewClusterAddonsCfgLister() - defer addonsCfgLister.AssertExpectations(t) - - listedAddons := []*v1alpha1.ClusterAddonsConfiguration{fixClusterAddonsConfiguration("test")} - addonsCfgLister.On("List", pager.PagingParams{}). - Return(listedAddons, nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(nil, nil, addonsCfgLister) - - // when - res, err := resolver.ClusterAddonsConfigurationsQuery(context.Background(), nil, nil) - - // then - require.NoError(t, err) - assert.Equal(t, []*gqlschema.AddonsConfiguration{fixGQLAddonsConfiguration("test")}, res) -} - -func TestClusterAddonsConfigurationResolver_CreateAddonsConfiguration(t *testing.T) { - // given - const addonName = "test" - addonsCfgMutation := automock.NewClusterAddonsCfgMutations() - defer addonsCfgMutation.AssertExpectations(t) - - addonsCfgMutation.On("Create", addonName, []*gqlschema.AddonsConfigurationRepositoryInput{}, gqlschema.Labels{}). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(nil, addonsCfgMutation, nil) - - // when - res, err := resolver.CreateClusterAddonsConfiguration(context.Background(), addonName, nil, []string{}, gqlschema.Labels{}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), res) -} - -func TestClusterAddonsConfigurationResolver_UpdateAddonsConfiguration(t *testing.T) { - // given - const addonName = "test" - addonsCfgMutation := automock.NewClusterAddonsCfgMutations() - defer addonsCfgMutation.AssertExpectations(t) - addonsCfgMutation.On("Update", addonName, []*gqlschema.AddonsConfigurationRepositoryInput{}, gqlschema.Labels{}). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(nil, addonsCfgMutation, nil) - - // when - cfgs, err := resolver.UpdateClusterAddonsConfiguration(context.Background(), addonName, nil, []string{}, gqlschema.Labels{}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestClusterAddonsConfigurationResolver_DeleteAddonsConfiguration(t *testing.T) { - // given - const addonName = "test" - addonsCfgMutation := automock.NewClusterAddonsCfgMutations() - defer addonsCfgMutation.AssertExpectations(t) - addonsCfgMutation.On("Delete", addonName). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(nil, addonsCfgMutation, nil) - - // when - cfgs, err := resolver.DeleteClusterAddonsConfiguration(context.Background(), addonName) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -// DEPRECATED: Remove -func TestClusterAddonsConfigurationResolver_AddAddonsConfigurationURLs(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewClusterAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("AddRepos", addonName, []*gqlschema.AddonsConfigurationRepositoryInput{{URL: "app.gg"}}). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.AddClusterAddonsConfigurationURLs(context.Background(), addonName, []string{"app.gg"}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestClusterAddonsConfigurationResolver_RemoveAddonsConfigurationURLs(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewClusterAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("RemoveRepos", addonName, []string{"www.piko.bo"}). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.RemoveClusterAddonsConfigurationURLs(context.Background(), addonName, []string{"www.piko.bo"}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestClusterAddonsConfigurationResolver_AddAddonsConfigurationRepository(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewClusterAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("AddRepos", addonName, []*gqlschema.AddonsConfigurationRepositoryInput{{URL: "app.gg"}}). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.AddClusterAddonsConfigurationRepositories(context.Background(), addonName, []*gqlschema.AddonsConfigurationRepositoryInput{{URL: "app.gg"}}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestClusterAddonsConfigurationResolver_RemoveAddonsConfigurationRepository(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewClusterAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("RemoveRepos", addonName, []string{"www.piko.bo"}). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.RemoveClusterAddonsConfigurationRepositories(context.Background(), addonName, []string{"www.piko.bo"}) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} - -func TestClusterAddonsConfigurationResolver_ResyncAddonsConfiguration(t *testing.T) { - // given - const addonName = "test" - addonsCfgUpdater := automock.NewClusterAddonsCfgUpdater() - defer addonsCfgUpdater.AssertExpectations(t) - addonsCfgUpdater.On("Resync", addonName). - Return(fixClusterAddonsConfiguration(addonName), nil).Once() - - resolver := servicecatalogaddons.NewClusterAddonsConfigurationResolver(addonsCfgUpdater, nil, nil) - - // when - cfgs, err := resolver.ResyncClusterAddonsConfiguration(context.Background(), addonName) - - // then - require.NoError(t, err) - assert.Equal(t, fixGQLAddonsConfiguration(addonName), cfgs) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_service.go b/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_service.go deleted file mode 100644 index d2d7d9e9ae64..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_service.go +++ /dev/null @@ -1,235 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - "fmt" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/pkg/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/util/retry" -) - -type clusterAddonsConfigurationService struct { - addonsNotifier notifier - addonsCfgClient dynamic.ResourceInterface - addonsCfgInformer cache.SharedIndexInformer - - extractor extractor.ClusterAddonsUnstructuredExtractor -} - -func newClusterAddonsConfigurationService(addonsCfgInformer cache.SharedIndexInformer, addonsCfgClient dynamic.ResourceInterface) *clusterAddonsConfigurationService { - addonsNotifier := resource.NewNotifier() - addonsCfgInformer.AddEventHandler(addonsNotifier) - - return &clusterAddonsConfigurationService{ - addonsCfgClient: addonsCfgClient, - addonsCfgInformer: addonsCfgInformer, - addonsNotifier: addonsNotifier, - extractor: extractor.ClusterAddonsUnstructuredExtractor{}, - } -} - -func (s *clusterAddonsConfigurationService) List(pagingParams pager.PagingParams) ([]*v1alpha1.ClusterAddonsConfiguration, error) { - items, err := pager.From(s.addonsCfgInformer.GetStore()).Limit(pagingParams) - if err != nil { - return nil, err - } - - var addons []*v1alpha1.ClusterAddonsConfiguration - for _, item := range items { - u, ok := item.(*unstructured.Unstructured) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *v1alpha1.ClusterAddonsConfiguration", item) - } - - addon, err := s.extractor.FromUnstructured(u) - if err != nil { - return nil, err - } - addons = append(addons, addon) - } - - return addons, nil -} - -func (s *clusterAddonsConfigurationService) AddRepos(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput) (*v1alpha1.ClusterAddonsConfiguration, error) { - var addon *v1alpha1.ClusterAddonsConfiguration - if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { - obj, err := s.addonsCfgClient.Get(context.Background(), name, metav1.GetOptions{}) - if err != nil { - return err - } - - addon, err = s.extractor.FromUnstructured(obj) - if err != nil { - return err - } - addon.Spec.Repositories = append(addon.Spec.Repositories, toSpecRepositories(repository)...) - - obj, err = s.extractor.ToUnstructured(addon) - if err != nil { - return err - } - - _, err = s.addonsCfgClient.Update(context.Background(), obj, metav1.UpdateOptions{}) - return err - }); err != nil { - return nil, errors.Wrapf(err, "while updating %s %s", pretty.AddonsConfiguration, name) - } - - return addon, nil -} - -func (s *clusterAddonsConfigurationService) RemoveRepos(name string, reposToRemove []string) (*v1alpha1.ClusterAddonsConfiguration, error) { - var addon *v1alpha1.ClusterAddonsConfiguration - if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { - obj, err := s.addonsCfgClient.Get(context.Background(), name, metav1.GetOptions{}) - if err != nil { - return err - } - - addon, err = s.extractor.FromUnstructured(obj) - if err != nil { - return err - } - resultRepos := filterOutRepositories(addon.Spec.Repositories, reposToRemove) - addon.Spec.Repositories = resultRepos - - obj, err = s.extractor.ToUnstructured(addon) - if err != nil { - return err - } - - _, err = s.addonsCfgClient.Update(context.Background(), obj, metav1.UpdateOptions{}) - return err - }); err != nil { - return nil, errors.Wrapf(err, "while updating %s %s", pretty.AddonsConfiguration, name) - } - - return addon, nil -} - -func (s *clusterAddonsConfigurationService) Create(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.ClusterAddonsConfiguration, error) { - addon := &v1alpha1.ClusterAddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: toMapLabels(labels), - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: toSpecRepositories(repository), - }, - }, - } - - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return nil, err - } - _, err = s.addonsCfgClient.Create(context.Background(), obj, metav1.CreateOptions{}) - if err != nil { - return nil, errors.Wrapf(err, "while creating %s %s", pretty.ClusterAddonsConfiguration, addon.Name) - } - - return addon, nil -} - -func (s *clusterAddonsConfigurationService) Update(name string, repository []*gqlschema.AddonsConfigurationRepositoryInput, labels gqlschema.Labels) (*v1alpha1.ClusterAddonsConfiguration, error) { - addon, err := s.getClusterAddonsConfiguration(name) - if err != nil { - return nil, err - } - addon.Spec.Repositories = toSpecRepositories(repository) - addon.Labels = toMapLabels(labels) - - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return nil, err - } - _, err = s.addonsCfgClient.Update(context.Background(), obj, metav1.UpdateOptions{}) - if err != nil { - return nil, errors.Wrapf(err, "while updating %s %s", pretty.ClusterAddonsConfiguration, addon.Name) - } - - return addon, nil -} - -func (s *clusterAddonsConfigurationService) Delete(name string) (*v1alpha1.ClusterAddonsConfiguration, error) { - addon, err := s.getClusterAddonsConfiguration(name) - if err != nil { - return nil, err - } - - if err := s.addonsCfgClient.Delete(context.Background(), name, metav1.DeleteOptions{}); err != nil { - return nil, errors.Wrapf(err, "while deleting %s %s", pretty.ClusterAddonsConfiguration, addon.Name) - } - - return addon, nil -} - -func (s *clusterAddonsConfigurationService) Resync(name string) (*v1alpha1.ClusterAddonsConfiguration, error) { - var addon *v1alpha1.ClusterAddonsConfiguration - var err error - if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { - addon, err = s.getClusterAddonsConfiguration(name) - if err != nil { - return err - } - addon.Spec.ReprocessRequest++ - - obj, err := s.extractor.ToUnstructured(addon) - if err != nil { - return err - } - _, err = s.addonsCfgClient.Update(context.Background(), obj, metav1.UpdateOptions{}) - return err - }); err != nil { - return nil, errors.Wrapf(err, "cannot update ClusterAddonsConfiguration %s", name) - } - - return addon, nil -} - -func (s *clusterAddonsConfigurationService) getClusterAddonsConfiguration(name string) (*v1alpha1.ClusterAddonsConfiguration, error) { - item, exists, err := s.addonsCfgInformer.GetStore().GetByKey(name) - if err != nil { - return nil, errors.Wrapf(err, "while getting %s %s", pretty.ClusterAddonsConfiguration, name) - } - - if !exists { - return nil, errors.Errorf("%s doesn't exists", name) - } - - u, ok := item.(*unstructured.Unstructured) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: *unstructured.Unstructured", item) - } - - addons, err := s.extractor.FromUnstructured(u) - if !ok { - return nil, err - } - - return addons, nil -} - -func (svc *clusterAddonsConfigurationService) Subscribe(listener resource.Listener) { - svc.addonsNotifier.AddListener(listener) -} - -func (svc *clusterAddonsConfigurationService) Unsubscribe(listener resource.Listener) { - svc.addonsNotifier.DeleteListener(listener) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_service_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_service_test.go deleted file mode 100644 index 3df52ddec442..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/clusteraddonsconfiguration_service_test.go +++ /dev/null @@ -1,499 +0,0 @@ -package servicecatalogaddons_test - -import ( - "fmt" - "testing" - "time" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestClusterAddonsConfigurationService_AddRepos_Success(t *testing.T) { - for tn, tc := range map[string]struct { - name string - urls []*gqlschema.AddonsConfigurationRepositoryInput - }{ - "add URL": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - {URL: "www.next"}, - }, - }, - "add many URLs": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - {URL: "www.next"}, - {URL: "www.one"}, - {URL: "www.two"}, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - fixAddonCfg := fixClusterAddonsConfiguration("test") - url := "www.already.present.url" - fixAddonCfg.Spec.Repositories = []v1alpha1.SpecRepository{ - {URL: url}, - } - expURLs := append(tc.urls, &gqlschema.AddonsConfigurationRepositoryInput{URL: url}) - - client, err := newDynamicClient(fixAddonCfg) - require.NoError(t, err) - - informer := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(informer, client.Resource(clusterAddonsConfigGVR)) - - // when - result, err := svc.AddRepos(tc.name, tc.urls) - - // then - require.NoError(t, err) - assert.Len(t, result.Spec.Repositories, len(expURLs)) - }) - } -} - -func TestClusterAddonsConfigurationService_AddRepos_Failure(t *testing.T) { - // given - fixAddonCfgName := "not-existing-cfg" - fixURLs := []*gqlschema.AddonsConfigurationRepositoryInput{{URL: "www.www"}} - - client, err := newDynamicClient() - require.NoError(t, err) - - informer := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(informer, client.Resource(clusterAddonsConfigGVR)) - - // when - result, err := svc.AddRepos(fixAddonCfgName, fixURLs) - - // then - assert.Error(t, err) - assert.Nil(t, result) -} - -func TestClusterAddonsConfigurationService_DeleteRepos(t *testing.T) { - for tn, tc := range map[string]struct { - name string - repos []v1alpha1.SpecRepository - urlsToRemove []string - }{ - "delete URL": { - name: "test", - repos: []v1alpha1.SpecRepository{ - {URL: "www.already.present.url"}, - {URL: "www.next"}, - }, - urlsToRemove: []string{"www.next"}, - }, - "delete many URLs": { - name: "test", - repos: []v1alpha1.SpecRepository{ - {URL: "www.already.present.url"}, - {URL: "www.next"}, - {URL: "www.second"}, - }, - urlsToRemove: []string{"www.next", "www.second"}, - }, - "delete all URLs": { - name: "test", - repos: []v1alpha1.SpecRepository{ - {URL: "www.already.present.url"}, - {URL: "www.next"}, - {URL: "www.second"}, - }, - - urlsToRemove: []string{"www.already.present.url", "www.next", "www.second"}, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - cfg := fixClusterAddonsConfiguration(tc.name) - cfg.Spec.Repositories = tc.repos - - client, err := newDynamicClient(cfg) - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - // when - result, err := svc.RemoveRepos(tc.name, tc.urlsToRemove) - - // then - require.NoError(t, err) - assert.NotNil(t, result.Spec.Repositories) - var normalizedResultURLs []string - for _, r := range result.Spec.Repositories { - normalizedResultURLs = append(normalizedResultURLs, r.URL) - } - for _, url := range tc.urlsToRemove { - assert.NotContains(t, normalizedResultURLs, url) - } - }) - } -} - -func TestClusterAddonsConfigurationService_DeleteRepos_Failure(t *testing.T) { - // given - fixAddonCfgName := "not-existing-cfg" - fixURLs := []string{"ww.fix.k"} - - client, err := newDynamicClient() - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - // when - result, err := svc.RemoveRepos(fixAddonCfgName, fixURLs) - - // then - assert.Error(t, err) - assert.Nil(t, result) -} - -func TestClusterAddonsConfigurationService_CreateAddonsConfiguration(t *testing.T) { - for tn, tc := range map[string]struct { - name string - urls []*gqlschema.AddonsConfigurationRepositoryInput - labels gqlschema.Labels - - expectedResult *v1alpha1.ClusterAddonsConfiguration - }{ - "successWithLabels": { - name: "test", - labels: gqlschema.Labels{ - "add": "it", - "ion": "al", - }, - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - SecretRef: &gqlschema.ResourceRefInput{}, - }, - }, - expectedResult: &v1alpha1.ClusterAddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Labels: map[string]string{ - "add": "it", - "ion": "al", - }, - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - SecretRef: &v1.SecretReference{}, - }, - }, - }, - }, - }, - }, - "successWithNilLabels": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - SecretRef: &gqlschema.ResourceRefInput{}, - }, - }, - expectedResult: &v1alpha1.ClusterAddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - SecretRef: &v1.SecretReference{}, - }, - }, - }, - }, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - client, err := newDynamicClient() - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - // when - result, err := svc.Create(tc.name, tc.urls, tc.labels) - - // then - require.NoError(t, err) - assert.Equal(t, tc.expectedResult, result) - }) - } -} - -func TestClusterAddonsConfigurationService_UpdateAddonsConfiguration(t *testing.T) { - for tn, tc := range map[string]struct { - name string - urls []*gqlschema.AddonsConfigurationRepositoryInput - labels gqlschema.Labels - - expectedResult *v1alpha1.ClusterAddonsConfiguration - }{ - "successWithLabels": { - name: "test", - labels: gqlschema.Labels{ - "add": "it", - "ion": "al", - }, - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - SecretRef: &gqlschema.ResourceRefInput{}, - }, - }, - expectedResult: &v1alpha1.ClusterAddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - Labels: map[string]string{ - "add": "it", - "ion": "al", - }, - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - SecretRef: &v1.SecretReference{}, - }, - }, - }, - }, - }, - }, - "successWithNilLabels": { - name: "test", - urls: []*gqlschema.AddonsConfigurationRepositoryInput{ - { - URL: "ww.fix.k", - SecretRef: &gqlschema.ResourceRefInput{}, - }, - }, - expectedResult: &v1alpha1.ClusterAddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - { - URL: "ww.fix.k", - SecretRef: &v1.SecretReference{}, - }, - }, - }, - }, - }, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - client, err := newDynamicClient(fixClusterAddonsConfiguration(tc.name)) - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - // when - result, err := svc.Update(tc.name, tc.urls, tc.labels) - - // then - require.NoError(t, err) - assert.Equal(t, tc.expectedResult, result) - }) - } -} - -func TestClusterAddonsConfigurationService_DeleteAddonsConfiguration(t *testing.T) { - // given - fixAddonCfgName := "test" - expectedCfg := fixClusterAddonsConfiguration(fixAddonCfgName) - client, err := newDynamicClient(expectedCfg) - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - // when - cfg, err := svc.Delete(fixAddonCfgName) - - // then - require.NoError(t, err) - assert.Equal(t, expectedCfg, cfg) -} - -func TestClusterAddonsConfigurationService_DeleteAddonsConfiguration_Error(t *testing.T) { - // given - fixAddonCfgName := "not-existing-cfg" - expErrMsg := fmt.Sprintf("%s doesn't exists", fixAddonCfgName) - - client, err := newDynamicClient() - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - // when - cfg, err := svc.Delete(fixAddonCfgName) - - // then - assert.EqualError(t, err, expErrMsg) - assert.Nil(t, cfg) -} - -func TestClusterAddonsConfigurationService_ListAddonsConfigurations(t *testing.T) { - for tn, tc := range map[string]struct { - alreadyExitedCfgs []runtime.Object - expectedAddonsCfgs []*v1alpha1.ClusterAddonsConfiguration - }{ - "empty": { - alreadyExitedCfgs: []runtime.Object{}, - expectedAddonsCfgs: []*v1alpha1.ClusterAddonsConfiguration(nil), - }, - "few addons configurations": { - alreadyExitedCfgs: []runtime.Object{ - fixClusterAddonsConfiguration("test"), - fixClusterAddonsConfiguration("test2"), - }, - expectedAddonsCfgs: []*v1alpha1.ClusterAddonsConfiguration{ - fixClusterAddonsConfiguration("test"), - fixClusterAddonsConfiguration("test2"), - }, - }, - } { - t.Run(tn, func(t *testing.T) { - // given - client, err := newDynamicClient(tc.alreadyExitedCfgs...) - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - require.NoError(t, err) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, nil) - - // when - result, err := svc.List(pager.PagingParams{}) - - // then - require.NoError(t, err) - assert.Equal(t, tc.expectedAddonsCfgs, result) - }) - } -} - -func TestClusterAddonsConfigurationService_ResyncAddonsConfiguration(t *testing.T) { - // given - fixAddonCfgName := "test" - expectedCfg := fixClusterAddonsConfiguration(fixAddonCfgName) - - client, err := newDynamicClient(expectedCfg) - require.NoError(t, err) - - inf := fixClusterAddonsConfigurationInformer(client) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, inf) - - svc := servicecatalogaddons.NewClusterAddonsConfigurationService(inf, client.Resource(clusterAddonsConfigGVR)) - - expectedCfg.Spec.ReprocessRequest = 1 - - // when - cfg, err := svc.Resync(fixAddonCfgName) - - // then - require.NoError(t, err) - assert.Equal(t, expectedCfg, cfg) -} - -func fixClusterAddonsConfiguration(name string) *v1alpha1.ClusterAddonsConfiguration { - return &v1alpha1.ClusterAddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: v1alpha1.ClusterAddonsConfigurationSpec{ - CommonAddonsConfigurationSpec: v1alpha1.CommonAddonsConfigurationSpec{ - Repositories: []v1alpha1.SpecRepository{ - {URL: "www.piko.bello"}, - }, - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/gql_service_binding_usage_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/gql_service_binding_usage_converter.go deleted file mode 100644 index 77837fab8036..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/gql_service_binding_usage_converter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// GqlServiceBindingUsageConverter is an autogenerated failing mock type for the GqlServiceBindingUsageConverter type -type GqlServiceBindingUsageConverter struct { - err error -} - -// NewGqlServiceBindingUsageConverter creates a new GqlServiceBindingUsageConverter type instance -func NewGqlServiceBindingUsageConverter(err error) *GqlServiceBindingUsageConverter { - return &GqlServiceBindingUsageConverter{err: err} -} - -// ToGQL provides a failing mock function with given fields: item -func (_m *GqlServiceBindingUsageConverter) ToGQL(item *v1alpha1.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) { - var r0 *gqlschema.ServiceBindingUsage - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ToGQLs provides a failing mock function with given fields: in -func (_m *GqlServiceBindingUsageConverter) ToGQLs(in []*v1alpha1.ServiceBindingUsage) ([]*gqlschema.ServiceBindingUsage, error) { - var r0 []*gqlschema.ServiceBindingUsage - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/resolver.go b/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/resolver.go deleted file mode 100644 index 5cceb479220d..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/resolver.go +++ /dev/null @@ -1,280 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import ( - context "context" - - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -// Resolver is an autogenerated failing mock type for the Resolver type -type Resolver struct { - err error -} - -// NewResolver creates a new Resolver type instance -func NewResolver(err error) *Resolver { - return &Resolver{err: err} -} - -// AddAddonsConfigurationRepositories provides a failing mock function with given fields: ctx, name, namespace, repositories -func (_m *Resolver) AddAddonsConfigurationRepositories(ctx context.Context, name string, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AddAddonsConfigurationURLs provides a failing mock function with given fields: ctx, name, namespace, urls -func (_m *Resolver) AddAddonsConfigurationURLs(ctx context.Context, name string, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AddClusterAddonsConfigurationRepositories provides a failing mock function with given fields: ctx, name, repositories -func (_m *Resolver) AddClusterAddonsConfigurationRepositories(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AddClusterAddonsConfigurationURLs provides a failing mock function with given fields: ctx, name, urls -func (_m *Resolver) AddClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AddonsConfigurationEventSubscription provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) AddonsConfigurationEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AddonsConfigurationEvent, error) { - var r0 <-chan *gqlschema.AddonsConfigurationEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// AddonsConfigurationsQuery provides a failing mock function with given fields: ctx, namespace, first, offset -func (_m *Resolver) AddonsConfigurationsQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) { - var r0 []*gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterAddonsConfigurationEventSubscription provides a failing mock function with given fields: ctx -func (_m *Resolver) ClusterAddonsConfigurationEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAddonsConfigurationEvent, error) { - var r0 <-chan *gqlschema.ClusterAddonsConfigurationEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ClusterAddonsConfigurationsQuery provides a failing mock function with given fields: ctx, first, offset -func (_m *Resolver) ClusterAddonsConfigurationsQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) { - var r0 []*gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// CreateAddonsConfiguration provides a failing mock function with given fields: ctx, name, namespace, repositories, urls, labels -func (_m *Resolver) CreateAddonsConfiguration(ctx context.Context, name string, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// CreateClusterAddonsConfiguration provides a failing mock function with given fields: ctx, name, repositories, urls, labels -func (_m *Resolver) CreateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// CreateServiceBindingUsageMutation provides a failing mock function with given fields: ctx, namespace, input -func (_m *Resolver) CreateServiceBindingUsageMutation(ctx context.Context, namespace string, input *gqlschema.CreateServiceBindingUsageInput) (*gqlschema.ServiceBindingUsage, error) { - var r0 *gqlschema.ServiceBindingUsage - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteAddonsConfiguration provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) DeleteAddonsConfiguration(ctx context.Context, name string, namespace string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteClusterAddonsConfiguration provides a failing mock function with given fields: ctx, name -func (_m *Resolver) DeleteClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteServiceBindingUsageMutation provides a failing mock function with given fields: ctx, serviceBindingUsageName, namespace -func (_m *Resolver) DeleteServiceBindingUsageMutation(ctx context.Context, serviceBindingUsageName string, namespace string) (*gqlschema.DeleteServiceBindingUsageOutput, error) { - var r0 *gqlschema.DeleteServiceBindingUsageOutput - var r1 error - r1 = _m.err - - return r0, r1 -} - -// DeleteServiceBindingUsagesMutation provides a failing mock function with given fields: ctx, serviceBindingUsageNames, namespace -func (_m *Resolver) DeleteServiceBindingUsagesMutation(ctx context.Context, serviceBindingUsageNames []string, namespace string) ([]*gqlschema.DeleteServiceBindingUsageOutput, error) { - var r0 []*gqlschema.DeleteServiceBindingUsageOutput - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ListBindableResources provides a failing mock function with given fields: ctx, namespace -func (_m *Resolver) ListBindableResources(ctx context.Context, namespace string) ([]*gqlschema.BindableResourcesOutputItem, error) { - var r0 []*gqlschema.BindableResourcesOutputItem - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ListUsageKinds provides a failing mock function with given fields: ctx, first, offset -func (_m *Resolver) ListUsageKinds(ctx context.Context, first *int, offset *int) ([]*gqlschema.UsageKind, error) { - var r0 []*gqlschema.UsageKind - var r1 error - r1 = _m.err - - return r0, r1 -} - -// RemoveAddonsConfigurationRepositories provides a failing mock function with given fields: ctx, name, namespace, urls -func (_m *Resolver) RemoveAddonsConfigurationRepositories(ctx context.Context, name string, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// RemoveAddonsConfigurationURLs provides a failing mock function with given fields: ctx, name, namespace, urls -func (_m *Resolver) RemoveAddonsConfigurationURLs(ctx context.Context, name string, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// RemoveClusterAddonsConfigurationRepositories provides a failing mock function with given fields: ctx, name, urls -func (_m *Resolver) RemoveClusterAddonsConfigurationRepositories(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// RemoveClusterAddonsConfigurationURLs provides a failing mock function with given fields: ctx, name, urls -func (_m *Resolver) RemoveClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ResyncAddonsConfiguration provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) ResyncAddonsConfiguration(ctx context.Context, name string, namespace string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ResyncClusterAddonsConfiguration provides a failing mock function with given fields: ctx, name -func (_m *Resolver) ResyncClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBindingUsageEventSubscription provides a failing mock function with given fields: ctx, namespace, resourceKind, resourceName -func (_m *Resolver) ServiceBindingUsageEventSubscription(ctx context.Context, namespace string, resourceKind *string, resourceName *string) (<-chan *gqlschema.ServiceBindingUsageEvent, error) { - var r0 <-chan *gqlschema.ServiceBindingUsageEvent - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBindingUsageQuery provides a failing mock function with given fields: ctx, name, namespace -func (_m *Resolver) ServiceBindingUsageQuery(ctx context.Context, name string, namespace string) (*gqlschema.ServiceBindingUsage, error) { - var r0 *gqlschema.ServiceBindingUsage - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBindingUsagesOfInstanceQuery provides a failing mock function with given fields: ctx, instanceName, env -func (_m *Resolver) ServiceBindingUsagesOfInstanceQuery(ctx context.Context, instanceName string, env string) ([]*gqlschema.ServiceBindingUsage, error) { - var r0 []*gqlschema.ServiceBindingUsage - var r1 error - r1 = _m.err - - return r0, r1 -} - -// ServiceBindingUsagesQuery provides a failing mock function with given fields: ctx, namespace, resourceKind, resourceName -func (_m *Resolver) ServiceBindingUsagesQuery(ctx context.Context, namespace string, resourceKind *string, resourceName *string) ([]*gqlschema.ServiceBindingUsage, error) { - var r0 []*gqlschema.ServiceBindingUsage - var r1 error - r1 = _m.err - - return r0, r1 -} - -// UpdateAddonsConfiguration provides a failing mock function with given fields: ctx, name, namespace, repositories, urls, labels -func (_m *Resolver) UpdateAddonsConfiguration(ctx context.Context, name string, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} - -// UpdateClusterAddonsConfiguration provides a failing mock function with given fields: ctx, name, repositories, urls, labels -func (_m *Resolver) UpdateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) { - var r0 *gqlschema.AddonsConfiguration - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/service_binding_usage_lister.go b/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/service_binding_usage_lister.go deleted file mode 100644 index 383cab00c7b7..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/disabled/service_binding_usage_lister.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by failery v1.0.0. DO NOT EDIT. - -package disabled - -import v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - -// ServiceBindingUsageLister is an autogenerated failing mock type for the ServiceBindingUsageLister type -type ServiceBindingUsageLister struct { - err error -} - -// NewServiceBindingUsageLister creates a new ServiceBindingUsageLister type instance -func NewServiceBindingUsageLister(err error) *ServiceBindingUsageLister { - return &ServiceBindingUsageLister{err: err} -} - -// DeleteAllByUsageKind provides a failing mock function with given fields: namespace, kind, resourceName -func (_m *ServiceBindingUsageLister) DeleteAllByUsageKind(namespace string, kind string, resourceName string) error { - var r0 error - r0 = _m.err - - return r0 -} - -// ListByUsageKind provides a failing mock function with given fields: namespace, kind, resourceName -func (_m *ServiceBindingUsageLister) ListByUsageKind(namespace string, kind string, resourceName string) ([]*v1alpha1.ServiceBindingUsage, error) { - var r0 []*v1alpha1.ServiceBindingUsage - var r1 error - r1 = _m.err - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/export_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/export_test.go deleted file mode 100644 index bbbea05546ce..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/export_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package servicecatalogaddons - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/dynamic" - fakeDynamic "k8s.io/client-go/dynamic/fake" - "k8s.io/client-go/tools/cache" -) - -// Addons Configurations - -func NewAddonsConfigurationService(addonsCfgInformer cache.SharedIndexInformer, addonsCfgClient dynamic.NamespaceableResourceInterface) *addonsConfigurationService { - return newAddonsConfigurationService(addonsCfgInformer, addonsCfgClient) -} - -func NewClusterAddonsConfigurationService(addonsCfgInformer cache.SharedIndexInformer, addonsCfgClient dynamic.ResourceInterface) *clusterAddonsConfigurationService { - return newClusterAddonsConfigurationService(addonsCfgInformer, addonsCfgClient) -} - -func NewBindableResourcesResolver(lister bindableResourceLister) *bindableResourcesResolver { - return newBindableResourcesResolver(lister) -} - -func NewServiceBindingUsageConverter() *serviceBindingUsageConverter { - return &serviceBindingUsageConverter{ - extractor: &status.BindingUsageExtractor{}, - } -} - -func NewAddonsConfigurationConverter() *addonsConfigurationConverter { - return &addonsConfigurationConverter{} -} - -func NewClusterAddonsConfigurationConverter() *clusterAddonsConfigurationConverter { - return &clusterAddonsConfigurationConverter{} -} - -func NewClusterAddonsConfigurationResolver(addonsCfgUpdater clusterAddonsCfgUpdater, addonsCfgMutations clusterAddonsCfgMutations, addonsCfgLister clusterAddonsCfgLister) *clusterAddonsConfigurationResolver { - return &clusterAddonsConfigurationResolver{ - addonsCfgConverter: clusterAddonsConfigurationConverter{}, - addonsCfgUpdater: addonsCfgUpdater, - addonsCfgMutations: addonsCfgMutations, - addonsCfgLister: addonsCfgLister, - } -} - -func NewAddonsConfigurationResolver(addonsCfgUpdater addonsCfgUpdater, addonsCfgMutations addonsCfgMutations, addonsCfgLister addonsCfgLister) *addonsConfigurationResolver { - return &addonsConfigurationResolver{ - addonsCfgConverter: addonsConfigurationConverter{}, - addonsCfgUpdater: addonsCfgUpdater, - addonsCfgMutations: addonsCfgMutations, - addonsCfgLister: addonsCfgLister, - } -} - -// Binding usage - -func NewServiceBindingUsageService(sbuClient dynamic.NamespaceableResourceInterface, informer cache.SharedIndexInformer, scRetriever shared.ServiceCatalogRetriever, sbuName string) (*serviceBindingUsageService, error) { - return newServiceBindingUsageService(sbuClient, informer, scRetriever, func() string { - return sbuName - }) -} - -func NewServiceBindingUsageResolver(op serviceBindingUsageOperations, converter gqlServiceBindingUsageConverter) *serviceBindingUsageResolver { - return newServiceBindingUsageResolver(op, converter) -} - -func NewUsageKindResolver(svc usageKindServices) *usageKindResolver { - return newUsageKindResolver(svc) -} - -func NewUsageKindService(res dynamic.Interface, informer cache.SharedIndexInformer) *usageKindService { - return newUsageKindService(res, informer) -} - -func NewUsageKindConverter() *usageKindConverter { - return &usageKindConverter{} -} - -// Service Catalog Module -func (r *PluggableContainer) SetFakeClient() { - r.cfg.dynamicClient = fakeDynamic.NewSimpleDynamicClient(runtime.NewScheme()) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/addonsconfiguration.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/addonsconfiguration.go deleted file mode 100644 index bee966ef7df4..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/addonsconfiguration.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -type AddonsUnstructuredExtractor struct{} - -func (ext AddonsUnstructuredExtractor) Do(obj interface{}) (*v1alpha1.AddonsConfiguration, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext AddonsUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.AddonsConfiguration, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext AddonsUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.AddonsConfiguration, error) { - if obj == nil { - return nil, nil - } - var addon v1alpha1.AddonsConfiguration - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &addon) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.AddonsConfiguration, obj.Object) - } - - return &addon, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/addonsconfiguration_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/addonsconfiguration_test.go deleted file mode 100644 index 0be5b1f05273..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/addonsconfiguration_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestAddonsUnstructuredExtractor_Do(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := AddonsUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1alpha1.SchemeGroupVersion.String(), "AddonsConfiguration", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1alpha1.AddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "AddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := AddonsUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := AddonsUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/clusteraddonsconfiguration.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/clusteraddonsconfiguration.go deleted file mode 100644 index e0e64d58c835..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/clusteraddonsconfiguration.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -type ClusterAddonsUnstructuredExtractor struct{} - -func (ext ClusterAddonsUnstructuredExtractor) Do(obj interface{}) (*v1alpha1.ClusterAddonsConfiguration, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext ClusterAddonsUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.ClusterAddonsConfiguration, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext ClusterAddonsUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.ClusterAddonsConfiguration, error) { - if obj == nil { - return nil, nil - } - var addon v1alpha1.ClusterAddonsConfiguration - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &addon) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.ClusterAddonsConfiguration, obj.Object) - } - - return &addon, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/clusteraddonsconfiguration_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/clusteraddonsconfiguration_test.go deleted file mode 100644 index 5466fcac4568..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/clusteraddonsconfiguration_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterAddonsUnstructuredExtractor(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := ClusterAddonsUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1alpha1.SchemeGroupVersion.String(), "ClusterAddonsConfiguration", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1alpha1.ClusterAddonsConfiguration{ - TypeMeta: metav1.TypeMeta{ - Kind: "ClusterAddonsConfiguration", - APIVersion: "addons.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := ClusterAddonsUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := ClusterAddonsUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/servicebindingusage.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/servicebindingusage.go deleted file mode 100644 index 7566bf9ff674..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/servicebindingusage.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -type BindingUsageUnstructuredExtractor struct{} - -func (ext BindingUsageUnstructuredExtractor) Do(obj interface{}) (*v1alpha1.ServiceBindingUsage, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext BindingUsageUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.ServiceBindingUsage, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext BindingUsageUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.ServiceBindingUsage, error) { - if obj == nil { - return nil, nil - } - var addon v1alpha1.ServiceBindingUsage - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &addon) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.ServiceBindingUsage, obj.Object) - } - - return &addon, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/servicebindingusage_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/servicebindingusage_test.go deleted file mode 100644 index c18a5639a0c2..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/servicebindingusage_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "testing" - - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestBindingUsageUnstructuredExtractor(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := BindingUsageUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1alpha1.SchemeGroupVersion.String(), "ServiceBindingUsage", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1alpha1.ServiceBindingUsage{ - TypeMeta: metav1.TypeMeta{ - Kind: "ServiceBindingUsage", - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := BindingUsageUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := BindingUsageUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/usagekind.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/usagekind.go deleted file mode 100644 index de02dc7532eb..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/usagekind.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -type UsageKindUnstructuredExtractor struct{} - -func (ext UsageKindUnstructuredExtractor) Do(obj interface{}) (*v1alpha1.UsageKind, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext UsageKindUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.UsageKind, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext UsageKindUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.UsageKind, error) { - if obj == nil { - return nil, nil - } - var addon v1alpha1.UsageKind - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &addon) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.UsageKind, obj.Object) - } - - return &addon, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/usagekind_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/usagekind_test.go deleted file mode 100644 index ed52a9198c01..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/extractor/usagekind_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package extractor - -import ( - "testing" - - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestUsageKindUnstructuredExtractor(t *testing.T) { - t.Run("Success", func(t *testing.T) { - extractor := UsageKindUnstructuredExtractor{} - obj := testingUtils.NewUnstructured(v1alpha1.SchemeGroupVersion.String(), "UsageKind", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1alpha1.UsageKind{ - TypeMeta: metav1.TypeMeta{ - Kind: "UsageKind", - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result, err := extractor.Do(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - extractor := UsageKindUnstructuredExtractor{} - - result, err := extractor.Do(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Invalid type", func(t *testing.T) { - extractor := UsageKindUnstructuredExtractor{} - - result, err := extractor.Do(new(struct{})) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/addonsconfiguration.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/addonsconfiguration.go deleted file mode 100644 index 81b756c4e6f4..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/addonsconfiguration.go +++ /dev/null @@ -1,72 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -//go:generate mockery -name=gqlAddonsConfigurationConverter -output=automock -outpkg=automock -case=underscore -type gqlAddonsConfigurationConverter interface { - ToGQL(item *v1alpha1.AddonsConfiguration) *gqlschema.AddonsConfiguration -} - -type AddonsConfiguration struct { - channel chan<- *gqlschema.AddonsConfigurationEvent - filter func(entity *v1alpha1.AddonsConfiguration) bool - converter gqlAddonsConfigurationConverter - extractor extractor.AddonsUnstructuredExtractor -} - -func NewAddonsConfiguration(channel chan<- *gqlschema.AddonsConfigurationEvent, filter func(entity *v1alpha1.AddonsConfiguration) bool, converter gqlAddonsConfigurationConverter) *AddonsConfiguration { - return &AddonsConfiguration{ - channel: channel, - filter: filter, - converter: converter, - extractor: extractor.AddonsUnstructuredExtractor{}, - } -} - -func (l *AddonsConfiguration) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *AddonsConfiguration) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *AddonsConfiguration) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *AddonsConfiguration) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, err := l.extractor.Do(object) - if err != nil { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *v1alpha1.AddonsConfiguration", object)) - return - } - if entity == nil { - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *AddonsConfiguration) notify(eventType gqlschema.SubscriptionEventType, entity *v1alpha1.AddonsConfiguration) { - gqlAddonsConfiguration := l.converter.ToGQL(entity) - if gqlAddonsConfiguration == nil { - return - } - - event := &gqlschema.AddonsConfigurationEvent{ - Type: eventType, - AddonsConfiguration: gqlAddonsConfiguration, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/addonsconfiguration_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/addonsconfiguration_test.go deleted file mode 100644 index 0717637d84ff..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/addonsconfiguration_test.go +++ /dev/null @@ -1,204 +0,0 @@ -package listener - -import ( - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" -) - -func TestAddonsConfiguration_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAddonsConfiguration := new(gqlschema.AddonsConfiguration) - cfg := new(v1alpha1.AddonsConfiguration) - converter := automock.NewGQLAddonsConfigurationConverter() - - channel := make(chan *gqlschema.AddonsConfigurationEvent, 1) - defer close(channel) - converter.On("ToGQL", cfg).Return(gqlAddonsConfiguration, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewAddonsConfiguration(channel, filterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnAdd(cfg) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlAddonsConfiguration, result.AddonsConfiguration) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationFalse, nil) - - // when - serviceBrokerListener.OnAdd(new(v1alpha1.AddonsConfiguration)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1alpha1.AddonsConfiguration) - converter := automock.NewGQLAddonsConfigurationConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnAdd(new(struct{})) - }) - -} - -func TestAddonsConfiguration_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterServiceBroker := new(gqlschema.AddonsConfiguration) - serviceBroker := new(v1alpha1.AddonsConfiguration) - converter := automock.NewGQLAddonsConfigurationConverter() - - channel := make(chan *gqlschema.AddonsConfigurationEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlClusterServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewAddonsConfiguration(channel, filterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlClusterServiceBroker, result.AddonsConfiguration) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationFalse, nil) - - // when - serviceBrokerListener.OnDelete(new(v1alpha1.AddonsConfiguration)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1alpha1.AddonsConfiguration) - converter := automock.NewGQLAddonsConfigurationConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnDelete(new(struct{})) - }) - -} - -func TestAddonsConfiguration_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterServiceBroker := new(gqlschema.AddonsConfiguration) - cfg := new(v1alpha1.AddonsConfiguration) - converter := automock.NewGQLAddonsConfigurationConverter() - - channel := make(chan *gqlschema.AddonsConfigurationEvent, 1) - defer close(channel) - converter.On("ToGQL", cfg).Return(gqlClusterServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewAddonsConfiguration(channel, filterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnUpdate(cfg, cfg) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlClusterServiceBroker, result.AddonsConfiguration) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationFalse, nil) - - // when - serviceBrokerListener.OnUpdate(new(v1alpha1.AddonsConfiguration), new(v1alpha1.AddonsConfiguration)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1alpha1.AddonsConfiguration) - converter := automock.NewGQLAddonsConfigurationConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnUpdate(nil, serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := NewAddonsConfiguration(nil, filterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnUpdate(new(struct{}), new(struct{})) - }) - -} - -func filterAddonsConfigurationTrue(o *v1alpha1.AddonsConfiguration) bool { - return true -} - -func filterAddonsConfigurationFalse(o *v1alpha1.AddonsConfiguration) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/export.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/export.go deleted file mode 100644 index db8039971224..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/export.go +++ /dev/null @@ -1,13 +0,0 @@ -package automock - -func NewGQLBindingUsageConverter() *gqlBindingUsageConverter { - return new(gqlBindingUsageConverter) -} - -func NewGQLClusterAddonsConfigurationConverter() *gqlClusterAddonsConfigurationConverter { - return new(gqlClusterAddonsConfigurationConverter) -} - -func NewGQLAddonsConfigurationConverter() *gqlAddonsConfigurationConverter { - return new(gqlAddonsConfigurationConverter) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_addons_configuration_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_addons_configuration_converter.go deleted file mode 100644 index c398fdc69a39..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_addons_configuration_converter.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// gqlAddonsConfigurationConverter is an autogenerated mock type for the gqlAddonsConfigurationConverter type -type gqlAddonsConfigurationConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *gqlAddonsConfigurationConverter) ToGQL(item *v1alpha1.AddonsConfiguration) *gqlschema.AddonsConfiguration { - ret := _m.Called(item) - - var r0 *gqlschema.AddonsConfiguration - if rf, ok := ret.Get(0).(func(*v1alpha1.AddonsConfiguration) *gqlschema.AddonsConfiguration); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.AddonsConfiguration) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_binding_usage_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_binding_usage_converter.go deleted file mode 100644 index f46ae355c9d1..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_binding_usage_converter.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// gqlBindingUsageConverter is an autogenerated mock type for the gqlBindingUsageConverter type -type gqlBindingUsageConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlBindingUsageConverter) ToGQL(in *v1alpha1.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(*v1alpha1.ServiceBindingUsage) *gqlschema.ServiceBindingUsage); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.ServiceBindingUsage) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_cluster_addons_configuration_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_cluster_addons_configuration_converter.go deleted file mode 100644 index bba2bff56fe8..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock/gql_cluster_addons_configuration_converter.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" -) - -// gqlClusterAddonsConfigurationConverter is an autogenerated mock type for the gqlClusterAddonsConfigurationConverter type -type gqlClusterAddonsConfigurationConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *gqlClusterAddonsConfigurationConverter) ToGQL(item *v1alpha1.ClusterAddonsConfiguration) *gqlschema.AddonsConfiguration { - ret := _m.Called(item) - - var r0 *gqlschema.AddonsConfiguration - if rf, ok := ret.Get(0).(func(*v1alpha1.ClusterAddonsConfiguration) *gqlschema.AddonsConfiguration); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.AddonsConfiguration) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/clusteraddonsconfiguration.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/clusteraddonsconfiguration.go deleted file mode 100644 index 00ed81c96e38..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/clusteraddonsconfiguration.go +++ /dev/null @@ -1,72 +0,0 @@ -package listener - -import ( - "fmt" - - "github.com/golang/glog" - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -//go:generate mockery -name=gqlClusterAddonsConfigurationConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterAddonsConfigurationConverter interface { - ToGQL(item *v1alpha1.ClusterAddonsConfiguration) *gqlschema.AddonsConfiguration -} - -type ClusterAddonsConfiguration struct { - channel chan<- *gqlschema.ClusterAddonsConfigurationEvent - filter func(entity *v1alpha1.ClusterAddonsConfiguration) bool - converter gqlClusterAddonsConfigurationConverter - extractor extractor.ClusterAddonsUnstructuredExtractor -} - -func NewClusterAddonsConfiguration(channel chan<- *gqlschema.ClusterAddonsConfigurationEvent, filter func(entity *v1alpha1.ClusterAddonsConfiguration) bool, converter gqlClusterAddonsConfigurationConverter) *ClusterAddonsConfiguration { - return &ClusterAddonsConfiguration{ - channel: channel, - filter: filter, - converter: converter, - extractor: extractor.ClusterAddonsUnstructuredExtractor{}, - } -} - -func (l *ClusterAddonsConfiguration) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *ClusterAddonsConfiguration) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *ClusterAddonsConfiguration) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *ClusterAddonsConfiguration) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - entity, err := l.extractor.Do(object) - if err != nil { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *v1alpha1.ClusterAddonsConfiguration", object)) - return - } - if entity == nil { - return - } - - if l.filter(entity) { - l.notify(eventType, entity) - } -} - -func (l *ClusterAddonsConfiguration) notify(eventType gqlschema.SubscriptionEventType, entity *v1alpha1.ClusterAddonsConfiguration) { - gqlAddonsConfiguration := l.converter.ToGQL(entity) - if gqlAddonsConfiguration == nil { - return - } - - event := &gqlschema.ClusterAddonsConfigurationEvent{ - Type: eventType, - AddonsConfiguration: gqlAddonsConfiguration, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/clusteraddonsconfiguration_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/clusteraddonsconfiguration_test.go deleted file mode 100644 index d122b77255fc..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/clusteraddonsconfiguration_test.go +++ /dev/null @@ -1,204 +0,0 @@ -package listener - -import ( - "testing" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" -) - -func TestClusterAddonsConfiguration_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlAddonsConfiguration := new(gqlschema.AddonsConfiguration) - cfg := new(v1alpha1.ClusterAddonsConfiguration) - converter := automock.NewGQLClusterAddonsConfigurationConverter() - - channel := make(chan *gqlschema.ClusterAddonsConfigurationEvent, 1) - defer close(channel) - converter.On("ToGQL", cfg).Return(gqlAddonsConfiguration, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewClusterAddonsConfiguration(channel, filterClusterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnAdd(cfg) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlAddonsConfiguration, result.AddonsConfiguration) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationFalse, nil) - - // when - serviceBrokerListener.OnAdd(new(v1alpha1.ClusterAddonsConfiguration)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1alpha1.ClusterAddonsConfiguration) - converter := automock.NewGQLClusterAddonsConfigurationConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnAdd(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnAdd(new(struct{})) - }) - -} - -func TestClusterAddonsConfiguration_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterServiceBroker := new(gqlschema.AddonsConfiguration) - serviceBroker := new(v1alpha1.ClusterAddonsConfiguration) - converter := automock.NewGQLClusterAddonsConfigurationConverter() - - channel := make(chan *gqlschema.ClusterAddonsConfigurationEvent, 1) - defer close(channel) - converter.On("ToGQL", serviceBroker).Return(gqlClusterServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewClusterAddonsConfiguration(channel, filterClusterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlClusterServiceBroker, result.AddonsConfiguration) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationFalse, nil) - - // when - serviceBrokerListener.OnDelete(new(v1alpha1.ClusterAddonsConfiguration)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1alpha1.ClusterAddonsConfiguration) - converter := automock.NewGQLClusterAddonsConfigurationConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnDelete(serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnDelete(new(struct{})) - }) - -} - -func TestClusterAddonsConfiguration_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlClusterServiceBroker := new(gqlschema.AddonsConfiguration) - cfg := new(v1alpha1.ClusterAddonsConfiguration) - converter := automock.NewGQLClusterAddonsConfigurationConverter() - - channel := make(chan *gqlschema.ClusterAddonsConfigurationEvent, 1) - defer close(channel) - converter.On("ToGQL", cfg).Return(gqlClusterServiceBroker, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewClusterAddonsConfiguration(channel, filterClusterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnUpdate(cfg, cfg) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlClusterServiceBroker, result.AddonsConfiguration) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationFalse, nil) - - // when - serviceBrokerListener.OnUpdate(new(v1alpha1.ClusterAddonsConfiguration), new(v1alpha1.ClusterAddonsConfiguration)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - serviceBroker := new(v1alpha1.ClusterAddonsConfiguration) - converter := automock.NewGQLClusterAddonsConfigurationConverter() - - converter.On("ToGQL", serviceBroker).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, converter) - - // when - serviceBrokerListener.OnUpdate(nil, serviceBroker) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - serviceBrokerListener := NewClusterAddonsConfiguration(nil, filterClusterAddonsConfigurationTrue, nil) - - // when - serviceBrokerListener.OnUpdate(new(struct{}), new(struct{})) - }) - -} - -func filterClusterAddonsConfigurationTrue(o *v1alpha1.ClusterAddonsConfiguration) bool { - return true -} - -func filterClusterAddonsConfigurationFalse(o *v1alpha1.ClusterAddonsConfiguration) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/servicebinding_usage.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/servicebinding_usage.go deleted file mode 100644 index 0e18f981aa76..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/servicebinding_usage.go +++ /dev/null @@ -1,75 +0,0 @@ -package listener - -import ( - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=gqlBindingUsageConverter -output=automock -outpkg=automock -case=underscore -type gqlBindingUsageConverter interface { - ToGQL(in *api.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) -} - -type BindingUsage struct { - channel chan<- *gqlschema.ServiceBindingUsageEvent - filter func(bindingUsage *api.ServiceBindingUsage) bool - converter gqlBindingUsageConverter - extractor extractor.BindingUsageUnstructuredExtractor -} - -func NewBindingUsage(channel chan<- *gqlschema.ServiceBindingUsageEvent, filter func(bindingUsage *api.ServiceBindingUsage) bool, converter gqlBindingUsageConverter) *BindingUsage { - return &BindingUsage{ - channel: channel, - filter: filter, - converter: converter, - extractor: extractor.BindingUsageUnstructuredExtractor{}, - } -} - -func (l *BindingUsage) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *BindingUsage) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *BindingUsage) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *BindingUsage) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - bindingUsage, err := l.extractor.Do(object) - if err != nil { - glog.Error(errors.New("cannot extract *ServiceBindingUsage")) - return - } - if bindingUsage == nil { - return - } - - if l.filter(bindingUsage) { - l.notify(eventType, bindingUsage) - } -} - -func (l *BindingUsage) notify(eventType gqlschema.SubscriptionEventType, bindingUsage *api.ServiceBindingUsage) { - gqlBindingUsage, err := l.converter.ToGQL(bindingUsage) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting *ServiceBindingUsage")) - return - } - if gqlBindingUsage == nil { - return - } - - event := &gqlschema.ServiceBindingUsageEvent{ - Type: eventType, - ServiceBindingUsage: gqlBindingUsage, - } - - l.channel <- event -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/servicebinding_usage_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/listener/servicebinding_usage_test.go deleted file mode 100644 index c1847da0d466..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/listener/servicebinding_usage_test.go +++ /dev/null @@ -1,241 +0,0 @@ -package listener_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/listener/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" -) - -func TestBindingUsage_OnAdd(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlBindingUsage := new(gqlschema.ServiceBindingUsage) - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - channel := make(chan *gqlschema.ServiceBindingUsageEvent, 1) - defer close(channel) - converter.On("ToGQL", bindingUsage).Return(gqlBindingUsage, nil).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(channel, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnAdd(bindingUsage) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeAdd, result.Type) - assert.Equal(t, gqlBindingUsage, result.ServiceBindingUsage) - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageFalse, nil) - - // when - bindingUsageListener.OnAdd(new(api.ServiceBindingUsage)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, nil) - - // when - bindingUsageListener.OnAdd(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - converter.On("ToGQL", bindingUsage).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnAdd(bindingUsage) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, nil) - - // when - bindingUsageListener.OnAdd(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - converter.On("ToGQL", bindingUsage).Return(nil, errors.New("random error")).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnAdd(bindingUsage) - }) -} - -func TestBindingUsage_OnDelete(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlBindingUsage := new(gqlschema.ServiceBindingUsage) - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - channel := make(chan *gqlschema.ServiceBindingUsageEvent, 1) - defer close(channel) - converter.On("ToGQL", bindingUsage).Return(gqlBindingUsage, nil).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(channel, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnDelete(bindingUsage) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeDelete, result.Type) - assert.Equal(t, gqlBindingUsage, result.ServiceBindingUsage) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageFalse, nil) - - // when - bindingUsageListener.OnDelete(new(api.ServiceBindingUsage)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, nil) - - // when - bindingUsageListener.OnDelete(nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - converter.On("ToGQL", bindingUsage).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnDelete(bindingUsage) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, nil) - - // when - bindingUsageListener.OnDelete(new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - converter.On("ToGQL", bindingUsage).Return(nil, errors.New("random error")).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnDelete(bindingUsage) - }) -} - -func TestBindingUsage_OnUpdate(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // given - gqlBindingUsage := new(gqlschema.ServiceBindingUsage) - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - channel := make(chan *gqlschema.ServiceBindingUsageEvent, 1) - defer close(channel) - converter.On("ToGQL", bindingUsage).Return(gqlBindingUsage, nil).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(channel, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnUpdate(bindingUsage, bindingUsage) - result := <-channel - - // then - assert.Equal(t, gqlschema.SubscriptionEventTypeUpdate, result.Type) - assert.Equal(t, gqlBindingUsage, result.ServiceBindingUsage) - - }) - - t.Run("Filtered out", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageFalse, nil) - - // when - bindingUsageListener.OnUpdate(new(api.ServiceBindingUsage), new(api.ServiceBindingUsage)) - }) - - t.Run("Nil", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, nil) - - // when - bindingUsageListener.OnUpdate(nil, nil) - }) - - t.Run("Nil GQL Type", func(t *testing.T) { - // given - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - converter.On("ToGQL", bindingUsage).Return(nil, nil).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnUpdate(nil, bindingUsage) - }) - - t.Run("Invalid type", func(t *testing.T) { - // given - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, nil) - - // when - bindingUsageListener.OnUpdate(new(struct{}), new(struct{})) - }) - - t.Run("Conversion error", func(t *testing.T) { - // given - bindingUsage := new(api.ServiceBindingUsage) - converter := automock.NewGQLBindingUsageConverter() - - converter.On("ToGQL", bindingUsage).Return(nil, errors.New("random error")).Once() - defer converter.AssertExpectations(t) - bindingUsageListener := listener.NewBindingUsage(nil, filterBindingUsageTrue, converter) - - // when - bindingUsageListener.OnUpdate(bindingUsage, bindingUsage) - }) -} - -func filterBindingUsageTrue(o *api.ServiceBindingUsage) bool { - return true -} - -func filterBindingUsageFalse(o *api.ServiceBindingUsage) bool { - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/pretty/kind.go b/components/console-backend-service/internal/domain/servicecatalogaddons/pretty/kind.go deleted file mode 100644 index 265f75c0364d..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/pretty/kind.go +++ /dev/null @@ -1,42 +0,0 @@ -package pretty - -type Kind int - -const ( - ServiceBindingUsage Kind = iota - ServiceBindingUsages - - AddonsConfiguration - AddonsConfigurations - ClusterAddonsConfiguration - ClusterAddonsConfigurations - - UsageKind - UsageKinds - BindableResources -) - -func (k Kind) String() string { - switch k { - case ServiceBindingUsage: - return "Service Binding Usage" - case ServiceBindingUsages: - return "Service Binding Usages" - case ClusterAddonsConfiguration: - return "Cluster Addons Configuration" - case ClusterAddonsConfigurations: - return "Cluster Addons Configurations" - case AddonsConfiguration: - return "Addons Configuration" - case AddonsConfigurations: - return "Addons Configurations" - case UsageKind: - return "Usage Kind" - case UsageKinds: - return "Usage Kinds" - case BindableResources: - return "Bindable Resources" - default: - return "" - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_converter.go deleted file mode 100644 index a88be43b78a4..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_converter.go +++ /dev/null @@ -1,109 +0,0 @@ -package servicecatalogaddons - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/status" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/name" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - sbuTypes "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -//go:generate mockery -name=statusBindingUsageExtractor -output=automock -outpkg=automock -case=underscore -type statusBindingUsageExtractor interface { - Status(conditions []sbuTypes.ServiceBindingUsageCondition) gqlschema.ServiceBindingUsageStatus -} - -//go:generate mockery -name=gqlServiceBindingUsageConverter -output=automock -outpkg=automock -case=underscore -type gqlServiceBindingUsageConverter interface { - ToGQL(item *sbuTypes.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) - ToGQLs(in []*sbuTypes.ServiceBindingUsage) ([]*gqlschema.ServiceBindingUsage, error) - InputToK8s(in *gqlschema.CreateServiceBindingUsageInput) (*api.ServiceBindingUsage, error) -} - -type serviceBindingUsageConverter struct { - extractor statusBindingUsageExtractor -} - -func newBindingUsageConverter() serviceBindingUsageConverter { - return serviceBindingUsageConverter{ - extractor: &status.BindingUsageExtractor{}, - } -} - -func (c *serviceBindingUsageConverter) ToGQL(in *api.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) { - if in == nil { - return nil, nil - } - - gqlSBU := gqlschema.ServiceBindingUsage{ - Name: in.Name, - Namespace: in.Namespace, - UsedBy: gqlschema.LocalObjectReference{ - Name: in.Spec.UsedBy.Name, - Kind: in.Spec.UsedBy.Kind, - }, - ServiceBindingName: in.Spec.ServiceBindingRef.Name, - Status: c.extractor.Status(in.Status.Conditions), - } - - if in.Spec.Parameters != nil && in.Spec.Parameters.EnvPrefix != nil { - gqlSBU.Parameters = &gqlschema.ServiceBindingUsageParameters{ - EnvPrefix: &gqlschema.EnvPrefix{ - Name: in.Spec.Parameters.EnvPrefix.Name, - }, - } - } - - return &gqlSBU, nil -} - -func (c *serviceBindingUsageConverter) ToGQLs(in []*api.ServiceBindingUsage) ([]*gqlschema.ServiceBindingUsage, error) { - out := []*gqlschema.ServiceBindingUsage{} - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return out, err - } - - if converted != nil { - out = append(out, converted) - } - } - return out, nil -} - -func (c *serviceBindingUsageConverter) InputToK8s(in *gqlschema.CreateServiceBindingUsageInput) (*api.ServiceBindingUsage, error) { - if in == nil { - return nil, nil - } - - k8sSBU := api.ServiceBindingUsage{ - TypeMeta: metav1.TypeMeta{ - Kind: "ServiceBindingUsage", - APIVersion: api.SchemeGroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name.EmptyIfNil(in.Name), - }, - Spec: api.ServiceBindingUsageSpec{ - ServiceBindingRef: api.LocalReferenceByName{ - Name: in.ServiceBindingRef.Name, - }, - UsedBy: api.LocalReferenceByKindAndName{ - Kind: in.UsedBy.Kind, - Name: in.UsedBy.Name, - }, - }, - } - - if in.Parameters != nil && in.Parameters.EnvPrefix != nil { - k8sSBU.Spec.Parameters = &api.Parameters{ - EnvPrefix: &api.EnvPrefix{ - Name: in.Parameters.EnvPrefix.Name, - }, - } - } - - return &k8sSBU, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_converter_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_converter_test.go deleted file mode 100644 index 562c29aa0dc2..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_converter_test.go +++ /dev/null @@ -1,282 +0,0 @@ -package servicecatalogaddons_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestBindingUsageConversionToGQLCornerCases(t *testing.T) { - t.Run("nil objs", func(t *testing.T) { - // GIVEN - var ( - givenK8sSBU *api.ServiceBindingUsage = nil - expGQLSBU *gqlschema.ServiceBindingUsage = nil - ) - sut := servicecatalogaddons.NewServiceBindingUsageConverter() - - // WHEN - gotGQLSBU, err := sut.ToGQL(givenK8sSBU) - - // THEN - require.NoError(t, err) - assert.Equal(t, expGQLSBU, gotGQLSBU) - }) - - t.Run("only kind provided", func(t *testing.T) { - // GIVEN - givenK8sSBU := &api.ServiceBindingUsage{ - Spec: api.ServiceBindingUsageSpec{ - UsedBy: api.LocalReferenceByKindAndName{ - Kind: "Function", - }, - }, - } - expGQLSBU := &gqlschema.ServiceBindingUsage{ - UsedBy: gqlschema.LocalObjectReference{ - Kind: "Function", - }, - Status: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypePending, - }, - } - sut := servicecatalogaddons.NewServiceBindingUsageConverter() - - // WHEN - gotGQLSBU, err := sut.ToGQL(givenK8sSBU) - - // THEN - require.NoError(t, err) - assert.Equal(t, expGQLSBU, gotGQLSBU) - }) -} - -func TestBindingUsageConversionToGQL(t *testing.T) { - tests := map[string]struct { - givenK8sSBU *api.ServiceBindingUsage - expGQLSBU *gqlschema.ServiceBindingUsage - }{ - "without env prefix": { - givenK8sSBU: fixRedisUsage(), - expGQLSBU: &gqlschema.ServiceBindingUsage{ - Name: "usage", - UsedBy: gqlschema.LocalObjectReference{ - Name: "app", - Kind: "Deployment", - }, - ServiceBindingName: "redis-binding", - Namespace: "production", - Status: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypePending, - }, - }, - }, - "with env prefix": { - givenK8sSBU: func() *api.ServiceBindingUsage { - fix := fixRedisUsage() - fix.Spec.Parameters = &api.Parameters{ - EnvPrefix: &api.EnvPrefix{Name: "ENV_PREFIX"}, - } - return fix - }(), - expGQLSBU: &gqlschema.ServiceBindingUsage{ - Name: "usage", - UsedBy: gqlschema.LocalObjectReference{ - Name: "app", - Kind: "Deployment", - }, - ServiceBindingName: "redis-binding", - Namespace: "production", - Parameters: &gqlschema.ServiceBindingUsageParameters{ - EnvPrefix: &gqlschema.EnvPrefix{Name: "ENV_PREFIX"}, - }, - Status: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypePending, - }, - }, - }, - } - for tn, tc := range tests { - t.Run(tn, func(t *testing.T) { - // GIVEN - sut := servicecatalogaddons.NewServiceBindingUsageConverter() - - // WHEN - gotGQLSBU, err := sut.ToGQL(tc.givenK8sSBU) - - // THEN - require.NoError(t, err) - assert.Equal(t, tc.expGQLSBU, gotGQLSBU) - }) - } -} - -func TestBindingUsageConversionToGQLs(t *testing.T) { - tests := map[string]struct { - givenK8sSBUs []*api.ServiceBindingUsage - }{ - "with one entry": { - givenK8sSBUs: []*api.ServiceBindingUsage{ - fixRedisUsage(), - }, - }, - "with nil": { - givenK8sSBUs: []*api.ServiceBindingUsage{ - nil, - fixRedisUsage(), - nil, - }, - }, - } - for tn, tc := range tests { - t.Run(tn, func(t *testing.T) { - // GIVEN - sut := servicecatalogaddons.NewServiceBindingUsageConverter() - // WHEN - actual, err := sut.ToGQLs(tc.givenK8sSBUs) - // THEN - require.NoError(t, err) - assert.Len(t, actual, 1) - assert.Equal(t, "usage", actual[0].Name) - }) - } -} - -func TestBindingUsageConversionInput(t *testing.T) { - tests := map[string]struct { - givenSBUInput *gqlschema.CreateServiceBindingUsageInput - expK8sSBU *api.ServiceBindingUsage - }{ - "only kind is provided": { - givenSBUInput: &gqlschema.CreateServiceBindingUsageInput{ - UsedBy: &gqlschema.LocalObjectReferenceInput{ - Kind: "Function", - }, - ServiceBindingRef: &gqlschema.ServiceBindingRefInput{}, - }, - expK8sSBU: &api.ServiceBindingUsage{ - TypeMeta: v1.TypeMeta{ - Kind: "ServiceBindingUsage", - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - }, - Spec: api.ServiceBindingUsageSpec{ - UsedBy: api.LocalReferenceByKindAndName{ - Kind: "Function", - }, - }, - }, - }, - "nil": { - givenSBUInput: nil, - expK8sSBU: nil, - }, - "with env prefix": { - givenSBUInput: &gqlschema.CreateServiceBindingUsageInput{ - Name: ptr("usage"), - ServiceBindingRef: &gqlschema.ServiceBindingRefInput{ - Name: "redis-binding", - }, - UsedBy: &gqlschema.LocalObjectReferenceInput{ - Name: "app", - Kind: "Deployment", - }, - Parameters: &gqlschema.ServiceBindingUsageParametersInput{ - EnvPrefix: &gqlschema.EnvPrefixInput{Name: "ENV_PREFIX"}, - }, - }, - expK8sSBU: &api.ServiceBindingUsage{ - ObjectMeta: v1.ObjectMeta{ - Name: "usage", - }, - TypeMeta: v1.TypeMeta{ - Kind: "ServiceBindingUsage", - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - }, - Spec: api.ServiceBindingUsageSpec{ - ServiceBindingRef: api.LocalReferenceByName{ - Name: "redis-binding", - }, - UsedBy: api.LocalReferenceByKindAndName{ - Name: "app", - Kind: "Deployment", - }, - Parameters: &api.Parameters{ - EnvPrefix: &api.EnvPrefix{Name: "ENV_PREFIX"}, - }, - }, - }, - }, - "without env prefix": { - givenSBUInput: &gqlschema.CreateServiceBindingUsageInput{ - Name: ptr("usage"), - ServiceBindingRef: &gqlschema.ServiceBindingRefInput{ - Name: "redis-binding", - }, - UsedBy: &gqlschema.LocalObjectReferenceInput{ - Name: "app", - Kind: "Deployment", - }, - }, - expK8sSBU: &api.ServiceBindingUsage{ - ObjectMeta: v1.ObjectMeta{ - Name: "usage", - }, - TypeMeta: v1.TypeMeta{ - Kind: "ServiceBindingUsage", - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - }, - Spec: api.ServiceBindingUsageSpec{ - ServiceBindingRef: api.LocalReferenceByName{ - Name: "redis-binding", - }, - UsedBy: api.LocalReferenceByKindAndName{ - Name: "app", - Kind: "Deployment", - }, - }, - }, - }, - } - for tn, tc := range tests { - t.Run(tn, func(t *testing.T) { - // GIVEN - sut := servicecatalogaddons.NewServiceBindingUsageConverter() - // WHEN - gotK8sSBU, err := sut.InputToK8s(tc.givenSBUInput) - // THEN - require.NoError(t, err) - assert.Equal(t, tc.expK8sSBU, gotK8sSBU) - }) - } -} - -func fixRedisUsage() *api.ServiceBindingUsage { - return &api.ServiceBindingUsage{ - TypeMeta: v1.TypeMeta{ - Kind: "ServiceBindingUsage", - APIVersion: api.SchemeGroupVersion.String(), - }, - ObjectMeta: v1.ObjectMeta{ - Name: "usage", - Namespace: "production", - }, - Spec: api.ServiceBindingUsageSpec{ - ServiceBindingRef: api.LocalReferenceByName{ - Name: "redis-binding", - }, - UsedBy: api.LocalReferenceByKindAndName{ - Name: "app", - Kind: "Deployment", - }, - }, - } -} - -func ptr(s string) *string { - return &s -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_resolver.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_resolver.go deleted file mode 100644 index 3573fbe0e7d5..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_resolver.go +++ /dev/null @@ -1,174 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/listener" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=serviceBindingUsageOperations -output=automock -outpkg=automock -case=underscore -type serviceBindingUsageOperations interface { - Create(namespace string, sb *api.ServiceBindingUsage) (*api.ServiceBindingUsage, error) - Delete(namespace string, name string) error - Find(namespace string, name string) (*api.ServiceBindingUsage, error) - ListForServiceInstance(namespace string, instanceName string) ([]*api.ServiceBindingUsage, error) - ListByUsageKind(namespace, resourceKind, resourceName string) ([]*api.ServiceBindingUsage, error) - Subscribe(listener resource.Listener) - Unsubscribe(listener resource.Listener) -} - -type serviceBindingUsageResolver struct { - operations serviceBindingUsageOperations - converter gqlServiceBindingUsageConverter -} - -func newServiceBindingUsageResolver(op serviceBindingUsageOperations, converter gqlServiceBindingUsageConverter) *serviceBindingUsageResolver { - return &serviceBindingUsageResolver{ - operations: op, - converter: converter, - } -} - -func (r *serviceBindingUsageResolver) CreateServiceBindingUsageMutation(ctx context.Context, namespace string, input *gqlschema.CreateServiceBindingUsageInput) (*gqlschema.ServiceBindingUsage, error) { - inBindingUsage, err := r.converter.InputToK8s(input) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s from input [%+v]", pretty.ServiceBindingUsage, input)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsage) - } - - bu, err := r.operations.Create(namespace, inBindingUsage) - if err != nil { - glog.Error(errors.Wrapf(err, "while creating %s from input [%v]", pretty.ServiceBindingUsage, input)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsage, gqlerror.WithName(*input.Name), gqlerror.WithNamespace(namespace)) - } - - out, err := r.converter.ToGQL(bu) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.ServiceBindingUsage)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsage, gqlerror.WithName(*input.Name), gqlerror.WithNamespace(namespace)) - } - - return out, nil -} - -func (r *serviceBindingUsageResolver) DeleteServiceBindingUsageMutation(ctx context.Context, serviceBindingUsageName, namespace string) (*gqlschema.DeleteServiceBindingUsageOutput, error) { - err := r.operations.Delete(namespace, serviceBindingUsageName) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s with name `%s` from namespace `%s`", pretty.ServiceBindingUsage, serviceBindingUsageName, namespace)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsage, gqlerror.WithName(serviceBindingUsageName), gqlerror.WithNamespace(namespace)) - } - - return &gqlschema.DeleteServiceBindingUsageOutput{ - Namespace: namespace, - Name: serviceBindingUsageName, - }, nil -} - -func (r *serviceBindingUsageResolver) DeleteServiceBindingUsagesMutation(ctx context.Context, serviceBindingUsageNames []string, namespace string) ([]*gqlschema.DeleteServiceBindingUsageOutput, error) { - output := []*gqlschema.DeleteServiceBindingUsageOutput{} - - for _, serviceBindingUsageName := range serviceBindingUsageNames { - out, err := r.DeleteServiceBindingUsageMutation(ctx, serviceBindingUsageName, namespace) - if err != nil { - glog.Error(errors.Wrapf(err, "while deleting %s with names %v from namespace `%s`", pretty.ServiceBindingUsages, serviceBindingUsageNames, namespace)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsages, gqlerror.WithName(serviceBindingUsageName), gqlerror.WithNamespace(namespace)) - } - output = append(output, out) - } - - return output, nil -} - -func (r *serviceBindingUsageResolver) ServiceBindingUsageQuery(ctx context.Context, name, namespace string) (*gqlschema.ServiceBindingUsage, error) { - usage, err := r.operations.Find(namespace, name) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting single %s [name: %s, namespace: %s]", pretty.ServiceBindingUsage, name, namespace)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsage, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - - out, err := r.converter.ToGQL(usage) - if err != nil { - glog.Error( - errors.Wrapf(err, - "while getting single %s [name: %s, namespace: %s]: while converting %s to QL representation", pretty.ServiceBindingUsage, - name, namespace, pretty.ServiceBindingUsage)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsage, gqlerror.WithName(name), gqlerror.WithNamespace(namespace)) - } - return out, nil -} - -func (r *serviceBindingUsageResolver) ServiceBindingUsagesQuery(ctx context.Context, namespace string, resourceKind, resourceName *string) ([]*gqlschema.ServiceBindingUsage, error) { - var kind = "" - var resName = "" - if resourceKind != nil { - kind = *resourceKind - } - if resourceName != nil { - resName = *resourceName - } - - usages, err := r.operations.ListByUsageKind(namespace, kind, resName) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting many %s [namespace: %s, usageKind: %s, resourceName: %s]", pretty.ServiceBindingUsage, namespace, kind, resName)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsage, gqlerror.WithNamespace(namespace), gqlerror.WithCustomArgument("kind", kind), gqlerror.WithCustomArgument("resourceName", resName)) - } - - out, err := r.converter.ToGQLs(usages) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting many %s [namespace: %s, usageKind: %s, resourceName: %s]", pretty.ServiceBindingUsages, namespace, kind, resName)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsages, gqlerror.WithNamespace(namespace), gqlerror.WithCustomArgument("kind", kind), gqlerror.WithCustomArgument("resourceName", resName)) - } - return out, nil -} - -func (r *serviceBindingUsageResolver) ServiceBindingUsagesOfInstanceQuery(ctx context.Context, instanceName, namespace string) ([]*gqlschema.ServiceBindingUsage, error) { - usages, err := r.operations.ListForServiceInstance(namespace, instanceName) - if err != nil { - glog.Error(errors.Wrapf(err, "while getting %s of instance [namespace: %s, instance: %s]", pretty.ServiceBindingUsages, namespace, instanceName)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsages, gqlerror.WithNamespace(namespace), gqlerror.WithCustomArgument("instanceName", instanceName)) - } - out, err := r.converter.ToGQLs(usages) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s of instance [namespace: %s, instance: %s]", pretty.ServiceBindingUsages, namespace, instanceName)) - return nil, gqlerror.New(err, pretty.ServiceBindingUsages, gqlerror.WithNamespace(namespace), gqlerror.WithCustomArgument("instanceName", instanceName)) - } - return out, nil -} - -func (r *serviceBindingUsageResolver) ServiceBindingUsageEventSubscription(ctx context.Context, namespace string, resourceKind, resourceName *string) (<-chan *gqlschema.ServiceBindingUsageEvent, error) { - channel := make(chan *gqlschema.ServiceBindingUsageEvent, 1) - filter := func(bindingUsage *api.ServiceBindingUsage) bool { - if bindingUsage == nil || bindingUsage.Namespace != namespace { - return false - } - if resourceKind != nil { - kindFilter := bindingUsage.Spec.UsedBy.Kind == *resourceKind - nameFilter := true - - if resourceName != nil { - nameFilter = bindingUsage.Spec.UsedBy.Name == *resourceName - } - return kindFilter && nameFilter - } - return true - } - - bindingUsageListener := listener.NewBindingUsage(channel, filter, r.converter) - - r.operations.Subscribe(bindingUsageListener) - go func() { - defer close(channel) - defer r.operations.Unsubscribe(bindingUsageListener) - <-ctx.Done() - }() - - return channel, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_resolver_test.go deleted file mode 100644 index 70c32956cea7..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_resolver_test.go +++ /dev/null @@ -1,488 +0,0 @@ -package servicecatalogaddons_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - apiErrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -func TestServiceBindingUsageResolver_CreateServiceBindingUsageMutation(t *testing.T) { - const namespace = "test-ns" - t.Run("Success with empty name", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - unchangedBindingUsage := fixServiceBindingUsageResource() - bindingUsage := fixServiceBindingUsageResource() - bindingUsage.Namespace = "" - bindingUsage.Name = "" - svc.On("Create", "test-ns", bindingUsage).Return(unchangedBindingUsage, nil).Once() - defer svc.AssertExpectations(t) - - gqlBindingUsage := fixCreateServiceBindingUsageInput() - gqlBindingUsage.Name = nil - converter.On("InputToK8s", gqlBindingUsage).Return(bindingUsage, nil).Once() - converter.On("ToGQL", unchangedBindingUsage).Return(fixServiceBindingUsage(), nil).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.CreateServiceBindingUsageMutation(nil, namespace, gqlBindingUsage) - - require.NoError(t, err) - assert.Equal(t, fixServiceBindingUsage(), result) - }) - - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - unchangedBindingUsage := fixServiceBindingUsageResource() - bindingUsage := fixServiceBindingUsageResource() - bindingUsage.Namespace = "" - svc.On("Create", "test-ns", bindingUsage).Return(unchangedBindingUsage, nil).Once() - defer svc.AssertExpectations(t) - - gqlBindingUsage := fixCreateServiceBindingUsageInput() - converter.On("InputToK8s", gqlBindingUsage).Return(bindingUsage, nil).Once() - converter.On("ToGQL", unchangedBindingUsage).Return(fixServiceBindingUsage(), nil).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.CreateServiceBindingUsageMutation(nil, namespace, gqlBindingUsage) - - require.NoError(t, err) - assert.Equal(t, fixServiceBindingUsage(), result) - }) - - t.Run("Already exists", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - gqlBindingUsage := fixCreateServiceBindingUsageInput() - bindingUsage := fixServiceBindingUsageResource() - converter.On("InputToK8s", gqlBindingUsage).Return(bindingUsage, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("Create", mock.Anything, mock.Anything).Return(nil, apiErrors.NewAlreadyExists(schema.GroupResource{}, "test")).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.CreateServiceBindingUsageMutation(nil, namespace, gqlBindingUsage) - - require.Error(t, err) - assert.True(t, gqlerror.IsAlreadyExists(err)) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - gqlBindingUsage := fixCreateServiceBindingUsageInput() - bindingUsage := fixServiceBindingUsageResource() - converter.On("InputToK8s", gqlBindingUsage).Return(bindingUsage, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("Create", mock.Anything, mock.Anything).Return(nil, errors.New("trololo")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.CreateServiceBindingUsageMutation(nil, namespace, gqlBindingUsage) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingUsageResolver_DeleteServiceBindingUsageMutation(t *testing.T) { - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("Delete", "test", "test").Return(nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.DeleteServiceBindingUsageMutation(nil, "test", "test") - - require.NoError(t, err) - assert.Equal(t, &gqlschema.DeleteServiceBindingUsageOutput{ - Name: "test", - Namespace: "test", - }, result) - }) - - t.Run("Not exists", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("Delete", "test", "test").Return(apiErrors.NewNotFound(schema.GroupResource{}, "test")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.DeleteServiceBindingUsageMutation(nil, "test", "test") - - require.Error(t, err) - assert.True(t, gqlerror.IsNotFound(err)) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("Delete", "test", "test").Return(errors.New("trololo")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.DeleteServiceBindingUsageMutation(nil, "test", "test") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingUsageResolver_DeleteServiceBindingUsagesMutation(t *testing.T) { - usages := []string{"test1", "test2"} - - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - for _, usage := range usages { - svc.On("Delete", "test", usage).Return(nil).Once() - } - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.DeleteServiceBindingUsagesMutation(nil, usages, "test") - - require.NoError(t, err) - assert.Equal(t, []*gqlschema.DeleteServiceBindingUsageOutput{ - { - Name: "test1", - Namespace: "test", - }, - { - Name: "test2", - Namespace: "test", - }, - }, result) - }) - - t.Run("Not exists", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("Delete", "test", "test1").Return(nil).Once() - svc.On("Delete", "test", "test2").Return(apiErrors.NewNotFound(schema.GroupResource{}, "test")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.DeleteServiceBindingUsagesMutation(nil, usages, "test") - - require.Error(t, err) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("Delete", "test", "test1").Return(nil).Once() - svc.On("Delete", "test", "test2").Return(errors.New("trololo")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.DeleteServiceBindingUsagesMutation(nil, usages, "test") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingUsageResolver_ServiceBindingUsageQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - bindingUsage := fixServiceBindingUsageResource() - gqlBindingUsage := fixServiceBindingUsage() - converter.On("ToGQL", bindingUsage).Return(gqlBindingUsage, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("Find", "test", "test").Return(bindingUsage, nil).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.ServiceBindingUsageQuery(nil, "test", "test") - - require.NoError(t, err) - assert.Equal(t, fixServiceBindingUsage(), result) - }) - - t.Run("Not found", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - nilUsage := (*api.ServiceBindingUsage)(nil) - - converter.On("ToGQL", nilUsage).Return(nil, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("Find", "test", "test").Return(nil, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.ServiceBindingUsageQuery(nil, "test", "test") - - require.NoError(t, err) - assert.Nil(t, result) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("Find", "test", "test").Return(nil, errors.New("trolololo")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.ServiceBindingUsageQuery(nil, "test", "test") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingUsageResolver_ServiceBindingUsagesQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - bindingUsage1 := fixServiceBindingUsageResource() - bindingUsage1.Name = "app1" - bindingUsage2 := fixServiceBindingUsageResource() - bindingUsage2.Name = "app2" - bindingUsages := []*api.ServiceBindingUsage{ - bindingUsage1, bindingUsage1, - } - - gqlBindingUsage1 := fixServiceBindingUsage() - gqlBindingUsage1.Name = "app1" - gqlBindingUsage2 := fixServiceBindingUsage() - gqlBindingUsage2.Name = "app2" - gqlBindingUsages := []*gqlschema.ServiceBindingUsage{ - gqlBindingUsage1, gqlBindingUsage2, - } - - converter.On("ToGQLs", bindingUsages).Return(gqlBindingUsages, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("ListByUsageKind", "test", "", "").Return(bindingUsages, nil).Once() - defer svc.AssertExpectations(t) - - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.ServiceBindingUsagesQuery(nil, "test", (*string)(nil), (*string)(nil)) - - require.NoError(t, err) - assert.ElementsMatch(t, gqlBindingUsages, result) - }) - - t.Run("Not found", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - usages := []*api.ServiceBindingUsage{} - gqlUsages := []*gqlschema.ServiceBindingUsage{} - - converter.On("ToGQLs", usages).Return(gqlUsages, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("ListByUsageKind", "test", "", "").Return(usages, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.ServiceBindingUsagesQuery(nil, "test", (*string)(nil), (*string)(nil)) - - require.NoError(t, err) - assert.Equal(t, gqlUsages, result) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("ListByUsageKind", "test", "", "").Return(nil, errors.New("trolololo")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.ServiceBindingUsagesQuery(nil, "test", (*string)(nil), (*string)(nil)) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingUsageResolver_ServiceBindingUsagesOfInstanceQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - usages := []*api.ServiceBindingUsage{ - fixServiceBindingUsageResource(), - fixServiceBindingUsageResource(), - } - gqlUsages := []*gqlschema.ServiceBindingUsage{ - fixServiceBindingUsage(), - fixServiceBindingUsage(), - } - - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - converter.On("ToGQLs", usages).Return(gqlUsages, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("ListForServiceInstance", "test", "test").Return(usages, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.ServiceBindingUsagesOfInstanceQuery(nil, "test", "test") - - require.NoError(t, err) - assert.Equal(t, gqlUsages, result) - }) - - t.Run("Not found", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - usages := []*api.ServiceBindingUsage{} - gqlUsages := []*gqlschema.ServiceBindingUsage{} - - converter.On("ToGQLs", usages).Return(gqlUsages, nil).Once() - defer svc.AssertExpectations(t) - - svc.On("ListForServiceInstance", "test", "test").Return(usages, nil).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - result, err := resolver.ServiceBindingUsagesOfInstanceQuery(nil, "test", "test") - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("Error", func(t *testing.T) { - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - - svc.On("ListForServiceInstance", "test", "test").Return(nil, errors.New("trolololo")).Once() - defer svc.AssertExpectations(t) - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.ServiceBindingUsagesOfInstanceQuery(nil, "test", "test") - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} - -func TestServiceBindingUsageResolver_ServiceBindingUsageEventSubscription(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - _, err := resolver.ServiceBindingUsageEventSubscription(ctx, "test", nil, nil) - - require.NoError(t, err) - svc.AssertCalled(t, "Subscribe", mock.Anything) - }) - - t.Run("Unsubscribe after connection close", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), (-24 * time.Hour)) - cancel() - - svc := automock.NewServiceBindingUsageOperations() - converter := automock.NewServiceBindingUsageConverter() - svc.On("Subscribe", mock.Anything).Once() - svc.On("Unsubscribe", mock.Anything).Once() - resolver := servicecatalogaddons.NewServiceBindingUsageResolver(svc, converter) - - channel, err := resolver.ServiceBindingUsageEventSubscription(ctx, "test", nil, nil) - <-channel - - require.NoError(t, err) - svc.AssertCalled(t, "Unsubscribe", mock.Anything) - }) -} - -func fixServiceBindingUsage() *gqlschema.ServiceBindingUsage { - return &gqlschema.ServiceBindingUsage{ - Name: "sbu-name", - Namespace: "test-ns", - UsedBy: gqlschema.LocalObjectReference{ - Kind: "Deployment", - Name: "sample-deployment", - }, - ServiceBindingName: "binding-name", - Status: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypePending, - }, - } -} - -func fixCreateServiceBindingUsageInput() *gqlschema.CreateServiceBindingUsageInput { - name := "sbu-name" - return &gqlschema.CreateServiceBindingUsageInput{ - Name: &name, - ServiceBindingRef: &gqlschema.ServiceBindingRefInput{ - Name: "binding-name", - }, - UsedBy: &gqlschema.LocalObjectReferenceInput{ - Kind: "Deployment", - Name: "sample-deployment", - }, - } -} - -func fixServiceBindingUsageResource() *api.ServiceBindingUsage { - return &api.ServiceBindingUsage{ - TypeMeta: metav1.TypeMeta{ - Kind: "ServiceBindingUsage", - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "sbu-name", - Namespace: "test-ns", - }, - Spec: api.ServiceBindingUsageSpec{ - ServiceBindingRef: api.LocalReferenceByName{ - Name: "binding-name", - }, - UsedBy: api.LocalReferenceByKindAndName{ - Kind: "Deployment", - Name: "sample-deployment", - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_service.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_service.go deleted file mode 100644 index f42d48b48594..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_service.go +++ /dev/null @@ -1,179 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - "fmt" - "strings" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/tools/cache" -) - -type notifier interface { - AddListener(observer resource.Listener) - DeleteListener(observer resource.Listener) -} - -type serviceBindingUsageService struct { - dynamicClient dynamic.NamespaceableResourceInterface - informer cache.SharedIndexInformer - scRetriever shared.ServiceCatalogRetriever - extractor extractor.BindingUsageUnstructuredExtractor - notifier notifier - - nameFunc func() string -} - -func newServiceBindingUsageService(resourceInterface dynamic.NamespaceableResourceInterface, informer cache.SharedIndexInformer, scRetriever shared.ServiceCatalogRetriever, nameFunc func() string) (*serviceBindingUsageService, error) { - svc := &serviceBindingUsageService{ - dynamicClient: resourceInterface, - informer: informer, - scRetriever: scRetriever, - nameFunc: nameFunc, - extractor: extractor.BindingUsageUnstructuredExtractor{}, - } - - err := informer.AddIndexers(cache.Indexers{ - "usedBy": func(obj interface{}) ([]string, error) { - serviceBindingUsage, err := svc.extractor.Do(obj) - if err != nil { - return nil, errors.New("while indexing by `usedBy`") - } - - key := fmt.Sprintf("%s/%s/%s", serviceBindingUsage.Namespace, strings.ToLower(serviceBindingUsage.Spec.UsedBy.Kind), serviceBindingUsage.Spec.UsedBy.Name) - - return []string{key}, nil - }, - }) - if err != nil { - return nil, errors.Wrap(err, "while adding indexers") - } - - notifier := resource.NewNotifier() - informer.AddEventHandler(notifier) - - svc.notifier = notifier - - return svc, nil -} - -func (f *serviceBindingUsageService) Create(namespace string, sb *api.ServiceBindingUsage) (*api.ServiceBindingUsage, error) { - if sb.Name == "" { - sb.Name = f.nameFunc() - } - sb.Namespace = namespace - - obj, err := f.extractor.ToUnstructured(sb) - if err != nil { - return nil, err - } - - _, err = f.dynamicClient.Namespace(namespace).Create(context.Background(), obj, v1.CreateOptions{}) - return sb, err -} - -func (f *serviceBindingUsageService) Delete(namespace string, name string) error { - return f.dynamicClient.Namespace(namespace).Delete(context.Background(), name, v1.DeleteOptions{}) -} - -func (f *serviceBindingUsageService) Find(namespace string, name string) (*api.ServiceBindingUsage, error) { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := f.informer.GetStore().GetByKey(key) - if err != nil || !exists { - return nil, err - } - - return f.extractor.Do(item) -} - -func (f *serviceBindingUsageService) List(namespace string) ([]*api.ServiceBindingUsage, error) { - items, err := f.informer.GetIndexer().ByIndex("namespace", namespace) - if err != nil { - return nil, err - } - - return f.toServiceBindingUsages(items) -} - -func (f *serviceBindingUsageService) ListForServiceInstance(namespace string, instanceName string) ([]*api.ServiceBindingUsage, error) { - bindings, err := f.scRetriever.ServiceBinding().ListForServiceInstance(namespace, instanceName) - if err != nil { - return nil, errors.Wrapf(err, "while getting ServiceBindings for instance [namespace: %s, name: %s]", namespace, instanceName) - } - - bindingNames := make(map[string]struct{}) - for _, binding := range bindings { - bindingNames[binding.Name] = struct{}{} - } - - usages, err := f.List(namespace) - if err != nil { - return nil, errors.Wrapf(err, "while getting all ServiceBindingUsages from namespace: %s", namespace) - } - filteredUsages := make([]*api.ServiceBindingUsage, 0) - for _, usage := range usages { - if _, ex := bindingNames[usage.Spec.ServiceBindingRef.Name]; ex { - filteredUsages = append(filteredUsages, usage) - } - } - return filteredUsages, nil -} - -func (f *serviceBindingUsageService) ListByUsageKind(namespace, kind, resourceName string) ([]*api.ServiceBindingUsage, error) { - if kind == "" || resourceName == "" { - return f.List(namespace) - } - - key := fmt.Sprintf("%s/%s/%s", namespace, strings.ToLower(kind), resourceName) - items, err := f.informer.GetIndexer().ByIndex("usedBy", key) - if err != nil { - return nil, err - } - - return f.toServiceBindingUsages(items) -} - -func (f *serviceBindingUsageService) DeleteAllByUsageKind(namespace, kind, resourceName string) error { - usages, err := f.ListByUsageKind(namespace, kind, resourceName) - if err != nil { - return err - } - - for _, usage := range usages { - err := f.Delete(namespace, usage.Name) - if err != nil { - return err - } - } - - return nil -} - -func (f *serviceBindingUsageService) Subscribe(listener resource.Listener) { - f.notifier.AddListener(listener) -} - -func (f *serviceBindingUsageService) Unsubscribe(listener resource.Listener) { - f.notifier.DeleteListener(listener) -} - -func (f *serviceBindingUsageService) toServiceBindingUsages(items []interface{}) ([]*api.ServiceBindingUsage, error) { - var usages []*api.ServiceBindingUsage - for _, item := range items { - usage, err := f.extractor.Do(item) - if err != nil { - return nil, err - } - - usages = append(usages, usage) - } - - return usages, nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_service_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_service_test.go deleted file mode 100644 index f026aa2a570f..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicebindingusage_service_test.go +++ /dev/null @@ -1,301 +0,0 @@ -package servicecatalogaddons_test - -import ( - "context" - "fmt" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - - "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared/automock" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - api "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - apierrors "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestBindingUsageServiceCreate(t *testing.T) { - // GIVEN - fakeClient, err := newDynamicClient() - require.NoError(t, err) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), newSbuFakeInformer(fakeClient), nil, "sbu-name") - require.NoError(t, err) - // WHEN - usage := fixBindingUsage() - _, err = sut.Create("prod", usage) - // THEN - require.NoError(t, err) - actualUsage, err := fakeClient.Resource(bindingUsageGVR).Namespace(usage.Namespace).Get(context.Background(), usage.Name, v1.GetOptions{}) - require.NoError(t, err) - assert.NotNil(t, actualUsage) -} - -func TestBindingUsageServiceCreateWithGeneratedName(t *testing.T) { - // GIVEN - fakeClient, err := newDynamicClient() - require.NoError(t, err) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), newSbuFakeInformer(fakeClient), nil, "generated-sbu-name") - require.NoError(t, err) - sbu := fixBindingUsage() - sbu.Name = "" - // WHEN - _, err = sut.Create("prod", sbu) - // THEN - require.NoError(t, err) - actualUsage, err := fakeClient.Resource(bindingUsageGVR).Namespace("prod").Get(context.Background(), "generated-sbu-name", v1.GetOptions{}) - require.NoError(t, err) - assert.NotNil(t, actualUsage) -} - -func TestBindingUsageServiceDelete(t *testing.T) { - // GIVEN - bindingUsage := fixBindingUsage() - fakeClient, err := newDynamicClient(bindingUsage) - require.NoError(t, err) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), newSbuFakeInformer(fakeClient), nil, bindingUsage.Name) - require.NoError(t, err) - // WHEN - err = sut.Delete(bindingUsage.Namespace, bindingUsage.Name) - // THEN - require.NoError(t, err) - _, err = fakeClient.Resource(bindingUsageGVR).Namespace(bindingUsage.Namespace).Get(context.Background(), bindingUsage.Name, v1.GetOptions{}) - require.True(t, apierrors.IsNotFound(err)) -} - -func TestBindingUsageServiceFind(t *testing.T) { - // GIVEN - bindingUsage := fixBindingUsage() - fakeClient, err := newDynamicClient(bindingUsage) - require.NoError(t, err) - informer := newSbuFakeInformer(fakeClient) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), informer, nil, "sbu-name") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - actual, err := sut.Find(bindingUsage.Namespace, bindingUsage.Name) - // THEN - require.NoError(t, err) - assert.Equal(t, bindingUsage, actual) -} - -func TestBindingUsageServiceList(t *testing.T) { - // GIVEN - us1 := fixBindingUsage() - us2 := fixBindingUsage() - us2.Name = "second-usage" - fakeClient, err := newDynamicClient(us1, us2) - require.NoError(t, err) - informer := newSbuFakeInformer(fakeClient) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), informer, nil, "") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - actualUsages, err := sut.List("prod") - // THEN - require.NoError(t, err) - assert.Len(t, actualUsages, 2) - assert.Contains(t, actualUsages, us1) - assert.Contains(t, actualUsages, us2) -} - -func TestBindingUsageServiceListForServiceInstance(t *testing.T) { - // GIVEN - us1 := customBindingUsage("redis-1") - us2 := customBindingUsage("redis-2") - us3 := customBindingUsage("mysql-1") - - fakeClient, err := newDynamicClient(us1, us2, us3) - require.NoError(t, err) - informer := newSbuFakeInformer(fakeClient) - bindingFinderLister := &automock.ServiceBindingFinderLister{} - defer bindingFinderLister.AssertExpectations(t) - - bindingFinderLister.On("ListForServiceInstance", "prod", "redis-instance").Return( - []*v1beta1.ServiceBinding{ - { - ObjectMeta: v1.ObjectMeta{ - Name: "binding-redis-1", - Namespace: "prod", - }, - Spec: v1beta1.ServiceBindingSpec{ - InstanceRef: v1beta1.LocalObjectReference{ - Name: "redis-instance", - }, - }}, - { - ObjectMeta: v1.ObjectMeta{ - Name: "binding-redis-2", - Namespace: "prod", - }, - Spec: v1beta1.ServiceBindingSpec{ - InstanceRef: v1beta1.LocalObjectReference{ - Name: "redis-instance", - }, - }}, - }, nil) - - scRetriever := &automock.ServiceCatalogRetriever{} - scRetriever.On("ServiceBinding").Return(bindingFinderLister) - - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), informer, scRetriever, "sbu-name") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - usages, err := sut.ListForServiceInstance("prod", "redis-instance") - // THEN - require.NoError(t, err) - assert.Len(t, usages, 2) - assert.Contains(t, usages, us1) - assert.Contains(t, usages, us2) -} - -func TestBindingUsageServiceListForServiceInstanceErrors(t *testing.T) { - t.Run("on getting bindings", func(t *testing.T) { - // GIVEN - fakeClient, err := newDynamicClient() - require.NoError(t, err) - informer := newSbuFakeInformer(fakeClient) - bindingFinderLister := &automock.ServiceBindingFinderLister{} - defer bindingFinderLister.AssertExpectations(t) - bindingFinderLister.On("ListForServiceInstance", mock.Anything, mock.Anything).Return(nil, errors.New("some error")) - - scRetriever := &automock.ServiceCatalogRetriever{} - scRetriever.On("ServiceBinding").Return(bindingFinderLister) - - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), informer, scRetriever, "sbu-name") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - _, err = sut.ListForServiceInstance("prod", "redis-instance") - // THEN - assert.EqualError(t, err, "while getting ServiceBindings for instance [namespace: prod, name: redis-instance]: some error") - }) -} - -func TestBindingUsageServiceListByUsageKind(t *testing.T) { - t.Run("Success with kind and resourceName parameters", func(t *testing.T) { - // GIVEN - us1 := customBindingUsage("redis-1") - us2 := customBindingUsage("redis-2") - us3 := customFunctionBindingUsage("mysql-1") - - fakeClient, err := newDynamicClient(us1, us2, us3) - require.NoError(t, err) - informer := newSbuFakeInformer(fakeClient) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), informer, nil, "sbu-name") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - usages, err := sut.ListByUsageKind("prod", "deployment", "app") - // THEN - require.NoError(t, err) - assert.Len(t, usages, 2) - assert.Contains(t, usages, us1) - assert.Contains(t, usages, us2) - }) - - t.Run("Success with only namespace parameter", func(t *testing.T) { - // GIVEN - us1 := customBindingUsage("redis-1") - us2 := customBindingUsage("redis-2") - us3 := customFunctionBindingUsage("mysql-1") - - fakeClient, err := newDynamicClient(us1, us2, us3) - require.NoError(t, err) - informer := newSbuFakeInformer(fakeClient) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), informer, nil, "sbu-name") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - usages, err := sut.ListByUsageKind("prod", "", "") - // THEN - require.NoError(t, err) - assert.Len(t, usages, 3) - assert.Contains(t, usages, us1) - assert.Contains(t, usages, us2) - assert.Contains(t, usages, us3) - }) -} - -func TestBindingUsageServiceDeleteAllByUsageKind(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // GIVEN - us1 := customBindingUsage("redis-1") - us2 := customBindingUsage("redis-2") - us3 := customFunctionBindingUsage("mysql-1") - - fakeClient, err := newDynamicClient(us1, us2, us3) - require.NoError(t, err) - informer := newSbuFakeInformer(fakeClient) - sut, err := servicecatalogaddons.NewServiceBindingUsageService(fakeClient.Resource(bindingUsageGVR), informer, nil, "sbu-name") - require.NoError(t, err) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - // WHEN - err = sut.DeleteAllByUsageKind("prod", "deployment", "app") - // THEN - require.NoError(t, err) - _, err = fakeClient.Resource(bindingUsageGVR).Namespace(us1.Namespace).Get(context.Background(), us1.Name, v1.GetOptions{}) - require.True(t, apierrors.IsNotFound(err)) - _, err = fakeClient.Resource(bindingUsageGVR).Namespace(us2.Namespace).Get(context.Background(), us2.Name, v1.GetOptions{}) - require.True(t, apierrors.IsNotFound(err)) - _, err = fakeClient.Resource(bindingUsageGVR).Namespace(us3.Namespace).Get(context.Background(), us3.Name, v1.GetOptions{}) - require.NoError(t, err) - }) -} - -func fixBindingUsage() *api.ServiceBindingUsage { - return &api.ServiceBindingUsage{ - TypeMeta: v1.TypeMeta{ - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - Kind: "servicebindingusage", - }, - ObjectMeta: v1.ObjectMeta{ - Name: "usage", - Namespace: "prod", - }, - Spec: api.ServiceBindingUsageSpec{ - UsedBy: api.LocalReferenceByKindAndName{ - Kind: "deployment", - Name: "app", - }, - ServiceBindingRef: api.LocalReferenceByName{ - Name: "binding", - }, - }, - } -} - -func customBindingUsage(id string) *api.ServiceBindingUsage { - return &api.ServiceBindingUsage{ - TypeMeta: v1.TypeMeta{ - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - Kind: "servicebindingusage", - }, - ObjectMeta: v1.ObjectMeta{ - Name: fmt.Sprintf("usage-%s", id), - Namespace: "prod", - }, - Spec: api.ServiceBindingUsageSpec{ - UsedBy: api.LocalReferenceByKindAndName{ - Kind: "deployment", - Name: "app", - }, - ServiceBindingRef: api.LocalReferenceByName{ - Name: fmt.Sprintf("binding-%s", id), - }, - }, - } -} - -func customFunctionBindingUsage(id string) *api.ServiceBindingUsage { - usage := customBindingUsage(id) - usage.Spec.UsedBy.Kind = "function" - - return usage -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicecatalogaddons.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicecatalogaddons.go deleted file mode 100644 index 311372936112..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicecatalogaddons.go +++ /dev/null @@ -1,190 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/disabled" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/kyma-project/kyma/components/console-backend-service/internal/name" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - bindingUsageApi "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/rest" -) - -type PluggableContainer struct { - *module.Pluggable - cfg *resolverConfig - - Resolver Resolver - ServiceCatalogAddonsRetriever *serviceCatalogAddonsRetriever - informerFactory dynamicinformer.DynamicSharedInformerFactory -} - -type serviceCatalogAddonsRetriever struct { - ServiceBindingUsageLister ServiceBindingUsageLister - GqlServiceBindingUsageConverter GqlServiceBindingUsageConverter -} - -func (r *serviceCatalogAddonsRetriever) ServiceBindingUsage() shared.ServiceBindingUsageLister { - return r.ServiceBindingUsageLister -} - -func (r *serviceCatalogAddonsRetriever) ServiceBindingUsageConverter() shared.GqlServiceBindingUsageConverter { - return r.GqlServiceBindingUsageConverter -} - -//go:generate failery -name=ServiceBindingUsageLister -case=underscore -output disabled -outpkg disabled -type ServiceBindingUsageLister interface { - ListByUsageKind(namespace, kind, resourceName string) ([]*bindingUsageApi.ServiceBindingUsage, error) - DeleteAllByUsageKind(namespace, kind, resourceName string) error -} - -//go:generate failery -name=GqlServiceBindingUsageConverter -case=underscore -output disabled -outpkg disabled -type GqlServiceBindingUsageConverter interface { - ToGQL(item *bindingUsageApi.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) - ToGQLs(in []*bindingUsageApi.ServiceBindingUsage) ([]*gqlschema.ServiceBindingUsage, error) -} - -var ( - usageKindsGVR = schema.GroupVersionResource{ - Version: bindingUsageApi.SchemeGroupVersion.Version, - Group: bindingUsageApi.SchemeGroupVersion.Group, - Resource: "usagekinds", - } - bindingUsageGVR = schema.GroupVersionResource{ - Version: bindingUsageApi.SchemeGroupVersion.Version, - Group: bindingUsageApi.SchemeGroupVersion.Group, - Resource: "servicebindingusages", - } - addonsConfigGVR = schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "addonsconfigurations", - } - clusterAddonsConfigGVR = schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "clusteraddonsconfigurations", - } -) - -func New(restConfig *rest.Config, informerResyncPeriod time.Duration, scRetriever shared.ServiceCatalogRetriever) (*PluggableContainer, error) { - dynamicClient, err := dynamic.NewForConfig(restConfig) - if err != nil { - return nil, errors.Wrap(err, "while initializing Dynamic Clientset") - } - - container := &PluggableContainer{ - cfg: &resolverConfig{ - dynamicClient: dynamicClient, - informerResyncPeriod: informerResyncPeriod, - scRetriever: scRetriever, - }, - ServiceCatalogAddonsRetriever: &serviceCatalogAddonsRetriever{}, - Pluggable: module.NewPluggable("servicecatalogaddons"), - } - err = container.Disable() - if err != nil { - return nil, err - } - - return container, nil -} - -func (r *PluggableContainer) Enable() error { - r.informerFactory = dynamicinformer.NewDynamicSharedInformerFactory(r.cfg.dynamicClient, r.cfg.informerResyncPeriod) - - usageKindService := newUsageKindService(r.cfg.dynamicClient, r.informerFactory.ForResource(usageKindsGVR).Informer()) - - serviceBindingUsageService, err := newServiceBindingUsageService(r.cfg.dynamicClient.Resource(bindingUsageGVR), r.informerFactory.ForResource(bindingUsageGVR).Informer(), r.cfg.scRetriever, name.Generate) - if err != nil { - return errors.Wrap(err, "while creating service binding usage service") - } - serviceBindingUsageConverter := newBindingUsageConverter() - - clusterAddonsConfigurationService := newClusterAddonsConfigurationService(r.informerFactory.ForResource(clusterAddonsConfigGVR).Informer(), r.cfg.dynamicClient.Resource(clusterAddonsConfigGVR)) - addonsConfigurationService := newAddonsConfigurationService(r.informerFactory.ForResource(addonsConfigGVR).Informer(), r.cfg.dynamicClient.Resource(addonsConfigGVR)) - - onSyncHook := func() { - r.Resolver = &domainResolver{ - serviceBindingUsageResolver: newServiceBindingUsageResolver(serviceBindingUsageService, &serviceBindingUsageConverter), - usageKindResolver: newUsageKindResolver(usageKindService), - bindableResourcesResolver: newBindableResourcesResolver(usageKindService), - addonsConfigurationResolver: newAddonsConfigurationResolver(addonsConfigurationService), - clusterAddonsConfigurationResolver: newClusterAddonsConfigurationResolver(clusterAddonsConfigurationService), - } - r.ServiceCatalogAddonsRetriever.ServiceBindingUsageLister = serviceBindingUsageService - r.ServiceCatalogAddonsRetriever.GqlServiceBindingUsageConverter = &serviceBindingUsageConverter - } - - r.Pluggable.EnableAndSyncDynamicInformerFactory(r.informerFactory, onSyncHook) - return nil -} - -func (r *PluggableContainer) Disable() error { - r.Pluggable.Disable(func(disabledErr error) { - r.Resolver = disabled.NewResolver(disabledErr) - r.ServiceCatalogAddonsRetriever.ServiceBindingUsageLister = disabled.NewServiceBindingUsageLister(disabledErr) - r.ServiceCatalogAddonsRetriever.GqlServiceBindingUsageConverter = disabled.NewGqlServiceBindingUsageConverter(disabledErr) - }) - - return nil -} - -type resolverConfig struct { - dynamicClient dynamic.Interface - scRetriever shared.ServiceCatalogRetriever - informerResyncPeriod time.Duration -} - -//go:generate failery -name=Resolver -case=underscore -output disabled -outpkg disabled -type Resolver interface { - CreateServiceBindingUsageMutation(ctx context.Context, namespace string, input *gqlschema.CreateServiceBindingUsageInput) (*gqlschema.ServiceBindingUsage, error) - DeleteServiceBindingUsageMutation(ctx context.Context, serviceBindingUsageName, namespace string) (*gqlschema.DeleteServiceBindingUsageOutput, error) - DeleteServiceBindingUsagesMutation(ctx context.Context, serviceBindingUsageNames []string, namespace string) ([]*gqlschema.DeleteServiceBindingUsageOutput, error) - ServiceBindingUsageQuery(ctx context.Context, name, namespace string) (*gqlschema.ServiceBindingUsage, error) - ServiceBindingUsagesQuery(ctx context.Context, namespace string, resourceKind, resourceName *string) ([]*gqlschema.ServiceBindingUsage, error) - ServiceBindingUsagesOfInstanceQuery(ctx context.Context, instanceName, env string) ([]*gqlschema.ServiceBindingUsage, error) - ServiceBindingUsageEventSubscription(ctx context.Context, namespace string, resourceKind, resourceName *string) (<-chan *gqlschema.ServiceBindingUsageEvent, error) - - ListUsageKinds(ctx context.Context, first *int, offset *int) ([]*gqlschema.UsageKind, error) - ListBindableResources(ctx context.Context, namespace string) ([]*gqlschema.BindableResourcesOutputItem, error) - - AddonsConfigurationsQuery(ctx context.Context, namespace string, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) - CreateAddonsConfiguration(ctx context.Context, name, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) - UpdateAddonsConfiguration(ctx context.Context, name, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) - DeleteAddonsConfiguration(ctx context.Context, name, namespace string) (*gqlschema.AddonsConfiguration, error) - AddAddonsConfigurationURLs(ctx context.Context, name, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) - RemoveAddonsConfigurationURLs(ctx context.Context, name, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) - AddAddonsConfigurationRepositories(ctx context.Context, name, namespace string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) - RemoveAddonsConfigurationRepositories(ctx context.Context, name, namespace string, urls []string) (*gqlschema.AddonsConfiguration, error) - ResyncAddonsConfiguration(ctx context.Context, name, namespace string) (*gqlschema.AddonsConfiguration, error) - AddonsConfigurationEventSubscription(ctx context.Context, namespace string) (<-chan *gqlschema.AddonsConfigurationEvent, error) - - ClusterAddonsConfigurationsQuery(ctx context.Context, first *int, offset *int) ([]*gqlschema.AddonsConfiguration, error) - CreateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) - UpdateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput, urls []string, labels gqlschema.Labels) (*gqlschema.AddonsConfiguration, error) - DeleteClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) - AddClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) - RemoveClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) - AddClusterAddonsConfigurationRepositories(ctx context.Context, name string, repositories []*gqlschema.AddonsConfigurationRepositoryInput) (*gqlschema.AddonsConfiguration, error) - RemoveClusterAddonsConfigurationRepositories(ctx context.Context, name string, urls []string) (*gqlschema.AddonsConfiguration, error) - ResyncClusterAddonsConfiguration(ctx context.Context, name string) (*gqlschema.AddonsConfiguration, error) - ClusterAddonsConfigurationEventSubscription(ctx context.Context) (<-chan *gqlschema.ClusterAddonsConfigurationEvent, error) -} - -type domainResolver struct { - *serviceBindingUsageResolver - *usageKindResolver - *bindableResourcesResolver - *clusterAddonsConfigurationResolver - *addonsConfigurationResolver -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/servicecatalogaddons_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/servicecatalogaddons_test.go deleted file mode 100644 index b9aad06b0efc..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/servicecatalogaddons_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package servicecatalogaddons_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "k8s.io/client-go/rest" -) - -const testTimes = 3 -const informerResyncPeriod = 10 * time.Second - -func TestPluggableContainer(t *testing.T) { - pluggable, err := servicecatalogaddons.New(&rest.Config{}, informerResyncPeriod, nil) - require.NoError(t, err) - - pluggable.SetFakeClient() - - for i := 0; i < testTimes; i++ { - require.NotPanics(t, func() { - err := pluggable.Enable() - require.NoError(t, err) - <-pluggable.Pluggable.SyncCh - - checkExportedFields(t, pluggable, true) - }) - require.NotPanics(t, func() { - err := pluggable.Disable() - require.NoError(t, err) - - checkExportedFields(t, pluggable, false) - }) - } -} - -func checkExportedFields(t *testing.T, resolver *servicecatalogaddons.PluggableContainer, enabled bool) { - assert.NotNil(t, resolver.Resolver) - require.NotNil(t, resolver.ServiceCatalogAddonsRetriever) - assert.NotNil(t, resolver.ServiceCatalogAddonsRetriever.ServiceBindingUsageLister) - - ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) - defer cancel() - val, err := resolver.Resolver.ListUsageKinds(ctx, nil, nil) - if enabled { - require.NoError(t, err) - } else { - require.Error(t, err) - require.Nil(t, val) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/status/binding_usage.go b/components/console-backend-service/internal/domain/servicecatalogaddons/status/binding_usage.go deleted file mode 100644 index fb261df5a115..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/status/binding_usage.go +++ /dev/null @@ -1,55 +0,0 @@ -package status - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -type BindingUsageExtractor struct{} - -func (ext *BindingUsageExtractor) Status(conditions []v1alpha1.ServiceBindingUsageCondition) gqlschema.ServiceBindingUsageStatus { - activeConditions := ext.findActiveConditions(conditions) - - if len(conditions) == 0 { - return gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypePending, - } - } - if cond, found := ext.findReadyCondition(activeConditions); found { - return gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypeReady, - Message: cond.Message, - Reason: cond.Reason, - } - } - if cond, found := ext.findReadyCondition(conditions); found { - return gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypeFailed, - Message: cond.Message, - Reason: cond.Reason, - } - } - - return gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypeUnknown, - } -} - -func (*BindingUsageExtractor) findActiveConditions(conditions []v1alpha1.ServiceBindingUsageCondition) []v1alpha1.ServiceBindingUsageCondition { - var result []v1alpha1.ServiceBindingUsageCondition - for _, cond := range conditions { - if cond.Status == v1alpha1.ConditionTrue { - result = append(result, cond) - } - } - return result -} - -func (*BindingUsageExtractor) findReadyCondition(conditions []v1alpha1.ServiceBindingUsageCondition) (v1alpha1.ServiceBindingUsageCondition, bool) { - for _, item := range conditions { - if item.Type == v1alpha1.ServiceBindingUsageReady { - return item, true - } - } - return v1alpha1.ServiceBindingUsageCondition{}, false -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/status/binding_usage_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/status/binding_usage_test.go deleted file mode 100644 index ff1edeb0de92..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/status/binding_usage_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package status - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" -) - -func TestBindingUsageExtractor_Status(t *testing.T) { - // GIVEN - ext := BindingUsageExtractor{} - for tn, tc := range map[string]struct { - given []v1alpha1.ServiceBindingUsageCondition - expected gqlschema.ServiceBindingUsageStatus - }{ - "ReadyStatus": { - given: []v1alpha1.ServiceBindingUsageCondition{ - { - Status: v1alpha1.ConditionTrue, - Type: v1alpha1.ServiceBindingUsageReady, - }, - }, - expected: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypeReady, - }, - }, - "FailedStatus": { - given: []v1alpha1.ServiceBindingUsageCondition{ - { - Status: v1alpha1.ConditionFalse, - Reason: "error", - Message: "supa error", - Type: v1alpha1.ServiceBindingUsageReady, - }, - }, - expected: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypeFailed, - Reason: "error", - Message: "supa error", - }, - }, - "EmptyStatus": { - given: []v1alpha1.ServiceBindingUsageCondition{}, - expected: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypePending, - }, - }, - "UnknownStatus": { - given: []v1alpha1.ServiceBindingUsageCondition{ - { - Type: "different", - }, - }, - expected: gqlschema.ServiceBindingUsageStatus{ - Type: gqlschema.ServiceBindingUsageStatusTypeUnknown, - }, - }, - } { - - t.Run(tn, func(t *testing.T) { - // WHEN - result := ext.Status(tc.given) - // THEN - assert.Equal(t, tc.expected, result) - }) - } -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_converter.go b/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_converter.go deleted file mode 100644 index 2ae1d25e2c7a..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_converter.go +++ /dev/null @@ -1,38 +0,0 @@ -package servicecatalogaddons - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -type gqlUsageKindConverter interface { - ToGQL(usageKind *v1alpha1.UsageKind) *gqlschema.UsageKind - ToGQLs(usageKinds []*v1alpha1.UsageKind) []*gqlschema.UsageKind -} - -type usageKindConverter struct{} - -func (c *usageKindConverter) ToGQL(usageKind *v1alpha1.UsageKind) *gqlschema.UsageKind { - if usageKind == nil { - return nil - } - - return &gqlschema.UsageKind{ - Name: usageKind.Name, - Kind: usageKind.Spec.Resource.Kind, - Version: usageKind.Spec.Resource.Version, - Group: usageKind.Spec.Resource.Group, - DisplayName: usageKind.Spec.DisplayName, - } -} - -func (c *usageKindConverter) ToGQLs(usageKinds []*v1alpha1.UsageKind) []*gqlschema.UsageKind { - var result []*gqlschema.UsageKind - for _, item := range usageKinds { - converted := c.ToGQL(item) - if converted != nil { - result = append(result, converted) - } - } - return result -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_converter_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_converter_test.go deleted file mode 100644 index f020aaa52aef..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_converter_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package servicecatalogaddons_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestUsageKindConverter_ToGQL(t *testing.T) { - // GIVEN - conv := servicecatalogaddons.NewUsageKindConverter() - name := "harry" - resourceRef := fixDeploymentResourceReference() - - // WHEN - result := conv.ToGQL(fixUsageKind(name, resourceRef)) - - // THEN - assert.Equal(t, result, fixUsageKindGQL(name, resourceRef)) -} - -func fixUsageKind(name string, resourceRef *v1alpha1.ResourceReference) *v1alpha1.UsageKind { - return &v1alpha1.UsageKind{ - TypeMeta: v1.TypeMeta{ - APIVersion: "servicecatalog.kyma-project.io/v1alpha1", - Kind: "usagekind", - }, - ObjectMeta: v1.ObjectMeta{ - Name: name, - }, - Spec: v1alpha1.UsageKindSpec{ - DisplayName: fixUsageKindDisplayName(), - Resource: resourceRef, - LabelsPath: fixUsageKindLabelsPath(), - }, - } -} - -func fixDeploymentResourceReference() *v1alpha1.ResourceReference { - return &v1alpha1.ResourceReference{ - Group: "apps", - Kind: "deployment", - Version: "v1", - } -} - -func fixUsageKindGQL(name string, resourceRef *v1alpha1.ResourceReference) *gqlschema.UsageKind { - return &gqlschema.UsageKind{ - Name: name, - Group: resourceRef.Group, - Kind: resourceRef.Kind, - Version: resourceRef.Version, - DisplayName: fixUsageKindDisplayName(), - } -} - -func fixUsageKindDisplayName() string { - return "target" -} - -func fixUsageKindLabelsPath() string { - return "meta.data" -} - -func fixUsageKindResourceNamespace() string { - return "space" -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_resolver.go b/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_resolver.go deleted file mode 100644 index de15e08950f7..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_resolver.go +++ /dev/null @@ -1,39 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=usageKindServices -output=automock -outpkg=automock -case=underscore -type usageKindServices interface { - List(params pager.PagingParams) ([]*v1alpha1.UsageKind, error) -} - -type usageKindResolver struct { - converter gqlUsageKindConverter - svc usageKindServices -} - -func newUsageKindResolver(svc usageKindServices) *usageKindResolver { - return &usageKindResolver{ - svc: svc, - converter: &usageKindConverter{}, - } -} - -func (rsv *usageKindResolver) ListUsageKinds(ctx context.Context, first *int, offset *int) ([]*gqlschema.UsageKind, error) { - res, err := rsv.svc.List(pager.PagingParams{First: first, Offset: offset}) - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.UsageKinds)) - return nil, gqlerror.New(err, pretty.UsageKinds) - } - return rsv.converter.ToGQLs(res), nil -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_resolver_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_resolver_test.go deleted file mode 100644 index 242914824ea6..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_resolver_test.go +++ /dev/null @@ -1,53 +0,0 @@ -package servicecatalogaddons_test - -import ( - "context" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/client/clientset/versioned/fake" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/client/informers/externalversions" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestUsageKindResolver_ListUsageKinds(t *testing.T) { - // GIVEN - resourceRef := fixDeploymentResourceReference() - usageKindA := fixUsageKind("fix-A", resourceRef) - usageKindB := fixUsageKind("fix-B", resourceRef) - usageKinds := []*v1alpha1.UsageKind{ - usageKindA, - usageKindB, - } - gqlUsageKinds := []*gqlschema.UsageKind{ - fixUsageKindGQL("fix-A", resourceRef), - fixUsageKindGQL("fix-B", resourceRef), - } - - svc := automock.NewUsageKindServices() - svc.On("List", pager.PagingParams{}). - Return(usageKinds, nil). - Once() - defer svc.AssertExpectations(t) - - client := fake.NewSimpleClientset(usageKindA, usageKindB) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - - informer := informerFactory.Servicecatalog().V1alpha1().UsageKinds().Informer() - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - resolver := servicecatalogaddons.NewUsageKindResolver(svc) - - // WHEN - resp, err := resolver.ListUsageKinds(context.Background(), nil, nil) - - // THEN - require.NoError(t, err) - assert.Equal(t, gqlUsageKinds, resp) -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_service.go b/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_service.go deleted file mode 100644 index 16f76d6efe4b..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_service.go +++ /dev/null @@ -1,148 +0,0 @@ -package servicecatalogaddons - -import ( - "context" - "fmt" - "strings" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons/extractor" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/pkg/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/tools/cache" -) - -type usageKindService struct { - informer cache.SharedIndexInformer - dynamicClient dynamic.Interface - - extractor extractor.UsageKindUnstructuredExtractor -} - -func newUsageKindService(resourceInterface dynamic.Interface, informer cache.SharedIndexInformer) *usageKindService { - return &usageKindService{ - informer: informer, - dynamicClient: resourceInterface, - extractor: extractor.UsageKindUnstructuredExtractor{}, - } -} - -func (svc *usageKindService) List(params pager.PagingParams) ([]*v1alpha1.UsageKind, error) { - targets, err := pager.From(svc.informer.GetStore()).Limit(params) - if err != nil { - return nil, errors.Wrapf(err, "while listing UsageKinds with paging params [first: %v] [offset: %v]", params.First, params.Offset) - } - - res := make([]*v1alpha1.UsageKind, 0, len(targets)) - for _, item := range targets { - u, ok := item.(*unstructured.Unstructured) - if !ok { - return nil, fmt.Errorf("incorrect item type: %T, should be: 'UsageKind' in version 'v1alpha1'", item) - } - - uk, err := svc.extractor.FromUnstructured(u) - if err != nil { - return nil, err - } - - res = append(res, uk) - } - - return res, nil -} - -func (svc *usageKindService) ListResources(namespace string) ([]*gqlschema.BindableResourcesOutputItem, error) { - results := make([]*gqlschema.BindableResourcesOutputItem, 0) - items := svc.informer.GetStore().List() - - usageKinds, err := svc.extractUsageKinds(items) - if err != nil { - return nil, errors.Wrap(err, "while extracting UsageKinds") - } - serializedUks := svc.serializeUsageKinds(usageKinds) - - for _, uk := range usageKinds { - ukResources, err := svc.listResourcesForUsageKind(uk, serializedUks, namespace) - if err != nil { - return nil, errors.Wrap(err, "while listing target resources") - } - - results = append(results, &gqlschema.BindableResourcesOutputItem{ - Kind: uk.Name, - DisplayName: uk.Spec.DisplayName, - Resources: ukResources, - }) - } - return results, nil -} - -func (svc *usageKindService) extractUsageKinds(items []interface{}) ([]*v1alpha1.UsageKind, error) { - uks := make([]*v1alpha1.UsageKind, 0) - for _, item := range items { - uk, err := svc.extractor.Do(item) - if err != nil { - return nil, errors.Wrap(err, "while extracting UsageKind") - } - uks = append(uks, uk) - } - return uks, nil -} - -type serializedUsageKind = struct { - ApiVersion string - Kind string -} - -func (svc *usageKindService) serializeUsageKinds(uks []*v1alpha1.UsageKind) []*serializedUsageKind { - serialized := make([]*serializedUsageKind, 0) - for _, uk := range uks { - serialized = append(serialized, &serializedUsageKind{ - ApiVersion: fmt.Sprintf("%s/%s", strings.ToLower(uk.Spec.Resource.Group), strings.ToLower(uk.Spec.Resource.Version)), - Kind: strings.ToLower(uk.Spec.Resource.Kind), - }) - } - return serialized -} - -func (svc *usageKindService) listResourcesForUsageKind(uk *v1alpha1.UsageKind, serializedUks []*serializedUsageKind, namespace string) ([]*gqlschema.UsageKindResource, error) { - list, err := svc.dynamicClient.Resource(schema.GroupVersionResource{ - Version: uk.Spec.Resource.Version, - Group: uk.Spec.Resource.Group, - Resource: strings.ToLower(uk.Spec.Resource.Kind) + "s", - }).Namespace(namespace).List(context.Background(), v1.ListOptions{}) - if err != nil { - return nil, errors.Wrap(err, "while listing target resources") - } - - results := make([]*gqlschema.UsageKindResource, 0) - for _, item := range list.Items { - if svc.omitResourceByOwnerRefs(serializedUks, item) { - continue - } - results = append(results, &gqlschema.UsageKindResource{ - Name: item.GetName(), - Namespace: namespace, - }) - } - - return results, nil -} - -func (svc *usageKindService) omitResourceByOwnerRefs(uks []*serializedUsageKind, item unstructured.Unstructured) bool { - for _, uk := range uks { - for _, ref := range item.GetOwnerReferences() { - apiVersion := strings.ToLower(ref.APIVersion) - kind := strings.ToLower(ref.Kind) - - if uk.ApiVersion == apiVersion && uk.Kind == kind { - return true - } - } - } - return false -} diff --git a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_service_test.go b/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_service_test.go deleted file mode 100644 index 81cdb85fe93c..000000000000 --- a/components/console-backend-service/internal/domain/servicecatalogaddons/usagekind_service_test.go +++ /dev/null @@ -1,209 +0,0 @@ -package servicecatalogaddons_test - -import ( - "fmt" - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - - "github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/servicecatalogaddons" - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - sbu "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/dynamic" - dynamicFake "k8s.io/client-go/dynamic/fake" - "k8s.io/client-go/tools/cache" -) - -func TestUsageKindService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // GIVEN - resourceRef := fixDeploymentResourceReference() - usageKindA := fixUsageKind("fix-A", resourceRef) - usageKindB := fixUsageKind("fix-B", resourceRef) - usageKinds := []*sbu.UsageKind{ - usageKindA, - usageKindB, - } - - client, err := newDynamicClient(usageKindA, usageKindB) - require.NoError(t, err) - informer := newUkFakeInformer(client) - - svc := servicecatalogaddons.NewUsageKindService(client, informer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - // WHEN - result, err := svc.List(pager.PagingParams{}) - require.NoError(t, err) - - // THEN - assert.Equal(t, usageKinds, result) - }) - - t.Run("Empty", func(t *testing.T) { - // GIVEN - client, err := newDynamicClient() - require.NoError(t, err) - informer := newUkFakeInformer(client) - - svc := servicecatalogaddons.NewUsageKindService(client, informer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - // WHEN - result, err := svc.List(pager.PagingParams{}) - require.NoError(t, err) - - // THEN - assert.Empty(t, result) - }) -} - -func TestUsageKindService_ListResources(t *testing.T) { - t.Run("Success", func(t *testing.T) { - // GIVEN - resourceRef := fixDeploymentResourceReference() - usageKind := fixUsageKind("fix-A", resourceRef) - - apiVersion := fmt.Sprintf("%s/%s", usageKind.Spec.Resource.Group, usageKind.Spec.Resource.Version) - existingFunction := newUnstructured(apiVersion, usageKind.Spec.Resource.Kind, "test", "test", []interface{}{}) - expected := []*gqlschema.BindableResourcesOutputItem{ - { - Kind: usageKind.Name, - DisplayName: usageKind.Spec.DisplayName, - Resources: []*gqlschema.UsageKindResource{ - { - Name: "test", - Namespace: "test", - }, - }, - }, - } - - client, err := newDynamicClient(usageKind, existingFunction) - require.NoError(t, err) - informer := newUkFakeInformer(client) - - svc := servicecatalogaddons.NewUsageKindService(client, informer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - // WHEN - result, err := svc.ListResources("test") - require.NoError(t, err) - - // THEN - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - // GIVEN - client, err := newDynamicClient() - require.NoError(t, err) - informer := newUkFakeInformer(client) - - svc := servicecatalogaddons.NewUsageKindService(client, informer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - // WHEN - result, err := svc.ListResources("test") - require.NoError(t, err) - - // THEN - assert.Empty(t, result) - }) - - t.Run("omitResourceByOwnerRefs", func(t *testing.T) { - // GIVEN - resourceRef := fixDeploymentResourceReference() - usageKindA := fixUsageKind("fix-A", resourceRef) - resourceOwnerRef := []interface{}{ - map[string]interface{}{ - "apiVersion": fmt.Sprintf("%s/%s", resourceRef.Group, resourceRef.Version), - "kind": resourceRef.Kind, - }, - } - - deploymentRef := fixDeploymentResourceReference() - usageKindB := fixUsageKind("fix-B", deploymentRef) - - apiVersion := fmt.Sprintf("%s/%s", usageKindA.Spec.Resource.Group, usageKindA.Spec.Resource.Version) - existingFunction := newUnstructured(apiVersion, usageKindA.Spec.Resource.Kind, "test", "test-A", []interface{}{}) - apiVersion = fmt.Sprintf("%s/%s", usageKindB.Spec.Resource.Group, usageKindB.Spec.Resource.Version) - existingDeploymentA := newUnstructured(apiVersion, usageKindB.Spec.Resource.Kind, "test", "test-B", resourceOwnerRef) - existingDeploymentB := newUnstructured(apiVersion, usageKindB.Spec.Resource.Kind, "test", "test-C", []interface{}{}) - - client, err := newDynamicClient(usageKindA, usageKindB, existingFunction, existingDeploymentA, existingDeploymentB) - require.NoError(t, err) - informer := newUkFakeInformer(client) - - svc := servicecatalogaddons.NewUsageKindService(client, informer) - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) - - // WHEN - result, err := svc.ListResources("test") - require.NoError(t, err) - - // THEN - for _, item := range result { - if item.Kind == usageKindA.Name { - require.Equal(t, len(item.Resources), 2) - require.Equal(t, item.Resources[0].Name, "test-A") - require.Equal(t, item.Resources[1].Name, "test-C") - } - if item.Kind == usageKindB.Name { - require.Equal(t, len(item.Resources), 2) - require.Equal(t, item.Resources[0].Name, "test-A") - require.Equal(t, item.Resources[1].Name, "test-C") - } - } - }) -} - -func newUnstructured(apiVersion, kind, namespace, name string, ownerRefs []interface{}) *unstructured.Unstructured { - obj := &unstructured.Unstructured{ - Object: map[string]interface{}{ - "apiVersion": apiVersion, - "kind": kind, - "metadata": map[string]interface{}{ - "namespace": namespace, - "name": name, - "ownerReferences": ownerRefs, - }, - }, - } - return obj -} - -func newSbuFakeInformer(dynamic dynamic.Interface) cache.SharedIndexInformer { - return dynamicinformer.NewDynamicSharedInformerFactory(dynamic, 10).ForResource(bindingUsageGVR).Informer() -} - -func newUkFakeInformer(dynamic dynamic.Interface) cache.SharedIndexInformer { - return dynamicinformer.NewDynamicSharedInformerFactory(dynamic, 10).ForResource(usageKindsGVR).Informer() -} - -func newDynamicClient(objects ...runtime.Object) (*dynamicFake.FakeDynamicClient, error) { - scheme := runtime.NewScheme() - err := v1alpha1.AddToScheme(scheme) - if err != nil { - return &dynamicFake.FakeDynamicClient{}, err - } - err = sbu.AddToScheme(scheme) - if err != nil { - return &dynamicFake.FakeDynamicClient{}, err - } - - result := make([]runtime.Object, len(objects)) - for i, obj := range objects { - converted, _ := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - result[i] = &unstructured.Unstructured{Object: converted} - } - return dynamicFake.NewSimpleDynamicClient(scheme, result...), nil -} diff --git a/components/console-backend-service/internal/domain/shared/application.go b/components/console-backend-service/internal/domain/shared/application.go deleted file mode 100644 index 16021e02c4bb..000000000000 --- a/components/console-backend-service/internal/domain/shared/application.go +++ /dev/null @@ -1,14 +0,0 @@ -package shared - -import "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" - -//go:generate mockery -name=ApplicationRetriever -output=automock -outpkg=automock -case=underscore -type ApplicationRetriever interface { - Application() ApplicationLister -} - -//go:generate mockery -name=ApplicationLister -output=automock -outpkg=automock -case=underscore -type ApplicationLister interface { - ListInNamespace(namespace string) ([]*v1alpha1.Application, error) - ListNamespacesFor(appName string) ([]string, error) -} diff --git a/components/console-backend-service/internal/domain/shared/automock/application_lister.go b/components/console-backend-service/internal/domain/shared/automock/application_lister.go deleted file mode 100644 index a684ce56c009..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/application_lister.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/application-operator/pkg/apis/applicationconnector/v1alpha1" -) - -// ApplicationLister is an autogenerated mock type for the ApplicationLister type -type ApplicationLister struct { - mock.Mock -} - -// ListInNamespace provides a mock function with given fields: namespace -func (_m *ApplicationLister) ListInNamespace(namespace string) ([]*v1alpha1.Application, error) { - ret := _m.Called(namespace) - - var r0 []*v1alpha1.Application - if rf, ok := ret.Get(0).(func(string) []*v1alpha1.Application); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.Application) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListNamespacesFor provides a mock function with given fields: appName -func (_m *ApplicationLister) ListNamespacesFor(appName string) ([]string, error) { - ret := _m.Called(appName) - - var r0 []string - if rf, ok := ret.Get(0).(func(string) []string); ok { - r0 = rf(appName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(appName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/application_retriever.go b/components/console-backend-service/internal/domain/shared/automock/application_retriever.go deleted file mode 100644 index 619fd5c688d7..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/application_retriever.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - shared "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - mock "github.com/stretchr/testify/mock" -) - -// ApplicationRetriever is an autogenerated mock type for the ApplicationRetriever type -type ApplicationRetriever struct { - mock.Mock -} - -// Application provides a mock function with given fields: -func (_m *ApplicationRetriever) Application() shared.ApplicationLister { - ret := _m.Called() - - var r0 shared.ApplicationLister - if rf, ok := ret.Get(0).(func() shared.ApplicationLister); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.ApplicationLister) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/asset_getter.go b/components/console-backend-service/internal/domain/shared/automock/asset_getter.go deleted file mode 100644 index e252b46856ce..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/asset_getter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// AssetGetter is an autogenerated mock type for the AssetGetter type -type AssetGetter struct { - mock.Mock -} - -// ListForAssetGroupByType provides a mock function with given fields: namespace, assetGroupName, types -func (_m *AssetGetter) ListForAssetGroupByType(namespace string, assetGroupName string, types []string) ([]*v1beta1.Asset, error) { - ret := _m.Called(namespace, assetGroupName, types) - - var r0 []*v1beta1.Asset - if rf, ok := ret.Get(0).(func(string, string, []string) []*v1beta1.Asset); ok { - r0 = rf(namespace, assetGroupName, types) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, []string) error); ok { - r1 = rf(namespace, assetGroupName, types) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/asset_group_getter.go b/components/console-backend-service/internal/domain/shared/automock/asset_group_getter.go deleted file mode 100644 index 39f7809bc7ee..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/asset_group_getter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// AssetGroupGetter is an autogenerated mock type for the AssetGroupGetter type -type AssetGroupGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: namespace, name -func (_m *AssetGroupGetter) Find(namespace string, name string) (*v1beta1.AssetGroup, error) { - ret := _m.Called(namespace, name) - - var r0 *v1beta1.AssetGroup - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.AssetGroup); ok { - r0 = rf(namespace, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.AssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(namespace, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/cluster_asset_getter.go b/components/console-backend-service/internal/domain/shared/automock/cluster_asset_getter.go deleted file mode 100644 index 8052aecf1826..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/cluster_asset_getter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// ClusterAssetGetter is an autogenerated mock type for the ClusterAssetGetter type -type ClusterAssetGetter struct { - mock.Mock -} - -// ListForClusterAssetGroupByType provides a mock function with given fields: assetGroupName, types -func (_m *ClusterAssetGetter) ListForClusterAssetGroupByType(assetGroupName string, types []string) ([]*v1beta1.ClusterAsset, error) { - ret := _m.Called(assetGroupName, types) - - var r0 []*v1beta1.ClusterAsset - if rf, ok := ret.Get(0).(func(string, []string) []*v1beta1.ClusterAsset); ok { - r0 = rf(assetGroupName, types) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, []string) error); ok { - r1 = rf(assetGroupName, types) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/cluster_asset_group_getter.go b/components/console-backend-service/internal/domain/shared/automock/cluster_asset_group_getter.go deleted file mode 100644 index 98b2a3507c2c..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/cluster_asset_group_getter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// ClusterAssetGroupGetter is an autogenerated mock type for the ClusterAssetGroupGetter type -type ClusterAssetGroupGetter struct { - mock.Mock -} - -// Find provides a mock function with given fields: name -func (_m *ClusterAssetGroupGetter) Find(name string) (*v1beta1.ClusterAssetGroup, error) { - ret := _m.Called(name) - - var r0 *v1beta1.ClusterAssetGroup - if rf, ok := ret.Get(0).(func(string) *v1beta1.ClusterAssetGroup); ok { - r0 = rf(name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/gql_asset_converter.go b/components/console-backend-service/internal/domain/shared/automock/gql_asset_converter.go deleted file mode 100644 index 0ce08c977063..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/gql_asset_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// GqlAssetConverter is an autogenerated mock type for the GqlAssetConverter type -type GqlAssetConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *GqlAssetConverter) ToGQL(item *v1beta1.Asset) (*gqlschema.Asset, error) { - ret := _m.Called(item) - - var r0 *gqlschema.Asset - if rf, ok := ret.Get(0).(func(*v1beta1.Asset) *gqlschema.Asset); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.Asset) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *GqlAssetConverter) ToGQLs(in []*v1beta1.Asset) ([]*gqlschema.Asset, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.Asset - if rf, ok := ret.Get(0).(func([]*v1beta1.Asset) []*gqlschema.Asset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.Asset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.Asset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/gql_asset_group_converter.go b/components/console-backend-service/internal/domain/shared/automock/gql_asset_group_converter.go deleted file mode 100644 index 61c30d592b9d..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/gql_asset_group_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// GqlAssetGroupConverter is an autogenerated mock type for the GqlAssetGroupConverter type -type GqlAssetGroupConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *GqlAssetGroupConverter) ToGQL(item *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) { - ret := _m.Called(item) - - var r0 *gqlschema.AssetGroup - if rf, ok := ret.Get(0).(func(*v1beta1.AssetGroup) *gqlschema.AssetGroup); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.AssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.AssetGroup) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *GqlAssetGroupConverter) ToGQLs(in []*v1beta1.AssetGroup) ([]gqlschema.AssetGroup, error) { - ret := _m.Called(in) - - var r0 []gqlschema.AssetGroup - if rf, ok := ret.Get(0).(func([]*v1beta1.AssetGroup) []gqlschema.AssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]gqlschema.AssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.AssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/gql_cluster_asset_converter.go b/components/console-backend-service/internal/domain/shared/automock/gql_cluster_asset_converter.go deleted file mode 100644 index 9176f87bf9ab..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/gql_cluster_asset_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// GqlClusterAssetConverter is an autogenerated mock type for the GqlClusterAssetConverter type -type GqlClusterAssetConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *GqlClusterAssetConverter) ToGQL(item *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) { - ret := _m.Called(item) - - var r0 *gqlschema.ClusterAsset - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterAsset) *gqlschema.ClusterAsset); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterAsset) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *GqlClusterAssetConverter) ToGQLs(in []*v1beta1.ClusterAsset) ([]*gqlschema.ClusterAsset, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterAsset - if rf, ok := ret.Get(0).(func([]*v1beta1.ClusterAsset) []*gqlschema.ClusterAsset); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterAsset) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ClusterAsset) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/gql_cluster_asset_group_converter.go b/components/console-backend-service/internal/domain/shared/automock/gql_cluster_asset_group_converter.go deleted file mode 100644 index 45522cc9a09d..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/gql_cluster_asset_group_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -// GqlClusterAssetGroupConverter is an autogenerated mock type for the GqlClusterAssetGroupConverter type -type GqlClusterAssetGroupConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *GqlClusterAssetGroupConverter) ToGQL(item *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) { - ret := _m.Called(item) - - var r0 *gqlschema.ClusterAssetGroup - if rf, ok := ret.Get(0).(func(*v1beta1.ClusterAssetGroup) *gqlschema.ClusterAssetGroup); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1beta1.ClusterAssetGroup) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *GqlClusterAssetGroupConverter) ToGQLs(in []*v1beta1.ClusterAssetGroup) ([]*gqlschema.ClusterAssetGroup, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterAssetGroup - if rf, ok := ret.Get(0).(func([]*v1beta1.ClusterAssetGroup) []*gqlschema.ClusterAssetGroup); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterAssetGroup) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1beta1.ClusterAssetGroup) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/gql_service_binding_usage_converter.go b/components/console-backend-service/internal/domain/shared/automock/gql_service_binding_usage_converter.go deleted file mode 100644 index 6fc32f43a868..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/gql_service_binding_usage_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// GqlServiceBindingUsageConverter is an autogenerated mock type for the GqlServiceBindingUsageConverter type -type GqlServiceBindingUsageConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: item -func (_m *GqlServiceBindingUsageConverter) ToGQL(item *v1alpha1.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) { - ret := _m.Called(item) - - var r0 *gqlschema.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(*v1alpha1.ServiceBindingUsage) *gqlschema.ServiceBindingUsage); ok { - r0 = rf(item) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.ServiceBindingUsage) error); ok { - r1 = rf(item) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *GqlServiceBindingUsageConverter) ToGQLs(in []*v1alpha1.ServiceBindingUsage) ([]*gqlschema.ServiceBindingUsage, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ServiceBindingUsage - if rf, ok := ret.Get(0).(func([]*v1alpha1.ServiceBindingUsage) []*gqlschema.ServiceBindingUsage); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1alpha1.ServiceBindingUsage) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/rafter_retriever.go b/components/console-backend-service/internal/domain/shared/automock/rafter_retriever.go deleted file mode 100644 index 344708ec800e..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/rafter_retriever.go +++ /dev/null @@ -1,157 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - shared "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - mock "github.com/stretchr/testify/mock" -) - -// RafterRetriever is an autogenerated mock type for the RafterRetriever type -type RafterRetriever struct { - mock.Mock -} - -// Asset provides a mock function with given fields: -func (_m *RafterRetriever) Asset() shared.AssetGetter { - ret := _m.Called() - - var r0 shared.AssetGetter - if rf, ok := ret.Get(0).(func() shared.AssetGetter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.AssetGetter) - } - } - - return r0 -} - -// AssetConverter provides a mock function with given fields: -func (_m *RafterRetriever) AssetConverter() shared.GqlAssetConverter { - ret := _m.Called() - - var r0 shared.GqlAssetConverter - if rf, ok := ret.Get(0).(func() shared.GqlAssetConverter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.GqlAssetConverter) - } - } - - return r0 -} - -// AssetGroup provides a mock function with given fields: -func (_m *RafterRetriever) AssetGroup() shared.AssetGroupGetter { - ret := _m.Called() - - var r0 shared.AssetGroupGetter - if rf, ok := ret.Get(0).(func() shared.AssetGroupGetter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.AssetGroupGetter) - } - } - - return r0 -} - -// AssetGroupConverter provides a mock function with given fields: -func (_m *RafterRetriever) AssetGroupConverter() shared.GqlAssetGroupConverter { - ret := _m.Called() - - var r0 shared.GqlAssetGroupConverter - if rf, ok := ret.Get(0).(func() shared.GqlAssetGroupConverter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.GqlAssetGroupConverter) - } - } - - return r0 -} - -// ClusterAsset provides a mock function with given fields: -func (_m *RafterRetriever) ClusterAsset() shared.ClusterAssetGetter { - ret := _m.Called() - - var r0 shared.ClusterAssetGetter - if rf, ok := ret.Get(0).(func() shared.ClusterAssetGetter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.ClusterAssetGetter) - } - } - - return r0 -} - -// ClusterAssetConverter provides a mock function with given fields: -func (_m *RafterRetriever) ClusterAssetConverter() shared.GqlClusterAssetConverter { - ret := _m.Called() - - var r0 shared.GqlClusterAssetConverter - if rf, ok := ret.Get(0).(func() shared.GqlClusterAssetConverter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.GqlClusterAssetConverter) - } - } - - return r0 -} - -// ClusterAssetGroup provides a mock function with given fields: -func (_m *RafterRetriever) ClusterAssetGroup() shared.ClusterAssetGroupGetter { - ret := _m.Called() - - var r0 shared.ClusterAssetGroupGetter - if rf, ok := ret.Get(0).(func() shared.ClusterAssetGroupGetter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.ClusterAssetGroupGetter) - } - } - - return r0 -} - -// ClusterAssetGroupConverter provides a mock function with given fields: -func (_m *RafterRetriever) ClusterAssetGroupConverter() shared.GqlClusterAssetGroupConverter { - ret := _m.Called() - - var r0 shared.GqlClusterAssetGroupConverter - if rf, ok := ret.Get(0).(func() shared.GqlClusterAssetGroupConverter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.GqlClusterAssetGroupConverter) - } - } - - return r0 -} - -// Specification provides a mock function with given fields: -func (_m *RafterRetriever) Specification() shared.SpecificationGetter { - ret := _m.Called() - - var r0 shared.SpecificationGetter - if rf, ok := ret.Get(0).(func() shared.SpecificationGetter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.SpecificationGetter) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/service_binding_finder_lister.go b/components/console-backend-service/internal/domain/shared/automock/service_binding_finder_lister.go deleted file mode 100644 index 2f2a70cf7e7a..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/service_binding_finder_lister.go +++ /dev/null @@ -1,60 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1beta1 "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -// ServiceBindingFinderLister is an autogenerated mock type for the ServiceBindingFinderLister type -type ServiceBindingFinderLister struct { - mock.Mock -} - -// Find provides a mock function with given fields: ns, name -func (_m *ServiceBindingFinderLister) Find(ns string, name string) (*v1beta1.ServiceBinding, error) { - ret := _m.Called(ns, name) - - var r0 *v1beta1.ServiceBinding - if rf, ok := ret.Get(0).(func(string, string) *v1beta1.ServiceBinding); ok { - r0 = rf(ns, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*v1beta1.ServiceBinding) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(ns, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ListForServiceInstance provides a mock function with given fields: ns, instanceName -func (_m *ServiceBindingFinderLister) ListForServiceInstance(ns string, instanceName string) ([]*v1beta1.ServiceBinding, error) { - ret := _m.Called(ns, instanceName) - - var r0 []*v1beta1.ServiceBinding - if rf, ok := ret.Get(0).(func(string, string) []*v1beta1.ServiceBinding); ok { - r0 = rf(ns, instanceName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1beta1.ServiceBinding) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(ns, instanceName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/service_binding_usage_lister.go b/components/console-backend-service/internal/domain/shared/automock/service_binding_usage_lister.go deleted file mode 100644 index c1268f891441..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/service_binding_usage_lister.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -// ServiceBindingUsageLister is an autogenerated mock type for the ServiceBindingUsageLister type -type ServiceBindingUsageLister struct { - mock.Mock -} - -// DeleteAllByUsageKind provides a mock function with given fields: namespace, kind, resourceName -func (_m *ServiceBindingUsageLister) DeleteAllByUsageKind(namespace string, kind string, resourceName string) error { - ret := _m.Called(namespace, kind, resourceName) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string, string) error); ok { - r0 = rf(namespace, kind, resourceName) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// ListByUsageKind provides a mock function with given fields: ns, kind, resourceName -func (_m *ServiceBindingUsageLister) ListByUsageKind(ns string, kind string, resourceName string) ([]*v1alpha1.ServiceBindingUsage, error) { - ret := _m.Called(ns, kind, resourceName) - - var r0 []*v1alpha1.ServiceBindingUsage - if rf, ok := ret.Get(0).(func(string, string, string) []*v1alpha1.ServiceBindingUsage); ok { - r0 = rf(ns, kind, resourceName) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.ServiceBindingUsage) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string, string) error); ok { - r1 = rf(ns, kind, resourceName) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/service_catalog_addons_retriever.go b/components/console-backend-service/internal/domain/shared/automock/service_catalog_addons_retriever.go deleted file mode 100644 index a21cc9f37f08..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/service_catalog_addons_retriever.go +++ /dev/null @@ -1,45 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - shared "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - mock "github.com/stretchr/testify/mock" -) - -// ServiceCatalogAddonsRetriever is an autogenerated mock type for the ServiceCatalogAddonsRetriever type -type ServiceCatalogAddonsRetriever struct { - mock.Mock -} - -// ServiceBindingUsage provides a mock function with given fields: -func (_m *ServiceCatalogAddonsRetriever) ServiceBindingUsage() shared.ServiceBindingUsageLister { - ret := _m.Called() - - var r0 shared.ServiceBindingUsageLister - if rf, ok := ret.Get(0).(func() shared.ServiceBindingUsageLister); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.ServiceBindingUsageLister) - } - } - - return r0 -} - -// ServiceBindingUsageConverter provides a mock function with given fields: -func (_m *ServiceCatalogAddonsRetriever) ServiceBindingUsageConverter() shared.GqlServiceBindingUsageConverter { - ret := _m.Called() - - var r0 shared.GqlServiceBindingUsageConverter - if rf, ok := ret.Get(0).(func() shared.GqlServiceBindingUsageConverter); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.GqlServiceBindingUsageConverter) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/service_catalog_retriever.go b/components/console-backend-service/internal/domain/shared/automock/service_catalog_retriever.go deleted file mode 100644 index f28432f35f10..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/service_catalog_retriever.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - shared "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/shared" - mock "github.com/stretchr/testify/mock" -) - -// ServiceCatalogRetriever is an autogenerated mock type for the ServiceCatalogRetriever type -type ServiceCatalogRetriever struct { - mock.Mock -} - -// ServiceBinding provides a mock function with given fields: -func (_m *ServiceCatalogRetriever) ServiceBinding() shared.ServiceBindingFinderLister { - ret := _m.Called() - - var r0 shared.ServiceBindingFinderLister - if rf, ok := ret.Get(0).(func() shared.ServiceBindingFinderLister); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(shared.ServiceBindingFinderLister) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/domain/shared/automock/specification_getter.go b/components/console-backend-service/internal/domain/shared/automock/specification_getter.go deleted file mode 100644 index f8513f662cd1..000000000000 --- a/components/console-backend-service/internal/domain/shared/automock/specification_getter.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - spec "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" -) - -// SpecificationGetter is an autogenerated mock type for the SpecificationGetter type -type SpecificationGetter struct { - mock.Mock -} - -// AsyncAPI provides a mock function with given fields: baseURL, name -func (_m *SpecificationGetter) AsyncAPI(baseURL string, name string) (*spec.AsyncAPISpec, error) { - ret := _m.Called(baseURL, name) - - var r0 *spec.AsyncAPISpec - if rf, ok := ret.Get(0).(func(string, string) *spec.AsyncAPISpec); ok { - r0 = rf(baseURL, name) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*spec.AsyncAPISpec) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(baseURL, name) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/shared/rafter.go b/components/console-backend-service/internal/domain/shared/rafter.go deleted file mode 100644 index ca4534c477e1..000000000000 --- a/components/console-backend-service/internal/domain/shared/rafter.go +++ /dev/null @@ -1,69 +0,0 @@ -package shared - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter/spec" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/rafter/pkg/apis/rafter/v1beta1" -) - -//go:generate mockery -name=RafterRetriever -output=automock -outpkg=automock -case=underscore -type RafterRetriever interface { - ClusterAssetGroup() ClusterAssetGroupGetter - AssetGroup() AssetGroupGetter - ClusterAssetGroupConverter() GqlClusterAssetGroupConverter - AssetGroupConverter() GqlAssetGroupConverter - ClusterAsset() ClusterAssetGetter - Asset() AssetGetter - ClusterAssetConverter() GqlClusterAssetConverter - AssetConverter() GqlAssetConverter - Specification() SpecificationGetter -} - -//go:generate mockery -name=ClusterAssetGroupGetter -output=automock -outpkg=automock -case=underscore -type ClusterAssetGroupGetter interface { - Find(name string) (*v1beta1.ClusterAssetGroup, error) -} - -//go:generate mockery -name=AssetGroupGetter -output=automock -outpkg=automock -case=underscore -type AssetGroupGetter interface { - Find(namespace, name string) (*v1beta1.AssetGroup, error) -} - -//go:generate mockery -name=GqlClusterAssetGroupConverter -output=automock -outpkg=automock -case=underscore -type GqlClusterAssetGroupConverter interface { - ToGQL(item *v1beta1.ClusterAssetGroup) (*gqlschema.ClusterAssetGroup, error) - ToGQLs(in []*v1beta1.ClusterAssetGroup) ([]*gqlschema.ClusterAssetGroup, error) -} - -//go:generate mockery -name=GqlAssetGroupConverter -output=automock -outpkg=automock -case=underscore -type GqlAssetGroupConverter interface { - ToGQL(item *v1beta1.AssetGroup) (*gqlschema.AssetGroup, error) - ToGQLs(in []*v1beta1.AssetGroup) ([]gqlschema.AssetGroup, error) -} - -//go:generate mockery -name=ClusterAssetGetter -output=automock -outpkg=automock -case=underscore -type ClusterAssetGetter interface { - ListForClusterAssetGroupByType(assetGroupName string, types []string) ([]*v1beta1.ClusterAsset, error) -} - -//go:generate mockery -name=AssetGetter -output=automock -outpkg=automock -case=underscore -type AssetGetter interface { - ListForAssetGroupByType(namespace, assetGroupName string, types []string) ([]*v1beta1.Asset, error) -} - -//go:generate mockery -name=GqlClusterAssetConverter -output=automock -outpkg=automock -case=underscore -type GqlClusterAssetConverter interface { - ToGQL(item *v1beta1.ClusterAsset) (*gqlschema.ClusterAsset, error) - ToGQLs(in []*v1beta1.ClusterAsset) ([]*gqlschema.ClusterAsset, error) -} - -//go:generate mockery -name=GqlAssetConverter -output=automock -outpkg=automock -case=underscore -type GqlAssetConverter interface { - ToGQL(item *v1beta1.Asset) (*gqlschema.Asset, error) - ToGQLs(in []*v1beta1.Asset) ([]*gqlschema.Asset, error) -} - -//go:generate mockery -name=SpecificationGetter -output=automock -outpkg=automock -case=underscore -type SpecificationGetter interface { - AsyncAPI(baseURL, name string) (*spec.AsyncAPISpec, error) -} diff --git a/components/console-backend-service/internal/domain/shared/servicecatalog.go b/components/console-backend-service/internal/domain/shared/servicecatalog.go deleted file mode 100644 index 9d7c08d19fa7..000000000000 --- a/components/console-backend-service/internal/domain/shared/servicecatalog.go +++ /dev/null @@ -1,16 +0,0 @@ -package shared - -import ( - bindingApi "github.com/kubernetes-sigs/service-catalog/pkg/apis/servicecatalog/v1beta1" -) - -//go:generate mockery -name=ServiceCatalogRetriever -output=automock -outpkg=automock -case=underscore -type ServiceCatalogRetriever interface { - ServiceBinding() ServiceBindingFinderLister -} - -//go:generate mockery -name=ServiceBindingFinderLister -output=automock -outpkg=automock -case=underscore -type ServiceBindingFinderLister interface { - Find(ns string, name string) (*bindingApi.ServiceBinding, error) - ListForServiceInstance(ns string, instanceName string) ([]*bindingApi.ServiceBinding, error) -} diff --git a/components/console-backend-service/internal/domain/shared/servicecatalogaddons.go b/components/console-backend-service/internal/domain/shared/servicecatalogaddons.go deleted file mode 100644 index 02e37f101602..000000000000 --- a/components/console-backend-service/internal/domain/shared/servicecatalogaddons.go +++ /dev/null @@ -1,24 +0,0 @@ -package shared - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - usageApi "github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1" -) - -//go:generate mockery -name=ServiceCatalogAddonsRetriever -output=automock -outpkg=automock -case=underscore -type ServiceCatalogAddonsRetriever interface { - ServiceBindingUsage() ServiceBindingUsageLister - ServiceBindingUsageConverter() GqlServiceBindingUsageConverter -} - -//go:generate mockery -name=ServiceBindingUsageLister -output=automock -outpkg=automock -case=underscore -type ServiceBindingUsageLister interface { - ListByUsageKind(ns, kind, resourceName string) ([]*usageApi.ServiceBindingUsage, error) - DeleteAllByUsageKind(namespace, kind, resourceName string) error -} - -//go:generate mockery -name=GqlServiceBindingUsageConverter -output=automock -outpkg=automock -case=underscore -type GqlServiceBindingUsageConverter interface { - ToGQL(item *usageApi.ServiceBindingUsage) (*gqlschema.ServiceBindingUsage, error) - ToGQLs(in []*usageApi.ServiceBindingUsage) ([]*gqlschema.ServiceBindingUsage, error) -} diff --git a/components/console-backend-service/internal/domain/ui/automock/backend_module_lister.go b/components/console-backend-service/internal/domain/ui/automock/backend_module_lister.go deleted file mode 100644 index 06ad67e7a585..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/backend_module_lister.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" -) - -// backendModuleLister is an autogenerated mock type for the backendModuleLister type -type backendModuleLister struct { - mock.Mock -} - -// List provides a mock function with given fields: -func (_m *backendModuleLister) List() ([]*v1alpha1.BackendModule, error) { - ret := _m.Called() - - var r0 []*v1alpha1.BackendModule - if rf, ok := ret.Get(0).(func() []*v1alpha1.BackendModule); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.BackendModule) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/ui/automock/cluster_micro_frontend_lister.go b/components/console-backend-service/internal/domain/ui/automock/cluster_micro_frontend_lister.go deleted file mode 100644 index 4d56779e2bc9..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/cluster_micro_frontend_lister.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" -) - -// clusterMicroFrontendLister is an autogenerated mock type for the clusterMicroFrontendLister type -type clusterMicroFrontendLister struct { - mock.Mock -} - -// List provides a mock function with given fields: -func (_m *clusterMicroFrontendLister) List() ([]*v1alpha1.ClusterMicroFrontend, error) { - ret := _m.Called() - - var r0 []*v1alpha1.ClusterMicroFrontend - if rf, ok := ret.Get(0).(func() []*v1alpha1.ClusterMicroFrontend); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.ClusterMicroFrontend) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/ui/automock/export.go b/components/console-backend-service/internal/domain/ui/automock/export.go deleted file mode 100644 index 986889f76689..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/export.go +++ /dev/null @@ -1,25 +0,0 @@ -package automock - -func NewBackendModuleConverter() *gqlBackendModuleConverter { - return new(gqlBackendModuleConverter) -} - -func NewBackendModuleService() *backendModuleLister { - return new(backendModuleLister) -} - -func NewMicroFrontendConverter() *gqlMicroFrontendConverter { - return new(gqlMicroFrontendConverter) -} - -func NewMicroFrontendService() *microFrontendLister { - return new(microFrontendLister) -} - -func NewClusterMicroFrontendConverter() *gqlClusterMicroFrontendConverter { - return new(gqlClusterMicroFrontendConverter) -} - -func NewClusterMicroFrontendService() *clusterMicroFrontendLister { - return new(clusterMicroFrontendLister) -} diff --git a/components/console-backend-service/internal/domain/ui/automock/gql_backend_module_converter.go b/components/console-backend-service/internal/domain/ui/automock/gql_backend_module_converter.go deleted file mode 100644 index 56ab4755af9e..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/gql_backend_module_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" -) - -// gqlBackendModuleConverter is an autogenerated mock type for the gqlBackendModuleConverter type -type gqlBackendModuleConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlBackendModuleConverter) ToGQL(in *v1alpha1.BackendModule) (*gqlschema.BackendModule, error) { - ret := _m.Called(in) - - var r0 *gqlschema.BackendModule - if rf, ok := ret.Get(0).(func(*v1alpha1.BackendModule) *gqlschema.BackendModule); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.BackendModule) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.BackendModule) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlBackendModuleConverter) ToGQLs(in []*v1alpha1.BackendModule) ([]*gqlschema.BackendModule, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.BackendModule - if rf, ok := ret.Get(0).(func([]*v1alpha1.BackendModule) []*gqlschema.BackendModule); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.BackendModule) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1alpha1.BackendModule) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/ui/automock/gql_cluster_micro_frontend_converter.go b/components/console-backend-service/internal/domain/ui/automock/gql_cluster_micro_frontend_converter.go deleted file mode 100644 index 84633c60bf47..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/gql_cluster_micro_frontend_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" -) - -// gqlClusterMicroFrontendConverter is an autogenerated mock type for the gqlClusterMicroFrontendConverter type -type gqlClusterMicroFrontendConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlClusterMicroFrontendConverter) ToGQL(in *v1alpha1.ClusterMicroFrontend) (*gqlschema.ClusterMicroFrontend, error) { - ret := _m.Called(in) - - var r0 *gqlschema.ClusterMicroFrontend - if rf, ok := ret.Get(0).(func(*v1alpha1.ClusterMicroFrontend) *gqlschema.ClusterMicroFrontend); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.ClusterMicroFrontend) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.ClusterMicroFrontend) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlClusterMicroFrontendConverter) ToGQLs(in []*v1alpha1.ClusterMicroFrontend) ([]*gqlschema.ClusterMicroFrontend, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.ClusterMicroFrontend - if rf, ok := ret.Get(0).(func([]*v1alpha1.ClusterMicroFrontend) []*gqlschema.ClusterMicroFrontend); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.ClusterMicroFrontend) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1alpha1.ClusterMicroFrontend) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/ui/automock/gql_micro_frontend_converter.go b/components/console-backend-service/internal/domain/ui/automock/gql_micro_frontend_converter.go deleted file mode 100644 index 7bb8c4400d1d..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/gql_micro_frontend_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" -) - -// gqlMicroFrontendConverter is an autogenerated mock type for the gqlMicroFrontendConverter type -type gqlMicroFrontendConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *gqlMicroFrontendConverter) ToGQL(in *v1alpha1.MicroFrontend) (*gqlschema.MicroFrontend, error) { - ret := _m.Called(in) - - var r0 *gqlschema.MicroFrontend - if rf, ok := ret.Get(0).(func(*v1alpha1.MicroFrontend) *gqlschema.MicroFrontend); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.MicroFrontend) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.MicroFrontend) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *gqlMicroFrontendConverter) ToGQLs(in []*v1alpha1.MicroFrontend) ([]*gqlschema.MicroFrontend, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.MicroFrontend - if rf, ok := ret.Get(0).(func([]*v1alpha1.MicroFrontend) []*gqlschema.MicroFrontend); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.MicroFrontend) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]*v1alpha1.MicroFrontend) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/ui/automock/micro_frontend_lister.go b/components/console-backend-service/internal/domain/ui/automock/micro_frontend_lister.go deleted file mode 100644 index eb24974a9e6a..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/micro_frontend_lister.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" -) - -// microFrontendLister is an autogenerated mock type for the microFrontendLister type -type microFrontendLister struct { - mock.Mock -} - -// List provides a mock function with given fields: namespace -func (_m *microFrontendLister) List(namespace string) ([]*v1alpha1.MicroFrontend, error) { - ret := _m.Called(namespace) - - var r0 []*v1alpha1.MicroFrontend - if rf, ok := ret.Get(0).(func(string) []*v1alpha1.MicroFrontend); ok { - r0 = rf(namespace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*v1alpha1.MicroFrontend) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(namespace) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/ui/automock/qgl_navigation_node_converter.go b/components/console-backend-service/internal/domain/ui/automock/qgl_navigation_node_converter.go deleted file mode 100644 index e6e80586a360..000000000000 --- a/components/console-backend-service/internal/domain/ui/automock/qgl_navigation_node_converter.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import ( - gqlschema "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - mock "github.com/stretchr/testify/mock" - - v1alpha1 "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" -) - -// qglNavigationNodeConverter is an autogenerated mock type for the qglNavigationNodeConverter type -type qglNavigationNodeConverter struct { - mock.Mock -} - -// ToGQL provides a mock function with given fields: in -func (_m *qglNavigationNodeConverter) ToGQL(in *v1alpha1.NavigationNode) (*gqlschema.NavigationNode, error) { - ret := _m.Called(in) - - var r0 *gqlschema.NavigationNode - if rf, ok := ret.Get(0).(func(*v1alpha1.NavigationNode) *gqlschema.NavigationNode); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gqlschema.NavigationNode) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*v1alpha1.NavigationNode) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// ToGQLs provides a mock function with given fields: in -func (_m *qglNavigationNodeConverter) ToGQLs(in []v1alpha1.NavigationNode) ([]*gqlschema.NavigationNode, error) { - ret := _m.Called(in) - - var r0 []*gqlschema.NavigationNode - if rf, ok := ret.Get(0).(func([]v1alpha1.NavigationNode) []*gqlschema.NavigationNode); ok { - r0 = rf(in) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gqlschema.NavigationNode) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func([]v1alpha1.NavigationNode) error); ok { - r1 = rf(in) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/domain/ui/backendmodule_converter.go b/components/console-backend-service/internal/domain/ui/backendmodule_converter.go deleted file mode 100644 index 8b574be71d1f..000000000000 --- a/components/console-backend-service/internal/domain/ui/backendmodule_converter.go +++ /dev/null @@ -1,35 +0,0 @@ -package ui - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" -) - -type backendModuleConverter struct{} - -func (c *backendModuleConverter) ToGQL(in *v1alpha1.BackendModule) (*gqlschema.BackendModule, error) { - if in == nil { - return nil, nil - } - - module := gqlschema.BackendModule{ - Name: in.Name, - } - - return &module, nil -} - -func (c *backendModuleConverter) ToGQLs(in []*v1alpha1.BackendModule) ([]*gqlschema.BackendModule, error) { - var result []*gqlschema.BackendModule - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/ui/backendmodule_converter_test.go b/components/console-backend-service/internal/domain/ui/backendmodule_converter_test.go deleted file mode 100644 index a9d60c40ac0a..000000000000 --- a/components/console-backend-service/internal/domain/ui/backendmodule_converter_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package ui - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestBackendModuleConverter_ToGQL(t *testing.T) { - t.Run("All properties are given", func(t *testing.T) { - converter := backendModuleConverter{} - name := "test-name" - - item := v1alpha1.BackendModule{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } - expected := gqlschema.BackendModule{ - Name: name, - } - - result, err := converter.ToGQL(&item) - - require.NoError(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := &backendModuleConverter{} - _, err := converter.ToGQL(&v1alpha1.BackendModule{}) - require.NoError(t, err) - }) - - t.Run("Nil", func(t *testing.T) { - converter := &backendModuleConverter{} - item, err := converter.ToGQL(nil) - - require.NoError(t, err) - assert.Nil(t, item) - }) -} - -func TestBackendModuleConverter_ToGQLs(t *testing.T) { - name := "example-name" - module := v1alpha1.BackendModule{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } - - t.Run("Success", func(t *testing.T) { - instances := []*v1alpha1.BackendModule{ - &module, - &module, - } - - converter := backendModuleConverter{} - result, err := converter.ToGQLs(instances) - - require.NoError(t, err) - assert.Len(t, result, 2) - assert.Equal(t, name, result[0].Name) - }) - - t.Run("Empty", func(t *testing.T) { - var instances []*v1alpha1.BackendModule - - converter := backendModuleConverter{} - result, err := converter.ToGQLs(instances) - - require.NoError(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - instances := []*v1alpha1.BackendModule{ - nil, - &module, - nil, - } - - converter := backendModuleConverter{} - result, err := converter.ToGQLs(instances) - - require.NoError(t, err) - assert.Len(t, result, 1) - assert.Equal(t, name, result[0].Name) - }) -} diff --git a/components/console-backend-service/internal/domain/ui/backendmodule_resolver.go b/components/console-backend-service/internal/domain/ui/backendmodule_resolver.go deleted file mode 100644 index d63dd7b0ba33..000000000000 --- a/components/console-backend-service/internal/domain/ui/backendmodule_resolver.go +++ /dev/null @@ -1,55 +0,0 @@ -package ui - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "github.com/pkg/errors" -) - -//go:generate mockery -name=backendModuleLister -output=automock -outpkg=automock -case=underscore -type backendModuleLister interface { - List() ([]*v1alpha1.BackendModule, error) -} - -//go:generate mockery -name=gqlBackendModuleConverter -output=automock -outpkg=automock -case=underscore -type gqlBackendModuleConverter interface { - ToGQL(in *v1alpha1.BackendModule) (*gqlschema.BackendModule, error) - ToGQLs(in []*v1alpha1.BackendModule) ([]*gqlschema.BackendModule, error) -} - -type backendModuleResolver struct { - backendModuleLister backendModuleLister - backendModuleConverter gqlBackendModuleConverter -} - -func newBackendModuleResolver(backendModuleLister backendModuleLister) *backendModuleResolver { - return &backendModuleResolver{ - backendModuleLister: backendModuleLister, - backendModuleConverter: &backendModuleConverter{}, - } -} - -func (r *backendModuleResolver) BackendModulesQuery(ctx context.Context) ([]*gqlschema.BackendModule, error) { - var items []*v1alpha1.BackendModule - var err error - - items, err = r.backendModuleLister.List() - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.BackendModules)) - return nil, gqlerror.New(err, pretty.BackendModules) - } - - serviceInstances, err := r.backendModuleConverter.ToGQLs(items) - if err != nil { - glog.Error(errors.Wrapf(err, "while converting %s", pretty.BackendModules)) - return nil, gqlerror.New(err, pretty.BackendModules) - } - - return serviceInstances, nil -} diff --git a/components/console-backend-service/internal/domain/ui/backendmodule_resolver_test.go b/components/console-backend-service/internal/domain/ui/backendmodule_resolver_test.go deleted file mode 100644 index 8af1988a9377..000000000000 --- a/components/console-backend-service/internal/domain/ui/backendmodule_resolver_test.go +++ /dev/null @@ -1,84 +0,0 @@ -package ui_test - -import ( - "errors" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestBackendModuleResolver_BackendModulesQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - resource := - &v1alpha1.BackendModule{ - ObjectMeta: v1.ObjectMeta{ - Name: "Test", - }, - } - resources := []*v1alpha1.BackendModule{ - resource, resource, - } - expected := []*gqlschema.BackendModule{ - { - Name: "Test", - }, - { - Name: "Test", - }, - } - - resourceGetter := automock.NewBackendModuleService() - resourceGetter.On("List").Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewBackendModuleConverter() - converter.On("ToGQLs", resources).Return(expected, nil) - defer converter.AssertExpectations(t) - - resolver := ui.NewBackendModuleResolver(resourceGetter) - resolver.SetInstanceConverter(converter) - - result, err := resolver.BackendModulesQuery(nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var resources []*v1alpha1.BackendModule - - resourceGetter := automock.NewBackendModuleService() - resourceGetter.On("List").Return(resources, nil).Once() - defer resourceGetter.AssertExpectations(t) - resolver := ui.NewBackendModuleResolver(resourceGetter) - var expected []*gqlschema.BackendModule - - result, err := resolver.BackendModulesQuery(nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - - var resources []*v1alpha1.BackendModule - - resourceGetter := automock.NewBackendModuleService() - resourceGetter.On("List").Return(resources, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := ui.NewBackendModuleResolver(resourceGetter) - - _, err := resolver.BackendModulesQuery(nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} diff --git a/components/console-backend-service/internal/domain/ui/backendmodule_service.go b/components/console-backend-service/internal/domain/ui/backendmodule_service.go deleted file mode 100644 index d02ebee3d716..000000000000 --- a/components/console-backend-service/internal/domain/ui/backendmodule_service.go +++ /dev/null @@ -1,33 +0,0 @@ -package ui - -import ( - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "k8s.io/client-go/tools/cache" -) - -type backendModuleService struct { - informer cache.SharedIndexInformer -} - -func newBackendModuleService(informer cache.SharedIndexInformer) *backendModuleService { - return &backendModuleService{ - informer: informer, - } -} - -func (svc *backendModuleService) List() ([]*v1alpha1.BackendModule, error) { - items := svc.informer.GetStore().List() - - var backendModules []*v1alpha1.BackendModule - for _, item := range items { - backendModule, ok := item.(*v1alpha1.BackendModule) - if !ok { - return nil, fmt.Errorf("Incorrect item type: %T, should be: *BackendModule", item) - } - backendModules = append(backendModules, backendModule) - } - - return backendModules, nil -} diff --git a/components/console-backend-service/internal/domain/ui/backendmodule_service_test.go b/components/console-backend-service/internal/domain/ui/backendmodule_service_test.go deleted file mode 100644 index 19eebde5df12..000000000000 --- a/components/console-backend-service/internal/domain/ui/backendmodule_service_test.go +++ /dev/null @@ -1,68 +0,0 @@ -package ui_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/fake" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -func TestBackendModuleService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - backendModule1 := fixBackendModule("1") - backendModule2 := fixBackendModule("2") - backendModule3 := fixBackendModule("3") - - backendModuleInformer := fixInformer(backendModule1, backendModule2, backendModule3) - svc := ui.NewBackendModuleService(backendModuleInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, backendModuleInformer) - - instances, err := svc.List() - require.NoError(t, err) - assert.Contains(t, instances, backendModule1) - assert.Contains(t, instances, backendModule2) - assert.Contains(t, instances, backendModule3) - }) - - t.Run("NotFound", func(t *testing.T) { - backendModuleInformer := fixInformer() - - svc := ui.NewBackendModuleService(backendModuleInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, backendModuleInformer) - - var emptyArray []*v1alpha1.BackendModule - instances, err := svc.List() - require.NoError(t, err) - assert.Equal(t, emptyArray, instances) - }) -} - -func fixInformer(objects ...runtime.Object) cache.SharedIndexInformer { - client := fake.NewSimpleClientset(objects...) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - - informer := informerFactory.Ui().V1alpha1().BackendModules().Informer() - - return informer -} - -func fixBackendModule(name string) *v1alpha1.BackendModule { - module := v1alpha1.BackendModule{ - ObjectMeta: v1.ObjectMeta{ - Name: name, - }, - } - - return &module -} diff --git a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_converter.go b/components/console-backend-service/internal/domain/ui/clustermicrofrontend_converter.go deleted file mode 100644 index 6d9401bd420d..000000000000 --- a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_converter.go +++ /dev/null @@ -1,60 +0,0 @@ -package ui - -import ( - uiV1alpha1v "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -//go:generate mockery -name=qglNavigationNodeConverter -output=automock -outpkg=automock -case=underscore -type qglNavigationNodeConverter interface { - ToGQL(in *uiV1alpha1v.NavigationNode) (*gqlschema.NavigationNode, error) - ToGQLs(in []uiV1alpha1v.NavigationNode) ([]*gqlschema.NavigationNode, error) -} - -type clusterMicroFrontendConverter struct { - navigationNodeConverter qglNavigationNodeConverter -} - -func newClusterMicroFrontendConverter() *clusterMicroFrontendConverter { - return &clusterMicroFrontendConverter{ - navigationNodeConverter: &navigationNodeConverter{}, - } -} - -func (c *clusterMicroFrontendConverter) ToGQL(in *uiV1alpha1v.ClusterMicroFrontend) (*gqlschema.ClusterMicroFrontend, error) { - if in == nil { - return nil, nil - } - - navigationNodes, err := c.navigationNodeConverter.ToGQLs(in.Spec.CommonMicroFrontendSpec.NavigationNodes) - if err != nil { - return nil, err - } - - cmf := gqlschema.ClusterMicroFrontend{ - Name: in.Name, - Placement: in.Spec.Placement, - Version: in.Spec.CommonMicroFrontendSpec.Version, - Category: in.Spec.CommonMicroFrontendSpec.Category, - PreloadURL: in.Spec.CommonMicroFrontendSpec.PreloadURL, - ViewBaseURL: in.Spec.CommonMicroFrontendSpec.ViewBaseURL, - NavigationNodes: navigationNodes, - } - - return &cmf, nil -} - -func (c *clusterMicroFrontendConverter) ToGQLs(in []*uiV1alpha1v.ClusterMicroFrontend) ([]*gqlschema.ClusterMicroFrontend, error) { - var result []*gqlschema.ClusterMicroFrontend - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_converter_test.go b/components/console-backend-service/internal/domain/ui/clustermicrofrontend_converter_test.go deleted file mode 100644 index 4d99db00503e..000000000000 --- a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_converter_test.go +++ /dev/null @@ -1,206 +0,0 @@ -package ui - -import ( - "encoding/json" - "testing" - - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func TestClusterMicroFrontendConverter_ToGQL(t *testing.T) { - t.Run("All properties are given", func(t *testing.T) { - converter := newClusterMicroFrontendConverter() - name := "test-name" - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - preloadUrl := "http://test-preloadUrl.com/#preload" - placement := "cluster" - navigationNode := fixNavigationNode(t) - - item := v1alpha1.ClusterMicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: v1alpha1.ClusterMicroFrontendSpec{ - Placement: placement, - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - PreloadURL: preloadUrl, - NavigationNodes: []v1alpha1.NavigationNode{ - navigationNode, - }, - }, - }, - } - - expectedNavigationNode := fixGqlNavigationNode() - - expected := gqlschema.ClusterMicroFrontend{ - Name: name, - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - Placement: placement, - PreloadURL: preloadUrl, - NavigationNodes: []*gqlschema.NavigationNode{ - expectedNavigationNode, - }, - } - - result, err := converter.ToGQL(&item) - - assert.Nil(t, err) - assert.Equal(t, &expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := newClusterMicroFrontendConverter() - item, err := converter.ToGQL(&v1alpha1.ClusterMicroFrontend{}) - - assert.Nil(t, err) - assert.Empty(t, item) - }) - - t.Run("Nil", func(t *testing.T) { - converter := newClusterMicroFrontendConverter() - item, err := converter.ToGQL(nil) - - assert.Nil(t, err) - assert.Nil(t, item) - }) -} - -func TestClusterMicroFrontendConverter_ToGQLs(t *testing.T) { - name := "test-name" - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - placement := "cluster" - navigationNode := fixNavigationNode(t) - item := v1alpha1.ClusterMicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: v1alpha1.ClusterMicroFrontendSpec{ - Placement: placement, - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: []v1alpha1.NavigationNode{ - navigationNode, - }, - }, - }, - } - - expectedNavigationNode := fixGqlNavigationNode() - expected := &gqlschema.ClusterMicroFrontend{ - Name: name, - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - Placement: placement, - NavigationNodes: []*gqlschema.NavigationNode{ - expectedNavigationNode, - }, - } - - t.Run("Success", func(t *testing.T) { - clusterMicroFrontends := []*v1alpha1.ClusterMicroFrontend{ - &item, - &item, - } - - converter := newClusterMicroFrontendConverter() - result, err := converter.ToGQLs(clusterMicroFrontends) - - assert.Nil(t, err) - assert.Len(t, result, 2) - assert.Equal(t, expected, result[0]) - }) - - t.Run("Empty", func(t *testing.T) { - var clusterMicroFrontends []*v1alpha1.ClusterMicroFrontend - - converter := newClusterMicroFrontendConverter() - result, err := converter.ToGQLs(clusterMicroFrontends) - - assert.Nil(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - clusterMicroFrontends := []*v1alpha1.ClusterMicroFrontend{ - nil, - &item, - nil, - } - - converter := newClusterMicroFrontendConverter() - result, err := converter.ToGQLs(clusterMicroFrontends) - - assert.Nil(t, err) - assert.Len(t, result, 1) - assert.Equal(t, expected, result[0]) - }) -} - -func fixSettings() ([]byte, error) { - settings := map[string]interface{}{ - "readOnly": true, - } - return json.Marshal(settings) -} - -func fixNavigationNode(t *testing.T) v1alpha1.NavigationNode { - settings, err := fixSettings() - assert.Nil(t, err) - return v1alpha1.NavigationNode{ - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: false, - Order: 2, - Settings: &runtime.RawExtension{ - Raw: settings, - }, - ExternalLink: "link", - RequiredPermissions: []v1alpha1.RequiredPermission{ - v1alpha1.RequiredPermission{ - Verbs: []string{"foo", "bar"}, - Resource: "resource", - APIGroup: "apigroup", - }, - }, - } -} - -func fixGqlNavigationNode() *gqlschema.NavigationNode { - externalLinkValue := "link" - return &gqlschema.NavigationNode{ - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: false, - Order: 2, - Settings: gqlschema.Settings{ - "readOnly": true, - }, - ExternalLink: &externalLinkValue, - RequiredPermissions: []*gqlschema.RequiredPermission{ - { - Verbs: []string{"foo", "bar"}, - Resource: "resource", - APIGroup: "apigroup", - }, - }, - } -} diff --git a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_resolver.go b/components/console-backend-service/internal/domain/ui/clustermicrofrontend_resolver.go deleted file mode 100644 index cef84389644f..000000000000 --- a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_resolver.go +++ /dev/null @@ -1,51 +0,0 @@ -package ui - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -//go:generate mockery -name=clusterMicroFrontendLister -output=automock -outpkg=automock -case=underscore -type clusterMicroFrontendLister interface { - List() ([]*v1alpha1.ClusterMicroFrontend, error) -} - -//go:generate mockery -name=gqlClusterMicroFrontendConverter -output=automock -outpkg=automock -case=underscore -type gqlClusterMicroFrontendConverter interface { - ToGQL(in *v1alpha1.ClusterMicroFrontend) (*gqlschema.ClusterMicroFrontend, error) - ToGQLs(in []*v1alpha1.ClusterMicroFrontend) ([]*gqlschema.ClusterMicroFrontend, error) -} - -type clusterMicroFrontendResolver struct { - clusterMicroFrontendLister clusterMicroFrontendLister - clusterMicroFrontendConverter gqlClusterMicroFrontendConverter -} - -func newClusterMicroFrontendResolver(clusterMicroFrontendLister clusterMicroFrontendLister) *clusterMicroFrontendResolver { - return &clusterMicroFrontendResolver{ - clusterMicroFrontendLister: clusterMicroFrontendLister, - clusterMicroFrontendConverter: newClusterMicroFrontendConverter(), - } -} - -func (r *clusterMicroFrontendResolver) ClusterMicroFrontendsQuery(ctx context.Context) ([]*gqlschema.ClusterMicroFrontend, error) { - items, err := r.clusterMicroFrontendLister.List() - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.ClusterMicroFrontends)) - return nil, gqlerror.New(err, pretty.ClusterMicroFrontends) - } - - cmfs, err := r.clusterMicroFrontendConverter.ToGQLs(items) - if err != nil { - return nil, err - } - - return cmfs, nil -} diff --git a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_resolver_test.go b/components/console-backend-service/internal/domain/ui/clustermicrofrontend_resolver_test.go deleted file mode 100644 index 51d82f7f26b9..000000000000 --- a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_resolver_test.go +++ /dev/null @@ -1,121 +0,0 @@ -package ui_test - -import ( - "errors" - "testing" - - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestClusterMicroFrontendResolver_ClusterMicroFrontendsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "test-name" - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - preloadUrl := "http://test-preloadUrl.com/#preload" - placement := "cluster" - - item := &v1alpha1.ClusterMicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: v1alpha1.ClusterMicroFrontendSpec{ - Placement: placement, - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - PreloadURL: preloadUrl, - NavigationNodes: []v1alpha1.NavigationNode{ - v1alpha1.NavigationNode{ - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: true, - }, - }, - }, - }, - } - - items := []*v1alpha1.ClusterMicroFrontend{ - item, item, - } - - expectedItem := &gqlschema.ClusterMicroFrontend{ - Name: name, - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - PreloadURL: preloadUrl, - Placement: placement, - NavigationNodes: []*gqlschema.NavigationNode{ - { - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: true, - }, - }, - } - - expectedItems := []*gqlschema.ClusterMicroFrontend{ - expectedItem, expectedItem, - } - - resourceGetter := automock.NewClusterMicroFrontendService() - resourceGetter.On("List").Return(items, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewClusterMicroFrontendConverter() - converter.On("ToGQLs", items).Return(expectedItems, nil) - defer converter.AssertExpectations(t) - - resolver := ui.NewClusterMicroFrontendResolver(resourceGetter) - resolver.SetClusterMicroFrontendConverter(converter) - - result, err := resolver.ClusterMicroFrontendsQuery(nil) - - require.NoError(t, err) - assert.Equal(t, expectedItems, result) - }) - - t.Run("NotFound", func(t *testing.T) { - var items []*v1alpha1.ClusterMicroFrontend - - resourceGetter := automock.NewClusterMicroFrontendService() - resourceGetter.On("List").Return(items, nil).Once() - defer resourceGetter.AssertExpectations(t) - resolver := ui.NewClusterMicroFrontendResolver(resourceGetter) - var expected []*gqlschema.ClusterMicroFrontend - - result, err := resolver.ClusterMicroFrontendsQuery(nil) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - expected := errors.New("Test") - - var items []*v1alpha1.ClusterMicroFrontend - - resourceGetter := automock.NewClusterMicroFrontendService() - resourceGetter.On("List").Return(items, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := ui.NewClusterMicroFrontendResolver(resourceGetter) - - _, err := resolver.ClusterMicroFrontendsQuery(nil) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} diff --git a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_service.go b/components/console-backend-service/internal/domain/ui/clustermicrofrontend_service.go deleted file mode 100644 index 2692200d123c..000000000000 --- a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_service.go +++ /dev/null @@ -1,38 +0,0 @@ -package ui - -import ( - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/extractor" - res "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "k8s.io/client-go/tools/cache" -) - -type clusterMicroFrontendService struct { - informer cache.SharedIndexInformer - extractor extractor.CMFUnstructuredExtractor -} - -func newClusterMicroFrontendService(informer cache.SharedIndexInformer) *clusterMicroFrontendService { - return &clusterMicroFrontendService{ - informer: informer, - } -} - -func (svc *clusterMicroFrontendService) List() ([]*v1alpha1.ClusterMicroFrontend, error) { - items := svc.informer.GetStore().List() - - var clusterMicroFrontends []*v1alpha1.ClusterMicroFrontend - for _, item := range items { - clusterMicroFrontend, err := res.ToUnstructured(item) - if err != nil { - return nil, err - } - formattedCMF, err := svc.extractor.FromUnstructured(clusterMicroFrontend) - if err != nil { - return nil, err - } - clusterMicroFrontends = append(clusterMicroFrontends, formattedCMF) - } - - return clusterMicroFrontends, nil -} diff --git a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_service_test.go b/components/console-backend-service/internal/domain/ui/clustermicrofrontend_service_test.go deleted file mode 100644 index 2d008286f9a9..000000000000 --- a/components/console-backend-service/internal/domain/ui/clustermicrofrontend_service_test.go +++ /dev/null @@ -1,92 +0,0 @@ -package ui_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/client/clientset/versioned/fake" - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/client/informers/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -func TestClusterMicroFrontendService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - ClusterMicroFrontend1 := fixClusterMicroFrontend("1") - ClusterMicroFrontend2 := fixClusterMicroFrontend("2") - ClusterMicroFrontend3 := fixClusterMicroFrontend("3") - - ClusterMicroFrontendInformer := fixCMFInformer(ClusterMicroFrontend1, ClusterMicroFrontend2, ClusterMicroFrontend3) - svc := ui.NewClusterMicroFrontendService(ClusterMicroFrontendInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, ClusterMicroFrontendInformer) - - clustermicroFrontends, err := svc.List() - require.NoError(t, err) - assert.Contains(t, clustermicroFrontends, ClusterMicroFrontend1) - assert.Contains(t, clustermicroFrontends, ClusterMicroFrontend2) - assert.Contains(t, clustermicroFrontends, ClusterMicroFrontend3) - }) - - t.Run("NotFound", func(t *testing.T) { - ClusterMicroFrontendInformer := fixCMFInformer() - - svc := ui.NewClusterMicroFrontendService(ClusterMicroFrontendInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, ClusterMicroFrontendInformer) - - var emptyArray []*v1alpha1.ClusterMicroFrontend - clustermicroFrontends, err := svc.List() - require.NoError(t, err) - assert.Equal(t, emptyArray, clustermicroFrontends) - }) -} - -func fixCMFInformer(objects ...runtime.Object) cache.SharedIndexInformer { - client := fake.NewSimpleClientset(objects...) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - - informer := informerFactory.Ui().V1alpha1().ClusterMicroFrontends().Informer() - - return informer -} - -func fixClusterMicroFrontend(name string) *v1alpha1.ClusterMicroFrontend { - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - preloadUrl := "http://test-preloadUrl.com/#preload" - placement := "cluster" - navigationNodes := []v1alpha1.NavigationNode{ - v1alpha1.NavigationNode{ - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: true, - }, - } - - item := v1alpha1.ClusterMicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: v1alpha1.ClusterMicroFrontendSpec{ - Placement: placement, - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - PreloadURL: preloadUrl, - NavigationNodes: navigationNodes, - }, - }, - } - - return &item -} diff --git a/components/console-backend-service/internal/domain/ui/export_test.go b/components/console-backend-service/internal/domain/ui/export_test.go deleted file mode 100644 index 0be346fd0ab2..000000000000 --- a/components/console-backend-service/internal/domain/ui/export_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package ui - -import "k8s.io/client-go/tools/cache" - -func NewBackendModuleService(informer cache.SharedIndexInformer) *backendModuleService { - return newBackendModuleService(informer) -} - -func NewBackendModuleResolver(backendModuleLister backendModuleLister) *backendModuleResolver { - return newBackendModuleResolver(backendModuleLister) -} - -func (r *backendModuleResolver) SetInstanceConverter(converter gqlBackendModuleConverter) { - r.backendModuleConverter = converter -} - -func NewMicroFrontendService(informer cache.SharedIndexInformer) *microFrontendService { - return newMicroFrontendService(informer) -} - -func NewMicroFrontendResolver(microFrontendLister microFrontendLister) *microFrontendResolver { - return newMicroFrontendResolver(microFrontendLister) -} - -func (r *microFrontendResolver) SetMicroFrontendConverter(converter gqlMicroFrontendConverter) { - r.microFrontendConverter = converter -} - -func NewClusterMicroFrontendService(informer cache.SharedIndexInformer) *clusterMicroFrontendService { - return newClusterMicroFrontendService(informer) -} - -func NewClusterMicroFrontendResolver(clusterMicroFrontendLister clusterMicroFrontendLister) *clusterMicroFrontendResolver { - return newClusterMicroFrontendResolver(clusterMicroFrontendLister) -} - -func (r *clusterMicroFrontendResolver) SetClusterMicroFrontendConverter(converter gqlClusterMicroFrontendConverter) { - r.clusterMicroFrontendConverter = converter -} diff --git a/components/console-backend-service/internal/domain/ui/extractor/microfrontend.go b/components/console-backend-service/internal/domain/ui/extractor/microfrontend.go deleted file mode 100644 index f4e95eb5a975..000000000000 --- a/components/console-backend-service/internal/domain/ui/extractor/microfrontend.go +++ /dev/null @@ -1,89 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/pretty" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -type MFUnstructuredExtractor struct{} - -func (ext MFUnstructuredExtractor) Do(obj interface{}) (*v1alpha1.MicroFrontend, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext MFUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.MicroFrontend, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext MFUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.MicroFrontend, error) { - if obj == nil { - return nil, nil - } - var microFrontend v1alpha1.MicroFrontend - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, µFrontend) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.MicroFrontend, obj.Object) - } - - return µFrontend, nil -} - -type CMFUnstructuredExtractor struct{} - -func (ext CMFUnstructuredExtractor) Do(obj interface{}) (*v1alpha1.ClusterMicroFrontend, error) { - u, err := ext.ToUnstructured(obj) - if err != nil { - return nil, err - } - - return ext.FromUnstructured(u) -} - -func (ext CMFUnstructuredExtractor) ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) { - if obj == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %s %s to unstructured", pretty.ClusterMicroFrontend, obj) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func (ext CMFUnstructuredExtractor) FromUnstructured(obj *unstructured.Unstructured) (*v1alpha1.ClusterMicroFrontend, error) { - if obj == nil { - return nil, nil - } - var clusterMicroFrontend v1alpha1.ClusterMicroFrontend - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, &clusterMicroFrontend) - if err != nil { - return nil, errors.Wrapf(err, "while converting unstructured to resource %s %s", pretty.ClusterMicroFrontend, obj.Object) - } - - return &clusterMicroFrontend, nil -} diff --git a/components/console-backend-service/internal/domain/ui/microfrontend_converter.go b/components/console-backend-service/internal/domain/ui/microfrontend_converter.go deleted file mode 100644 index ac10f09ae239..000000000000 --- a/components/console-backend-service/internal/domain/ui/microfrontend_converter.go +++ /dev/null @@ -1,50 +0,0 @@ -package ui - -import ( - uiV1alpha1v "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" -) - -type microFrontendConverter struct { - navigationNodeConverter qglNavigationNodeConverter -} - -func newMicroFrontendConverter() *microFrontendConverter { - return µFrontendConverter{ - navigationNodeConverter: &navigationNodeConverter{}, - } -} - -func (c *microFrontendConverter) ToGQL(in *uiV1alpha1v.MicroFrontend) (*gqlschema.MicroFrontend, error) { - if in == nil { - return nil, nil - } - - navigationNodes, err := c.navigationNodeConverter.ToGQLs(in.Spec.CommonMicroFrontendSpec.NavigationNodes) - if err != nil { - return nil, err - } - mf := gqlschema.MicroFrontend{ - Name: in.Name, - Version: in.Spec.CommonMicroFrontendSpec.Version, - Category: in.Spec.CommonMicroFrontendSpec.Category, - ViewBaseURL: in.Spec.CommonMicroFrontendSpec.ViewBaseURL, - NavigationNodes: navigationNodes, - } - - return &mf, nil -} - -func (c *microFrontendConverter) ToGQLs(in []*uiV1alpha1v.MicroFrontend) ([]*gqlschema.MicroFrontend, error) { - var result []*gqlschema.MicroFrontend - for _, u := range in { - converted, err := c.ToGQL(u) - if err != nil { - return nil, err - } - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} diff --git a/components/console-backend-service/internal/domain/ui/microfrontend_converter_test.go b/components/console-backend-service/internal/domain/ui/microfrontend_converter_test.go deleted file mode 100644 index 9ec875c54d4d..000000000000 --- a/components/console-backend-service/internal/domain/ui/microfrontend_converter_test.go +++ /dev/null @@ -1,147 +0,0 @@ -package ui - -import ( - "testing" - - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestMicroFrontendConverter_ToGQL(t *testing.T) { - t.Run("All properties are given", func(t *testing.T) { - converter := newMicroFrontendConverter() - name := "test-name" - namespace := "test-namespace" - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - - navigationNode := fixNavigationNode(t) - item := v1alpha1.MicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.MicroFrontendSpec{ - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: []v1alpha1.NavigationNode{ - navigationNode, - }, - }, - }, - } - - expectedNavigationNode := fixGqlNavigationNode() - expected := &gqlschema.MicroFrontend{ - Name: name, - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: []*gqlschema.NavigationNode{ - expectedNavigationNode, - }, - } - - result, err := converter.ToGQL(&item) - - assert.Nil(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Empty", func(t *testing.T) { - converter := newMicroFrontendConverter() - item, err := converter.ToGQL(&v1alpha1.MicroFrontend{}) - - assert.Nil(t, err) - assert.Empty(t, item) - }) - - t.Run("Nil", func(t *testing.T) { - converter := newMicroFrontendConverter() - item, err := converter.ToGQL(nil) - - assert.Nil(t, err) - assert.Nil(t, item) - }) -} - -func TestMicroFrontendConverter_ToGQLs(t *testing.T) { - name := "test-name" - namespace := "test-namespace" - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - navigationNode := fixNavigationNode(t) - - item := v1alpha1.MicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.MicroFrontendSpec{ - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: []v1alpha1.NavigationNode{ - navigationNode, - }, - }, - }, - } - - expectedNavigationNode := fixGqlNavigationNode() - expected := &gqlschema.MicroFrontend{ - Name: name, - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: []*gqlschema.NavigationNode{ - expectedNavigationNode, - }, - } - - t.Run("Success", func(t *testing.T) { - microFrontends := []*v1alpha1.MicroFrontend{ - &item, - &item, - } - - converter := newMicroFrontendConverter() - result, err := converter.ToGQLs(microFrontends) - - assert.Nil(t, err) - assert.Len(t, result, 2) - assert.Equal(t, expected, result[0]) - }) - - t.Run("Empty", func(t *testing.T) { - var microFrontends []*v1alpha1.MicroFrontend - - converter := newMicroFrontendConverter() - result, err := converter.ToGQLs(microFrontends) - - assert.Nil(t, err) - assert.Empty(t, result) - }) - - t.Run("With nil", func(t *testing.T) { - microFrontends := []*v1alpha1.MicroFrontend{ - nil, - &item, - nil, - } - - converter := newMicroFrontendConverter() - result, err := converter.ToGQLs(microFrontends) - - assert.Nil(t, err) - assert.Len(t, result, 1) - assert.Equal(t, expected, result[0]) - }) -} diff --git a/components/console-backend-service/internal/domain/ui/microfrontend_resolver.go b/components/console-backend-service/internal/domain/ui/microfrontend_resolver.go deleted file mode 100644 index 137809b49e8c..000000000000 --- a/components/console-backend-service/internal/domain/ui/microfrontend_resolver.go +++ /dev/null @@ -1,50 +0,0 @@ -package ui - -import ( - "context" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -//go:generate mockery -name=microFrontendLister -output=automock -outpkg=automock -case=underscore -type microFrontendLister interface { - List(namespace string) ([]*v1alpha1.MicroFrontend, error) -} - -//go:generate mockery -name=gqlMicroFrontendConverter -output=automock -outpkg=automock -case=underscore -type gqlMicroFrontendConverter interface { - ToGQL(in *v1alpha1.MicroFrontend) (*gqlschema.MicroFrontend, error) - ToGQLs(in []*v1alpha1.MicroFrontend) ([]*gqlschema.MicroFrontend, error) -} - -type microFrontendResolver struct { - microFrontendLister microFrontendLister - microFrontendConverter gqlMicroFrontendConverter -} - -func newMicroFrontendResolver(microFrontendLister microFrontendLister) *microFrontendResolver { - return µFrontendResolver{ - microFrontendLister: microFrontendLister, - microFrontendConverter: newMicroFrontendConverter(), - } -} - -func (r *microFrontendResolver) MicroFrontendsQuery(ctx context.Context, namespace string) ([]*gqlschema.MicroFrontend, error) { - items, err := r.microFrontendLister.List(namespace) - - if err != nil { - glog.Error(errors.Wrapf(err, "while listing %s", pretty.MicroFrontends)) - return nil, gqlerror.New(err, pretty.MicroFrontends) - } - - mfs, err := r.microFrontendConverter.ToGQLs(items) - if err != nil { - return nil, err - } - return mfs, nil -} diff --git a/components/console-backend-service/internal/domain/ui/microfrontend_resolver_test.go b/components/console-backend-service/internal/domain/ui/microfrontend_resolver_test.go deleted file mode 100644 index e69fdd0a1f7d..000000000000 --- a/components/console-backend-service/internal/domain/ui/microfrontend_resolver_test.go +++ /dev/null @@ -1,119 +0,0 @@ -package ui_test - -import ( - "errors" - "testing" - - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/automock" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestMicroFrontendResolver_MicroFrontendsQuery(t *testing.T) { - t.Run("Success", func(t *testing.T) { - name := "test-name" - namespace := "test-namespace" - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - - item := &v1alpha1.MicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.MicroFrontendSpec{ - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: []v1alpha1.NavigationNode{ - v1alpha1.NavigationNode{ - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: true, - }, - }, - }, - }, - } - - items := []*v1alpha1.MicroFrontend{ - item, item, - } - - expectedItem := &gqlschema.MicroFrontend{ - Name: name, - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: []*gqlschema.NavigationNode{ - { - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: true, - }, - }, - } - - expectedItems := []*gqlschema.MicroFrontend{ - expectedItem, expectedItem, - } - - resourceGetter := automock.NewMicroFrontendService() - resourceGetter.On("List", namespace).Return(items, nil).Once() - defer resourceGetter.AssertExpectations(t) - - converter := automock.NewMicroFrontendConverter() - converter.On("ToGQLs", items).Return(expectedItems, nil) - defer converter.AssertExpectations(t) - - resolver := ui.NewMicroFrontendResolver(resourceGetter) - resolver.SetMicroFrontendConverter(converter) - - result, err := resolver.MicroFrontendsQuery(nil, namespace) - - require.NoError(t, err) - assert.Equal(t, expectedItems, result) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "test-namespace" - var items []*v1alpha1.MicroFrontend - - resourceGetter := automock.NewMicroFrontendService() - resourceGetter.On("List", namespace).Return(items, nil).Once() - defer resourceGetter.AssertExpectations(t) - resolver := ui.NewMicroFrontendResolver(resourceGetter) - var expected []*gqlschema.MicroFrontend - - result, err := resolver.MicroFrontendsQuery(nil, namespace) - - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Error", func(t *testing.T) { - namespace := "test-namespace" - expected := errors.New("Test") - - var items []*v1alpha1.MicroFrontend - - resourceGetter := automock.NewMicroFrontendService() - resourceGetter.On("List", namespace).Return(items, expected).Once() - defer resourceGetter.AssertExpectations(t) - resolver := ui.NewMicroFrontendResolver(resourceGetter) - - _, err := resolver.MicroFrontendsQuery(nil, namespace) - - require.Error(t, err) - assert.True(t, gqlerror.IsInternal(err)) - }) -} diff --git a/components/console-backend-service/internal/domain/ui/microfrontend_service.go b/components/console-backend-service/internal/domain/ui/microfrontend_service.go deleted file mode 100644 index d43575eb49b2..000000000000 --- a/components/console-backend-service/internal/domain/ui/microfrontend_service.go +++ /dev/null @@ -1,41 +0,0 @@ -package ui - -import ( - uiV1alpha1v "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/extractor" - res "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "k8s.io/client-go/tools/cache" -) - -type microFrontendService struct { - informer cache.SharedIndexInformer - extractor extractor.MFUnstructuredExtractor -} - -func newMicroFrontendService(informer cache.SharedIndexInformer) *microFrontendService { - return µFrontendService{ - informer: informer, - } -} - -func (svc *microFrontendService) List(namespace string) ([]*uiV1alpha1v.MicroFrontend, error) { - items, err := svc.informer.GetIndexer().ByIndex(cache.NamespaceIndex, namespace) - if err != nil { - return nil, err - } - - var microFrontends []*uiV1alpha1v.MicroFrontend - for _, item := range items { - microFrontend, err := res.ToUnstructured(item) - if err != nil { - return nil, err - } - formattedMF, err := svc.extractor.FromUnstructured(microFrontend) - if err != nil { - return nil, err - } - microFrontends = append(microFrontends, formattedMF) - } - - return microFrontends, nil -} diff --git a/components/console-backend-service/internal/domain/ui/microfrontend_service_test.go b/components/console-backend-service/internal/domain/ui/microfrontend_service_test.go deleted file mode 100644 index 3505930ee6ea..000000000000 --- a/components/console-backend-service/internal/domain/ui/microfrontend_service_test.go +++ /dev/null @@ -1,92 +0,0 @@ -package ui_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/client/clientset/versioned/fake" - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/client/informers/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -func TestMicroFrontendService_List(t *testing.T) { - t.Run("Success", func(t *testing.T) { - namespace := "test-namespace" - MicroFrontend1 := fixMicroFrontend("1") - MicroFrontend2 := fixMicroFrontend("2") - MicroFrontend3 := fixMicroFrontend("3") - - MicroFrontendInformer := fixMFInformer(MicroFrontend1, MicroFrontend2, MicroFrontend3) - svc := ui.NewMicroFrontendService(MicroFrontendInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, MicroFrontendInformer) - - microFrontends, err := svc.List(namespace) - require.NoError(t, err) - assert.Contains(t, microFrontends, MicroFrontend1) - assert.Contains(t, microFrontends, MicroFrontend2) - assert.Contains(t, microFrontends, MicroFrontend3) - }) - - t.Run("NotFound", func(t *testing.T) { - namespace := "test-namespace" - MicroFrontendInformer := fixMFInformer() - - svc := ui.NewMicroFrontendService(MicroFrontendInformer) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, MicroFrontendInformer) - - var emptyArray []*v1alpha1.MicroFrontend - microFrontends, err := svc.List(namespace) - require.NoError(t, err) - assert.Equal(t, emptyArray, microFrontends) - }) -} - -func fixMFInformer(objects ...runtime.Object) cache.SharedIndexInformer { - client := fake.NewSimpleClientset(objects...) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - - informer := informerFactory.Ui().V1alpha1().MicroFrontends().Informer() - - return informer -} - -func fixMicroFrontend(name string) *v1alpha1.MicroFrontend { - namespace := "test-namespace" - version := "v1" - category := "test-category" - viewBaseUrl := "http://test-viewBaseUrl.com" - navigationNodes := []v1alpha1.NavigationNode{ - v1alpha1.NavigationNode{ - Label: "test-mf", - NavigationPath: "test-path", - ViewURL: "/test/viewUrl", - ShowInNavigation: true, - }, - } - - item := v1alpha1.MicroFrontend{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1alpha1.MicroFrontendSpec{ - CommonMicroFrontendSpec: v1alpha1.CommonMicroFrontendSpec{ - Version: version, - Category: category, - ViewBaseURL: viewBaseUrl, - NavigationNodes: navigationNodes, - }, - }, - } - - return &item -} diff --git a/components/console-backend-service/internal/domain/ui/navigationnode_converter.go b/components/console-backend-service/internal/domain/ui/navigationnode_converter.go deleted file mode 100644 index f0ee95427ae8..000000000000 --- a/components/console-backend-service/internal/domain/ui/navigationnode_converter.go +++ /dev/null @@ -1,93 +0,0 @@ -package ui - -import ( - "encoding/json" - - uiV1alpha1v "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/ui/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" -) - -type navigationNodeConverter struct{} - -func (c *navigationNodeConverter) ToGQL(in *uiV1alpha1v.NavigationNode) (*gqlschema.NavigationNode, error) { - if in == nil { - return nil, nil - } - - settingsGqlJSON, err := c.settingsToGQLJSON(in) - if err != nil { - return nil, err - } - - requiredPermissions := c.requiredPermissionsToGQLs(in.RequiredPermissions) - - navigationNode := gqlschema.NavigationNode{ - Label: in.Label, - NavigationPath: in.NavigationPath, - ViewURL: in.ViewURL, - ShowInNavigation: in.ShowInNavigation, - Order: in.Order, - Settings: settingsGqlJSON, - ExternalLink: &in.ExternalLink, - RequiredPermissions: requiredPermissions, - } - - return &navigationNode, nil -} - -func (c *navigationNodeConverter) ToGQLs(in []uiV1alpha1v.NavigationNode) ([]*gqlschema.NavigationNode, error) { - var result []*gqlschema.NavigationNode - for _, u := range in { - converted, err := c.ToGQL(&u) - if err != nil { - return nil, err - } - if converted != nil { - result = append(result, converted) - } - } - return result, nil -} - -func (c *navigationNodeConverter) requiredPermissionsToGQLs(in []uiV1alpha1v.RequiredPermission) []*gqlschema.RequiredPermission { - var result []*gqlschema.RequiredPermission - for _, u := range in { - converted := &gqlschema.RequiredPermission{ - Verbs: u.Verbs, - Resource: u.Resource, - APIGroup: u.APIGroup, - } - result = append(result, converted) - } - return result -} - -func (c *navigationNodeConverter) settingsToGQLJSON(in *uiV1alpha1v.NavigationNode) (gqlschema.Settings, error) { - if in == nil { - return nil, nil - } - result := gqlschema.Settings{} - if in.Settings == nil { - return result, nil - } - - jsonByte, err := json.Marshal(in.Settings) - if err != nil { - return nil, errors.Wrapf(err, "while marshalling %s with ViewURL `%s`", pretty.NavigationNode, in.ViewURL) - } - - jsonMap := make(map[string]interface{}) - err = json.Unmarshal(jsonByte, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s with ViewURL `%s` to map", pretty.NavigationNode, in.ViewURL) - } - - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %s with ViewURL `%s` to GQL JSON", pretty.NavigationNode, in.ViewURL) - } - - return result, nil -} diff --git a/components/console-backend-service/internal/domain/ui/pretty/kind.go b/components/console-backend-service/internal/domain/ui/pretty/kind.go deleted file mode 100644 index a1c71782ae2e..000000000000 --- a/components/console-backend-service/internal/domain/ui/pretty/kind.go +++ /dev/null @@ -1,34 +0,0 @@ -package pretty - -type Kind int - -const ( - BackendModule Kind = iota - BackendModules - MicroFrontend - MicroFrontends - ClusterMicroFrontend - ClusterMicroFrontends - NavigationNode -) - -func (k Kind) String() string { - switch k { - case BackendModule: - return "BackendService" - case BackendModules: - return "BackendServices" - case MicroFrontend: - return "MicroFrontend" - case MicroFrontends: - return "MicroFrontends" - case ClusterMicroFrontend: - return "ClusterMicroFrontend" - case ClusterMicroFrontends: - return "ClusterMicroFrontends" - case NavigationNode: - return "NavigationNode" - default: - return "" - } -} diff --git a/components/console-backend-service/internal/domain/ui/ui.go b/components/console-backend-service/internal/domain/ui/ui.go deleted file mode 100644 index 04c68ca876db..000000000000 --- a/components/console-backend-service/internal/domain/ui/ui.go +++ /dev/null @@ -1,84 +0,0 @@ -package ui - -import ( - "time" - - "k8s.io/apimachinery/pkg/runtime/schema" - - "k8s.io/client-go/dynamic" - - "github.com/kyma-project/kyma/common/microfrontend-client/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/cache" -) - -type Container struct { - Resolver *Resolver - BackendModuleInformer cache.SharedIndexInformer - MicroFrontendInformer cache.SharedIndexInformer - ClusterMicroFrontendInformer cache.SharedIndexInformer -} - -type Resolver struct { - *backendModuleResolver - *microFrontendResolver - *clusterMicroFrontendResolver - - informerFactory externalversions.SharedInformerFactory - microFrontendInformerFactory dynamicinformer.DynamicSharedInformerFactory -} - -func New(restConfig *rest.Config, informerResyncPeriod time.Duration) (*Container, error) { - clientset, err := versioned.NewForConfig(restConfig) - if err != nil { - return nil, err - } - microFrontendClientset, err := dynamic.NewForConfig(restConfig) - if err != nil { - return nil, err - } - - informerFactory := externalversions.NewSharedInformerFactory(clientset, informerResyncPeriod) - backendModuleInformer := informerFactory.Ui().V1alpha1().BackendModules().Informer() - backendModuleService := newBackendModuleService(backendModuleInformer) - - microFrontendInformerFactory := dynamicinformer.NewDynamicSharedInformerFactory(microFrontendClientset, informerResyncPeriod) - - microFrontendInformer := microFrontendInformerFactory.ForResource(schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "microfrontends", - }).Informer() - - clusterMicroFrontendInformer := microFrontendInformerFactory.ForResource(schema.GroupVersionResource{ - Version: v1alpha1.SchemeGroupVersion.Version, - Group: v1alpha1.SchemeGroupVersion.Group, - Resource: "clustermicrofrontends", - }).Informer() - - microFrontendService := newMicroFrontendService(microFrontendInformer) - clusterMicroFrontendService := newClusterMicroFrontendService(clusterMicroFrontendInformer) - - return &Container{ - Resolver: &Resolver{ - backendModuleResolver: newBackendModuleResolver(backendModuleService), - informerFactory: informerFactory, - microFrontendResolver: newMicroFrontendResolver(microFrontendService), - clusterMicroFrontendResolver: newClusterMicroFrontendResolver(clusterMicroFrontendService), - microFrontendInformerFactory: microFrontendInformerFactory, - }, - BackendModuleInformer: backendModuleInformer, - MicroFrontendInformer: microFrontendInformer, - ClusterMicroFrontendInformer: clusterMicroFrontendInformer, - }, nil -} - -func (r *Resolver) WaitForCacheSync(stopCh <-chan struct{}) { - r.informerFactory.Start(stopCh) - r.informerFactory.WaitForCacheSync(stopCh) - r.microFrontendInformerFactory.Start(stopCh) - r.microFrontendInformerFactory.WaitForCacheSync(stopCh) -} diff --git a/components/console-backend-service/internal/experimental/featuretoggles.go b/components/console-backend-service/internal/experimental/featuretoggles.go deleted file mode 100644 index ca2f88212ae6..000000000000 --- a/components/console-backend-service/internal/experimental/featuretoggles.go +++ /dev/null @@ -1,6 +0,0 @@ -package experimental - -// FeatureToggles stores toggles for experimental features -type FeatureToggles struct { - // No features toggle at the moment -} diff --git a/components/console-backend-service/internal/extractor/resourcemeta.go b/components/console-backend-service/internal/extractor/resourcemeta.go deleted file mode 100644 index 25b702159890..000000000000 --- a/components/console-backend-service/internal/extractor/resourcemeta.go +++ /dev/null @@ -1,73 +0,0 @@ -package extractor - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - - "github.com/pkg/errors" - "k8s.io/client-go/discovery" -) - -type ResourceMeta struct { - Name string - Namespace string - Kind string - APIVersion string -} - -func ExtractResourceMeta(in map[string]interface{}) (ResourceMeta, error) { - var errs apierror.ErrorFieldAggregate - apiVersion, ok := in["apiVersion"].(string) - if !ok { - errs = append(errs, apierror.NewMissingField("apiVersion")) - } - kind, ok := in["kind"].(string) - if !ok { - errs = append(errs, apierror.NewMissingField("kind")) - } - metadata, ok := in["metadata"].(map[string]interface{}) - var name, namespace string - if ok { - name, ok = metadata["name"].(string) - if !ok { - errs = append(errs, apierror.NewMissingField("metadata.name")) - } - namespace, ok = metadata["namespace"].(string) - if !ok { - errs = append(errs, apierror.NewMissingField("metadata.namespace")) - } - } else { - errs = append(errs, apierror.NewMissingField("metadata")) - } - if len(errs) > 0 { - return ResourceMeta{}, apierror.NewInvalid(pretty.Resource, errs) - } - - return ResourceMeta{ - Name: name, - Namespace: namespace, - Kind: kind, - APIVersion: apiVersion, - }, nil -} - -func GetPluralNameFromKind(kind, apiVersion string, client discovery.DiscoveryInterface) (string, error) { - resources, err := client.ServerResourcesForGroupVersion(apiVersion) - if err != nil { - return "", errors.Wrapf(err, "while fetching resources for group version %s", apiVersion) - } - - var plural string - for _, resource := range resources.APIResources { - if resource.Kind == kind { - plural = resource.Name - break - } - } - - if plural == "" { - return "", apierror.NewInvalid(pretty.Resource, apierror.ErrorFieldAggregate{apierror.NewInvalidField("kind", kind, "resource plural name for specified kind not found")}) - } - - return plural, nil -} diff --git a/components/console-backend-service/internal/extractor/resourcemeta_test.go b/components/console-backend-service/internal/extractor/resourcemeta_test.go deleted file mode 100644 index c42ee5337db8..000000000000 --- a/components/console-backend-service/internal/extractor/resourcemeta_test.go +++ /dev/null @@ -1,99 +0,0 @@ -package extractor - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - fakedisc "k8s.io/client-go/discovery/fake" - "k8s.io/client-go/kubernetes/fake" -) - -const ( - name = "test" - namespace = "testspace" - groupVersion = "apps/v1" - resource = "deployments" - kind = "Deployment" -) - -var ( - fakeResources = []*v1.APIResourceList{ - &v1.APIResourceList{ - TypeMeta: v1.TypeMeta{}, - GroupVersion: groupVersion, - APIResources: []v1.APIResource{ - v1.APIResource{ - Name: resource, - Kind: kind, - }, - }, - }, - } - resourceJSON = gqlschema.JSON{ - "apiVersion": groupVersion, - "kind": kind, - "metadata": map[string]interface{}{ - "name": name, - "namespace": namespace, - }, - } - resourceMeta = ResourceMeta{ - Name: name, - Namespace: namespace, - Kind: kind, - APIVersion: groupVersion, - } -) - -func TestExtractResourceMeta(t *testing.T) { - t.Run("Success", func(t *testing.T) { - rm, err := ExtractResourceMeta(resourceJSON) - - require.NoError(t, err) - assert.Equal(t, resourceMeta, rm) - }) - - t.Run("Missing metadata fields", func(t *testing.T) { - rm, err := ExtractResourceMeta(gqlschema.JSON{ - "metadata": map[string]interface{}{}, - }) - - require.Error(t, err) - assert.Empty(t, rm) - }) - - t.Run("Empty input", func(t *testing.T) { - rm, err := ExtractResourceMeta(gqlschema.JSON{}) - - require.Error(t, err) - assert.Empty(t, rm) - }) -} - -func TestGetPluralNameFromKind(t *testing.T) { - t.Run("Success", func(t *testing.T) { - clientset := fake.NewSimpleClientset() - fakeDiscovery, ok := clientset.Discovery().(*fakedisc.FakeDiscovery) - if !ok { - t.Fatalf("couldn't convert Discovery() to *FakeDiscovery") - } - fakeDiscovery.Fake.Resources = fakeResources - - pluralName, err := GetPluralNameFromKind(kind, groupVersion, fakeDiscovery) - - require.NoError(t, err) - assert.Equal(t, resource, pluralName) - }) - - t.Run("APIGroup not found", func(t *testing.T) { - clientset := fake.NewSimpleClientset() - - pluralName, err := GetPluralNameFromKind(kind, groupVersion, clientset.Discovery()) - - require.Error(t, err) - assert.Empty(t, pluralName) - }) -} diff --git a/components/console-backend-service/internal/filter/by_labels.go b/components/console-backend-service/internal/filter/by_labels.go deleted file mode 100644 index cf6921ae874c..000000000000 --- a/components/console-backend-service/internal/filter/by_labels.go +++ /dev/null @@ -1,73 +0,0 @@ -package filter - -import ( - "fmt" - "strings" - - "k8s.io/apimachinery/pkg/api/meta" -) - -type filteringByLabels string - -const ( - include filteringByLabels = "include" - exclude = "exclude" -) - -func IncludedByLabels(items []interface{}, labels []string) ([]interface{}, error) { - return filterLabels(items, labels, include) -} - -func ExcludedByLabels(items []interface{}, labels []string) ([]interface{}, error) { - return filterLabels(items, labels, exclude) -} - -func filterLabels(items []interface{}, labels []string, filteringType filteringByLabels) ([]interface{}, error) { - serializedLabels := serializeLabels(labels) - - var filteredItems []interface{} - for _, item := range items { - meta, err := meta.Accessor(item) - if err != nil { - return nil, fmt.Errorf("while gathering meta from resource %v. It must be a k8s resource", item) - } - - labels := meta.GetLabels() - contains := containsLabels(labels, serializedLabels) - - if filteringType == include && contains { - filteredItems = append(filteredItems, item) - } - if filteringType == exclude && !contains { - filteredItems = append(filteredItems, item) - } - } - return filteredItems, nil -} - -func containsLabels(itemLabels map[string]string, labels map[string]string) bool { - for itemLabel, itemLabelValue := range itemLabels { - for label, labelValue := range labels { - if itemLabel == label { - if labelValue == "" || (labelValue != "" && labelValue == itemLabelValue) { - return true - } - } - } - } - return false -} - -func serializeLabels(labels []string) map[string]string { - serializedLabels := make(map[string]string) - for _, label := range labels { - values := strings.Split(label, "=") - key := values[0] - value := "" - if len(values) == 2 { - value = values[1] - } - serializedLabels[key] = value - } - return serializedLabels -} diff --git a/components/console-backend-service/internal/filter/by_labels_test.go b/components/console-backend-service/internal/filter/by_labels_test.go deleted file mode 100644 index 4840fab6a3f0..000000000000 --- a/components/console-backend-service/internal/filter/by_labels_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package filter - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestFilterBy(t *testing.T) { - namespace := "namespace" - labels := []string{ - "serving.knative.dev/revision", - "foo=barbar", - } - - service1 := fixService("service1", namespace, map[string]string{ - "foo": "bar", - }) - service2 := fixService("service2", namespace, map[string]string{ - "serving.knative.dev/revision": "foo", - "serving.knative.dev/configurationGeneration": "bar", - }) - service3 := fixService("service3", namespace, map[string]string{ - "serving.knative.dev/revision": "foo", - }) - service4 := fixService("service4", namespace, map[string]string{ - "foo": "barbar", - }) - servicesWithLabels := []interface{}{ - service1, service2, service3, service4, - } - - t.Run("Success - IncludedByLabels", func(t *testing.T) { - expectedServices := []*v1.Service{service2, service3, service4} - - services, err := IncludedByLabels(servicesWithLabels, labels) - serializedServices := serializeServices(t, services) - - require.NoError(t, err) - assert.Equal(t, expectedServices, serializedServices) - }) - - t.Run("Success - ExcludedByLabels", func(t *testing.T) { - expectedServices := []*v1.Service{service1} - - services, err := ExcludedByLabels(servicesWithLabels, labels) - serializedServices := serializeServices(t, services) - - require.NoError(t, err) - assert.Equal(t, expectedServices, serializedServices) - }) - - t.Run("Invalid input - IncludedByLabels", func(t *testing.T) { - rm, err := IncludedByLabels([]interface{}{1, "string", true}, labels) - - require.Error(t, err) - assert.Empty(t, rm) - }) - - t.Run("Invalid input - ExcludedByLabels", func(t *testing.T) { - rm, err := ExcludedByLabels([]interface{}{1, "string", true}, labels) - - require.Error(t, err) - assert.Empty(t, rm) - }) - - t.Run("Empty input - IncludedByLabels", func(t *testing.T) { - rm, err := IncludedByLabels([]interface{}{}, labels) - - require.NoError(t, err) - assert.Empty(t, rm) - }) - - t.Run("Empty input - ExcludedByLabels", func(t *testing.T) { - rm, err := ExcludedByLabels([]interface{}{}, labels) - - require.NoError(t, err) - assert.Empty(t, rm) - }) -} - -func serializeServices(t *testing.T, svcs []interface{}) []*v1.Service { - var services []*v1.Service - for _, item := range svcs { - service, ok := item.(*v1.Service) - assert.Equal(t, true, ok) - - services = append(services, service) - } - return services -} - -func fixService(name, namespace string, labels map[string]string) *v1.Service { - return &v1.Service{ - TypeMeta: metav1.TypeMeta{ - Kind: "Service", - APIVersion: "v1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: labels, - }, - } -} diff --git a/components/console-backend-service/internal/gqlerror/errors.go b/components/console-backend-service/internal/gqlerror/errors.go deleted file mode 100644 index 170090a02b9b..000000000000 --- a/components/console-backend-service/internal/gqlerror/errors.go +++ /dev/null @@ -1,209 +0,0 @@ -package gqlerror - -import ( - "fmt" - "sort" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - - apierrors "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/pkg/errors" - k8serrors "k8s.io/apimachinery/pkg/api/errors" -) - -type GQLError struct { - kind fmt.Stringer - status Status - arguments map[string]string - details string - message string -} - -func (e *GQLError) Status() Status { - return e.status -} - -type Status int - -const ( - Unknown Status = iota - Internal - NotFound - AlreadyExists - Invalid -) - -func (r Status) String() string { - switch r { - case NotFound: - return "not found" - case AlreadyExists: - return "already exists" - case Internal: - return "internal error" - case Invalid: - return "invalid" - default: - return "unknown" - } -} - -type Option func(*GQLError) - -func (e *GQLError) Error() string { - return e.message -} - -func New(err error, kind fmt.Stringer, opts ...Option) error { - if err == nil { - return nil - } - - err = errors.Cause(err) - - switch { - case k8serrors.IsNotFound(err): - return NewNotFoundFromError(err.Error(), opts...) - case k8serrors.IsAlreadyExists(err): - return NewAlreadyExists(kind, opts...) - case k8serrors.IsInvalid(err): - return NewInvalid(err.Error(), kind, opts...) - case apierrors.IsInvalid(err): - return NewInvalid(err.Error(), kind, opts...) - default: - return NewInternal(opts...) - } -} - -func WithName(name string) Option { - return func(gqlError *GQLError) { - gqlError.arguments["name"] = name - } -} - -func WithNamespace(namespace string) Option { - return func(gqlError *GQLError) { - gqlError.arguments["namespace"] = namespace - } -} - -func WithCustomArgument(argument, value string) Option { - return func(gqlError *GQLError) { - gqlError.arguments[argument] = value - } -} - -func WithDetails(details string) Option { - return func(gqlError *GQLError) { - gqlError.details = details - } -} - -func NewInternal(opts ...Option) error { - return buildError(nil, Internal, opts...) -} - -func NewNotFoundFromError(err string, opts ...Option) error { - opts = append(opts, WithDetails(err)) - return buildError(pretty.Resource, NotFound, opts...) -} - -func NewNotFound(kind fmt.Stringer, opts ...Option) error { - return buildError(kind, NotFound, opts...) -} - -func NewAlreadyExists(kind fmt.Stringer, opts ...Option) error { - return buildError(kind, AlreadyExists, opts...) -} - -func NewInvalid(err string, kind fmt.Stringer, opts ...Option) error { - opts = append(opts, WithDetails(err)) - return buildError(kind, Invalid, opts...) -} - -func IsNotFound(err error) bool { - return statusForError(err) == NotFound -} - -func IsAlreadyExists(err error) bool { - return statusForError(err) == AlreadyExists -} - -func IsInternal(err error) bool { - return statusForError(err) == Internal -} - -func IsInvalid(err error) bool { - return statusForError(err) == Invalid -} - -func statusForError(err error) Status { - type errorWithStatus interface { - Status() Status - } - - switch t := err.(type) { - case errorWithStatus: - return t.Status() - } - - return Unknown -} - -func buildError(kind fmt.Stringer, reason Status, opts ...Option) *GQLError { - err := GQLError{kind: kind, status: reason, arguments: make(map[string]string, 0)} - for _, opt := range opts { - opt(&err) - } - - err.message = buildMessage(&err) - return &err -} - -func buildMessage(err *GQLError) string { - message := "" - if err.kind != nil && !IsInternal(err) { - message = fmt.Sprintf("%s ", err.kind) - } - - message += fmt.Sprintf("%s", err.status) - - if len(err.arguments) > 0 && !IsInvalid(err) { - message += fmt.Sprintf(" [%s]", buildArguments(err.arguments)) - } - - if err.details != "" { - message += fmt.Sprintf(": %s", err.details) - } - - return message -} - -func buildArguments(arguments map[string]string) string { - keys := make([]string, len(arguments)) - - for k := range arguments { - keys = append(keys, k) - } - sort.Strings(keys) - - result := "" - for _, key := range keys { - result = appendArgument(result, key, arguments[key]) - } - - return result -} - -func appendArgument(arguments, name, value string) string { - result := arguments - if value != "" { - if result != "" { - result += ", " - } - - result += fmt.Sprintf("%s: %q", name, value) - } - - return result -} diff --git a/components/console-backend-service/internal/gqlerror/errors_test.go b/components/console-backend-service/internal/gqlerror/errors_test.go deleted file mode 100644 index aaf6d5bdfe2e..000000000000 --- a/components/console-backend-service/internal/gqlerror/errors_test.go +++ /dev/null @@ -1,260 +0,0 @@ -package gqlerror_test - -import ( - "fmt" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/apierror" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - k8serrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -type testKind int - -const ( - someTestKind testKind = iota -) - -func (k testKind) String() string { - return "Test Kind" -} - -func TestNew(t *testing.T) { - var testCases = map[string]struct { - kind fmt.Stringer - err error - validator func(error) bool - }{ - "K8sNotFound": {someTestKind, k8serrors.NewNotFound(schema.GroupResource{}, "test"), gqlerror.IsNotFound}, - "K8sAlreadyExists": {someTestKind, k8serrors.NewAlreadyExists(schema.GroupResource{}, "test"), gqlerror.IsAlreadyExists}, - "K8sInvalid": {someTestKind, k8serrors.NewInvalid(schema.GroupKind{}, "test", field.ErrorList{}), gqlerror.IsInvalid}, - "K8sOther": {someTestKind, k8serrors.NewBadRequest("test"), gqlerror.IsInternal}, - "APIInvalid": {someTestKind, apierror.NewInvalid(pretty.Pod, apierror.ErrorFieldAggregate{}), gqlerror.IsInvalid}, - "Nested": {someTestKind, errors.Wrap(k8serrors.NewNotFound(schema.GroupResource{}, "while test"), "test"), gqlerror.IsNotFound}, - "DoubleNested": {someTestKind, errors.Wrap(errors.Wrap(k8serrors.NewNotFound(schema.GroupResource{}, "while test"), "while more"), "test"), gqlerror.IsNotFound}, - "Generic": {someTestKind, errors.New("test"), gqlerror.IsInternal}, - "Nil": {someTestKind, nil, nil}, - } - - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - // when - result := gqlerror.New(testCase.err, testCase.kind) - - // then - if testCase.err != nil { - require.NotNil(t, result) - assert.True(t, testCase.validator(result)) - assert.NotEmpty(t, result.Error()) - } else { - require.Nil(t, result) - } - }) - } -} - -func TestNewAlreadyExists(t *testing.T) { - var testCases = []struct { - caseName string - kind fmt.Stringer - opts []gqlerror.Option - }{ - {"AllParamsProvided", someTestKind, []gqlerror.Option{gqlerror.WithNamespace("production"), gqlerror.WithName("name"), gqlerror.WithDetails("details")}}, - {"NoKindNoOpts", nil, nil}, - {"NoKind", nil, []gqlerror.Option{gqlerror.WithNamespace("namespace"), gqlerror.WithName("name")}}, - {"NoOpts", someTestKind, nil}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // when - result := gqlerror.NewAlreadyExists(testCase.kind, testCase.opts...) - - // then - require.NotNil(t, result) - assert.True(t, gqlerror.IsAlreadyExists(result)) - assert.NotEmpty(t, result.Error()) - }) - } -} - -func TestNewNotFound(t *testing.T) { - var testCases = []struct { - caseName string - kind fmt.Stringer - opts []gqlerror.Option - }{ - {"AllParamsProvided", someTestKind, []gqlerror.Option{gqlerror.WithNamespace("namespace"), gqlerror.WithName("name"), gqlerror.WithDetails("some details")}}, - {"NoKindNoOpts", nil, nil}, - {"NoKind", nil, []gqlerror.Option{gqlerror.WithNamespace("namespace"), gqlerror.WithName("name")}}, - {"NoOpts", someTestKind, nil}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // when - result := gqlerror.NewNotFound(testCase.kind, testCase.opts...) - - // then - require.NotNil(t, result) - assert.True(t, gqlerror.IsNotFound(result)) - assert.NotEmpty(t, result.Error()) - }) - } -} - -func TestNewInternal(t *testing.T) { - // when - result := gqlerror.NewInternal() - - // then - require.NotNil(t, result) - assert.True(t, gqlerror.IsInternal(result)) - assert.NotEmpty(t, result.Error()) -} - -func TestNewInvalid(t *testing.T) { - fixErr := "fix" - - var testCases = []struct { - caseName string - err string - kind fmt.Stringer - opts []gqlerror.Option - }{ - {"AllParamsProvided", fixErr, someTestKind, []gqlerror.Option{gqlerror.WithNamespace("namespace"), gqlerror.WithName("name"), gqlerror.WithDetails("some details")}}, - {"NoKindNoOpts", fixErr, nil, nil}, - {"NoKind", fixErr, nil, []gqlerror.Option{gqlerror.WithNamespace("namespace"), gqlerror.WithName("name")}}, - {"NoOpts", fixErr, someTestKind, nil}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // when - result := gqlerror.NewInvalid(testCase.err, testCase.kind, testCase.opts...) - - // then - require.NotNil(t, result) - assert.True(t, gqlerror.IsInvalid(result)) - assert.NotEmpty(t, result.Error()) - }) - } -} - -func TestIsAlreadyExists(t *testing.T) { - var testCases = []struct { - caseName string - given error - expected bool - }{ - {"AlreadyExists", gqlerror.NewAlreadyExists(nil), true}, - {"NotFound", gqlerror.NewNotFound(nil), false}, - {"Generic", errors.New("generic"), false}, - {"Nil", nil, false}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // when - result := gqlerror.IsAlreadyExists(testCase.given) - - // then - assert.Equal(t, testCase.expected, result) - }) - } -} - -func TestIsNotFound(t *testing.T) { - var testCases = []struct { - caseName string - given error - expected bool - }{ - {"AlreadyExists", gqlerror.NewAlreadyExists(nil), false}, - {"NotFound", gqlerror.NewNotFound(nil), true}, - {"Generic", errors.New("generic"), false}, - {"Nil", nil, false}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // when - result := gqlerror.IsNotFound(testCase.given) - - // then - assert.Equal(t, testCase.expected, result) - }) - } -} - -func TestIsInternalServer(t *testing.T) { - var testCases = []struct { - caseName string - given error - expected bool - }{ - {"Internal", gqlerror.NewInternal(), true}, - {"NotFound", gqlerror.NewNotFound(nil), false}, - {"Generic", errors.New("generic"), false}, - {"Nil", nil, false}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // when - result := gqlerror.IsInternal(testCase.given) - - // then - assert.Equal(t, testCase.expected, result) - }) - } -} - -func TestIsInvalid(t *testing.T) { - var testCases = []struct { - caseName string - given error - expected bool - }{ - {"Internal", gqlerror.NewInternal(), false}, - {"Invalid", gqlerror.NewInvalid("fix", nil, gqlerror.WithNamespace("namespace")), true}, - {"NotFound", gqlerror.NewNotFound(nil), false}, - {"Generic", errors.New("generic"), false}, - {"Nil", nil, false}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // when - result := gqlerror.IsInvalid(testCase.given) - - // then - assert.Equal(t, testCase.expected, result) - }) - } -} - -func TestReason_String_Unknown(t *testing.T) { - var testCases = []struct { - caseName string - given gqlerror.Status - expected string - }{ - {"Unknown", gqlerror.Unknown, "unknown"}, - {"NotDefined", -12, "unknown"}, - } - - for _, testCase := range testCases { - t.Run(testCase.caseName, func(t *testing.T) { - // then - assert.Equal(t, testCase.expected, fmt.Sprintf("%s", testCase.given)) - }) - } -} diff --git a/components/console-backend-service/internal/gqlschema/APIRuleAccessStrategyInput.go b/components/console-backend-service/internal/gqlschema/APIRuleAccessStrategyInput.go deleted file mode 100644 index aa49dfb7e9f6..000000000000 --- a/components/console-backend-service/internal/gqlschema/APIRuleAccessStrategyInput.go +++ /dev/null @@ -1,44 +0,0 @@ -package gqlschema - -import ( - "encoding/json" - - "github.com/ory/oathkeeper-maester/api/v1alpha1" - - "github.com/99designs/gqlgen/graphql" - "github.com/pkg/errors" -) - -func MarshalAPIRuleAccessStrategyInput(v v1alpha1.Authenticator) graphql.Marshaler { - panic("Not used") // no point marshalling the input type -} - -func UnmarshalAPIRuleAccessStrategyInput(v interface{}) (v1alpha1.Authenticator, error) { - var it = v1alpha1.Authenticator{Handler: &v1alpha1.Handler{}} - var asMap = v.(map[string]interface{}) - for k, v := range asMap { - switch k { - case "name": - name, ok := v.(string) - if !ok { - return it, errors.New("Invalid 'name' type, expected string") - } - it.Name = name - case "config": - if v == nil { - it.Config = nil - break - } - raw, err := json.Marshal(v) - if err != nil { - return it, err - } - config, err := UnmarshalRawExtension(string(raw)) - if err != nil { - return it, err - } - it.Config = &config - } - } - return it, nil -} diff --git a/components/console-backend-service/internal/gqlschema/UID.go b/components/console-backend-service/internal/gqlschema/UID.go deleted file mode 100644 index 41a2ccc7c298..000000000000 --- a/components/console-backend-service/internal/gqlschema/UID.go +++ /dev/null @@ -1,23 +0,0 @@ -package gqlschema - -import ( - "errors" - "io" - - "github.com/99designs/gqlgen/graphql" - "k8s.io/apimachinery/pkg/types" -) - -func MarshalUID(uid types.UID) graphql.Marshaler { - return graphql.WriterFunc(func(w io.Writer) { - _, _ = w.Write([]byte(string(uid))) - }) -} - -func UnmarshalUID(v interface{}) (types.UID, error) { - in, ok := v.(string) - if !ok { - return "", errors.New("invalid UID type, expected string") - } - return types.UID(in), nil -} diff --git a/components/console-backend-service/internal/gqlschema/URI.go b/components/console-backend-service/internal/gqlschema/URI.go deleted file mode 100644 index 29e4e4ffc4a2..000000000000 --- a/components/console-backend-service/internal/gqlschema/URI.go +++ /dev/null @@ -1,32 +0,0 @@ -package gqlschema - -import ( - "errors" - "fmt" - "io" - - "knative.dev/pkg/apis" - - "github.com/99designs/gqlgen/graphql" -) - -func MarshalURI(url apis.URL) graphql.Marshaler { - return graphql.WriterFunc(func(w io.Writer) { - _, _ = w.Write([]byte(fmt.Sprintf(`"%s"`, url.String()))) - }) -} - -func UnmarshalURI(v interface{}) (apis.URL, error) { - in, ok := v.(string) - if !ok { - return apis.URL{}, errors.New("invalid URI type, expected string") - } - url, err := apis.ParseURL(in) - if err != nil { - return apis.URL{}, err - } - if url == nil { - return apis.URL{}, nil - } - return *url, nil -} diff --git a/components/console-backend-service/internal/gqlschema/apigateway.graphql b/components/console-backend-service/internal/gqlschema/apigateway.graphql deleted file mode 100644 index 9d538dfb7160..000000000000 --- a/components/console-backend-service/internal/gqlschema/apigateway.graphql +++ /dev/null @@ -1,88 +0,0 @@ -scalar APIRuleAccessStrategyInput @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.APIRuleAccessStrategyInput") - -type APIRule @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRule"){ - name: String! - spec: APIRuleSpec! - status: APIRuleStatuses! - generation: Int! - json: JSON! - ownerSubscription: OwnerReference -} - -type APIRuleSpec @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleSpec") { - service: APIRuleService! - gateway: String! - rules: [Rule!]! -} - -input APIRuleSpecInput @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleSpec") { - service: APIRuleServiceInput! - gateway: String! - rules: [RuleInput!]! -} - -type APIRuleService @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Service") { - host: String! - name: String! - port: Port! -} - -input APIRuleServiceInput @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Service") { - host: String! - name: String! - port: Port! -} - -type Rule @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Rule") { - path: String! - methods: [String!]! - accessStrategies: [APIRuleAccessStrategy!]! -} - -input RuleInput @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Rule") { - path: String! - methods: [String!]! - accessStrategies: [APIRuleAccessStrategyInput!]! -} - -type APIRuleAccessStrategy @goModel(model: "github.com/ory/oathkeeper-maester/api/v1alpha1.Authenticator") { - name: String! - config: Extension -} - -type APIRuleStatuses @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleStatus") { - apiRuleStatus: APIRuleStatus - accessRuleStatus: APIRuleStatus - virtualServiceStatus: APIRuleStatus -} - -type APIRuleStatus @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleResourceStatus") { - code: APIRuleStatusCode! - description: String -} - -enum APIRuleStatusCode @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.StatusCode") { - OK - SKIPPED - ERROR -} - -type ApiRuleEvent { - type: SubscriptionEventType! - apiRule: APIRule! -} - -extend type Query { - APIRules(namespace: String!, serviceName: String, hostname: String): [APIRule!]! @HasAccess(attributes: {resource: "apirules", verb: "list", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - APIRule(name: String!, namespace: String!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "get", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Mutation { - createAPIRule(name: String!, namespace: String!, params: APIRuleSpecInput!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "create", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - updateAPIRule(name: String!, namespace: String!, generation: Int!, params: APIRuleSpecInput!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "update", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - deleteAPIRule(name: String!, namespace: String!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "delete", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Subscription { - apiRuleEvent(namespace: String!, serviceName: String): ApiRuleEvent! @HasAccess(attributes: {resource: "apirules", verb: "watch", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha", namespaceArg: "namespace"}) -} diff --git a/components/console-backend-service/internal/gqlschema/application.go b/components/console-backend-service/internal/gqlschema/application.go deleted file mode 100644 index 1d2e0a8b599d..000000000000 --- a/components/console-backend-service/internal/gqlschema/application.go +++ /dev/null @@ -1,10 +0,0 @@ -package gqlschema - -type Application struct { - Name string - Description string - Labels Labels - Services []ApplicationService - enabledInNamespaces []string - CompassMetadata *CompassMetadata -} diff --git a/components/console-backend-service/internal/gqlschema/applicationmappingservice.go b/components/console-backend-service/internal/gqlschema/applicationmappingservice.go deleted file mode 100644 index d15c37e64c8f..000000000000 --- a/components/console-backend-service/internal/gqlschema/applicationmappingservice.go +++ /dev/null @@ -1,50 +0,0 @@ -package gqlschema - -import ( - "encoding/json" - "io" - - "github.com/golang/glog" - - "github.com/pkg/errors" -) - -type ApplicationMappingService struct { - ID string `json:"id"` -} - -func (ams *ApplicationMappingService) UnmarshalGQL(input interface{}) error { - if input == nil { - return nil - } - value, ok := input.(map[string]interface{}) - if !ok { - return errors.Errorf("unexpected services type: %T, should be map[string]interface{}", input) - } - - idval, ok := value["id"] - if !ok { - return errors.New("missing services id parameter") - } - id, ok := idval.(string) - if !ok { - return errors.Errorf("unexpected services type: %T, should be string", idval) - } - - ams.ID = id - - return nil -} - -func (ams ApplicationMappingService) MarshalGQL(w io.Writer) { - bytes, err := json.Marshal(ams) - if err != nil { - glog.Error(errors.Wrapf(err, "while marshalling %+v scalar object", ams)) - return - } - _, err = w.Write(bytes) - if err != nil { - glog.Error(errors.Wrapf(err, "while writing marshalled %+v object", ams)) - return - } -} diff --git a/components/console-backend-service/internal/gqlschema/applicationmappingservice_test.go b/components/console-backend-service/internal/gqlschema/applicationmappingservice_test.go deleted file mode 100644 index b927311aceb9..000000000000 --- a/components/console-backend-service/internal/gqlschema/applicationmappingservice_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package gqlschema - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestApplicationMappingService_UnmarshalGQL(t *testing.T) { - // GIVEN - for name, tc := range map[string]struct { - input interface{} - err bool - errMsg string - expected ApplicationMappingService - }{ - "no error": { - input: map[string]interface{}{"id": "1234-abcd"}, - err: false, - expected: ApplicationMappingService{ID: "1234-abcd"}, - }, - "input error": { - input: "wrong input", - err: true, - errMsg: "unexpected services type: string, should be map[string]interface{}", - }, - "missing parameter error": { - input: map[string]interface{}{"wrong_param": "1234-abcd"}, - err: true, - errMsg: "missing services id parameter", - }, - "wrong parameter value": { - input: map[string]interface{}{"id": 1234}, - err: true, - errMsg: "unexpected services type: int, should be string", - }, - } { - t.Run(name, func(t *testing.T) { - // GIVEN - ams := ApplicationMappingService{} - - // WHEN - err := ams.UnmarshalGQL(tc.input) - - // THEN - if tc.err { - assert.EqualError(t, err, tc.errMsg) - } else { - assert.NoError(t, err) - assert.Equal(t, tc.expected, ams) - } - }) - } -} diff --git a/components/console-backend-service/internal/gqlschema/asset.go b/components/console-backend-service/internal/gqlschema/asset.go deleted file mode 100644 index fb63ae40c608..000000000000 --- a/components/console-backend-service/internal/gqlschema/asset.go +++ /dev/null @@ -1,10 +0,0 @@ -package gqlschema - -type Asset struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - Type string `json:"type"` - Status AssetStatus `json:"status"` - Parameters JSON `json:"parameters"` - DisplayName string `json:"displayName"` -} diff --git a/components/console-backend-service/internal/gqlschema/assetgroup.go b/components/console-backend-service/internal/gqlschema/assetgroup.go deleted file mode 100644 index 77a4c94c4f66..000000000000 --- a/components/console-backend-service/internal/gqlschema/assetgroup.go +++ /dev/null @@ -1,10 +0,0 @@ -package gqlschema - -type AssetGroup struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - GroupName string `json:"groupName"` - DisplayName string `json:"displayName"` - Description string `json:"description"` - Status AssetGroupStatus `json:"status"` -} diff --git a/components/console-backend-service/internal/gqlschema/bebeventing.graphql b/components/console-backend-service/internal/gqlschema/bebeventing.graphql deleted file mode 100644 index cb7554979de5..000000000000 --- a/components/console-backend-service/internal/gqlschema/bebeventing.graphql +++ /dev/null @@ -1,106 +0,0 @@ -scalar ConditionReason @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.ConditionReason") -scalar ConditionType @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.ConditionType") -scalar CoreStatus @goModel(model: "k8s.io/api/core/v1.ConditionStatus") - -type EventSubscription @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Subscription") { - name: String! - namespace: String! - spec: EventSubscriptionSpec! - status: EventSubscriptionStatus! -} - -type EventSubscriptionSpec @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.SubscriptionSpec") { - filter: BebFilters! - id: String - protocol: String - protocolSettings: ProtocolSettings - sink: String -} - -type ProtocolSettings @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.ProtocolSettings") { - contentMode: String - exemptHandshake: Boolean - qos: String - webhookAuth: WebhookAuth -} - -type WebhookAuth @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.WebhookAuth") { - clientId: String - clientSecret: String - grantType: String - scope: [String!] - tokenUrl: String - type: String! -} - -type BebFilters @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.BebFilters") { - dialect: String! - filters: [BebFilter!]! -} - -type BebFilter @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.BebFilter") { - eventSource: Filter - eventType: Filter -} - -type Filter @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Filter") { - property: String - type: String! - value: String -} - -input EventSubscriptionSpecInput { - filters: [FiltersInput!]! - ownerRef: OwnerReferenceInput! -} - -input FiltersInput { - applicationName: String! - version: String! - eventName: String! -} - -type EventSubscriptionStatus @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.SubscriptionStatus") { - apiRuleName: String - conditions: [Condition] - emsSubscriptionStatus: EmsSubscriptionStatus - emshash: Int - ev2hash: Int - externalSink: String - failedActivation: String - ready: Boolean -} - -type Condition @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Condition") { - message: String - reason: ConditionReason - status: CoreStatus! - type: ConditionType -} - -type EmsSubscriptionStatus @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.EmsSubscriptionStatus") { - lastFailedDelivery: String - lastFailedDeliveryReason: String - lastSuccessfulDelivery: String - subscriptionStatus: String - subscriptionStatusReason: String -} - -type SubscriptionEvent { - type: SubscriptionEventType! - subscription: EventSubscription! -} - -extend type Query { - eventSubscriptions(ownerName: String!, namespace: String!): [EventSubscription!]! @HasAccess(attributes: {resource: "subscriptions", verb: "list", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Mutation { - createSubscription(name: String!, namespace: String!, params: EventSubscriptionSpecInput!): EventSubscription @HasAccess(attributes: {resource: "subscriptions", verb: "create", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - updateSubscription(name: String!, namespace: String!, params: EventSubscriptionSpecInput!): EventSubscription @HasAccess(attributes: {resource: "subscriptions", verb: "update", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - deleteSubscription(name: String!, namespace: String!): EventSubscription @HasAccess(attributes: {resource: "subscriptions", verb: "delete", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Subscription { - subscriptionSubscription(ownerName: String!, namespace: String!): SubscriptionEvent! @HasAccess(attributes: {resource: "subscriptions", verb: "watch", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} diff --git a/components/console-backend-service/internal/gqlschema/clusterasset.go b/components/console-backend-service/internal/gqlschema/clusterasset.go deleted file mode 100644 index 8187e24f51bd..000000000000 --- a/components/console-backend-service/internal/gqlschema/clusterasset.go +++ /dev/null @@ -1,9 +0,0 @@ -package gqlschema - -type ClusterAsset struct { - Name string `json:"name"` - Type string `json:"type"` - Status AssetStatus `json:"status"` - Parameters JSON `json:"parameters"` - DisplayName string `json:"displayName"` -} diff --git a/components/console-backend-service/internal/gqlschema/clusterassetgroup.go b/components/console-backend-service/internal/gqlschema/clusterassetgroup.go deleted file mode 100644 index 58f8c14e74c3..000000000000 --- a/components/console-backend-service/internal/gqlschema/clusterassetgroup.go +++ /dev/null @@ -1,9 +0,0 @@ -package gqlschema - -type ClusterAssetGroup struct { - Name string `json:"name"` - GroupName string `json:"groupName"` - DisplayName string `json:"displayName"` - Description string `json:"description"` - Status AssetGroupStatus `json:"status"` -} diff --git a/components/console-backend-service/internal/gqlschema/clusterserviceclass.go b/components/console-backend-service/internal/gqlschema/clusterserviceclass.go deleted file mode 100644 index 12ff62c77d6c..000000000000 --- a/components/console-backend-service/internal/gqlschema/clusterserviceclass.go +++ /dev/null @@ -1,18 +0,0 @@ -package gqlschema - -import "time" - -type ClusterServiceClass struct { - Name string `json:"name"` - ExternalName string `json:"externalName"` - DisplayName *string `json:"displayName"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Description string `json:"description"` - LongDescription *string `json:"longDescription"` - ImageURL *string `json:"imageUrl"` - DocumentationURL *string `json:"documentationUrl"` - SupportURL *string `json:"supportUrl"` - ProviderDisplayName *string `json:"providerDisplayName"` - Tags []string `json:"tags"` - Labels Labels `json:"labels"` -} diff --git a/components/console-backend-service/internal/gqlschema/clusterserviceplan.go b/components/console-backend-service/internal/gqlschema/clusterserviceplan.go deleted file mode 100644 index fa6a1f3dfb7e..000000000000 --- a/components/console-backend-service/internal/gqlschema/clusterserviceplan.go +++ /dev/null @@ -1,11 +0,0 @@ -package gqlschema - -type ClusterServicePlan struct { - Name string `json:"name"` - DisplayName *string `json:"displayName"` - ExternalName string `json:"externalName"` - Description string `json:"description"` - RelatedClusterServiceClassName string `json:"relatedClusterServiceClassName"` - InstanceCreateParameterSchema *JSON `json:"instanceCreateParameterSchema"` - BindingCreateParameterSchema *JSON `json:"bindingCreateParameterSchema"` -} diff --git a/components/console-backend-service/internal/gqlschema/eventactivation.go b/components/console-backend-service/internal/gqlschema/eventactivation.go deleted file mode 100644 index 26830dee24ad..000000000000 --- a/components/console-backend-service/internal/gqlschema/eventactivation.go +++ /dev/null @@ -1,7 +0,0 @@ -package gqlschema - -type EventActivation struct { - Name string - DisplayName string - SourceID string -} diff --git a/components/console-backend-service/internal/gqlschema/eventing.graphql b/components/console-backend-service/internal/gqlschema/eventing.graphql deleted file mode 100644 index 2e05c7498da5..000000000000 --- a/components/console-backend-service/internal/gqlschema/eventing.graphql +++ /dev/null @@ -1,76 +0,0 @@ -type Trigger @goModel(model: "knative.dev/eventing/pkg/apis/eventing/v1alpha1.Trigger"){ - name: String! - namespace: String! - spec: TriggerSpec! - status: TriggerStatus! -} - -type TriggerSpec @goModel(model: "knative.dev/eventing/pkg/apis/eventing/v1alpha1.TriggerSpec"){ - broker: String! - filter: JSON - port: Port! - path: String! - subscriber: Subscriber! -} - -type TriggerStatus { - reason: [String!] - status: TriggerStatusType! -} - -enum TriggerStatusType { - FAILED - UNKNOWN - READY -} - -type Subscriber @goModel(model: "knative.dev/pkg/apis/duck/v1.Destination"){ - ref: SubscriberRef -} - -type SubscriberRef @goModel(model: "knative.dev/pkg/apis/duck/v1.KReference"){ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -input SubscriberInput { - ref: SubscriberRefInput! - port: Port - path: String -} - -input SubscriberRefInput @goModel(model: "knative.dev/pkg/apis/duck/v1.KReference"){ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -input TriggerCreateInput { - name: String - broker: String! - filterAttributes: JSON - subscriber: SubscriberInput! -} - -type TriggerEvent { - type: SubscriptionEventType! - trigger: Trigger! -} - -extend type Query { - triggers(namespace: String!, serviceName: String!): [Trigger!] @HasAccess(attributes: {resource: "triggers", verb: "list", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Mutation { - createTrigger(namespace: String!, trigger: TriggerCreateInput!, ownerRef: [OwnerReferenceInput!]): Trigger @HasAccess(attributes: {resource: "triggers", verb: "create", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - createManyTriggers(namespace: String!, triggers: [TriggerCreateInput!]!, ownerRef: [OwnerReferenceInput!]): [Trigger!] @HasAccess(attributes: {resource: "triggers", verb: "create", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteTrigger(namespace: String!, triggerName: String!): Trigger @HasAccess(attributes: {resource: "triggers", verb: "delete", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteManyTriggers(namespace: String!, triggerNames: [String!]!): [Trigger!] @HasAccess(attributes: {resource: "triggers", verb: "delete", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Subscription { - triggerEvent(namespace: String!, serviceName: String!): TriggerEvent! @HasAccess(attributes: {resource: "triggers", verb: "watch", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} \ No newline at end of file diff --git a/components/console-backend-service/internal/gqlschema/json.go b/components/console-backend-service/internal/gqlschema/json.go deleted file mode 100644 index b17aa3caa6db..000000000000 --- a/components/console-backend-service/internal/gqlschema/json.go +++ /dev/null @@ -1,43 +0,0 @@ -package gqlschema - -import ( - "encoding/json" - "io" - - "github.com/golang/glog" - "github.com/pkg/errors" -) - -type JSON map[string]interface{} - -func (y *JSON) UnmarshalGQL(v interface{}) error { - if in, ok := v.(string); ok { - var jsonMap map[string]interface{} - err := json.Unmarshal([]byte(in), &jsonMap) - if err != nil { - return errors.Wrapf(err, "while unmarshalling %+v scalar object", y) - } - v = jsonMap - } - - value, ok := v.(map[string]interface{}) - if !ok { - return errors.Errorf("Unable to convert interface %T to map[string]interface{}", v) - } - *y = value - return nil -} - -// MarshalGQL implements the graphql.Marshaler interface -func (y JSON) MarshalGQL(w io.Writer) { - bytes, err := json.Marshal(y) - if err != nil { - glog.Error(errors.Wrapf(err, "while marshalling %+v scalar object", y)) - return - } - _, err = w.Write(bytes) - if err != nil { - glog.Error(errors.Wrapf(err, "while writing marshalled %+v object", y)) - return - } -} diff --git a/components/console-backend-service/internal/gqlschema/k8sNew.graphql b/components/console-backend-service/internal/gqlschema/k8sNew.graphql deleted file mode 100644 index bc66fc6a127b..000000000000 --- a/components/console-backend-service/internal/gqlschema/k8sNew.graphql +++ /dev/null @@ -1,138 +0,0 @@ -scalar LimitType @goModel(model: "k8s.io/api/core/v1.LimitType") - -type ResourceLimits { - memory: String - cpu: String -} - -# LIMIT RANGE -type LimitRangeItem @goModel(model: "k8s.io/api/core/v1.LimitRangeItem") { - type: LimitType! - max: ResourceLimits! - default: ResourceLimits! - defaultRequest: ResourceLimits! -} - -type LimitRangeSpec @goModel(model: "k8s.io/api/core/v1.LimitRangeSpec") { - limits: [LimitRangeItem!]! -} -type LimitRange @goModel(model: "k8s.io/api/core/v1.LimitRange") { - name: String! - spec: LimitRangeSpec! - json: JSON! -} - -# RESOURCE QUOTA - -type ResourceQuotaHard { - limits: ResourceLimits! - requests: ResourceLimits! - pods: String! -} - -type ResourceQuotaSpec @goModel(model: "k8s.io/api/core/v1.ResourceQuotaSpec") { - hard: ResourceQuotaHard! -} -type ResourceQuota @goModel(model: "k8s.io/api/core/v1.ResourceQuota") { - name: String! - spec: ResourceQuotaSpec! - json: JSON! -} - -extend type Query { - limitRanges(namespace: String!): [LimitRange!]! - @HasAccess( - attributes: { - resource: "limitRange" - verb: "list" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - resourceQuotas(namespace: String!): [ResourceQuota!]! - @HasAccess( - attributes: { - resource: "resourcequotas" - verb: "list" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - # resourceQuotasStatus(namespace: String!): ResourceQuotasStatus! - # @HasAccess( - # attributes: { - # resource: "resourcequotas" - # verb: "list" - # apiGroup: "" - # apiVersion: "v1" - # namespaceArg: "namespace" - # } - # ) -} - -enum LimitRangeType { - Container - Pod -} - -input ResourceQuotaInput { - limits: ResourceValuesInput! - requests: ResourceValuesInput! -} - -input LimitRangeInput { - default: ResourceValuesInput! - defaultRequest: ResourceValuesInput! - max: ResourceValuesInput! - type: LimitRangeType! -} - -extend type Mutation { - createLimitRange(namespace: String!, name: String!, limitRange: LimitRangeInput!): LimitRange - @HasAccess( - attributes: { - resource: "limitrange" - verb: "create" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - updateLimitRange(namespace: String!, name: String!, json: JSON!): LimitRange - @HasAccess( - attributes: { - resource: "limitrange" - verb: "update" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - createResourceQuota(namespace: String!, name: String!, resourceQuota: ResourceQuotaInput!): ResourceQuota - @HasAccess( - attributes: { - resource: "resourcequotas" - verb: "create" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - updateResourceQuota(namespace: String!, name: String!, json: JSON!): ResourceQuota - @HasAccess( - attributes: { - resource: "resourcequotas" - verb: "update" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) -} diff --git a/components/console-backend-service/internal/gqlschema/labels.go b/components/console-backend-service/internal/gqlschema/labels.go deleted file mode 100644 index 82f75aac8895..000000000000 --- a/components/console-backend-service/internal/gqlschema/labels.go +++ /dev/null @@ -1,56 +0,0 @@ -package gqlschema - -import ( - "encoding/json" - "fmt" - "io" - - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror" - "github.com/pkg/errors" -) - -type Labels map[string]string - -func (y *Labels) UnmarshalGQL(v interface{}) error { - if v == nil { - return nil - } - value, ok := v.(map[string]interface{}) - if !ok { - return gqlerror.NewInternal(gqlerror.WithDetails(fmt.Sprintf("unexpected labels type: %T, should be map[string]string", v))) - } - - labels, err := y.convertToLabels(value) - if err != nil { - return gqlerror.NewInternal(gqlerror.WithDetails(fmt.Sprintf("while converting labels: %v", err))) - } - *y = labels - - return nil -} - -func (y Labels) MarshalGQL(w io.Writer) { - bytes, err := json.Marshal(y) - if err != nil { - glog.Error(errors.Wrapf(err, "while marshalling %+v scalar object", y)) - return - } - _, err = w.Write(bytes) - if err != nil { - glog.Error(errors.Wrapf(err, "while writing marshalled %+v object", y)) - return - } -} - -func (y *Labels) convertToLabels(labels map[string]interface{}) (Labels, error) { - result := make(map[string]string) - for k, v := range labels { - val, ok := v.(string) - if !ok { - return nil, errors.Errorf("given value `%v` must be a string", v) - } - result[k] = val - } - return result, nil -} diff --git a/components/console-backend-service/internal/gqlschema/labels_test.go b/components/console-backend-service/internal/gqlschema/labels_test.go deleted file mode 100644 index 25f296d837b1..000000000000 --- a/components/console-backend-service/internal/gqlschema/labels_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package gqlschema - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestLabels_UnmarshalGQL_Success(t *testing.T) { - // GIVEN - l := Labels{} - fixLabels := map[string]interface{}{ - "fix": "lab", - } - expectedLabels := Labels{ - "fix": "lab", - } - - // WHEN - err := l.UnmarshalGQL(fixLabels) - - // THEN - require.NoError(t, err) - assert.Equal(t, l, expectedLabels) -} - -func TestLabels_UnmarshalGQL_Error(t *testing.T) { - // GIVEN - l := Labels{} - fixLabels := map[string]interface{}{ - "fix": 1, - } - - // WHEN - err := l.UnmarshalGQL(fixLabels) - - // THEN - assert.EqualError(t, err, "internal error: while converting labels: given value `1` must be a string") -} - -func TestLabels_UnmarshalGQL_CastError(t *testing.T) { - // GIVEN - l := Labels{} - fixLabels := "wrong value" - - // WHEN - err := l.UnmarshalGQL(fixLabels) - - // THEN - assert.EqualError(t, err, "internal error: unexpected labels type: string, should be map[string]string") -} diff --git a/components/console-backend-service/internal/gqlschema/models_gen.go b/components/console-backend-service/internal/gqlschema/models_gen.go deleted file mode 100644 index e9816391fe45..000000000000 --- a/components/console-backend-service/internal/gqlschema/models_gen.go +++ /dev/null @@ -1,1507 +0,0 @@ -// Code generated by github.com/99designs/gqlgen, DO NOT EDIT. - -package gqlschema - -import ( - "fmt" - "io" - "strconv" - "time" - - "github.com/kyma-incubator/api-gateway/api/v1alpha1" - v1alpha12 "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1" - v1alpha11 "github.com/ory/hydra-maester/api/v1alpha1" - v1 "k8s.io/api/rbac/v1" - v11 "k8s.io/apimachinery/pkg/apis/meta/v1" - v1alpha13 "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - v12 "knative.dev/pkg/apis/duck/v1" -) - -type AddonsConfiguration struct { - Name string `json:"name"` - Urls []string `json:"urls"` - Repositories []*AddonsConfigurationRepository `json:"repositories"` - Labels Labels `json:"labels"` - Status *AddonsConfigurationStatus `json:"status"` -} - -type AddonsConfigurationEvent struct { - Type SubscriptionEventType `json:"type"` - AddonsConfiguration *AddonsConfiguration `json:"addonsConfiguration"` -} - -type AddonsConfigurationRepository struct { - URL string `json:"url"` - SecretRef *ResourceRef `json:"secretRef"` -} - -type AddonsConfigurationRepositoryInput struct { - URL string `json:"url"` - SecretRef *ResourceRefInput `json:"secretRef"` -} - -type AddonsConfigurationStatus struct { - Phase string `json:"phase"` - Repositories []*AddonsConfigurationStatusRepository `json:"repositories"` -} - -type AddonsConfigurationStatusAddons struct { - Name string `json:"name"` - Version string `json:"version"` - Status string `json:"status"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type AddonsConfigurationStatusRepository struct { - URL string `json:"url"` - Status string `json:"status"` - Addons []*AddonsConfigurationStatusAddons `json:"addons"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type APIRuleEvent struct { - Type SubscriptionEventType `json:"type"` - APIRule *v1alpha1.APIRule `json:"apiRule"` -} - -type ApplicationEntry struct { - Type string `json:"type"` - GatewayURL *string `json:"gatewayUrl"` - AccessLabel *string `json:"accessLabel"` -} - -type ApplicationEvent struct { - Type SubscriptionEventType `json:"type"` - Application *Application `json:"application"` -} - -type ApplicationMapping struct { - Namespace string `json:"namespace"` - Application string `json:"application"` - AllServices *bool `json:"allServices"` - Services []*ApplicationMappingService `json:"services"` -} - -type ApplicationMutationOutput struct { - Name string `json:"name"` - Description string `json:"description"` - Labels Labels `json:"labels"` -} - -type ApplicationService struct { - ID string `json:"id"` - DisplayName string `json:"displayName"` - LongDescription string `json:"longDescription"` - ProviderDisplayName string `json:"providerDisplayName"` - Tags []string `json:"tags"` - Entries []*ApplicationEntry `json:"entries"` -} - -type AssetEvent struct { - Type SubscriptionEventType `json:"type"` - Asset *Asset `json:"asset"` -} - -type AssetGroupEvent struct { - Type SubscriptionEventType `json:"type"` - AssetGroup *AssetGroup `json:"assetGroup"` -} - -type AssetGroupStatus struct { - Phase AssetGroupPhaseType `json:"phase"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type AssetStatus struct { - Phase AssetPhaseType `json:"phase"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type BackendModule struct { - Name string `json:"name"` -} - -type BindableResourcesOutputItem struct { - Kind string `json:"kind"` - DisplayName string `json:"displayName"` - Resources []*UsageKindResource `json:"resources"` -} - -type ClusterAddonsConfigurationEvent struct { - Type SubscriptionEventType `json:"type"` - AddonsConfiguration *AddonsConfiguration `json:"addonsConfiguration"` -} - -type ClusterAssetEvent struct { - Type SubscriptionEventType `json:"type"` - ClusterAsset *ClusterAsset `json:"clusterAsset"` -} - -type ClusterAssetGroupEvent struct { - Type SubscriptionEventType `json:"type"` - ClusterAssetGroup *ClusterAssetGroup `json:"clusterAssetGroup"` -} - -type ClusterMicroFrontend struct { - Name string `json:"name"` - Version string `json:"version"` - Category string `json:"category"` - ViewBaseURL string `json:"viewBaseUrl"` - Placement string `json:"placement"` - PreloadURL string `json:"preloadUrl"` - NavigationNodes []*NavigationNode `json:"navigationNodes"` -} - -type ClusterRoleBindingEvent struct { - Type SubscriptionEventType `json:"type"` - ClusterRoleBinding *v1.ClusterRoleBinding `json:"clusterRoleBinding"` -} - -type ClusterRoleBindingInput struct { - RoleName string `json:"roleName"` - Subjects []*RoleBindingSubject `json:"subjects"` -} - -type ClusterServiceBroker struct { - Name string `json:"name"` - Status *ServiceBrokerStatus `json:"status"` - CreationTimestamp time.Time `json:"creationTimestamp"` - URL string `json:"url"` - Labels Labels `json:"labels"` -} - -type ClusterServiceBrokerEvent struct { - Type SubscriptionEventType `json:"type"` - ClusterServiceBroker *ClusterServiceBroker `json:"clusterServiceBroker"` -} - -type ConfigMap struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Labels Labels `json:"labels"` - JSON JSON `json:"json"` -} - -type ConfigMapEvent struct { - Type SubscriptionEventType `json:"type"` - ConfigMap *ConfigMap `json:"configMap"` -} - -type ConnectorService struct { - URL string `json:"url"` -} - -type Container struct { - Name string `json:"name"` - Image string `json:"image"` -} - -type ContainerState struct { - State ContainerStateType `json:"state"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type CreateServiceBindingOutput struct { - Name string `json:"name"` - ServiceInstanceName string `json:"serviceInstanceName"` - Namespace string `json:"namespace"` -} - -type CreateServiceBindingUsageInput struct { - Name *string `json:"name"` - ServiceBindingRef *ServiceBindingRefInput `json:"serviceBindingRef"` - UsedBy *LocalObjectReferenceInput `json:"usedBy"` - Parameters *ServiceBindingUsageParametersInput `json:"parameters"` -} - -type DeleteApplicationOutput struct { - Name string `json:"name"` -} - -type DeleteServiceBindingOutput struct { - Name string `json:"name"` - Namespace string `json:"namespace"` -} - -type DeleteServiceBindingUsageOutput struct { - Name string `json:"name"` - Namespace string `json:"namespace"` -} - -type Deployment struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Status *DeploymentStatus `json:"status"` - Labels Labels `json:"labels"` - Containers []*Container `json:"containers"` - BoundServiceInstanceNames []string `json:"boundServiceInstanceNames"` -} - -type DeploymentCondition struct { - Status string `json:"status"` - Type string `json:"type"` - LastTransitionTimestamp time.Time `json:"lastTransitionTimestamp"` - LastUpdateTimestamp time.Time `json:"lastUpdateTimestamp"` - Message string `json:"message"` - Reason string `json:"reason"` -} - -type DeploymentEvent struct { - Type SubscriptionEventType `json:"type"` - Deployment *Deployment `json:"deployment"` -} - -type DeploymentStatus struct { - Replicas int `json:"replicas"` - UpdatedReplicas int `json:"updatedReplicas"` - ReadyReplicas int `json:"readyReplicas"` - AvailableReplicas int `json:"availableReplicas"` - Conditions []*DeploymentCondition `json:"conditions"` -} - -type EnabledApplicationService struct { - ID string `json:"id"` - DisplayName string `json:"displayName"` - Exist bool `json:"exist"` -} - -type EnvPrefix struct { - Name string `json:"name"` -} - -type EnvPrefixInput struct { - Name string `json:"name"` -} - -type EventActivationEvent struct { - EventType string `json:"eventType"` - Version string `json:"version"` - Description string `json:"description"` - Schema JSON `json:"schema"` -} - -type EventSubscriptionSpecInput struct { - Filters []*FiltersInput `json:"filters"` - OwnerRef *v11.OwnerReference `json:"ownerRef"` -} - -type File struct { - URL string `json:"url"` - Metadata JSON `json:"metadata"` -} - -type FiltersInput struct { - ApplicationName string `json:"applicationName"` - Version string `json:"version"` - EventName string `json:"eventName"` -} - -type Function struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - UID string `json:"UID"` - Labels Labels `json:"labels"` - Source string `json:"source"` - Dependencies string `json:"dependencies"` - Env []*FunctionEnv `json:"env"` - Replicas *FunctionReplicas `json:"replicas"` - Resources *FunctionResources `json:"resources"` - BuildResources *FunctionResources `json:"buildResources"` - Runtime *string `json:"runtime"` - SourceType *string `json:"sourceType"` - BaseDir *string `json:"baseDir"` - Reference *string `json:"reference"` - Status *FunctionStatus `json:"status"` -} - -type FunctionEnv struct { - Name string `json:"name"` - Value string `json:"value"` - ValueFrom *FunctionEnvValueFrom `json:"valueFrom"` -} - -type FunctionEnvInput struct { - Name string `json:"name"` - Value string `json:"value"` - ValueFrom *FunctionEnvValueFromInput `json:"valueFrom"` -} - -type FunctionEnvValueFrom struct { - Type FunctionEnvValueFromType `json:"type"` - Name string `json:"name"` - Key string `json:"key"` - Optional *bool `json:"optional"` -} - -type FunctionEnvValueFromInput struct { - Type FunctionEnvValueFromType `json:"type"` - Name string `json:"name"` - Key string `json:"key"` - Optional *bool `json:"optional"` -} - -type FunctionEvent struct { - Type SubscriptionEventType `json:"type"` - Function *Function `json:"function"` -} - -type FunctionMetadata struct { - Name string `json:"name"` - Namespace string `json:"namespace"` -} - -type FunctionMetadataInput struct { - Name string `json:"name"` - Namespace string `json:"namespace"` -} - -type FunctionMutationInput struct { - Labels Labels `json:"labels"` - Source string `json:"source"` - Dependencies string `json:"dependencies"` - Env []*FunctionEnvInput `json:"env"` - Replicas *FunctionReplicasInput `json:"replicas"` - Resources *FunctionResourcesInput `json:"resources"` - BuildResources *FunctionResourcesInput `json:"buildResources"` - Runtime *string `json:"runtime"` - SourceType *string `json:"sourceType"` - BaseDir *string `json:"baseDir"` - Reference *string `json:"reference"` -} - -type FunctionReplicas struct { - Min *int `json:"min"` - Max *int `json:"max"` -} - -type FunctionReplicasInput struct { - Min *int `json:"min"` - Max *int `json:"max"` -} - -type FunctionResources struct { - Limits *ResourceValues `json:"limits"` - Requests *ResourceValues `json:"requests"` -} - -type FunctionResourcesInput struct { - Limits *ResourceValuesInput `json:"limits"` - Requests *ResourceValuesInput `json:"requests"` -} - -type FunctionStatus struct { - Phase FunctionPhaseType `json:"phase"` - Reason *FunctionReasonType `json:"reason"` - Message *string `json:"message"` -} - -type LimitRangeInput struct { - Default *ResourceValuesInput `json:"default"` - DefaultRequest *ResourceValuesInput `json:"defaultRequest"` - Max *ResourceValuesInput `json:"max"` - Type LimitRangeType `json:"type"` -} - -type LoadBalancerIngress struct { - IP string `json:"ip"` - HostName string `json:"hostName"` -} - -type LoadBalancerStatus struct { - Ingress []*LoadBalancerIngress `json:"ingress"` -} - -type LocalObjectReference struct { - Kind string `json:"kind"` - Name string `json:"name"` -} - -type LocalObjectReferenceInput struct { - Kind string `json:"kind"` - Name string `json:"name"` -} - -type MicroFrontend struct { - Name string `json:"name"` - Version string `json:"version"` - Category string `json:"category"` - ViewBaseURL string `json:"viewBaseUrl"` - NavigationNodes []*NavigationNode `json:"navigationNodes"` -} - -type NamespaceEvent struct { - Type SubscriptionEventType `json:"type"` - Namespace *NamespaceListItem `json:"namespace"` -} - -type NamespaceMutationOutput struct { - Name string `json:"name"` - Labels Labels `json:"labels"` -} - -type NavigationNode struct { - Label string `json:"label"` - NavigationPath string `json:"navigationPath"` - ViewURL string `json:"viewUrl"` - ShowInNavigation bool `json:"showInNavigation"` - Order int `json:"order"` - Settings Settings `json:"settings"` - ExternalLink *string `json:"externalLink"` - RequiredPermissions []*RequiredPermission `json:"requiredPermissions"` -} - -type OAuth2ClientEvent struct { - Type SubscriptionEventType `json:"type"` - Client *v1alpha11.OAuth2Client `json:"client"` -} - -type Pod struct { - Name string `json:"name"` - NodeName string `json:"nodeName"` - Namespace string `json:"namespace"` - RestartCount int `json:"restartCount"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Labels Labels `json:"labels"` - Status PodStatusType `json:"status"` - ContainerStates []*ContainerState `json:"containerStates"` - JSON JSON `json:"json"` -} - -type PodEvent struct { - Type SubscriptionEventType `json:"type"` - Pod *Pod `json:"pod"` -} - -type ReplicaSet struct { - Name string `json:"name"` - Pods string `json:"pods"` - Namespace string `json:"namespace"` - Images []string `json:"images"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Labels Labels `json:"labels"` - JSON JSON `json:"json"` -} - -type RequiredPermission struct { - Verbs []string `json:"verbs"` - APIGroup string `json:"apiGroup"` - Resource string `json:"resource"` -} - -type ResourceAttributes struct { - Verb string `json:"verb"` - APIGroup *string `json:"apiGroup"` - APIVersion *string `json:"apiVersion"` - Resource *string `json:"resource"` - ResourceArg *string `json:"resourceArg"` - Subresource string `json:"subresource"` - NameArg *string `json:"nameArg"` - NamespaceArg *string `json:"namespaceArg"` - IsChildResolver bool `json:"isChildResolver"` -} - -type ResourceLimits struct { - Memory *string `json:"memory"` - CPU *string `json:"cpu"` -} - -type ResourceQuotaHard struct { - Limits *ResourceLimits `json:"limits"` - Requests *ResourceLimits `json:"requests"` - Pods string `json:"pods"` -} - -type ResourceQuotaInput struct { - Limits *ResourceValuesInput `json:"limits"` - Requests *ResourceValuesInput `json:"requests"` -} - -type ResourceRef struct { - Name string `json:"name"` - Namespace string `json:"namespace"` -} - -type ResourceRefInput struct { - Name string `json:"name"` - Namespace string `json:"namespace"` -} - -type ResourceRule struct { - Verbs []string `json:"verbs"` - APIGroups []string `json:"apiGroups"` - Resources []string `json:"resources"` -} - -type ResourceType struct { - Memory *string `json:"memory"` - CPU *string `json:"cpu"` -} - -type ResourceValues struct { - Memory *string `json:"memory"` - CPU *string `json:"cpu"` -} - -type ResourceValuesInput struct { - Memory *string `json:"memory"` - CPU *string `json:"cpu"` -} - -type RoleBindingEvent struct { - Type SubscriptionEventType `json:"type"` - RoleBinding *v1.RoleBinding `json:"roleBinding"` -} - -type RoleBindingInput struct { - RoleName string `json:"roleName"` - RoleKind RoleKind `json:"roleKind"` - Subjects []*RoleBindingSubject `json:"subjects"` -} - -type RoleBindingSubject struct { - Name string `json:"name"` - Kind SubjectKind `json:"kind"` -} - -type Secret struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - Data JSON `json:"data"` - Type string `json:"type"` - CreationTime time.Time `json:"creationTime"` - Labels JSON `json:"labels"` - Annotations JSON `json:"annotations"` - JSON JSON `json:"json"` -} - -type SecretEvent struct { - Type SubscriptionEventType `json:"type"` - Secret *Secret `json:"secret"` -} - -type Service struct { - Name string `json:"name"` - ClusterIP string `json:"clusterIP"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Labels Labels `json:"labels"` - Ports []*ServicePort `json:"ports"` - Status *ServiceStatus `json:"status"` - JSON JSON `json:"json"` - UID string `json:"UID"` -} - -type ServiceBindingEvent struct { - Type SubscriptionEventType `json:"type"` - ServiceBinding *ServiceBinding `json:"serviceBinding"` -} - -type ServiceBindingRefInput struct { - Name string `json:"name"` -} - -type ServiceBindingStatus struct { - Type ServiceBindingStatusType `json:"type"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type ServiceBindingUsageEvent struct { - Type SubscriptionEventType `json:"type"` - ServiceBindingUsage *ServiceBindingUsage `json:"serviceBindingUsage"` -} - -type ServiceBindingUsageParameters struct { - EnvPrefix *EnvPrefix `json:"envPrefix"` -} - -type ServiceBindingUsageParametersInput struct { - EnvPrefix *EnvPrefixInput `json:"envPrefix"` -} - -type ServiceBindingUsageStatus struct { - Type ServiceBindingUsageStatusType `json:"type"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type ServiceBindings struct { - Items []*ServiceBinding `json:"items"` - Stats *ServiceBindingsStats `json:"stats"` -} - -type ServiceBindingsStats struct { - Ready int `json:"ready"` - Failed int `json:"failed"` - Pending int `json:"pending"` - Unknown int `json:"unknown"` -} - -type ServiceBroker struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - Status *ServiceBrokerStatus `json:"status"` - CreationTimestamp time.Time `json:"creationTimestamp"` - URL string `json:"url"` - Labels Labels `json:"labels"` -} - -type ServiceBrokerEvent struct { - Type SubscriptionEventType `json:"type"` - ServiceBroker *ServiceBroker `json:"serviceBroker"` -} - -type ServiceBrokerStatus struct { - Ready bool `json:"ready"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type ServiceEvent struct { - Type SubscriptionEventType `json:"type"` - Service *Service `json:"service"` -} - -type ServiceInstanceCreateInput struct { - Name string `json:"name"` - ClassRef *ServiceInstanceCreateInputResourceRef `json:"classRef"` - PlanRef *ServiceInstanceCreateInputResourceRef `json:"planRef"` - Labels []string `json:"labels"` - ParameterSchema JSON `json:"parameterSchema"` -} - -type ServiceInstanceCreateInputResourceRef struct { - ExternalName string `json:"externalName"` - ClusterWide bool `json:"clusterWide"` -} - -type ServiceInstanceEvent struct { - Type SubscriptionEventType `json:"type"` - ServiceInstance *ServiceInstance `json:"serviceInstance"` -} - -type ServiceInstanceResourceRef struct { - Name string `json:"name"` - DisplayName string `json:"displayName"` - ClusterWide bool `json:"clusterWide"` -} - -type ServiceInstanceStatus struct { - Type InstanceStatusType `json:"type"` - Reason string `json:"reason"` - Message string `json:"message"` -} - -type ServicePort struct { - Name string `json:"name"` - ServiceProtocol ServiceProtocol `json:"serviceProtocol"` - Port int `json:"port"` - NodePort int `json:"nodePort"` - TargetPort int `json:"targetPort"` -} - -type ServiceStatus struct { - LoadBalancer *LoadBalancerStatus `json:"loadBalancer"` -} - -type SubscriberInput struct { - Ref *v12.KReference `json:"ref"` - Port *uint32 `json:"port"` - Path *string `json:"path"` -} - -type SubscriptionEvent struct { - Type SubscriptionEventType `json:"type"` - Subscription *v1alpha12.Subscription `json:"subscription"` -} - -type TriggerCreateInput struct { - Name *string `json:"name"` - Broker string `json:"broker"` - FilterAttributes JSON `json:"filterAttributes"` - Subscriber *SubscriberInput `json:"subscriber"` -} - -type TriggerEvent struct { - Type SubscriptionEventType `json:"type"` - Trigger *v1alpha13.Trigger `json:"trigger"` -} - -type TriggerStatus struct { - Reason []string `json:"reason"` - Status TriggerStatusType `json:"status"` -} - -type UsageKind struct { - Name string `json:"name"` - Group string `json:"group"` - Kind string `json:"kind"` - Version string `json:"version"` - DisplayName string `json:"displayName"` -} - -type UsageKindResource struct { - Name string `json:"name"` - Namespace string `json:"namespace"` -} - -type VersionInfo struct { - KymaVersion *string `json:"kymaVersion"` -} - -type CompassMetadata struct { - ApplicationID string `json:"applicationId"` -} - -type EnabledMappingService struct { - Namespace string `json:"namespace"` - AllServices bool `json:"allServices"` - Services []*EnabledApplicationService `json:"services"` -} - -type ApplicationStatus string - -const ( - ApplicationStatusServing ApplicationStatus = "SERVING" - ApplicationStatusNotServing ApplicationStatus = "NOT_SERVING" - ApplicationStatusGatewayNotConfigured ApplicationStatus = "GATEWAY_NOT_CONFIGURED" -) - -var AllApplicationStatus = []ApplicationStatus{ - ApplicationStatusServing, - ApplicationStatusNotServing, - ApplicationStatusGatewayNotConfigured, -} - -func (e ApplicationStatus) IsValid() bool { - switch e { - case ApplicationStatusServing, ApplicationStatusNotServing, ApplicationStatusGatewayNotConfigured: - return true - } - return false -} - -func (e ApplicationStatus) String() string { - return string(e) -} - -func (e *ApplicationStatus) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = ApplicationStatus(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid ApplicationStatus", str) - } - return nil -} - -func (e ApplicationStatus) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type AssetGroupPhaseType string - -const ( - AssetGroupPhaseTypeReady AssetGroupPhaseType = "READY" - AssetGroupPhaseTypePending AssetGroupPhaseType = "PENDING" - AssetGroupPhaseTypeFailed AssetGroupPhaseType = "FAILED" -) - -var AllAssetGroupPhaseType = []AssetGroupPhaseType{ - AssetGroupPhaseTypeReady, - AssetGroupPhaseTypePending, - AssetGroupPhaseTypeFailed, -} - -func (e AssetGroupPhaseType) IsValid() bool { - switch e { - case AssetGroupPhaseTypeReady, AssetGroupPhaseTypePending, AssetGroupPhaseTypeFailed: - return true - } - return false -} - -func (e AssetGroupPhaseType) String() string { - return string(e) -} - -func (e *AssetGroupPhaseType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = AssetGroupPhaseType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid AssetGroupPhaseType", str) - } - return nil -} - -func (e AssetGroupPhaseType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type AssetPhaseType string - -const ( - AssetPhaseTypeReady AssetPhaseType = "READY" - AssetPhaseTypePending AssetPhaseType = "PENDING" - AssetPhaseTypeFailed AssetPhaseType = "FAILED" -) - -var AllAssetPhaseType = []AssetPhaseType{ - AssetPhaseTypeReady, - AssetPhaseTypePending, - AssetPhaseTypeFailed, -} - -func (e AssetPhaseType) IsValid() bool { - switch e { - case AssetPhaseTypeReady, AssetPhaseTypePending, AssetPhaseTypeFailed: - return true - } - return false -} - -func (e AssetPhaseType) String() string { - return string(e) -} - -func (e *AssetPhaseType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = AssetPhaseType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid AssetPhaseType", str) - } - return nil -} - -func (e AssetPhaseType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type ContainerStateType string - -const ( - ContainerStateTypeWaiting ContainerStateType = "WAITING" - ContainerStateTypeRunning ContainerStateType = "RUNNING" - ContainerStateTypeTerminated ContainerStateType = "TERMINATED" -) - -var AllContainerStateType = []ContainerStateType{ - ContainerStateTypeWaiting, - ContainerStateTypeRunning, - ContainerStateTypeTerminated, -} - -func (e ContainerStateType) IsValid() bool { - switch e { - case ContainerStateTypeWaiting, ContainerStateTypeRunning, ContainerStateTypeTerminated: - return true - } - return false -} - -func (e ContainerStateType) String() string { - return string(e) -} - -func (e *ContainerStateType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = ContainerStateType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid ContainerStateType", str) - } - return nil -} - -func (e ContainerStateType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type FunctionEnvValueFromType string - -const ( - FunctionEnvValueFromTypeConfigMap FunctionEnvValueFromType = "ConfigMap" - FunctionEnvValueFromTypeSecret FunctionEnvValueFromType = "Secret" -) - -var AllFunctionEnvValueFromType = []FunctionEnvValueFromType{ - FunctionEnvValueFromTypeConfigMap, - FunctionEnvValueFromTypeSecret, -} - -func (e FunctionEnvValueFromType) IsValid() bool { - switch e { - case FunctionEnvValueFromTypeConfigMap, FunctionEnvValueFromTypeSecret: - return true - } - return false -} - -func (e FunctionEnvValueFromType) String() string { - return string(e) -} - -func (e *FunctionEnvValueFromType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = FunctionEnvValueFromType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid FunctionEnvValueFromType", str) - } - return nil -} - -func (e FunctionEnvValueFromType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type FunctionPhaseType string - -const ( - FunctionPhaseTypeInitializing FunctionPhaseType = "INITIALIZING" - FunctionPhaseTypeBuilding FunctionPhaseType = "BUILDING" - FunctionPhaseTypeDeploying FunctionPhaseType = "DEPLOYING" - FunctionPhaseTypeRunning FunctionPhaseType = "RUNNING" - FunctionPhaseTypeNewRevisionError FunctionPhaseType = "NEW_REVISION_ERROR" - FunctionPhaseTypeFailed FunctionPhaseType = "FAILED" -) - -var AllFunctionPhaseType = []FunctionPhaseType{ - FunctionPhaseTypeInitializing, - FunctionPhaseTypeBuilding, - FunctionPhaseTypeDeploying, - FunctionPhaseTypeRunning, - FunctionPhaseTypeNewRevisionError, - FunctionPhaseTypeFailed, -} - -func (e FunctionPhaseType) IsValid() bool { - switch e { - case FunctionPhaseTypeInitializing, FunctionPhaseTypeBuilding, FunctionPhaseTypeDeploying, FunctionPhaseTypeRunning, FunctionPhaseTypeNewRevisionError, FunctionPhaseTypeFailed: - return true - } - return false -} - -func (e FunctionPhaseType) String() string { - return string(e) -} - -func (e *FunctionPhaseType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = FunctionPhaseType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid FunctionPhaseType", str) - } - return nil -} - -func (e FunctionPhaseType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type FunctionReasonType string - -const ( - FunctionReasonTypeConfig FunctionReasonType = "CONFIG" - FunctionReasonTypeJob FunctionReasonType = "JOB" - FunctionReasonTypeService FunctionReasonType = "SERVICE" -) - -var AllFunctionReasonType = []FunctionReasonType{ - FunctionReasonTypeConfig, - FunctionReasonTypeJob, - FunctionReasonTypeService, -} - -func (e FunctionReasonType) IsValid() bool { - switch e { - case FunctionReasonTypeConfig, FunctionReasonTypeJob, FunctionReasonTypeService: - return true - } - return false -} - -func (e FunctionReasonType) String() string { - return string(e) -} - -func (e *FunctionReasonType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = FunctionReasonType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid FunctionReasonType", str) - } - return nil -} - -func (e FunctionReasonType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type InstanceStatusType string - -const ( - InstanceStatusTypeRunning InstanceStatusType = "RUNNING" - InstanceStatusTypeProvisioning InstanceStatusType = "PROVISIONING" - InstanceStatusTypeDeprovisioning InstanceStatusType = "DEPROVISIONING" - InstanceStatusTypePending InstanceStatusType = "PENDING" - InstanceStatusTypeFailed InstanceStatusType = "FAILED" -) - -var AllInstanceStatusType = []InstanceStatusType{ - InstanceStatusTypeRunning, - InstanceStatusTypeProvisioning, - InstanceStatusTypeDeprovisioning, - InstanceStatusTypePending, - InstanceStatusTypeFailed, -} - -func (e InstanceStatusType) IsValid() bool { - switch e { - case InstanceStatusTypeRunning, InstanceStatusTypeProvisioning, InstanceStatusTypeDeprovisioning, InstanceStatusTypePending, InstanceStatusTypeFailed: - return true - } - return false -} - -func (e InstanceStatusType) String() string { - return string(e) -} - -func (e *InstanceStatusType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = InstanceStatusType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid InstanceStatusType", str) - } - return nil -} - -func (e InstanceStatusType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type LimitRangeType string - -const ( - LimitRangeTypeContainer LimitRangeType = "Container" - LimitRangeTypePod LimitRangeType = "Pod" -) - -var AllLimitRangeType = []LimitRangeType{ - LimitRangeTypeContainer, - LimitRangeTypePod, -} - -func (e LimitRangeType) IsValid() bool { - switch e { - case LimitRangeTypeContainer, LimitRangeTypePod: - return true - } - return false -} - -func (e LimitRangeType) String() string { - return string(e) -} - -func (e *LimitRangeType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = LimitRangeType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid LimitRangeType", str) - } - return nil -} - -func (e LimitRangeType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type PodStatusType string - -const ( - PodStatusTypePending PodStatusType = "PENDING" - PodStatusTypeRunning PodStatusType = "RUNNING" - PodStatusTypeSucceeded PodStatusType = "SUCCEEDED" - PodStatusTypeFailed PodStatusType = "FAILED" - PodStatusTypeUnknown PodStatusType = "UNKNOWN" -) - -var AllPodStatusType = []PodStatusType{ - PodStatusTypePending, - PodStatusTypeRunning, - PodStatusTypeSucceeded, - PodStatusTypeFailed, - PodStatusTypeUnknown, -} - -func (e PodStatusType) IsValid() bool { - switch e { - case PodStatusTypePending, PodStatusTypeRunning, PodStatusTypeSucceeded, PodStatusTypeFailed, PodStatusTypeUnknown: - return true - } - return false -} - -func (e PodStatusType) String() string { - return string(e) -} - -func (e *PodStatusType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = PodStatusType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid PodStatusType", str) - } - return nil -} - -func (e PodStatusType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type RoleKind string - -const ( - RoleKindRole RoleKind = "Role" - RoleKindClusterRole RoleKind = "ClusterRole" -) - -var AllRoleKind = []RoleKind{ - RoleKindRole, - RoleKindClusterRole, -} - -func (e RoleKind) IsValid() bool { - switch e { - case RoleKindRole, RoleKindClusterRole: - return true - } - return false -} - -func (e RoleKind) String() string { - return string(e) -} - -func (e *RoleKind) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = RoleKind(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid RoleKind", str) - } - return nil -} - -func (e RoleKind) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type ServiceBindingStatusType string - -const ( - ServiceBindingStatusTypeReady ServiceBindingStatusType = "READY" - ServiceBindingStatusTypePending ServiceBindingStatusType = "PENDING" - ServiceBindingStatusTypeFailed ServiceBindingStatusType = "FAILED" - ServiceBindingStatusTypeUnknown ServiceBindingStatusType = "UNKNOWN" -) - -var AllServiceBindingStatusType = []ServiceBindingStatusType{ - ServiceBindingStatusTypeReady, - ServiceBindingStatusTypePending, - ServiceBindingStatusTypeFailed, - ServiceBindingStatusTypeUnknown, -} - -func (e ServiceBindingStatusType) IsValid() bool { - switch e { - case ServiceBindingStatusTypeReady, ServiceBindingStatusTypePending, ServiceBindingStatusTypeFailed, ServiceBindingStatusTypeUnknown: - return true - } - return false -} - -func (e ServiceBindingStatusType) String() string { - return string(e) -} - -func (e *ServiceBindingStatusType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = ServiceBindingStatusType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid ServiceBindingStatusType", str) - } - return nil -} - -func (e ServiceBindingStatusType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type ServiceBindingUsageStatusType string - -const ( - ServiceBindingUsageStatusTypeReady ServiceBindingUsageStatusType = "READY" - ServiceBindingUsageStatusTypePending ServiceBindingUsageStatusType = "PENDING" - ServiceBindingUsageStatusTypeFailed ServiceBindingUsageStatusType = "FAILED" - ServiceBindingUsageStatusTypeUnknown ServiceBindingUsageStatusType = "UNKNOWN" -) - -var AllServiceBindingUsageStatusType = []ServiceBindingUsageStatusType{ - ServiceBindingUsageStatusTypeReady, - ServiceBindingUsageStatusTypePending, - ServiceBindingUsageStatusTypeFailed, - ServiceBindingUsageStatusTypeUnknown, -} - -func (e ServiceBindingUsageStatusType) IsValid() bool { - switch e { - case ServiceBindingUsageStatusTypeReady, ServiceBindingUsageStatusTypePending, ServiceBindingUsageStatusTypeFailed, ServiceBindingUsageStatusTypeUnknown: - return true - } - return false -} - -func (e ServiceBindingUsageStatusType) String() string { - return string(e) -} - -func (e *ServiceBindingUsageStatusType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = ServiceBindingUsageStatusType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid ServiceBindingUsageStatusType", str) - } - return nil -} - -func (e ServiceBindingUsageStatusType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type ServiceProtocol string - -const ( - ServiceProtocolTCP ServiceProtocol = "TCP" - ServiceProtocolUDP ServiceProtocol = "UDP" - ServiceProtocolUnknown ServiceProtocol = "UNKNOWN" -) - -var AllServiceProtocol = []ServiceProtocol{ - ServiceProtocolTCP, - ServiceProtocolUDP, - ServiceProtocolUnknown, -} - -func (e ServiceProtocol) IsValid() bool { - switch e { - case ServiceProtocolTCP, ServiceProtocolUDP, ServiceProtocolUnknown: - return true - } - return false -} - -func (e ServiceProtocol) String() string { - return string(e) -} - -func (e *ServiceProtocol) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = ServiceProtocol(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid ServiceProtocol", str) - } - return nil -} - -func (e ServiceProtocol) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type SubjectKind string - -const ( - SubjectKindUser SubjectKind = "User" - SubjectKindGroup SubjectKind = "Group" -) - -var AllSubjectKind = []SubjectKind{ - SubjectKindUser, - SubjectKindGroup, -} - -func (e SubjectKind) IsValid() bool { - switch e { - case SubjectKindUser, SubjectKindGroup: - return true - } - return false -} - -func (e SubjectKind) String() string { - return string(e) -} - -func (e *SubjectKind) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = SubjectKind(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid SubjectKind", str) - } - return nil -} - -func (e SubjectKind) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type SubscriptionEventType string - -const ( - SubscriptionEventTypeAdd SubscriptionEventType = "ADD" - SubscriptionEventTypeUpdate SubscriptionEventType = "UPDATE" - SubscriptionEventTypeDelete SubscriptionEventType = "DELETE" -) - -var AllSubscriptionEventType = []SubscriptionEventType{ - SubscriptionEventTypeAdd, - SubscriptionEventTypeUpdate, - SubscriptionEventTypeDelete, -} - -func (e SubscriptionEventType) IsValid() bool { - switch e { - case SubscriptionEventTypeAdd, SubscriptionEventTypeUpdate, SubscriptionEventTypeDelete: - return true - } - return false -} - -func (e SubscriptionEventType) String() string { - return string(e) -} - -func (e *SubscriptionEventType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = SubscriptionEventType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid SubscriptionEventType", str) - } - return nil -} - -func (e SubscriptionEventType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} - -type TriggerStatusType string - -const ( - TriggerStatusTypeFailed TriggerStatusType = "FAILED" - TriggerStatusTypeUnknown TriggerStatusType = "UNKNOWN" - TriggerStatusTypeReady TriggerStatusType = "READY" -) - -var AllTriggerStatusType = []TriggerStatusType{ - TriggerStatusTypeFailed, - TriggerStatusTypeUnknown, - TriggerStatusTypeReady, -} - -func (e TriggerStatusType) IsValid() bool { - switch e { - case TriggerStatusTypeFailed, TriggerStatusTypeUnknown, TriggerStatusTypeReady: - return true - } - return false -} - -func (e TriggerStatusType) String() string { - return string(e) -} - -func (e *TriggerStatusType) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = TriggerStatusType(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid TriggerStatusType", str) - } - return nil -} - -func (e TriggerStatusType) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} diff --git a/components/console-backend-service/internal/gqlschema/namespace.go b/components/console-backend-service/internal/gqlschema/namespace.go deleted file mode 100644 index 193d85ee4b70..000000000000 --- a/components/console-backend-service/internal/gqlschema/namespace.go +++ /dev/null @@ -1,22 +0,0 @@ -package gqlschema - -type Namespace struct { - Name string `json:"name"` - Applications []string `json:"applications"` - Labels Labels `json:"labels"` - Status string `json:"status"` - IsSystemNamespace bool `json:"isSystemNamespace"` - Pods []Pod `json:"pods"` - Deployments []Deployment `json:"deployments"` -} - -type NamespaceListItem struct { - Name string `json:"name"` - Applications []string `json:"applications"` - Labels Labels `json:"labels"` - Status string `json:"status"` - IsSystemNamespace bool `json:"isSystemNamespace"` - PodsCount int `json:"podsCount"` - HealthyPodsCount int `json:"healthyPodsCount"` - ApplicationsCount int `json:"applicationsCount"` -} diff --git a/components/console-backend-service/internal/gqlschema/oauth.graphql b/components/console-backend-service/internal/gqlschema/oauth.graphql deleted file mode 100644 index 0a0467a7a315..000000000000 --- a/components/console-backend-service/internal/gqlschema/oauth.graphql +++ /dev/null @@ -1,54 +0,0 @@ -scalar GrantType @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.GrantType") - -scalar ResponseType @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.ResponseType") - -scalar StatusCode @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.StatusCode") - -type OAuth2Client @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.OAuth2Client") { - namespace: String! - name: String! - generation: Int! - - error: OAuth2ClientError - spec: OAuth2ClientSpec! -} - -type OAuth2ClientError @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.ReconciliationError") { - code: StatusCode - description: String -} - -type OAuth2ClientSpec @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.OAuth2ClientSpec") { - grantTypes: [GrantType!]! - responseTypes: [ResponseType!]! - scope: String! - secretName: String! -} - -input OAuth2ClientSpecInput @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.OAuth2ClientSpec") { - grantTypes: [GrantType!]! - responseTypes: [ResponseType!]! - scope: String! - secretName: String! -} - -type OAuth2ClientEvent { - type: SubscriptionEventType! - client: OAuth2Client! -} - -extend type Query { - oAuth2Clients(namespace: String!): [OAuth2Client!]! @HasAccess(attributes: {resource: "OAuth2Clients", verb: "list", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - oAuth2Client(name: String!, namespace: String!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "get", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Mutation { - createOAuth2Client(name: String!, namespace: String!, params: OAuth2ClientSpecInput!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "create", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - updateOAuth2Client(name: String!, namespace: String!, generation: Int!, params: OAuth2ClientSpecInput!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "update", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - deleteOAuth2Client(name: String!, namespace: String!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "delete", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Subscription { - oAuth2ClientEvent(namespace: String!): OAuth2ClientEvent! @HasAccess(attributes: {resource: "OAuth2Clients", verb: "watch", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha", namespaceArg: "namespace"}) -} - diff --git a/components/console-backend-service/internal/gqlschema/port.go b/components/console-backend-service/internal/gqlschema/port.go deleted file mode 100644 index 77203b3503db..000000000000 --- a/components/console-backend-service/internal/gqlschema/port.go +++ /dev/null @@ -1,39 +0,0 @@ -package gqlschema - -import ( - "encoding/json" - "fmt" - "io" - - "github.com/99designs/gqlgen/graphql" - "github.com/pkg/errors" -) - -func MarshalPort(port uint32) graphql.Marshaler { - return graphql.WriterFunc(func(w io.Writer) { - _, _ = w.Write([]byte(fmt.Sprintf("%d", port))) - }) - -} - -func UnmarshalPort(v interface{}) (uint32, error) { - var in int64 - switch v.(type) { - case int, int64: - in, _ = v.(int64) - case json.Number: - var err error - in, err = v.(json.Number).Int64() - if err != nil { - return 0, errors.New("Invalid Port type, expected int") - } - default: - return 0, errors.New("Invalid Port type, expected int") - } - - if in < 0 || in > 65535 { - return 0, errors.New("invalid port value, should be in range <0, 65535>") - } - - return uint32(in), nil -} diff --git a/components/console-backend-service/internal/gqlschema/raw_extension.go b/components/console-backend-service/internal/gqlschema/raw_extension.go deleted file mode 100644 index 68835a7c3b47..000000000000 --- a/components/console-backend-service/internal/gqlschema/raw_extension.go +++ /dev/null @@ -1,24 +0,0 @@ -package gqlschema - -import ( - "io" - - "github.com/99designs/gqlgen/graphql" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime" -) - -func MarshalRawExtension(e runtime.RawExtension) graphql.Marshaler { - return graphql.WriterFunc(func(w io.Writer) { - _, _ = w.Write(e.Raw) - }) -} - -func UnmarshalRawExtension(v interface{}) (runtime.RawExtension, error) { - in, ok := v.(string) - if !ok { - return runtime.RawExtension{}, errors.New("Invalid RawExtension type, expected string") - } - - return runtime.RawExtension{Raw: []byte(in)}, nil -} diff --git a/components/console-backend-service/internal/gqlschema/roles.graphql b/components/console-backend-service/internal/gqlschema/roles.graphql deleted file mode 100644 index 1b7f114daff0..000000000000 --- a/components/console-backend-service/internal/gqlschema/roles.graphql +++ /dev/null @@ -1,87 +0,0 @@ -enum SubjectKind { User Group } - -enum RoleKind { Role ClusterRole } - -type Role @goModel(model: "k8s.io/api/rbac/v1.Role") { - name: String! - namespace: String! - rules: [PolicyRule!] -} - -type ClusterRole @goModel(model: "k8s.io/api/rbac/v1.ClusterRole") { - name: String! - rules: [PolicyRule!] -} - -type PolicyRule @goModel(model: "k8s.io/api/rbac/v1.PolicyRule") { - apiGroups: [String!]! - resources: [String!]! - verbs: [String!]! -} - -type RoleRef @goModel(model: "k8s.io/api/rbac/v1.RoleRef") { - name: String! - kind: String! -} - -type RoleBinding @goModel(model: "k8s.io/api/rbac/v1.RoleBinding") { - name: String! - namespace: String! - roleRef: RoleRef! -} - -type ClusterRoleBinding @goModel(model: "k8s.io/api/rbac/v1.ClusterRoleBinding") { - name: String! - roleRef: RoleRef! -} - -input RoleBindingSubject { - name: String! - kind: SubjectKind! -} - -input RoleBindingInput { - roleName: String! - roleKind: RoleKind! - subjects: [RoleBindingSubject!]! -} - -input ClusterRoleBindingInput { - roleName: String! - subjects: [RoleBindingSubject!]! -} - -type ClusterRoleBindingEvent { - type: SubscriptionEventType! - clusterRoleBinding: ClusterRoleBinding! -} - -type RoleBindingEvent { - type: SubscriptionEventType! - roleBinding: RoleBinding! -} - -extend type Query { - roles(namespace: String!): [Role!]! @HasAccess(attributes: {resource: "roles", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - role(namespace: String!, name: String!): Role! @HasAccess(attributes: {resource: "roles", verb: "get", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - - clusterRoles: [ClusterRole!]! @HasAccess(attributes: {resource: "clusterRoles", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) - clusterRole(name: String!): ClusterRole! @HasAccess(attributes: {resource: "clusterRoles", verb: "get", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) - - roleBindings(namespace: String!): [RoleBinding!]! @HasAccess(attributes: {resource: "roleBindings", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - - clusterRoleBindings: [ClusterRoleBinding!]! @HasAccess(attributes: {resource: "clusterRoleBindings", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) -} - -extend type Mutation { - createRoleBinding(name: String!, namespace: String!, params: RoleBindingInput!): RoleBinding!@HasAccess(attributes: {resource: "roleBindings", verb: "create", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - deleteRoleBinding(namespace: String!, name: String!): RoleBinding!@HasAccess(attributes: {resource: "roleBindings", verb: "delete", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - - createClusterRoleBinding(name: String!, params: ClusterRoleBindingInput!): ClusterRoleBinding!@HasAccess(attributes: {resource: "clusterRoleBindings", verb: "create", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) - deleteClusterRoleBinding(name: String!): ClusterRoleBinding!@HasAccess(attributes: {resource: "clusterRoleBindings", verb: "delete", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) -} - -extend type Subscription { - roleBindingEvent(namespace: String!): RoleBindingEvent! @HasAccess(attributes: {resource: "roleBindings", verb: "watch", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1alpha", namespaceArg: "namespace"}) - clusterRoleBindingEvent: ClusterRoleBindingEvent! @HasAccess(attributes: {resource: "clusterRoleBindings", verb: "watch", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1alpha"}) -} \ No newline at end of file diff --git a/components/console-backend-service/internal/gqlschema/schema.graphql b/components/console-backend-service/internal/gqlschema/schema.graphql deleted file mode 100644 index 0a82abbb2f99..000000000000 --- a/components/console-backend-service/internal/gqlschema/schema.graphql +++ /dev/null @@ -1,1167 +0,0 @@ -# Scalars - -scalar JSON - -scalar Labels - -scalar Timestamp - -scalar Settings - -scalar ApplicationMappingService - -scalar Port @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Port") -scalar Extension @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.RawExtension") -scalar UID @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.UID") -scalar URI @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.URI") - -type OwnerReference @goModel(model: "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"){ - apiVersion: String! - blockOwnerDeletion: Boolean - controller: Boolean - kind: String! - name: String! - UID: UID! -} - -input OwnerReferenceInput @goModel(model: "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"){ - apiVersion: String! - blockOwnerDeletion: Boolean - controller: Boolean - kind: String! - name: String! - UID: UID! -} - -input ResourceValuesInput { - memory: String - cpu: String -} - -# Directives - -directive @goModel(model: String, models: [String!]) on OBJECT - | INPUT_OBJECT - | SCALAR - | ENUM - | INTERFACE - | UNION - -directive @HasAccess(attributes: ResourceAttributes!) on FIELD_DEFINITION - -input ResourceAttributes { - verb: String! - apiGroup: String - apiVersion: String - resource: String - resourceArg: String - subresource: String! = "" - nameArg: String - namespaceArg: String - isChildResolver: Boolean! = false -} - -# Rafter resources - -type File { - url: String! - metadata: JSON! -} - -type Asset { - name: String! - namespace: String! - parameters: JSON! - type: String! - files(filterExtensions: [String!]): [File!]! - status: AssetStatus! - displayName: String -} - -type AssetEvent { - type: SubscriptionEventType! - asset: Asset! -} - -type ClusterAsset { - name: String! - parameters: JSON! - type: String! - files(filterExtensions: [String!]): [File!]! - status: AssetStatus! - displayName: String -} - -type ClusterAssetEvent { - type: SubscriptionEventType! - clusterAsset: ClusterAsset! -} - -type AssetStatus { - phase: AssetPhaseType! - reason: String! - message: String! -} - -enum AssetPhaseType { - READY - PENDING - FAILED -} - -type AssetGroup { - name: String! - namespace: String! - groupName: String! - assets(types: [String!]): [Asset!]! - displayName: String! - description: String! - status: AssetGroupStatus! -} - -type AssetGroupEvent { - type: SubscriptionEventType! - assetGroup: AssetGroup! -} - -type ClusterAssetGroup { - name: String! - groupName: String! - assets(types: [String!]): [ClusterAsset!]! - displayName: String! - description: String! - status: AssetGroupStatus! -} - -type ClusterAssetGroupEvent { - type: SubscriptionEventType! - clusterAssetGroup: ClusterAssetGroup! -} - -type AssetGroupStatus { - phase: AssetGroupPhaseType! - reason: String! - message: String! -} - -enum AssetGroupPhaseType { - READY - PENDING - FAILED -} - -# Service Catalog - -type AddonsConfiguration { - name: String! - urls: [String!] - repositories: [AddonsConfigurationRepository!] - labels: Labels! - status: AddonsConfigurationStatus! -} - -type AddonsConfigurationRepository { - url: String! - secretRef: ResourceRef -} - -type ResourceRef { - name: String! - namespace: String! -} - -input AddonsConfigurationRepositoryInput { - url: String! - secretRef: ResourceRefInput -} - -input ResourceRefInput { - name: String! - namespace: String! -} - -type AddonsConfigurationStatus { - phase: String! - repositories: [AddonsConfigurationStatusRepository!] -} - -type AddonsConfigurationStatusRepository { - url: String! - status: String! - addons: [AddonsConfigurationStatusAddons!] - reason: String! - message: String! -} - -type AddonsConfigurationStatusAddons { - name: String! - version: String! - status: String! - reason: String! - message: String! -} - -type AddonsConfigurationEvent { - type: SubscriptionEventType! - addonsConfiguration: AddonsConfiguration! -} - -type ClusterAddonsConfigurationEvent { - type: SubscriptionEventType! - addonsConfiguration: AddonsConfiguration! -} - -type ServiceInstance { - name: String! - namespace: String! - planSpec: JSON - creationTimestamp: Timestamp! - labels: [String!]! - status: ServiceInstanceStatus! - classReference: ServiceInstanceResourceRef - planReference: ServiceInstanceResourceRef - serviceClass: ServiceClass - clusterServiceClass: ClusterServiceClass - servicePlan: ServicePlan - clusterServicePlan: ClusterServicePlan - bindable: Boolean! - serviceBindings: ServiceBindings - - # Depends on servicecatalogaddons domain - serviceBindingUsages: [ServiceBindingUsage!] -} - -type ServiceInstanceResourceRef { - name: String! - displayName: String! - clusterWide: Boolean! -} - -type ServiceInstanceStatus { - type: InstanceStatusType! - reason: String! - message: String! -} - -enum InstanceStatusType { - RUNNING - PROVISIONING - DEPROVISIONING - PENDING - FAILED -} - -type ServiceInstanceEvent { - type: SubscriptionEventType! - serviceInstance: ServiceInstance! -} - -type ServiceBrokerEvent { - type: SubscriptionEventType! - serviceBroker: ServiceBroker! -} - -type ClusterServiceBrokerEvent { - type: SubscriptionEventType! - clusterServiceBroker: ClusterServiceBroker! -} - -enum SubscriptionEventType { - ADD - UPDATE - DELETE -} - -input ServiceInstanceCreateInput { - name: String! - classRef: ServiceInstanceCreateInputResourceRef! - planRef: ServiceInstanceCreateInputResourceRef! - labels: [String!]! - parameterSchema: JSON -} - -input ServiceInstanceCreateInputResourceRef { - externalName: String! - clusterWide: Boolean! -} - -type ServiceClass { - name: String! - namespace: String! - externalName: String! - displayName: String - creationTimestamp: Timestamp! - description: String! - longDescription: String - imageUrl: String - documentationUrl: String - supportUrl: String - providerDisplayName: String - tags: [String!]! - labels: Labels! - plans: [ServicePlan!]! - activated: Boolean! - instances: [ServiceInstance!]! - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup - assetGroup: AssetGroup -} - -type ClusterServiceClass { - name: String! - externalName: String! - displayName: String - creationTimestamp: Timestamp! - description: String! - longDescription: String - imageUrl: String - documentationUrl: String - supportUrl: String - providerDisplayName: String - tags: [String!]! - labels: Labels! - plans: [ClusterServicePlan!]! - activated(namespace: String): Boolean! - instances(namespace: String): [ServiceInstance!]! - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup -} - -type ServicePlan { - name: String! - namespace: String! - displayName: String - externalName: String! - description: String! - relatedServiceClassName: String! - instanceCreateParameterSchema: JSON - bindingCreateParameterSchema: JSON - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup - assetGroup: AssetGroup -} - -type ClusterServicePlan { - name: String! - displayName: String - externalName: String! - description: String! - relatedClusterServiceClassName: String! - instanceCreateParameterSchema: JSON - bindingCreateParameterSchema: JSON - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup -} - -type ServiceBroker { - name: String! - namespace: String! - status: ServiceBrokerStatus! - creationTimestamp: Timestamp! - url: String! - labels: Labels! -} - -type ClusterServiceBroker { - name: String! - status: ServiceBrokerStatus! - creationTimestamp: Timestamp! - url: String! - labels: Labels! -} - -type ServiceBrokerStatus { - ready: Boolean! - reason: String! - message: String! -} - -type ServiceBindings { - items: [ServiceBinding!]! - stats: ServiceBindingsStats! -} - -type ServiceBindingsStats { - ready: Int! - failed: Int! - pending: Int! - unknown: Int! -} - -type ServiceBinding { - name: String! - serviceInstanceName: String! - namespace: String! - secret: Secret - status: ServiceBindingStatus! - parameters: JSON -} - -type ServiceBindingStatus { - type: ServiceBindingStatusType! - reason: String! - message: String! -} - -enum ServiceBindingStatusType { - READY - PENDING - FAILED - UNKNOWN -} - -type ServiceBindingEvent { - type: SubscriptionEventType! - serviceBinding: ServiceBinding! -} - -# We cannot use ServiceBinding as a result of create action -# because secret at the moment of mutation execution is not available. -type CreateServiceBindingOutput { - name: String! - serviceInstanceName: String! - namespace: String! -} - -type Secret { - name: String! - namespace: String! - data: JSON! - type: String! - creationTime: Timestamp! - labels: JSON! - annotations: JSON! - json: JSON! -} - -type DeleteServiceBindingOutput { - name: String! - namespace: String! -} - -type DeleteServiceBindingUsageOutput { - name: String! - namespace: String! -} - -type ServiceBindingUsage { - name: String! - namespace: String! - serviceBinding: ServiceBinding - usedBy: LocalObjectReference! - parameters: ServiceBindingUsageParameters - status: ServiceBindingUsageStatus! -} - -type ServiceBindingUsageEvent { - type: SubscriptionEventType! - serviceBindingUsage: ServiceBindingUsage! -} - -type ServiceBindingUsageStatus { - type: ServiceBindingUsageStatusType! - reason: String! - message: String! -} - -enum ServiceBindingUsageStatusType { - READY - PENDING - FAILED - UNKNOWN -} - -type LocalObjectReference { - kind: String! - name: String! -} - -type ServiceBindingUsageParameters { - envPrefix: EnvPrefix -} - -type EnvPrefix { - name: String! -} - - - -type ResourceType { - memory: String - cpu: String -} - -input CreateServiceBindingUsageInput { - name: String - serviceBindingRef: ServiceBindingRefInput! - usedBy: LocalObjectReferenceInput! - parameters: ServiceBindingUsageParametersInput -} - -input ServiceBindingRefInput { - name: String! -} - -input LocalObjectReferenceInput { - kind: String! - name: String! -} - -input ServiceBindingUsageParametersInput { - envPrefix: EnvPrefixInput -} - -input EnvPrefixInput { - name: String! -} - -type Container { - name: String! - image: String! -} - -type DeploymentStatus { - replicas: Int! - updatedReplicas: Int! - readyReplicas: Int! - availableReplicas: Int! - conditions: [DeploymentCondition!]! -} - -type DeploymentCondition { - status: String! - type: String! - lastTransitionTimestamp: Timestamp! - lastUpdateTimestamp: Timestamp! - message: String! - reason: String! -} - -type Deployment { - name: String! - namespace: String! - creationTimestamp: Timestamp! - status: DeploymentStatus! - labels: Labels! - containers: [Container!]! - - # Depends on servicecatalog and servicecatalogaddons modules - boundServiceInstanceNames: [String!] -} - -type DeploymentEvent { - type: SubscriptionEventType! - deployment: Deployment! -} - -enum ServiceProtocol { - TCP - UDP - UNKNOWN -} - -type ServicePort { - name: String! - serviceProtocol: ServiceProtocol! - port: Int! - nodePort: Int! - targetPort: Int! -} - -type LoadBalancerIngress { - ip: String! - hostName: String! -} - -type LoadBalancerStatus { - ingress: [LoadBalancerIngress!]! -} - -type ServiceStatus { - loadBalancer: LoadBalancerStatus! -} - -type Service { - name: String! - clusterIP: String! - creationTimestamp: Timestamp! - labels: Labels! - ports: [ServicePort!]! - status: ServiceStatus! - json: JSON! - UID: String! -} - -type Pod { - name: String! - nodeName: String! - namespace: String! - restartCount: Int! - creationTimestamp: Timestamp! - labels: Labels! - status: PodStatusType! - containerStates: [ContainerState!]! - json: JSON! -} - -type ReplicaSet { - name: String! - pods: String! - namespace: String! - images: [String!]! - creationTimestamp: Timestamp! - labels: Labels! - json: JSON! -} - -enum PodStatusType { - PENDING - RUNNING - SUCCEEDED - FAILED - UNKNOWN -} - -type PodEvent { - type: SubscriptionEventType! - pod: Pod! -} - -type ServiceEvent { - type: SubscriptionEventType! - service: Service! -} - -type SecretEvent { - type: SubscriptionEventType! - secret: Secret! -} - -type ContainerState { - state: ContainerStateType! - reason: String! - message: String! -} - -enum ContainerStateType { - WAITING - RUNNING - TERMINATED -} - -type ResourceValues { - memory: String - cpu: String -} - - -# Applications - -type Namespace { - name: String! - labels: Labels - status: String! - isSystemNamespace: Boolean! - pods: [Pod!]! - deployments(excludeFunctions: Boolean): [Deployment!]! - - # Depends on application module - applications: [String!] -} - -type NamespaceListItem { - name: String! - labels: Labels - status: String! - isSystemNamespace: Boolean! - podsCount: Int! - healthyPodsCount: Int! - - # Depends on application module - applicationsCount: Int -} - -type NamespaceEvent { - type: SubscriptionEventType! - namespace: NamespaceListItem! -} - -type NamespaceMutationOutput { - name: String! - labels: Labels! -} - -type Application { - name: String! - description: String! - labels: Labels! - services: [ApplicationService!]! - enabledInNamespaces: [String!]! - enabledMappingServices: [enabledMappingService] - status: ApplicationStatus! - compassMetadata: compassMetadata -} - -type compassMetadata { - applicationId: String! -} - -type enabledMappingService { - namespace: String! - allServices: Boolean! - services: [EnabledApplicationService] -} - -type EnabledApplicationService { - id: String! - displayName: String! - exist: Boolean! -} - -type ConnectorService { - url: String! -} - -type ApplicationMapping { - namespace: String! - application: String! - allServices: Boolean - services: [ApplicationMappingService] -} - -type ApplicationService { - id: String! - displayName: String! - longDescription: String! - providerDisplayName: String! - tags: [String!]! - entries: [ApplicationEntry!]! -} - -type ApplicationEntry { - type: String! - gatewayUrl: String - accessLabel: String -} - -enum ApplicationStatus { - SERVING - NOT_SERVING - GATEWAY_NOT_CONFIGURED -} - -type ApplicationEvent { - type: SubscriptionEventType! - application: Application! -} - -type ApplicationMutationOutput { - name: String! - description: String! - labels: Labels! -} - -type DeleteApplicationOutput { - name: String! -} - -type EventActivationEvent { - eventType: String! - version: String! - description: String! - schema: JSON! -} - -type EventActivation { - name: String! - displayName: String! - sourceId: String! - events: [EventActivationEvent!] # content module -} - -type UsageKind { - name: String! - group: String! - kind: String! - version: String! - displayName: String! -} - -type UsageKindResource { - name: String! - namespace: String! -} - -type BindableResourcesOutputItem { - kind: String! - displayName: String! - resources: [UsageKindResource!]! -} - -# Backend Module -type BackendModule { - name: String! -} - -# Config Maps - -type ConfigMap { - name: String! - namespace: String! - creationTimestamp: Timestamp! - labels: Labels! - json: JSON! -} - -type ConfigMapEvent { - type: SubscriptionEventType! - configMap: ConfigMap! -} - -# MF - -type MicroFrontend { - name: String! - version: String! - category: String! - viewBaseUrl: String! - navigationNodes: [NavigationNode!]! -} - -type ClusterMicroFrontend { - name: String! - version: String! - category: String! - viewBaseUrl: String! - placement: String! - preloadUrl: String! - navigationNodes: [NavigationNode!]! -} - -type NavigationNode { - label: String! - navigationPath: String! - viewUrl: String! - showInNavigation: Boolean! - order: Int! - settings: Settings! - externalLink: String - requiredPermissions: [RequiredPermission!]! -} - -type RequiredPermission { - verbs: [String!]! - apiGroup: String! - resource: String! -} - -# SelfSubjectRules - -type ResourceRule { - verbs: [String!] - apiGroups: [String!] - resources: [String!] -} - -# Function - -type Function { - # meta - name: String! - namespace: String! - UID: String! - labels: Labels! - - # spec - source: String! - dependencies: String! - env: [FunctionEnv!]! - replicas: FunctionReplicas! - resources: FunctionResources! - buildResources: FunctionResources! - runtime: String - sourceType: String - baseDir: String - reference: String - - # status - status: FunctionStatus! -} - -type FunctionEnv { - name: String! - value: String! - valueFrom: FunctionEnvValueFrom -} - -type FunctionEnvValueFrom { - type: FunctionEnvValueFromType! - name: String! - key: String! - optional: Boolean -} - -input FunctionEnvInput { - name: String! - value: String! - valueFrom: FunctionEnvValueFromInput -} - -input FunctionEnvValueFromInput { - type: FunctionEnvValueFromType! - name: String! - key: String! - optional: Boolean -} - -enum FunctionEnvValueFromType { - ConfigMap - Secret -} - -type FunctionReplicas { - min: Int - max: Int -} - -input FunctionReplicasInput { - min: Int - max: Int -} - -type FunctionResources { - limits: ResourceValues! - requests: ResourceValues! -} - -input FunctionResourcesInput { - limits: ResourceValuesInput! - requests: ResourceValuesInput! -} - -type FunctionStatus { - phase: FunctionPhaseType! - reason: FunctionReasonType - message: String -} - -enum FunctionPhaseType { - INITIALIZING - BUILDING - DEPLOYING - RUNNING - NEW_REVISION_ERROR - FAILED -} - -enum FunctionReasonType { - CONFIG # ConfigMap - JOB # K8S Job - SERVICE # Deployment + Service + hpa -} - -input FunctionMutationInput { - labels: Labels! - source: String! - dependencies: String! - env: [FunctionEnvInput!]! - replicas: FunctionReplicasInput! - resources: FunctionResourcesInput! - buildResources: FunctionResourcesInput! - runtime: String - sourceType: String - baseDir: String - reference: String -} - -type FunctionMetadata { - name: String! - namespace: String! -} - -input FunctionMetadataInput { - name: String! - namespace: String! -} - -type FunctionEvent { - type: SubscriptionEventType! - function: Function! -} - -# Misc - -type VersionInfo { - kymaVersion: String -} - -# Queries - -type Query { - serviceInstance(name: String!, namespace: String!): ServiceInstance @HasAccess(attributes: {resource: "serviceinstances", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - serviceInstances(namespace: String!, first: Int, offset: Int, status: InstanceStatusType): [ServiceInstance!]! @HasAccess(attributes: {resource: "serviceinstances", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - - clusterServiceClasses(first: Int, offset: Int): [ClusterServiceClass!]! @HasAccess(attributes: {resource: "clusterserviceclasses", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1"}) - clusterServiceClass(name: String!): ClusterServiceClass @HasAccess(attributes: {resource: "clusterserviceclasses", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", nameArg: "name"}) - serviceClasses(namespace: String!, first: Int, offset: Int): [ServiceClass!]! @HasAccess(attributes: {resource: "serviceclasses", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceClass(namespace: String!, name: String!): ServiceClass @HasAccess(attributes: {resource: "serviceclasses", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - - clusterServiceBrokers(first: Int, offset: Int): [ClusterServiceBroker!]! @HasAccess(attributes: {resource: "clusterservicebrokers", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1"}) - clusterServiceBroker(name: String!): ClusterServiceBroker @HasAccess(attributes: {resource: "clusterservicebrokers", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", nameArg: "name"}) - serviceBrokers(namespace: String!, first: Int, offset: Int): [ServiceBroker!]! @HasAccess(attributes: {resource: "servicebrokers", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceBroker(name: String!, namespace: String!): ServiceBroker @HasAccess(attributes: {resource: "servicebrokers", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - - serviceBindingUsage(name: String!, namespace: String!): ServiceBindingUsage @HasAccess(attributes: {resource: "servicebindingusages", verb: "get", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - serviceBindingUsages(namespace: String!, resourceKind: String, resourceName: String): [ServiceBindingUsage!]! @HasAccess(attributes: {resource: "servicebindingusages", verb: "get", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - serviceBinding(name: String!, namespace: String!): ServiceBinding @HasAccess(attributes: {resource: "servicebindings", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - usageKinds(first: Int, offset: Int): [UsageKind!]! @HasAccess(attributes: {resource: "usagekinds", verb: "list", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1"}) - - clusterAddonsConfigurations(first: Int, offset: Int): [AddonsConfiguration!]! @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "list", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - addonsConfigurations(namespace: String!, first: Int, offset: Int): [AddonsConfiguration!]! @HasAccess(attributes: {resource: "addonsconfigurations", verb: "list", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - - # The query returns all instance of the resources which could be bound (proper UsageKind exists). - bindableResources(namespace: String!): [BindableResourcesOutputItem!]! @HasAccess(attributes: {resource: "usagekinds", verb: "list", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - - application(name: String!): Application @HasAccess(attributes: {resource: "applications", verb: "get", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - applications(namespace: String, first: Int, offset: Int): [Application!]! @HasAccess(attributes: {resource: "applications", verb: "list", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - connectorService(application: String!): ConnectorService! @HasAccess(attributes: {resource: "applications", verb: "create", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - - # Depends on 'application' - namespaces(withSystemNamespaces: Boolean, withInactiveStatus: Boolean): [NamespaceListItem!]! @HasAccess(attributes: {resource: "namespaces", verb: "list", apiGroup: "", apiVersion: "v1"}) - namespace(name: String!): Namespace @HasAccess(attributes: {resource: "namespaces", verb: "get", apiGroup: "", apiVersion: "v1", namespaceArg: "name"}) - - deployments(namespace: String!, excludeFunctions: Boolean): [Deployment!]! @HasAccess(attributes: {resource: "deployments", verb: "list", apiGroup: "apps", apiVersion: "v1beta2", namespaceArg: "namespace"}) - versionInfo: VersionInfo! - - pod(name: String!, namespace: String!): Pod @HasAccess(attributes: {resource: "pods", verb: "get", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - pods(namespace: String!, first: Int, offset: Int): [Pod!]! @HasAccess(attributes: {resource: "pods", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - service(name: String!, namespace: String!): Service @HasAccess(attributes: {resource: "services", verb: "get", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - services(namespace: String!, excludedLabels: [String!], first: Int, offset: Int): [Service!]! @HasAccess(attributes: {resource: "services", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - configMap(name: String!, namespace: String!): ConfigMap @HasAccess(attributes: {resource: "configmaps", verb: "get", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - configMaps(namespace: String!, first: Int, offset: Int): [ConfigMap!]! @HasAccess(attributes: {resource: "configmaps", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - replicaSet(name: String!, namespace: String!): ReplicaSet @HasAccess(attributes: {resource: "replicasets", verb: "get", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - replicaSets(namespace: String!, first: Int, offset: Int): [ReplicaSet!]! @HasAccess(attributes: {resource: "replicasets", verb: "list", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace"}) - - - eventActivations(namespace: String!): [EventActivation!]! @HasAccess(attributes: {resource: "eventactivations", verb: "list", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - - - backendModules: [BackendModule!]! @HasAccess(attributes: {resource: "backendmodules", verb: "list", apiGroup: "ui.kyma-project.io", apiVersion: "v1alpha1"}) - - secret(name: String!, namespace: String!): Secret @HasAccess(attributes: {resource: "secrets", verb: "get", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - secrets(namespace: String!, first: Int, offset: Int): [Secret!]! @HasAccess(attributes: {resource: "secrets", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - microFrontends(namespace: String!): [MicroFrontend!]! @HasAccess(attributes: {resource: "microfrontends", verb: "list", apiGroup: "ui.kyma-project.io", apiVersion: "v1alpha1"}) - clusterMicroFrontends: [ClusterMicroFrontend!]! @HasAccess(attributes: {resource: "clustermicrofrontends", verb: "list", apiGroup: "ui.kyma-project.io", apiVersion: "v1alpha1"}) - - selfSubjectRules(namespace: String): [ResourceRule!]! @HasAccess(attributes: {apiGroup: "authorization.k8s.io", resource: "selfsubjectrulesreviews", verb: "create", apiVersion: "v1" namespaceArg: "namespace"}) - - function(name: String!, namespace: String!): Function @HasAccess(attributes: {apiGroup: "serverless.kyma-project.io", resource: "functions", verb: "get", apiVersion: "v1alpha1" nameArg:"name" namespaceArg: "namespace"}) - functions(namespace: String!): [Function!]! @HasAccess(attributes: {apiGroup: "serverless.kyma-project.io", resource: "functions", verb: "list", apiVersion: "v1alpha1" namespaceArg: "namespace"}) -} - -# Mutations - -type Mutation { - createResource(namespace: String!, resource: JSON!): JSON @HasAccess(attributes: {verb: "create", resourceArg: "resource", namespaceArg: "namespace"}) - createServiceInstance(namespace: String!, params: ServiceInstanceCreateInput!): ServiceInstance @HasAccess(attributes: {resource: "serviceinstances", verb: "create", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - deleteServiceInstance(name: String!, namespace: String!): ServiceInstance @HasAccess(attributes: {resource: "serviceinstances", verb: "delete", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - createServiceBinding(serviceBindingName: String, serviceInstanceName: String!, namespace: String!, parameters: JSON): CreateServiceBindingOutput @HasAccess(attributes: {resource: "servicebindings", verb: "create", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - deleteServiceBinding(serviceBindingName: String!, namespace: String!): DeleteServiceBindingOutput @HasAccess(attributes: {resource: "servicebindings", verb: "delete", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "serviceBindingName"}) - createServiceBindingUsage(namespace: String!, createServiceBindingUsageInput: CreateServiceBindingUsageInput): ServiceBindingUsage @HasAccess(attributes: {resource: "servicebindingusages", verb: "create", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteServiceBindingUsage(serviceBindingUsageName: String!, namespace: String!): DeleteServiceBindingUsageOutput @HasAccess(attributes: {resource: "servicebindingusages", verb: "delete", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "serviceBindingUsageName"}) - deleteServiceBindingUsages(serviceBindingUsageNames: [String!]!, namespace: String!): [DeleteServiceBindingUsageOutput] @HasAccess(attributes: {resource: "servicebindingusages", verb: "delete", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - - createClusterAddonsConfiguration(name: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "create", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - updateClusterAddonsConfiguration(name: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - deleteClusterAddonsConfiguration(name: String!): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "delete", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addClusterAddonsConfigurationURLs(name: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeClusterAddonsConfigurationURLs(name: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addClusterAddonsConfigurationRepository(name: String!, repositories: [AddonsConfigurationRepositoryInput!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeClusterAddonsConfigurationRepository(name: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - resyncClusterAddonsConfiguration(name: String!): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - - createAddonsConfiguration(name: String!, namespace: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "create", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - updateAddonsConfiguration(name: String!, namespace: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - deleteAddonsConfiguration(name: String!, namespace: String!): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "delete", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addAddonsConfigurationURLs(name: String!, namespace: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeAddonsConfigurationURLs(name: String!, namespace: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addAddonsConfigurationRepository(name: String!, namespace: String!, repositories: [AddonsConfigurationRepositoryInput!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeAddonsConfigurationRepository(name: String!, namespace: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - resyncAddonsConfiguration(name: String!, namespace: String!): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - - createApplication(name: String!, description: String, labels: Labels): ApplicationMutationOutput! @HasAccess(attributes: {resource: "applications", verb: "create", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - updateApplication(name: String!, description: String, labels: Labels): ApplicationMutationOutput! @HasAccess(attributes: {resource: "applications", verb: "update", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - deleteApplication(name: String!): DeleteApplicationOutput! @HasAccess(attributes: {resource: "applications", verb: "delete", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - - enableApplication(application: String!, namespace: String!, allServices: Boolean, services: [ApplicationMappingService]): ApplicationMapping @HasAccess(attributes: {resource: "applicationmappings", verb: "create", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - overloadApplication(application: String!, namespace: String!, allServices: Boolean, services: [ApplicationMappingService]): ApplicationMapping @HasAccess(attributes: {resource: "applicationmappings", verb: "update", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - disableApplication(application: String!, namespace: String!): ApplicationMapping @HasAccess(attributes: {resource: "applicationmappings", verb: "delete", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "application", namespaceArg: "namespace"}) - - updatePod(name: String!, namespace: String!, pod: JSON!): Pod @HasAccess(attributes: {resource: "pods", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - deletePod(name: String!, namespace: String!): Pod @HasAccess(attributes: {resource: "pods", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - - updateSecret(name: String!, namespace: String!, secret: JSON!): Secret @HasAccess(attributes: {resource: "secrets", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - deleteSecret(name: String!, namespace: String!): Secret @HasAccess(attributes: {resource: "secrets", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - updateReplicaSet(name: String!, namespace: String!, replicaSet: JSON!): ReplicaSet @HasAccess(attributes: {resource: "replicasets", verb: "update", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - deleteReplicaSet(name: String!, namespace: String!): ReplicaSet @HasAccess(attributes: {resource: "replicasets", verb: "delete", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - - updateConfigMap(name: String!, namespace: String!, configMap: JSON!): ConfigMap @HasAccess(attributes: {resource: "configmaps", verb: "update", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - deleteConfigMap(name: String!, namespace: String!): ConfigMap @HasAccess(attributes: {resource: "configmaps", verb: "delete", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - - updateService(name: String!, namespace: String!, service: JSON!): Service @HasAccess(attributes: {resource: "services", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - deleteService(name: String!, namespace: String!): Service @HasAccess(attributes: {resource: "services", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - - createNamespace(name: String!, labels: Labels): NamespaceMutationOutput! @HasAccess(attributes: {resource: "namespaces", verb: "create", apiGroup: "", apiVersion: "v1"}) - updateNamespace(name: String!, labels: Labels): NamespaceMutationOutput! @HasAccess(attributes: {resource: "namespaces", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "name"}) - deleteNamespace(name: String!): Namespace @HasAccess(attributes: {resource: "namespaces", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "name"}) - - createFunction(name: String!, namespace: String!, params: FunctionMutationInput!): Function @HasAccess(attributes: {resource: "functions", verb: "create", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name", namespaceArg: "namespace"}) - updateFunction(name: String!, namespace: String!, params: FunctionMutationInput!): Function @HasAccess(attributes: {resource: "functions", verb: "create", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name", namespaceArg: "namespace"}) - deleteFunction(namespace: String!, function: FunctionMetadataInput!): FunctionMetadata @HasAccess(attributes: {resource: "functions", verb: "delete", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteManyFunctions(namespace: String!, functions: [FunctionMetadataInput!]!): [FunctionMetadata!] @HasAccess(attributes: {resource: "functions", verb: "delete", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -# Subscriptions - -type Subscription { - clusterAssetEvent: ClusterAssetEvent! @HasAccess(attributes: {resource: "clusterassets", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1"}) - assetEvent(namespace: String!): AssetEvent! @HasAccess(attributes: {resource: "assets", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - clusterAssetGroupEvent: ClusterAssetGroupEvent! @HasAccess(attributes: {resource: "clusterassetgroups", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1"}) - assetGroupEvent(namespace: String!): AssetGroupEvent! @HasAccess(attributes: {resource: "assetgroups", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - - serviceInstanceEvent(namespace: String!): ServiceInstanceEvent! @HasAccess(attributes: {resource: "serviceinstances", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceBindingEvent(namespace: String!): ServiceBindingEvent! @HasAccess(attributes: {resource: "servicebindings", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceBindingUsageEvent(namespace: String!, resourceKind: String, resourceName: String): ServiceBindingUsageEvent! @HasAccess(attributes: {resource: "servicebindingusages", verb: "watch", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - serviceBrokerEvent(namespace: String!): ServiceBrokerEvent! @HasAccess(attributes: {resource: "servicebrokers", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - clusterServiceBrokerEvent: ClusterServiceBrokerEvent! @HasAccess(attributes: {resource: "clusterservicebrokers", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1"}) - - applicationEvent: ApplicationEvent! @HasAccess(attributes: {resource: "applications", verb: "watch", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - - podEvent(namespace: String!): PodEvent! @HasAccess(attributes: {resource: "pods", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - deploymentEvent(namespace: String!): DeploymentEvent! @HasAccess(attributes: {resource: "deployments", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - serviceEvent(namespace: String!): ServiceEvent! @HasAccess(attributes: {resource: "services", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - configMapEvent(namespace: String!): ConfigMapEvent! @HasAccess(attributes: {resource: "configmaps", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - secretEvent(namespace: String!): SecretEvent! @HasAccess(attributes: {resource: "secrets", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - clusterAddonsConfigurationEvent: ClusterAddonsConfigurationEvent! @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "watch", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - addonsConfigurationEvent(namespace: String!): AddonsConfigurationEvent! @HasAccess(attributes: {resource: "addonsconfigurations", verb: "watch", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - - namespaceEvent(withSystemNamespaces: Boolean): NamespaceEvent! @HasAccess(attributes: {resource: "namespaces", verb: "watch", apiGroup: "", apiVersion: "v1"}) - - functionEvent(namespace: String!, functionName: String): FunctionEvent! @HasAccess(attributes: {resource: "functions", verb: "watch", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -# Schema - -schema { - query: Query - mutation: Mutation -} diff --git a/components/console-backend-service/internal/gqlschema/schema_gen.go b/components/console-backend-service/internal/gqlschema/schema_gen.go deleted file mode 100644 index f02bfd9b1558..000000000000 --- a/components/console-backend-service/internal/gqlschema/schema_gen.go +++ /dev/null @@ -1,57256 +0,0 @@ -// Code generated by github.com/99designs/gqlgen, DO NOT EDIT. - -package gqlschema - -import ( - "bytes" - "context" - "errors" - "fmt" - "io" - "strconv" - "sync" - "sync/atomic" - "time" - - "github.com/99designs/gqlgen/graphql" - "github.com/99designs/gqlgen/graphql/introspection" - "github.com/kyma-incubator/api-gateway/api/v1alpha1" - v1alpha13 "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1" - v1alpha11 "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - v1alpha12 "github.com/ory/hydra-maester/api/v1alpha1" - v1alpha15 "github.com/ory/oathkeeper-maester/api/v1alpha1" - gqlparser "github.com/vektah/gqlparser/v2" - "github.com/vektah/gqlparser/v2/ast" - v11 "k8s.io/api/core/v1" - v12 "k8s.io/api/rbac/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" - v1alpha14 "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - v13 "knative.dev/pkg/apis/duck/v1" -) - -// region ************************** generated!.gotpl ************************** - -// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface. -func NewExecutableSchema(cfg Config) graphql.ExecutableSchema { - return &executableSchema{ - resolvers: cfg.Resolvers, - directives: cfg.Directives, - complexity: cfg.Complexity, - } -} - -type Config struct { - Resolvers ResolverRoot - Directives DirectiveRoot - Complexity ComplexityRoot -} - -type ResolverRoot interface { - APIRule() APIRuleResolver - Application() ApplicationResolver - Asset() AssetResolver - AssetGroup() AssetGroupResolver - ClusterAsset() ClusterAssetResolver - ClusterAssetGroup() ClusterAssetGroupResolver - ClusterServiceClass() ClusterServiceClassResolver - ClusterServicePlan() ClusterServicePlanResolver - Deployment() DeploymentResolver - EventActivation() EventActivationResolver - LimitRange() LimitRangeResolver - LimitRangeItem() LimitRangeItemResolver - Mutation() MutationResolver - Namespace() NamespaceResolver - NamespaceListItem() NamespaceListItemResolver - OAuth2Client() OAuth2ClientResolver - Query() QueryResolver - ResourceQuota() ResourceQuotaResolver - ResourceQuotaSpec() ResourceQuotaSpecResolver - ServiceBinding() ServiceBindingResolver - ServiceBindingUsage() ServiceBindingUsageResolver - ServiceClass() ServiceClassResolver - ServiceInstance() ServiceInstanceResolver - ServicePlan() ServicePlanResolver - Subscription() SubscriptionResolver - Trigger() TriggerResolver - TriggerSpec() TriggerSpecResolver -} - -type DirectiveRoot struct { - HasAccess func(ctx context.Context, obj interface{}, next graphql.Resolver, attributes ResourceAttributes) (res interface{}, err error) -} - -type ComplexityRoot struct { - APIRule struct { - Generation func(childComplexity int) int - JSON func(childComplexity int) int - Name func(childComplexity int) int - OwnerSubscription func(childComplexity int) int - Spec func(childComplexity int) int - Status func(childComplexity int) int - } - - APIRuleAccessStrategy struct { - Config func(childComplexity int) int - Name func(childComplexity int) int - } - - APIRuleService struct { - Host func(childComplexity int) int - Name func(childComplexity int) int - Port func(childComplexity int) int - } - - APIRuleSpec struct { - Gateway func(childComplexity int) int - Rules func(childComplexity int) int - Service func(childComplexity int) int - } - - APIRuleStatus struct { - Code func(childComplexity int) int - Description func(childComplexity int) int - } - - APIRuleStatuses struct { - APIRuleStatus func(childComplexity int) int - AccessRuleStatus func(childComplexity int) int - VirtualServiceStatus func(childComplexity int) int - } - - AddonsConfiguration struct { - Labels func(childComplexity int) int - Name func(childComplexity int) int - Repositories func(childComplexity int) int - Status func(childComplexity int) int - Urls func(childComplexity int) int - } - - AddonsConfigurationEvent struct { - AddonsConfiguration func(childComplexity int) int - Type func(childComplexity int) int - } - - AddonsConfigurationRepository struct { - SecretRef func(childComplexity int) int - URL func(childComplexity int) int - } - - AddonsConfigurationStatus struct { - Phase func(childComplexity int) int - Repositories func(childComplexity int) int - } - - AddonsConfigurationStatusAddons struct { - Message func(childComplexity int) int - Name func(childComplexity int) int - Reason func(childComplexity int) int - Status func(childComplexity int) int - Version func(childComplexity int) int - } - - AddonsConfigurationStatusRepository struct { - Addons func(childComplexity int) int - Message func(childComplexity int) int - Reason func(childComplexity int) int - Status func(childComplexity int) int - URL func(childComplexity int) int - } - - APIRuleEvent struct { - APIRule func(childComplexity int) int - Type func(childComplexity int) int - } - - Application struct { - CompassMetadata func(childComplexity int) int - Description func(childComplexity int) int - EnabledInNamespaces func(childComplexity int) int - EnabledMappingServices func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Services func(childComplexity int) int - Status func(childComplexity int) int - } - - ApplicationEntry struct { - AccessLabel func(childComplexity int) int - GatewayURL func(childComplexity int) int - Type func(childComplexity int) int - } - - ApplicationEvent struct { - Application func(childComplexity int) int - Type func(childComplexity int) int - } - - ApplicationMapping struct { - AllServices func(childComplexity int) int - Application func(childComplexity int) int - Namespace func(childComplexity int) int - Services func(childComplexity int) int - } - - ApplicationMutationOutput struct { - Description func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - } - - ApplicationService struct { - DisplayName func(childComplexity int) int - Entries func(childComplexity int) int - ID func(childComplexity int) int - LongDescription func(childComplexity int) int - ProviderDisplayName func(childComplexity int) int - Tags func(childComplexity int) int - } - - Asset struct { - DisplayName func(childComplexity int) int - Files func(childComplexity int, filterExtensions []string) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Parameters func(childComplexity int) int - Status func(childComplexity int) int - Type func(childComplexity int) int - } - - AssetEvent struct { - Asset func(childComplexity int) int - Type func(childComplexity int) int - } - - AssetGroup struct { - Assets func(childComplexity int, types []string) int - Description func(childComplexity int) int - DisplayName func(childComplexity int) int - GroupName func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Status func(childComplexity int) int - } - - AssetGroupEvent struct { - AssetGroup func(childComplexity int) int - Type func(childComplexity int) int - } - - AssetGroupStatus struct { - Message func(childComplexity int) int - Phase func(childComplexity int) int - Reason func(childComplexity int) int - } - - AssetStatus struct { - Message func(childComplexity int) int - Phase func(childComplexity int) int - Reason func(childComplexity int) int - } - - BackendModule struct { - Name func(childComplexity int) int - } - - BebFilter struct { - EventSource func(childComplexity int) int - EventType func(childComplexity int) int - } - - BebFilters struct { - Dialect func(childComplexity int) int - Filters func(childComplexity int) int - } - - BindableResourcesOutputItem struct { - DisplayName func(childComplexity int) int - Kind func(childComplexity int) int - Resources func(childComplexity int) int - } - - ClusterAddonsConfigurationEvent struct { - AddonsConfiguration func(childComplexity int) int - Type func(childComplexity int) int - } - - ClusterAsset struct { - DisplayName func(childComplexity int) int - Files func(childComplexity int, filterExtensions []string) int - Name func(childComplexity int) int - Parameters func(childComplexity int) int - Status func(childComplexity int) int - Type func(childComplexity int) int - } - - ClusterAssetEvent struct { - ClusterAsset func(childComplexity int) int - Type func(childComplexity int) int - } - - ClusterAssetGroup struct { - Assets func(childComplexity int, types []string) int - Description func(childComplexity int) int - DisplayName func(childComplexity int) int - GroupName func(childComplexity int) int - Name func(childComplexity int) int - Status func(childComplexity int) int - } - - ClusterAssetGroupEvent struct { - ClusterAssetGroup func(childComplexity int) int - Type func(childComplexity int) int - } - - ClusterMicroFrontend struct { - Category func(childComplexity int) int - Name func(childComplexity int) int - NavigationNodes func(childComplexity int) int - Placement func(childComplexity int) int - PreloadURL func(childComplexity int) int - Version func(childComplexity int) int - ViewBaseURL func(childComplexity int) int - } - - ClusterRole struct { - Name func(childComplexity int) int - Rules func(childComplexity int) int - } - - ClusterRoleBinding struct { - Name func(childComplexity int) int - RoleRef func(childComplexity int) int - } - - ClusterRoleBindingEvent struct { - ClusterRoleBinding func(childComplexity int) int - Type func(childComplexity int) int - } - - ClusterServiceBroker struct { - CreationTimestamp func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Status func(childComplexity int) int - URL func(childComplexity int) int - } - - ClusterServiceBrokerEvent struct { - ClusterServiceBroker func(childComplexity int) int - Type func(childComplexity int) int - } - - ClusterServiceClass struct { - Activated func(childComplexity int, namespace *string) int - ClusterAssetGroup func(childComplexity int) int - CreationTimestamp func(childComplexity int) int - Description func(childComplexity int) int - DisplayName func(childComplexity int) int - DocumentationURL func(childComplexity int) int - ExternalName func(childComplexity int) int - ImageURL func(childComplexity int) int - Instances func(childComplexity int, namespace *string) int - Labels func(childComplexity int) int - LongDescription func(childComplexity int) int - Name func(childComplexity int) int - Plans func(childComplexity int) int - ProviderDisplayName func(childComplexity int) int - SupportURL func(childComplexity int) int - Tags func(childComplexity int) int - } - - ClusterServicePlan struct { - BindingCreateParameterSchema func(childComplexity int) int - ClusterAssetGroup func(childComplexity int) int - Description func(childComplexity int) int - DisplayName func(childComplexity int) int - ExternalName func(childComplexity int) int - InstanceCreateParameterSchema func(childComplexity int) int - Name func(childComplexity int) int - RelatedClusterServiceClassName func(childComplexity int) int - } - - Condition struct { - Message func(childComplexity int) int - Reason func(childComplexity int) int - Status func(childComplexity int) int - Type func(childComplexity int) int - } - - ConfigMap struct { - CreationTimestamp func(childComplexity int) int - JSON func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - } - - ConfigMapEvent struct { - ConfigMap func(childComplexity int) int - Type func(childComplexity int) int - } - - ConnectorService struct { - URL func(childComplexity int) int - } - - Container struct { - Image func(childComplexity int) int - Name func(childComplexity int) int - } - - ContainerState struct { - Message func(childComplexity int) int - Reason func(childComplexity int) int - State func(childComplexity int) int - } - - CreateServiceBindingOutput struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - ServiceInstanceName func(childComplexity int) int - } - - DeleteApplicationOutput struct { - Name func(childComplexity int) int - } - - DeleteServiceBindingOutput struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - } - - DeleteServiceBindingUsageOutput struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - } - - Deployment struct { - BoundServiceInstanceNames func(childComplexity int) int - Containers func(childComplexity int) int - CreationTimestamp func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Status func(childComplexity int) int - } - - DeploymentCondition struct { - LastTransitionTimestamp func(childComplexity int) int - LastUpdateTimestamp func(childComplexity int) int - Message func(childComplexity int) int - Reason func(childComplexity int) int - Status func(childComplexity int) int - Type func(childComplexity int) int - } - - DeploymentEvent struct { - Deployment func(childComplexity int) int - Type func(childComplexity int) int - } - - DeploymentStatus struct { - AvailableReplicas func(childComplexity int) int - Conditions func(childComplexity int) int - ReadyReplicas func(childComplexity int) int - Replicas func(childComplexity int) int - UpdatedReplicas func(childComplexity int) int - } - - EmsSubscriptionStatus struct { - LastFailedDelivery func(childComplexity int) int - LastFailedDeliveryReason func(childComplexity int) int - LastSuccessfulDelivery func(childComplexity int) int - SubscriptionStatus func(childComplexity int) int - SubscriptionStatusReason func(childComplexity int) int - } - - EnabledApplicationService struct { - DisplayName func(childComplexity int) int - Exist func(childComplexity int) int - ID func(childComplexity int) int - } - - EnvPrefix struct { - Name func(childComplexity int) int - } - - EventActivation struct { - DisplayName func(childComplexity int) int - Events func(childComplexity int) int - Name func(childComplexity int) int - SourceID func(childComplexity int) int - } - - EventActivationEvent struct { - Description func(childComplexity int) int - EventType func(childComplexity int) int - Schema func(childComplexity int) int - Version func(childComplexity int) int - } - - EventSubscription struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Spec func(childComplexity int) int - Status func(childComplexity int) int - } - - EventSubscriptionSpec struct { - Filter func(childComplexity int) int - ID func(childComplexity int) int - Protocol func(childComplexity int) int - ProtocolSettings func(childComplexity int) int - Sink func(childComplexity int) int - } - - EventSubscriptionStatus struct { - APIRuleName func(childComplexity int) int - Conditions func(childComplexity int) int - EmsSubscriptionStatus func(childComplexity int) int - Emshash func(childComplexity int) int - Ev2hash func(childComplexity int) int - ExternalSink func(childComplexity int) int - FailedActivation func(childComplexity int) int - Ready func(childComplexity int) int - } - - File struct { - Metadata func(childComplexity int) int - URL func(childComplexity int) int - } - - Filter struct { - Property func(childComplexity int) int - Type func(childComplexity int) int - Value func(childComplexity int) int - } - - Function struct { - BaseDir func(childComplexity int) int - BuildResources func(childComplexity int) int - Dependencies func(childComplexity int) int - Env func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Reference func(childComplexity int) int - Replicas func(childComplexity int) int - Resources func(childComplexity int) int - Runtime func(childComplexity int) int - Source func(childComplexity int) int - SourceType func(childComplexity int) int - Status func(childComplexity int) int - UID func(childComplexity int) int - } - - FunctionEnv struct { - Name func(childComplexity int) int - Value func(childComplexity int) int - ValueFrom func(childComplexity int) int - } - - FunctionEnvValueFrom struct { - Key func(childComplexity int) int - Name func(childComplexity int) int - Optional func(childComplexity int) int - Type func(childComplexity int) int - } - - FunctionEvent struct { - Function func(childComplexity int) int - Type func(childComplexity int) int - } - - FunctionMetadata struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - } - - FunctionReplicas struct { - Max func(childComplexity int) int - Min func(childComplexity int) int - } - - FunctionResources struct { - Limits func(childComplexity int) int - Requests func(childComplexity int) int - } - - FunctionStatus struct { - Message func(childComplexity int) int - Phase func(childComplexity int) int - Reason func(childComplexity int) int - } - - GitRepository struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Spec func(childComplexity int) int - } - - GitRepositorySpec struct { - Auth func(childComplexity int) int - URL func(childComplexity int) int - } - - LimitRange struct { - JSON func(childComplexity int) int - Name func(childComplexity int) int - Spec func(childComplexity int) int - } - - LimitRangeItem struct { - Default func(childComplexity int) int - DefaultRequest func(childComplexity int) int - Max func(childComplexity int) int - Type func(childComplexity int) int - } - - LimitRangeSpec struct { - Limits func(childComplexity int) int - } - - LoadBalancerIngress struct { - HostName func(childComplexity int) int - IP func(childComplexity int) int - } - - LoadBalancerStatus struct { - Ingress func(childComplexity int) int - } - - LocalObjectReference struct { - Kind func(childComplexity int) int - Name func(childComplexity int) int - } - - MicroFrontend struct { - Category func(childComplexity int) int - Name func(childComplexity int) int - NavigationNodes func(childComplexity int) int - Version func(childComplexity int) int - ViewBaseURL func(childComplexity int) int - } - - Mutation struct { - AddAddonsConfigurationRepository func(childComplexity int, name string, namespace string, repositories []*AddonsConfigurationRepositoryInput) int - AddAddonsConfigurationURLs func(childComplexity int, name string, namespace string, urls []string) int - AddClusterAddonsConfigurationRepository func(childComplexity int, name string, repositories []*AddonsConfigurationRepositoryInput) int - AddClusterAddonsConfigurationURLs func(childComplexity int, name string, urls []string) int - CreateAPIRule func(childComplexity int, name string, namespace string, params v1alpha1.APIRuleSpec) int - CreateAddonsConfiguration func(childComplexity int, name string, namespace string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) int - CreateApplication func(childComplexity int, name string, description *string, labels Labels) int - CreateClusterAddonsConfiguration func(childComplexity int, name string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) int - CreateClusterRoleBinding func(childComplexity int, name string, params ClusterRoleBindingInput) int - CreateFunction func(childComplexity int, name string, namespace string, params FunctionMutationInput) int - CreateGitRepository func(childComplexity int, namespace string, name string, spec v1alpha11.GitRepositorySpec) int - CreateLimitRange func(childComplexity int, namespace string, name string, limitRange LimitRangeInput) int - CreateManyTriggers func(childComplexity int, namespace string, triggers []*TriggerCreateInput, ownerRef []*v1.OwnerReference) int - CreateNamespace func(childComplexity int, name string, labels Labels) int - CreateOAuth2Client func(childComplexity int, name string, namespace string, params v1alpha12.OAuth2ClientSpec) int - CreateResource func(childComplexity int, namespace string, resource JSON) int - CreateResourceQuota func(childComplexity int, namespace string, name string, resourceQuota ResourceQuotaInput) int - CreateRoleBinding func(childComplexity int, name string, namespace string, params RoleBindingInput) int - CreateServiceBinding func(childComplexity int, serviceBindingName *string, serviceInstanceName string, namespace string, parameters JSON) int - CreateServiceBindingUsage func(childComplexity int, namespace string, createServiceBindingUsageInput *CreateServiceBindingUsageInput) int - CreateServiceInstance func(childComplexity int, namespace string, params ServiceInstanceCreateInput) int - CreateSubscription func(childComplexity int, name string, namespace string, params EventSubscriptionSpecInput) int - CreateTrigger func(childComplexity int, namespace string, trigger TriggerCreateInput, ownerRef []*v1.OwnerReference) int - DeleteAPIRule func(childComplexity int, name string, namespace string) int - DeleteAddonsConfiguration func(childComplexity int, name string, namespace string) int - DeleteApplication func(childComplexity int, name string) int - DeleteClusterAddonsConfiguration func(childComplexity int, name string) int - DeleteClusterRoleBinding func(childComplexity int, name string) int - DeleteConfigMap func(childComplexity int, name string, namespace string) int - DeleteFunction func(childComplexity int, namespace string, function FunctionMetadataInput) int - DeleteGitRepository func(childComplexity int, namespace string, name string) int - DeleteManyFunctions func(childComplexity int, namespace string, functions []*FunctionMetadataInput) int - DeleteManyTriggers func(childComplexity int, namespace string, triggerNames []string) int - DeleteNamespace func(childComplexity int, name string) int - DeleteOAuth2Client func(childComplexity int, name string, namespace string) int - DeletePod func(childComplexity int, name string, namespace string) int - DeleteReplicaSet func(childComplexity int, name string, namespace string) int - DeleteRoleBinding func(childComplexity int, namespace string, name string) int - DeleteSecret func(childComplexity int, name string, namespace string) int - DeleteService func(childComplexity int, name string, namespace string) int - DeleteServiceBinding func(childComplexity int, serviceBindingName string, namespace string) int - DeleteServiceBindingUsage func(childComplexity int, serviceBindingUsageName string, namespace string) int - DeleteServiceBindingUsages func(childComplexity int, serviceBindingUsageNames []string, namespace string) int - DeleteServiceInstance func(childComplexity int, name string, namespace string) int - DeleteSubscription func(childComplexity int, name string, namespace string) int - DeleteTrigger func(childComplexity int, namespace string, triggerName string) int - DisableApplication func(childComplexity int, application string, namespace string) int - EnableApplication func(childComplexity int, application string, namespace string, allServices *bool, services []*ApplicationMappingService) int - OverloadApplication func(childComplexity int, application string, namespace string, allServices *bool, services []*ApplicationMappingService) int - RemoveAddonsConfigurationRepository func(childComplexity int, name string, namespace string, urls []string) int - RemoveAddonsConfigurationURLs func(childComplexity int, name string, namespace string, urls []string) int - RemoveClusterAddonsConfigurationRepository func(childComplexity int, name string, urls []string) int - RemoveClusterAddonsConfigurationURLs func(childComplexity int, name string, urls []string) int - ResyncAddonsConfiguration func(childComplexity int, name string, namespace string) int - ResyncClusterAddonsConfiguration func(childComplexity int, name string) int - UpdateAPIRule func(childComplexity int, name string, namespace string, generation int, params v1alpha1.APIRuleSpec) int - UpdateAddonsConfiguration func(childComplexity int, name string, namespace string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) int - UpdateApplication func(childComplexity int, name string, description *string, labels Labels) int - UpdateClusterAddonsConfiguration func(childComplexity int, name string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) int - UpdateConfigMap func(childComplexity int, name string, namespace string, configMap JSON) int - UpdateFunction func(childComplexity int, name string, namespace string, params FunctionMutationInput) int - UpdateGitRepository func(childComplexity int, namespace string, name string, spec v1alpha11.GitRepositorySpec) int - UpdateLimitRange func(childComplexity int, namespace string, name string, json JSON) int - UpdateNamespace func(childComplexity int, name string, labels Labels) int - UpdateOAuth2Client func(childComplexity int, name string, namespace string, generation int, params v1alpha12.OAuth2ClientSpec) int - UpdatePod func(childComplexity int, name string, namespace string, pod JSON) int - UpdateReplicaSet func(childComplexity int, name string, namespace string, replicaSet JSON) int - UpdateResourceQuota func(childComplexity int, namespace string, name string, json JSON) int - UpdateSecret func(childComplexity int, name string, namespace string, secret JSON) int - UpdateService func(childComplexity int, name string, namespace string, service JSON) int - UpdateSubscription func(childComplexity int, name string, namespace string, params EventSubscriptionSpecInput) int - } - - Namespace struct { - Applications func(childComplexity int) int - Deployments func(childComplexity int, excludeFunctions *bool) int - IsSystemNamespace func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Pods func(childComplexity int) int - Status func(childComplexity int) int - } - - NamespaceEvent struct { - Namespace func(childComplexity int) int - Type func(childComplexity int) int - } - - NamespaceListItem struct { - ApplicationsCount func(childComplexity int) int - HealthyPodsCount func(childComplexity int) int - IsSystemNamespace func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - PodsCount func(childComplexity int) int - Status func(childComplexity int) int - } - - NamespaceMutationOutput struct { - Labels func(childComplexity int) int - Name func(childComplexity int) int - } - - NavigationNode struct { - ExternalLink func(childComplexity int) int - Label func(childComplexity int) int - NavigationPath func(childComplexity int) int - Order func(childComplexity int) int - RequiredPermissions func(childComplexity int) int - Settings func(childComplexity int) int - ShowInNavigation func(childComplexity int) int - ViewURL func(childComplexity int) int - } - - OAuth2Client struct { - Error func(childComplexity int) int - Generation func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Spec func(childComplexity int) int - } - - OAuth2ClientError struct { - Code func(childComplexity int) int - Description func(childComplexity int) int - } - - OAuth2ClientEvent struct { - Client func(childComplexity int) int - Type func(childComplexity int) int - } - - OAuth2ClientSpec struct { - GrantTypes func(childComplexity int) int - ResponseTypes func(childComplexity int) int - Scope func(childComplexity int) int - SecretName func(childComplexity int) int - } - - OwnerReference struct { - APIVersion func(childComplexity int) int - BlockOwnerDeletion func(childComplexity int) int - Controller func(childComplexity int) int - Kind func(childComplexity int) int - Name func(childComplexity int) int - UID func(childComplexity int) int - } - - Pod struct { - ContainerStates func(childComplexity int) int - CreationTimestamp func(childComplexity int) int - JSON func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - NodeName func(childComplexity int) int - RestartCount func(childComplexity int) int - Status func(childComplexity int) int - } - - PodEvent struct { - Pod func(childComplexity int) int - Type func(childComplexity int) int - } - - PolicyRule struct { - APIGroups func(childComplexity int) int - Resources func(childComplexity int) int - Verbs func(childComplexity int) int - } - - ProtocolSettings struct { - ContentMode func(childComplexity int) int - ExemptHandshake func(childComplexity int) int - Qos func(childComplexity int) int - WebhookAuth func(childComplexity int) int - } - - Query struct { - APIRule func(childComplexity int, name string, namespace string) int - APIRules func(childComplexity int, namespace string, serviceName *string, hostname *string) int - AddonsConfigurations func(childComplexity int, namespace string, first *int, offset *int) int - Application func(childComplexity int, name string) int - Applications func(childComplexity int, namespace *string, first *int, offset *int) int - BackendModules func(childComplexity int) int - BindableResources func(childComplexity int, namespace string) int - ClusterAddonsConfigurations func(childComplexity int, first *int, offset *int) int - ClusterMicroFrontends func(childComplexity int) int - ClusterRole func(childComplexity int, name string) int - ClusterRoleBindings func(childComplexity int) int - ClusterRoles func(childComplexity int) int - ClusterServiceBroker func(childComplexity int, name string) int - ClusterServiceBrokers func(childComplexity int, first *int, offset *int) int - ClusterServiceClass func(childComplexity int, name string) int - ClusterServiceClasses func(childComplexity int, first *int, offset *int) int - ConfigMap func(childComplexity int, name string, namespace string) int - ConfigMaps func(childComplexity int, namespace string, first *int, offset *int) int - ConnectorService func(childComplexity int, application string) int - Deployments func(childComplexity int, namespace string, excludeFunctions *bool) int - EventActivations func(childComplexity int, namespace string) int - EventSubscriptions func(childComplexity int, ownerName string, namespace string) int - Function func(childComplexity int, name string, namespace string) int - Functions func(childComplexity int, namespace string) int - GitRepositories func(childComplexity int, namespace string) int - GitRepository func(childComplexity int, namespace string, name string) int - LimitRanges func(childComplexity int, namespace string) int - MicroFrontends func(childComplexity int, namespace string) int - Namespace func(childComplexity int, name string) int - Namespaces func(childComplexity int, withSystemNamespaces *bool, withInactiveStatus *bool) int - OAuth2Client func(childComplexity int, name string, namespace string) int - OAuth2Clients func(childComplexity int, namespace string) int - Pod func(childComplexity int, name string, namespace string) int - Pods func(childComplexity int, namespace string, first *int, offset *int) int - ReplicaSet func(childComplexity int, name string, namespace string) int - ReplicaSets func(childComplexity int, namespace string, first *int, offset *int) int - ResourceQuotas func(childComplexity int, namespace string) int - Role func(childComplexity int, namespace string, name string) int - RoleBindings func(childComplexity int, namespace string) int - Roles func(childComplexity int, namespace string) int - Secret func(childComplexity int, name string, namespace string) int - Secrets func(childComplexity int, namespace string, first *int, offset *int) int - SelfSubjectRules func(childComplexity int, namespace *string) int - Service func(childComplexity int, name string, namespace string) int - ServiceBinding func(childComplexity int, name string, namespace string) int - ServiceBindingUsage func(childComplexity int, name string, namespace string) int - ServiceBindingUsages func(childComplexity int, namespace string, resourceKind *string, resourceName *string) int - ServiceBroker func(childComplexity int, name string, namespace string) int - ServiceBrokers func(childComplexity int, namespace string, first *int, offset *int) int - ServiceClass func(childComplexity int, namespace string, name string) int - ServiceClasses func(childComplexity int, namespace string, first *int, offset *int) int - ServiceInstance func(childComplexity int, name string, namespace string) int - ServiceInstances func(childComplexity int, namespace string, first *int, offset *int, status *InstanceStatusType) int - Services func(childComplexity int, namespace string, excludedLabels []string, first *int, offset *int) int - Triggers func(childComplexity int, namespace string, serviceName string) int - UsageKinds func(childComplexity int, first *int, offset *int) int - VersionInfo func(childComplexity int) int - } - - ReplicaSet struct { - CreationTimestamp func(childComplexity int) int - Images func(childComplexity int) int - JSON func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Pods func(childComplexity int) int - } - - RepositoryAuth struct { - SecretName func(childComplexity int) int - Type func(childComplexity int) int - } - - RequiredPermission struct { - APIGroup func(childComplexity int) int - Resource func(childComplexity int) int - Verbs func(childComplexity int) int - } - - ResourceLimits struct { - CPU func(childComplexity int) int - Memory func(childComplexity int) int - } - - ResourceQuota struct { - JSON func(childComplexity int) int - Name func(childComplexity int) int - Spec func(childComplexity int) int - } - - ResourceQuotaHard struct { - Limits func(childComplexity int) int - Pods func(childComplexity int) int - Requests func(childComplexity int) int - } - - ResourceQuotaSpec struct { - Hard func(childComplexity int) int - } - - ResourceRef struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - } - - ResourceRule struct { - APIGroups func(childComplexity int) int - Resources func(childComplexity int) int - Verbs func(childComplexity int) int - } - - ResourceType struct { - CPU func(childComplexity int) int - Memory func(childComplexity int) int - } - - ResourceValues struct { - CPU func(childComplexity int) int - Memory func(childComplexity int) int - } - - Role struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Rules func(childComplexity int) int - } - - RoleBinding struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - RoleRef func(childComplexity int) int - } - - RoleBindingEvent struct { - RoleBinding func(childComplexity int) int - Type func(childComplexity int) int - } - - RoleRef struct { - Kind func(childComplexity int) int - Name func(childComplexity int) int - } - - Rule struct { - AccessStrategies func(childComplexity int) int - Methods func(childComplexity int) int - Path func(childComplexity int) int - } - - Secret struct { - Annotations func(childComplexity int) int - CreationTime func(childComplexity int) int - Data func(childComplexity int) int - JSON func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Type func(childComplexity int) int - } - - SecretEvent struct { - Secret func(childComplexity int) int - Type func(childComplexity int) int - } - - Service struct { - ClusterIP func(childComplexity int) int - CreationTimestamp func(childComplexity int) int - JSON func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Ports func(childComplexity int) int - Status func(childComplexity int) int - UID func(childComplexity int) int - } - - ServiceBinding struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Parameters func(childComplexity int) int - Secret func(childComplexity int) int - ServiceInstanceName func(childComplexity int) int - Status func(childComplexity int) int - } - - ServiceBindingEvent struct { - ServiceBinding func(childComplexity int) int - Type func(childComplexity int) int - } - - ServiceBindingStatus struct { - Message func(childComplexity int) int - Reason func(childComplexity int) int - Type func(childComplexity int) int - } - - ServiceBindingUsage struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Parameters func(childComplexity int) int - ServiceBinding func(childComplexity int) int - Status func(childComplexity int) int - UsedBy func(childComplexity int) int - } - - ServiceBindingUsageEvent struct { - ServiceBindingUsage func(childComplexity int) int - Type func(childComplexity int) int - } - - ServiceBindingUsageParameters struct { - EnvPrefix func(childComplexity int) int - } - - ServiceBindingUsageStatus struct { - Message func(childComplexity int) int - Reason func(childComplexity int) int - Type func(childComplexity int) int - } - - ServiceBindings struct { - Items func(childComplexity int) int - Stats func(childComplexity int) int - } - - ServiceBindingsStats struct { - Failed func(childComplexity int) int - Pending func(childComplexity int) int - Ready func(childComplexity int) int - Unknown func(childComplexity int) int - } - - ServiceBroker struct { - CreationTimestamp func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Status func(childComplexity int) int - URL func(childComplexity int) int - } - - ServiceBrokerEvent struct { - ServiceBroker func(childComplexity int) int - Type func(childComplexity int) int - } - - ServiceBrokerStatus struct { - Message func(childComplexity int) int - Ready func(childComplexity int) int - Reason func(childComplexity int) int - } - - ServiceClass struct { - Activated func(childComplexity int) int - AssetGroup func(childComplexity int) int - ClusterAssetGroup func(childComplexity int) int - CreationTimestamp func(childComplexity int) int - Description func(childComplexity int) int - DisplayName func(childComplexity int) int - DocumentationURL func(childComplexity int) int - ExternalName func(childComplexity int) int - ImageURL func(childComplexity int) int - Instances func(childComplexity int) int - Labels func(childComplexity int) int - LongDescription func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Plans func(childComplexity int) int - ProviderDisplayName func(childComplexity int) int - SupportURL func(childComplexity int) int - Tags func(childComplexity int) int - } - - ServiceEvent struct { - Service func(childComplexity int) int - Type func(childComplexity int) int - } - - ServiceInstance struct { - Bindable func(childComplexity int) int - ClassReference func(childComplexity int) int - ClusterServiceClass func(childComplexity int) int - ClusterServicePlan func(childComplexity int) int - CreationTimestamp func(childComplexity int) int - Labels func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - PlanReference func(childComplexity int) int - PlanSpec func(childComplexity int) int - ServiceBindingUsages func(childComplexity int) int - ServiceBindings func(childComplexity int) int - ServiceClass func(childComplexity int) int - ServicePlan func(childComplexity int) int - Status func(childComplexity int) int - } - - ServiceInstanceEvent struct { - ServiceInstance func(childComplexity int) int - Type func(childComplexity int) int - } - - ServiceInstanceResourceRef struct { - ClusterWide func(childComplexity int) int - DisplayName func(childComplexity int) int - Name func(childComplexity int) int - } - - ServiceInstanceStatus struct { - Message func(childComplexity int) int - Reason func(childComplexity int) int - Type func(childComplexity int) int - } - - ServicePlan struct { - AssetGroup func(childComplexity int) int - BindingCreateParameterSchema func(childComplexity int) int - ClusterAssetGroup func(childComplexity int) int - Description func(childComplexity int) int - DisplayName func(childComplexity int) int - ExternalName func(childComplexity int) int - InstanceCreateParameterSchema func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - RelatedServiceClassName func(childComplexity int) int - } - - ServicePort struct { - Name func(childComplexity int) int - NodePort func(childComplexity int) int - Port func(childComplexity int) int - ServiceProtocol func(childComplexity int) int - TargetPort func(childComplexity int) int - } - - ServiceStatus struct { - LoadBalancer func(childComplexity int) int - } - - Subscriber struct { - Ref func(childComplexity int) int - } - - SubscriberRef struct { - APIVersion func(childComplexity int) int - Kind func(childComplexity int) int - Name func(childComplexity int) int - Namespace func(childComplexity int) int - } - - Subscription struct { - APIRuleEvent func(childComplexity int, namespace string, serviceName *string) int - AddonsConfigurationEvent func(childComplexity int, namespace string) int - ApplicationEvent func(childComplexity int) int - AssetEvent func(childComplexity int, namespace string) int - AssetGroupEvent func(childComplexity int, namespace string) int - ClusterAddonsConfigurationEvent func(childComplexity int) int - ClusterAssetEvent func(childComplexity int) int - ClusterAssetGroupEvent func(childComplexity int) int - ClusterRoleBindingEvent func(childComplexity int) int - ClusterServiceBrokerEvent func(childComplexity int) int - ConfigMapEvent func(childComplexity int, namespace string) int - DeploymentEvent func(childComplexity int, namespace string) int - FunctionEvent func(childComplexity int, namespace string, functionName *string) int - NamespaceEvent func(childComplexity int, withSystemNamespaces *bool) int - OAuth2ClientEvent func(childComplexity int, namespace string) int - PodEvent func(childComplexity int, namespace string) int - RoleBindingEvent func(childComplexity int, namespace string) int - SecretEvent func(childComplexity int, namespace string) int - ServiceBindingEvent func(childComplexity int, namespace string) int - ServiceBindingUsageEvent func(childComplexity int, namespace string, resourceKind *string, resourceName *string) int - ServiceBrokerEvent func(childComplexity int, namespace string) int - ServiceEvent func(childComplexity int, namespace string) int - ServiceInstanceEvent func(childComplexity int, namespace string) int - SubscriptionSubscription func(childComplexity int, ownerName string, namespace string) int - TriggerEvent func(childComplexity int, namespace string, serviceName string) int - } - - SubscriptionEvent struct { - Subscription func(childComplexity int) int - Type func(childComplexity int) int - } - - Trigger struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - Spec func(childComplexity int) int - Status func(childComplexity int) int - } - - TriggerEvent struct { - Trigger func(childComplexity int) int - Type func(childComplexity int) int - } - - TriggerSpec struct { - Broker func(childComplexity int) int - Filter func(childComplexity int) int - Path func(childComplexity int) int - Port func(childComplexity int) int - Subscriber func(childComplexity int) int - } - - TriggerStatus struct { - Reason func(childComplexity int) int - Status func(childComplexity int) int - } - - UsageKind struct { - DisplayName func(childComplexity int) int - Group func(childComplexity int) int - Kind func(childComplexity int) int - Name func(childComplexity int) int - Version func(childComplexity int) int - } - - UsageKindResource struct { - Name func(childComplexity int) int - Namespace func(childComplexity int) int - } - - VersionInfo struct { - KymaVersion func(childComplexity int) int - } - - WebhookAuth struct { - ClientId func(childComplexity int) int - ClientSecret func(childComplexity int) int - GrantType func(childComplexity int) int - Scope func(childComplexity int) int - TokenUrl func(childComplexity int) int - Type func(childComplexity int) int - } - - CompassMetadata struct { - ApplicationID func(childComplexity int) int - } - - EnabledMappingService struct { - AllServices func(childComplexity int) int - Namespace func(childComplexity int) int - Services func(childComplexity int) int - } -} - -type APIRuleResolver interface { - JSON(ctx context.Context, obj *v1alpha1.APIRule) (JSON, error) - OwnerSubscription(ctx context.Context, obj *v1alpha1.APIRule) (*v1.OwnerReference, error) -} -type ApplicationResolver interface { - EnabledInNamespaces(ctx context.Context, obj *Application) ([]string, error) - EnabledMappingServices(ctx context.Context, obj *Application) ([]*EnabledMappingService, error) - Status(ctx context.Context, obj *Application) (ApplicationStatus, error) -} -type AssetResolver interface { - Files(ctx context.Context, obj *Asset, filterExtensions []string) ([]*File, error) -} -type AssetGroupResolver interface { - Assets(ctx context.Context, obj *AssetGroup, types []string) ([]*Asset, error) -} -type ClusterAssetResolver interface { - Files(ctx context.Context, obj *ClusterAsset, filterExtensions []string) ([]*File, error) -} -type ClusterAssetGroupResolver interface { - Assets(ctx context.Context, obj *ClusterAssetGroup, types []string) ([]*ClusterAsset, error) -} -type ClusterServiceClassResolver interface { - Plans(ctx context.Context, obj *ClusterServiceClass) ([]*ClusterServicePlan, error) - Activated(ctx context.Context, obj *ClusterServiceClass, namespace *string) (bool, error) - Instances(ctx context.Context, obj *ClusterServiceClass, namespace *string) ([]*ServiceInstance, error) - ClusterAssetGroup(ctx context.Context, obj *ClusterServiceClass) (*ClusterAssetGroup, error) -} -type ClusterServicePlanResolver interface { - ClusterAssetGroup(ctx context.Context, obj *ClusterServicePlan) (*ClusterAssetGroup, error) -} -type DeploymentResolver interface { - BoundServiceInstanceNames(ctx context.Context, obj *Deployment) ([]string, error) -} -type EventActivationResolver interface { - Events(ctx context.Context, obj *EventActivation) ([]*EventActivationEvent, error) -} -type LimitRangeResolver interface { - JSON(ctx context.Context, obj *v11.LimitRange) (JSON, error) -} -type LimitRangeItemResolver interface { - Max(ctx context.Context, obj *v11.LimitRangeItem) (*ResourceLimits, error) - Default(ctx context.Context, obj *v11.LimitRangeItem) (*ResourceLimits, error) - DefaultRequest(ctx context.Context, obj *v11.LimitRangeItem) (*ResourceLimits, error) -} -type MutationResolver interface { - CreateResource(ctx context.Context, namespace string, resource JSON) (JSON, error) - CreateServiceInstance(ctx context.Context, namespace string, params ServiceInstanceCreateInput) (*ServiceInstance, error) - DeleteServiceInstance(ctx context.Context, name string, namespace string) (*ServiceInstance, error) - CreateServiceBinding(ctx context.Context, serviceBindingName *string, serviceInstanceName string, namespace string, parameters JSON) (*CreateServiceBindingOutput, error) - DeleteServiceBinding(ctx context.Context, serviceBindingName string, namespace string) (*DeleteServiceBindingOutput, error) - CreateServiceBindingUsage(ctx context.Context, namespace string, createServiceBindingUsageInput *CreateServiceBindingUsageInput) (*ServiceBindingUsage, error) - DeleteServiceBindingUsage(ctx context.Context, serviceBindingUsageName string, namespace string) (*DeleteServiceBindingUsageOutput, error) - DeleteServiceBindingUsages(ctx context.Context, serviceBindingUsageNames []string, namespace string) ([]*DeleteServiceBindingUsageOutput, error) - CreateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) (*AddonsConfiguration, error) - UpdateClusterAddonsConfiguration(ctx context.Context, name string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) (*AddonsConfiguration, error) - DeleteClusterAddonsConfiguration(ctx context.Context, name string) (*AddonsConfiguration, error) - AddClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*AddonsConfiguration, error) - RemoveClusterAddonsConfigurationURLs(ctx context.Context, name string, urls []string) (*AddonsConfiguration, error) - AddClusterAddonsConfigurationRepository(ctx context.Context, name string, repositories []*AddonsConfigurationRepositoryInput) (*AddonsConfiguration, error) - RemoveClusterAddonsConfigurationRepository(ctx context.Context, name string, urls []string) (*AddonsConfiguration, error) - ResyncClusterAddonsConfiguration(ctx context.Context, name string) (*AddonsConfiguration, error) - CreateAddonsConfiguration(ctx context.Context, name string, namespace string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) (*AddonsConfiguration, error) - UpdateAddonsConfiguration(ctx context.Context, name string, namespace string, repositories []*AddonsConfigurationRepositoryInput, urls []string, labels Labels) (*AddonsConfiguration, error) - DeleteAddonsConfiguration(ctx context.Context, name string, namespace string) (*AddonsConfiguration, error) - AddAddonsConfigurationURLs(ctx context.Context, name string, namespace string, urls []string) (*AddonsConfiguration, error) - RemoveAddonsConfigurationURLs(ctx context.Context, name string, namespace string, urls []string) (*AddonsConfiguration, error) - AddAddonsConfigurationRepository(ctx context.Context, name string, namespace string, repositories []*AddonsConfigurationRepositoryInput) (*AddonsConfiguration, error) - RemoveAddonsConfigurationRepository(ctx context.Context, name string, namespace string, urls []string) (*AddonsConfiguration, error) - ResyncAddonsConfiguration(ctx context.Context, name string, namespace string) (*AddonsConfiguration, error) - CreateApplication(ctx context.Context, name string, description *string, labels Labels) (*ApplicationMutationOutput, error) - UpdateApplication(ctx context.Context, name string, description *string, labels Labels) (*ApplicationMutationOutput, error) - DeleteApplication(ctx context.Context, name string) (*DeleteApplicationOutput, error) - EnableApplication(ctx context.Context, application string, namespace string, allServices *bool, services []*ApplicationMappingService) (*ApplicationMapping, error) - OverloadApplication(ctx context.Context, application string, namespace string, allServices *bool, services []*ApplicationMappingService) (*ApplicationMapping, error) - DisableApplication(ctx context.Context, application string, namespace string) (*ApplicationMapping, error) - UpdatePod(ctx context.Context, name string, namespace string, pod JSON) (*Pod, error) - DeletePod(ctx context.Context, name string, namespace string) (*Pod, error) - UpdateSecret(ctx context.Context, name string, namespace string, secret JSON) (*Secret, error) - DeleteSecret(ctx context.Context, name string, namespace string) (*Secret, error) - UpdateReplicaSet(ctx context.Context, name string, namespace string, replicaSet JSON) (*ReplicaSet, error) - DeleteReplicaSet(ctx context.Context, name string, namespace string) (*ReplicaSet, error) - UpdateConfigMap(ctx context.Context, name string, namespace string, configMap JSON) (*ConfigMap, error) - DeleteConfigMap(ctx context.Context, name string, namespace string) (*ConfigMap, error) - UpdateService(ctx context.Context, name string, namespace string, service JSON) (*Service, error) - DeleteService(ctx context.Context, name string, namespace string) (*Service, error) - CreateNamespace(ctx context.Context, name string, labels Labels) (*NamespaceMutationOutput, error) - UpdateNamespace(ctx context.Context, name string, labels Labels) (*NamespaceMutationOutput, error) - DeleteNamespace(ctx context.Context, name string) (*Namespace, error) - CreateFunction(ctx context.Context, name string, namespace string, params FunctionMutationInput) (*Function, error) - UpdateFunction(ctx context.Context, name string, namespace string, params FunctionMutationInput) (*Function, error) - DeleteFunction(ctx context.Context, namespace string, function FunctionMetadataInput) (*FunctionMetadata, error) - DeleteManyFunctions(ctx context.Context, namespace string, functions []*FunctionMetadataInput) ([]*FunctionMetadata, error) - CreateAPIRule(ctx context.Context, name string, namespace string, params v1alpha1.APIRuleSpec) (*v1alpha1.APIRule, error) - UpdateAPIRule(ctx context.Context, name string, namespace string, generation int, params v1alpha1.APIRuleSpec) (*v1alpha1.APIRule, error) - DeleteAPIRule(ctx context.Context, name string, namespace string) (*v1alpha1.APIRule, error) - CreateSubscription(ctx context.Context, name string, namespace string, params EventSubscriptionSpecInput) (*v1alpha13.Subscription, error) - UpdateSubscription(ctx context.Context, name string, namespace string, params EventSubscriptionSpecInput) (*v1alpha13.Subscription, error) - DeleteSubscription(ctx context.Context, name string, namespace string) (*v1alpha13.Subscription, error) - CreateTrigger(ctx context.Context, namespace string, trigger TriggerCreateInput, ownerRef []*v1.OwnerReference) (*v1alpha14.Trigger, error) - CreateManyTriggers(ctx context.Context, namespace string, triggers []*TriggerCreateInput, ownerRef []*v1.OwnerReference) ([]*v1alpha14.Trigger, error) - DeleteTrigger(ctx context.Context, namespace string, triggerName string) (*v1alpha14.Trigger, error) - DeleteManyTriggers(ctx context.Context, namespace string, triggerNames []string) ([]*v1alpha14.Trigger, error) - CreateLimitRange(ctx context.Context, namespace string, name string, limitRange LimitRangeInput) (*v11.LimitRange, error) - UpdateLimitRange(ctx context.Context, namespace string, name string, json JSON) (*v11.LimitRange, error) - CreateResourceQuota(ctx context.Context, namespace string, name string, resourceQuota ResourceQuotaInput) (*v11.ResourceQuota, error) - UpdateResourceQuota(ctx context.Context, namespace string, name string, json JSON) (*v11.ResourceQuota, error) - CreateOAuth2Client(ctx context.Context, name string, namespace string, params v1alpha12.OAuth2ClientSpec) (*v1alpha12.OAuth2Client, error) - UpdateOAuth2Client(ctx context.Context, name string, namespace string, generation int, params v1alpha12.OAuth2ClientSpec) (*v1alpha12.OAuth2Client, error) - DeleteOAuth2Client(ctx context.Context, name string, namespace string) (*v1alpha12.OAuth2Client, error) - CreateRoleBinding(ctx context.Context, name string, namespace string, params RoleBindingInput) (*v12.RoleBinding, error) - DeleteRoleBinding(ctx context.Context, namespace string, name string) (*v12.RoleBinding, error) - CreateClusterRoleBinding(ctx context.Context, name string, params ClusterRoleBindingInput) (*v12.ClusterRoleBinding, error) - DeleteClusterRoleBinding(ctx context.Context, name string) (*v12.ClusterRoleBinding, error) - CreateGitRepository(ctx context.Context, namespace string, name string, spec v1alpha11.GitRepositorySpec) (*v1alpha11.GitRepository, error) - UpdateGitRepository(ctx context.Context, namespace string, name string, spec v1alpha11.GitRepositorySpec) (*v1alpha11.GitRepository, error) - DeleteGitRepository(ctx context.Context, namespace string, name string) (*v1alpha11.GitRepository, error) -} -type NamespaceResolver interface { - Pods(ctx context.Context, obj *Namespace) ([]*Pod, error) - Deployments(ctx context.Context, obj *Namespace, excludeFunctions *bool) ([]*Deployment, error) - Applications(ctx context.Context, obj *Namespace) ([]string, error) -} -type NamespaceListItemResolver interface { - PodsCount(ctx context.Context, obj *NamespaceListItem) (int, error) - HealthyPodsCount(ctx context.Context, obj *NamespaceListItem) (int, error) - ApplicationsCount(ctx context.Context, obj *NamespaceListItem) (*int, error) -} -type OAuth2ClientResolver interface { - Error(ctx context.Context, obj *v1alpha12.OAuth2Client) (*v1alpha12.ReconciliationError, error) -} -type QueryResolver interface { - ServiceInstance(ctx context.Context, name string, namespace string) (*ServiceInstance, error) - ServiceInstances(ctx context.Context, namespace string, first *int, offset *int, status *InstanceStatusType) ([]*ServiceInstance, error) - ClusterServiceClasses(ctx context.Context, first *int, offset *int) ([]*ClusterServiceClass, error) - ClusterServiceClass(ctx context.Context, name string) (*ClusterServiceClass, error) - ServiceClasses(ctx context.Context, namespace string, first *int, offset *int) ([]*ServiceClass, error) - ServiceClass(ctx context.Context, namespace string, name string) (*ServiceClass, error) - ClusterServiceBrokers(ctx context.Context, first *int, offset *int) ([]*ClusterServiceBroker, error) - ClusterServiceBroker(ctx context.Context, name string) (*ClusterServiceBroker, error) - ServiceBrokers(ctx context.Context, namespace string, first *int, offset *int) ([]*ServiceBroker, error) - ServiceBroker(ctx context.Context, name string, namespace string) (*ServiceBroker, error) - ServiceBindingUsage(ctx context.Context, name string, namespace string) (*ServiceBindingUsage, error) - ServiceBindingUsages(ctx context.Context, namespace string, resourceKind *string, resourceName *string) ([]*ServiceBindingUsage, error) - ServiceBinding(ctx context.Context, name string, namespace string) (*ServiceBinding, error) - UsageKinds(ctx context.Context, first *int, offset *int) ([]*UsageKind, error) - ClusterAddonsConfigurations(ctx context.Context, first *int, offset *int) ([]*AddonsConfiguration, error) - AddonsConfigurations(ctx context.Context, namespace string, first *int, offset *int) ([]*AddonsConfiguration, error) - BindableResources(ctx context.Context, namespace string) ([]*BindableResourcesOutputItem, error) - Application(ctx context.Context, name string) (*Application, error) - Applications(ctx context.Context, namespace *string, first *int, offset *int) ([]*Application, error) - ConnectorService(ctx context.Context, application string) (*ConnectorService, error) - Namespaces(ctx context.Context, withSystemNamespaces *bool, withInactiveStatus *bool) ([]*NamespaceListItem, error) - Namespace(ctx context.Context, name string) (*Namespace, error) - Deployments(ctx context.Context, namespace string, excludeFunctions *bool) ([]*Deployment, error) - VersionInfo(ctx context.Context) (*VersionInfo, error) - Pod(ctx context.Context, name string, namespace string) (*Pod, error) - Pods(ctx context.Context, namespace string, first *int, offset *int) ([]*Pod, error) - Service(ctx context.Context, name string, namespace string) (*Service, error) - Services(ctx context.Context, namespace string, excludedLabels []string, first *int, offset *int) ([]*Service, error) - ConfigMap(ctx context.Context, name string, namespace string) (*ConfigMap, error) - ConfigMaps(ctx context.Context, namespace string, first *int, offset *int) ([]*ConfigMap, error) - ReplicaSet(ctx context.Context, name string, namespace string) (*ReplicaSet, error) - ReplicaSets(ctx context.Context, namespace string, first *int, offset *int) ([]*ReplicaSet, error) - EventActivations(ctx context.Context, namespace string) ([]*EventActivation, error) - BackendModules(ctx context.Context) ([]*BackendModule, error) - Secret(ctx context.Context, name string, namespace string) (*Secret, error) - Secrets(ctx context.Context, namespace string, first *int, offset *int) ([]*Secret, error) - MicroFrontends(ctx context.Context, namespace string) ([]*MicroFrontend, error) - ClusterMicroFrontends(ctx context.Context) ([]*ClusterMicroFrontend, error) - SelfSubjectRules(ctx context.Context, namespace *string) ([]*ResourceRule, error) - Function(ctx context.Context, name string, namespace string) (*Function, error) - Functions(ctx context.Context, namespace string) ([]*Function, error) - APIRules(ctx context.Context, namespace string, serviceName *string, hostname *string) ([]*v1alpha1.APIRule, error) - APIRule(ctx context.Context, name string, namespace string) (*v1alpha1.APIRule, error) - EventSubscriptions(ctx context.Context, ownerName string, namespace string) ([]*v1alpha13.Subscription, error) - Triggers(ctx context.Context, namespace string, serviceName string) ([]*v1alpha14.Trigger, error) - LimitRanges(ctx context.Context, namespace string) ([]*v11.LimitRange, error) - ResourceQuotas(ctx context.Context, namespace string) ([]*v11.ResourceQuota, error) - OAuth2Clients(ctx context.Context, namespace string) ([]*v1alpha12.OAuth2Client, error) - OAuth2Client(ctx context.Context, name string, namespace string) (*v1alpha12.OAuth2Client, error) - Roles(ctx context.Context, namespace string) ([]*v12.Role, error) - Role(ctx context.Context, namespace string, name string) (*v12.Role, error) - ClusterRoles(ctx context.Context) ([]*v12.ClusterRole, error) - ClusterRole(ctx context.Context, name string) (*v12.ClusterRole, error) - RoleBindings(ctx context.Context, namespace string) ([]*v12.RoleBinding, error) - ClusterRoleBindings(ctx context.Context) ([]*v12.ClusterRoleBinding, error) - GitRepositories(ctx context.Context, namespace string) ([]*v1alpha11.GitRepository, error) - GitRepository(ctx context.Context, namespace string, name string) (*v1alpha11.GitRepository, error) -} -type ResourceQuotaResolver interface { - JSON(ctx context.Context, obj *v11.ResourceQuota) (JSON, error) -} -type ResourceQuotaSpecResolver interface { - Hard(ctx context.Context, obj *v11.ResourceQuotaSpec) (*ResourceQuotaHard, error) -} -type ServiceBindingResolver interface { - Secret(ctx context.Context, obj *ServiceBinding) (*Secret, error) -} -type ServiceBindingUsageResolver interface { - ServiceBinding(ctx context.Context, obj *ServiceBindingUsage) (*ServiceBinding, error) -} -type ServiceClassResolver interface { - Plans(ctx context.Context, obj *ServiceClass) ([]*ServicePlan, error) - Activated(ctx context.Context, obj *ServiceClass) (bool, error) - Instances(ctx context.Context, obj *ServiceClass) ([]*ServiceInstance, error) - ClusterAssetGroup(ctx context.Context, obj *ServiceClass) (*ClusterAssetGroup, error) - AssetGroup(ctx context.Context, obj *ServiceClass) (*AssetGroup, error) -} -type ServiceInstanceResolver interface { - ServiceClass(ctx context.Context, obj *ServiceInstance) (*ServiceClass, error) - ClusterServiceClass(ctx context.Context, obj *ServiceInstance) (*ClusterServiceClass, error) - ServicePlan(ctx context.Context, obj *ServiceInstance) (*ServicePlan, error) - ClusterServicePlan(ctx context.Context, obj *ServiceInstance) (*ClusterServicePlan, error) - Bindable(ctx context.Context, obj *ServiceInstance) (bool, error) - ServiceBindings(ctx context.Context, obj *ServiceInstance) (*ServiceBindings, error) - ServiceBindingUsages(ctx context.Context, obj *ServiceInstance) ([]*ServiceBindingUsage, error) -} -type ServicePlanResolver interface { - ClusterAssetGroup(ctx context.Context, obj *ServicePlan) (*ClusterAssetGroup, error) - AssetGroup(ctx context.Context, obj *ServicePlan) (*AssetGroup, error) -} -type SubscriptionResolver interface { - ClusterAssetEvent(ctx context.Context) (<-chan *ClusterAssetEvent, error) - AssetEvent(ctx context.Context, namespace string) (<-chan *AssetEvent, error) - ClusterAssetGroupEvent(ctx context.Context) (<-chan *ClusterAssetGroupEvent, error) - AssetGroupEvent(ctx context.Context, namespace string) (<-chan *AssetGroupEvent, error) - ServiceInstanceEvent(ctx context.Context, namespace string) (<-chan *ServiceInstanceEvent, error) - ServiceBindingEvent(ctx context.Context, namespace string) (<-chan *ServiceBindingEvent, error) - ServiceBindingUsageEvent(ctx context.Context, namespace string, resourceKind *string, resourceName *string) (<-chan *ServiceBindingUsageEvent, error) - ServiceBrokerEvent(ctx context.Context, namespace string) (<-chan *ServiceBrokerEvent, error) - ClusterServiceBrokerEvent(ctx context.Context) (<-chan *ClusterServiceBrokerEvent, error) - ApplicationEvent(ctx context.Context) (<-chan *ApplicationEvent, error) - PodEvent(ctx context.Context, namespace string) (<-chan *PodEvent, error) - DeploymentEvent(ctx context.Context, namespace string) (<-chan *DeploymentEvent, error) - ServiceEvent(ctx context.Context, namespace string) (<-chan *ServiceEvent, error) - ConfigMapEvent(ctx context.Context, namespace string) (<-chan *ConfigMapEvent, error) - SecretEvent(ctx context.Context, namespace string) (<-chan *SecretEvent, error) - ClusterAddonsConfigurationEvent(ctx context.Context) (<-chan *ClusterAddonsConfigurationEvent, error) - AddonsConfigurationEvent(ctx context.Context, namespace string) (<-chan *AddonsConfigurationEvent, error) - NamespaceEvent(ctx context.Context, withSystemNamespaces *bool) (<-chan *NamespaceEvent, error) - FunctionEvent(ctx context.Context, namespace string, functionName *string) (<-chan *FunctionEvent, error) - APIRuleEvent(ctx context.Context, namespace string, serviceName *string) (<-chan *APIRuleEvent, error) - SubscriptionSubscription(ctx context.Context, ownerName string, namespace string) (<-chan *SubscriptionEvent, error) - TriggerEvent(ctx context.Context, namespace string, serviceName string) (<-chan *TriggerEvent, error) - OAuth2ClientEvent(ctx context.Context, namespace string) (<-chan *OAuth2ClientEvent, error) - RoleBindingEvent(ctx context.Context, namespace string) (<-chan *RoleBindingEvent, error) - ClusterRoleBindingEvent(ctx context.Context) (<-chan *ClusterRoleBindingEvent, error) -} -type TriggerResolver interface { - Status(ctx context.Context, obj *v1alpha14.Trigger) (*TriggerStatus, error) -} -type TriggerSpecResolver interface { - Filter(ctx context.Context, obj *v1alpha14.TriggerSpec) (JSON, error) - Port(ctx context.Context, obj *v1alpha14.TriggerSpec) (uint32, error) - Path(ctx context.Context, obj *v1alpha14.TriggerSpec) (string, error) -} - -type executableSchema struct { - resolvers ResolverRoot - directives DirectiveRoot - complexity ComplexityRoot -} - -func (e *executableSchema) Schema() *ast.Schema { - return parsedSchema -} - -func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]interface{}) (int, bool) { - ec := executionContext{nil, e} - _ = ec - switch typeName + "." + field { - - case "APIRule.generation": - if e.complexity.APIRule.Generation == nil { - break - } - - return e.complexity.APIRule.Generation(childComplexity), true - - case "APIRule.json": - if e.complexity.APIRule.JSON == nil { - break - } - - return e.complexity.APIRule.JSON(childComplexity), true - - case "APIRule.name": - if e.complexity.APIRule.Name == nil { - break - } - - return e.complexity.APIRule.Name(childComplexity), true - - case "APIRule.ownerSubscription": - if e.complexity.APIRule.OwnerSubscription == nil { - break - } - - return e.complexity.APIRule.OwnerSubscription(childComplexity), true - - case "APIRule.spec": - if e.complexity.APIRule.Spec == nil { - break - } - - return e.complexity.APIRule.Spec(childComplexity), true - - case "APIRule.status": - if e.complexity.APIRule.Status == nil { - break - } - - return e.complexity.APIRule.Status(childComplexity), true - - case "APIRuleAccessStrategy.config": - if e.complexity.APIRuleAccessStrategy.Config == nil { - break - } - - return e.complexity.APIRuleAccessStrategy.Config(childComplexity), true - - case "APIRuleAccessStrategy.name": - if e.complexity.APIRuleAccessStrategy.Name == nil { - break - } - - return e.complexity.APIRuleAccessStrategy.Name(childComplexity), true - - case "APIRuleService.host": - if e.complexity.APIRuleService.Host == nil { - break - } - - return e.complexity.APIRuleService.Host(childComplexity), true - - case "APIRuleService.name": - if e.complexity.APIRuleService.Name == nil { - break - } - - return e.complexity.APIRuleService.Name(childComplexity), true - - case "APIRuleService.port": - if e.complexity.APIRuleService.Port == nil { - break - } - - return e.complexity.APIRuleService.Port(childComplexity), true - - case "APIRuleSpec.gateway": - if e.complexity.APIRuleSpec.Gateway == nil { - break - } - - return e.complexity.APIRuleSpec.Gateway(childComplexity), true - - case "APIRuleSpec.rules": - if e.complexity.APIRuleSpec.Rules == nil { - break - } - - return e.complexity.APIRuleSpec.Rules(childComplexity), true - - case "APIRuleSpec.service": - if e.complexity.APIRuleSpec.Service == nil { - break - } - - return e.complexity.APIRuleSpec.Service(childComplexity), true - - case "APIRuleStatus.code": - if e.complexity.APIRuleStatus.Code == nil { - break - } - - return e.complexity.APIRuleStatus.Code(childComplexity), true - - case "APIRuleStatus.description": - if e.complexity.APIRuleStatus.Description == nil { - break - } - - return e.complexity.APIRuleStatus.Description(childComplexity), true - - case "APIRuleStatuses.apiRuleStatus": - if e.complexity.APIRuleStatuses.APIRuleStatus == nil { - break - } - - return e.complexity.APIRuleStatuses.APIRuleStatus(childComplexity), true - - case "APIRuleStatuses.accessRuleStatus": - if e.complexity.APIRuleStatuses.AccessRuleStatus == nil { - break - } - - return e.complexity.APIRuleStatuses.AccessRuleStatus(childComplexity), true - - case "APIRuleStatuses.virtualServiceStatus": - if e.complexity.APIRuleStatuses.VirtualServiceStatus == nil { - break - } - - return e.complexity.APIRuleStatuses.VirtualServiceStatus(childComplexity), true - - case "AddonsConfiguration.labels": - if e.complexity.AddonsConfiguration.Labels == nil { - break - } - - return e.complexity.AddonsConfiguration.Labels(childComplexity), true - - case "AddonsConfiguration.name": - if e.complexity.AddonsConfiguration.Name == nil { - break - } - - return e.complexity.AddonsConfiguration.Name(childComplexity), true - - case "AddonsConfiguration.repositories": - if e.complexity.AddonsConfiguration.Repositories == nil { - break - } - - return e.complexity.AddonsConfiguration.Repositories(childComplexity), true - - case "AddonsConfiguration.status": - if e.complexity.AddonsConfiguration.Status == nil { - break - } - - return e.complexity.AddonsConfiguration.Status(childComplexity), true - - case "AddonsConfiguration.urls": - if e.complexity.AddonsConfiguration.Urls == nil { - break - } - - return e.complexity.AddonsConfiguration.Urls(childComplexity), true - - case "AddonsConfigurationEvent.addonsConfiguration": - if e.complexity.AddonsConfigurationEvent.AddonsConfiguration == nil { - break - } - - return e.complexity.AddonsConfigurationEvent.AddonsConfiguration(childComplexity), true - - case "AddonsConfigurationEvent.type": - if e.complexity.AddonsConfigurationEvent.Type == nil { - break - } - - return e.complexity.AddonsConfigurationEvent.Type(childComplexity), true - - case "AddonsConfigurationRepository.secretRef": - if e.complexity.AddonsConfigurationRepository.SecretRef == nil { - break - } - - return e.complexity.AddonsConfigurationRepository.SecretRef(childComplexity), true - - case "AddonsConfigurationRepository.url": - if e.complexity.AddonsConfigurationRepository.URL == nil { - break - } - - return e.complexity.AddonsConfigurationRepository.URL(childComplexity), true - - case "AddonsConfigurationStatus.phase": - if e.complexity.AddonsConfigurationStatus.Phase == nil { - break - } - - return e.complexity.AddonsConfigurationStatus.Phase(childComplexity), true - - case "AddonsConfigurationStatus.repositories": - if e.complexity.AddonsConfigurationStatus.Repositories == nil { - break - } - - return e.complexity.AddonsConfigurationStatus.Repositories(childComplexity), true - - case "AddonsConfigurationStatusAddons.message": - if e.complexity.AddonsConfigurationStatusAddons.Message == nil { - break - } - - return e.complexity.AddonsConfigurationStatusAddons.Message(childComplexity), true - - case "AddonsConfigurationStatusAddons.name": - if e.complexity.AddonsConfigurationStatusAddons.Name == nil { - break - } - - return e.complexity.AddonsConfigurationStatusAddons.Name(childComplexity), true - - case "AddonsConfigurationStatusAddons.reason": - if e.complexity.AddonsConfigurationStatusAddons.Reason == nil { - break - } - - return e.complexity.AddonsConfigurationStatusAddons.Reason(childComplexity), true - - case "AddonsConfigurationStatusAddons.status": - if e.complexity.AddonsConfigurationStatusAddons.Status == nil { - break - } - - return e.complexity.AddonsConfigurationStatusAddons.Status(childComplexity), true - - case "AddonsConfigurationStatusAddons.version": - if e.complexity.AddonsConfigurationStatusAddons.Version == nil { - break - } - - return e.complexity.AddonsConfigurationStatusAddons.Version(childComplexity), true - - case "AddonsConfigurationStatusRepository.addons": - if e.complexity.AddonsConfigurationStatusRepository.Addons == nil { - break - } - - return e.complexity.AddonsConfigurationStatusRepository.Addons(childComplexity), true - - case "AddonsConfigurationStatusRepository.message": - if e.complexity.AddonsConfigurationStatusRepository.Message == nil { - break - } - - return e.complexity.AddonsConfigurationStatusRepository.Message(childComplexity), true - - case "AddonsConfigurationStatusRepository.reason": - if e.complexity.AddonsConfigurationStatusRepository.Reason == nil { - break - } - - return e.complexity.AddonsConfigurationStatusRepository.Reason(childComplexity), true - - case "AddonsConfigurationStatusRepository.status": - if e.complexity.AddonsConfigurationStatusRepository.Status == nil { - break - } - - return e.complexity.AddonsConfigurationStatusRepository.Status(childComplexity), true - - case "AddonsConfigurationStatusRepository.url": - if e.complexity.AddonsConfigurationStatusRepository.URL == nil { - break - } - - return e.complexity.AddonsConfigurationStatusRepository.URL(childComplexity), true - - case "ApiRuleEvent.apiRule": - if e.complexity.APIRuleEvent.APIRule == nil { - break - } - - return e.complexity.APIRuleEvent.APIRule(childComplexity), true - - case "ApiRuleEvent.type": - if e.complexity.APIRuleEvent.Type == nil { - break - } - - return e.complexity.APIRuleEvent.Type(childComplexity), true - - case "Application.compassMetadata": - if e.complexity.Application.CompassMetadata == nil { - break - } - - return e.complexity.Application.CompassMetadata(childComplexity), true - - case "Application.description": - if e.complexity.Application.Description == nil { - break - } - - return e.complexity.Application.Description(childComplexity), true - - case "Application.enabledInNamespaces": - if e.complexity.Application.EnabledInNamespaces == nil { - break - } - - return e.complexity.Application.EnabledInNamespaces(childComplexity), true - - case "Application.enabledMappingServices": - if e.complexity.Application.EnabledMappingServices == nil { - break - } - - return e.complexity.Application.EnabledMappingServices(childComplexity), true - - case "Application.labels": - if e.complexity.Application.Labels == nil { - break - } - - return e.complexity.Application.Labels(childComplexity), true - - case "Application.name": - if e.complexity.Application.Name == nil { - break - } - - return e.complexity.Application.Name(childComplexity), true - - case "Application.services": - if e.complexity.Application.Services == nil { - break - } - - return e.complexity.Application.Services(childComplexity), true - - case "Application.status": - if e.complexity.Application.Status == nil { - break - } - - return e.complexity.Application.Status(childComplexity), true - - case "ApplicationEntry.accessLabel": - if e.complexity.ApplicationEntry.AccessLabel == nil { - break - } - - return e.complexity.ApplicationEntry.AccessLabel(childComplexity), true - - case "ApplicationEntry.gatewayUrl": - if e.complexity.ApplicationEntry.GatewayURL == nil { - break - } - - return e.complexity.ApplicationEntry.GatewayURL(childComplexity), true - - case "ApplicationEntry.type": - if e.complexity.ApplicationEntry.Type == nil { - break - } - - return e.complexity.ApplicationEntry.Type(childComplexity), true - - case "ApplicationEvent.application": - if e.complexity.ApplicationEvent.Application == nil { - break - } - - return e.complexity.ApplicationEvent.Application(childComplexity), true - - case "ApplicationEvent.type": - if e.complexity.ApplicationEvent.Type == nil { - break - } - - return e.complexity.ApplicationEvent.Type(childComplexity), true - - case "ApplicationMapping.allServices": - if e.complexity.ApplicationMapping.AllServices == nil { - break - } - - return e.complexity.ApplicationMapping.AllServices(childComplexity), true - - case "ApplicationMapping.application": - if e.complexity.ApplicationMapping.Application == nil { - break - } - - return e.complexity.ApplicationMapping.Application(childComplexity), true - - case "ApplicationMapping.namespace": - if e.complexity.ApplicationMapping.Namespace == nil { - break - } - - return e.complexity.ApplicationMapping.Namespace(childComplexity), true - - case "ApplicationMapping.services": - if e.complexity.ApplicationMapping.Services == nil { - break - } - - return e.complexity.ApplicationMapping.Services(childComplexity), true - - case "ApplicationMutationOutput.description": - if e.complexity.ApplicationMutationOutput.Description == nil { - break - } - - return e.complexity.ApplicationMutationOutput.Description(childComplexity), true - - case "ApplicationMutationOutput.labels": - if e.complexity.ApplicationMutationOutput.Labels == nil { - break - } - - return e.complexity.ApplicationMutationOutput.Labels(childComplexity), true - - case "ApplicationMutationOutput.name": - if e.complexity.ApplicationMutationOutput.Name == nil { - break - } - - return e.complexity.ApplicationMutationOutput.Name(childComplexity), true - - case "ApplicationService.displayName": - if e.complexity.ApplicationService.DisplayName == nil { - break - } - - return e.complexity.ApplicationService.DisplayName(childComplexity), true - - case "ApplicationService.entries": - if e.complexity.ApplicationService.Entries == nil { - break - } - - return e.complexity.ApplicationService.Entries(childComplexity), true - - case "ApplicationService.id": - if e.complexity.ApplicationService.ID == nil { - break - } - - return e.complexity.ApplicationService.ID(childComplexity), true - - case "ApplicationService.longDescription": - if e.complexity.ApplicationService.LongDescription == nil { - break - } - - return e.complexity.ApplicationService.LongDescription(childComplexity), true - - case "ApplicationService.providerDisplayName": - if e.complexity.ApplicationService.ProviderDisplayName == nil { - break - } - - return e.complexity.ApplicationService.ProviderDisplayName(childComplexity), true - - case "ApplicationService.tags": - if e.complexity.ApplicationService.Tags == nil { - break - } - - return e.complexity.ApplicationService.Tags(childComplexity), true - - case "Asset.displayName": - if e.complexity.Asset.DisplayName == nil { - break - } - - return e.complexity.Asset.DisplayName(childComplexity), true - - case "Asset.files": - if e.complexity.Asset.Files == nil { - break - } - - args, err := ec.field_Asset_files_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Asset.Files(childComplexity, args["filterExtensions"].([]string)), true - - case "Asset.name": - if e.complexity.Asset.Name == nil { - break - } - - return e.complexity.Asset.Name(childComplexity), true - - case "Asset.namespace": - if e.complexity.Asset.Namespace == nil { - break - } - - return e.complexity.Asset.Namespace(childComplexity), true - - case "Asset.parameters": - if e.complexity.Asset.Parameters == nil { - break - } - - return e.complexity.Asset.Parameters(childComplexity), true - - case "Asset.status": - if e.complexity.Asset.Status == nil { - break - } - - return e.complexity.Asset.Status(childComplexity), true - - case "Asset.type": - if e.complexity.Asset.Type == nil { - break - } - - return e.complexity.Asset.Type(childComplexity), true - - case "AssetEvent.asset": - if e.complexity.AssetEvent.Asset == nil { - break - } - - return e.complexity.AssetEvent.Asset(childComplexity), true - - case "AssetEvent.type": - if e.complexity.AssetEvent.Type == nil { - break - } - - return e.complexity.AssetEvent.Type(childComplexity), true - - case "AssetGroup.assets": - if e.complexity.AssetGroup.Assets == nil { - break - } - - args, err := ec.field_AssetGroup_assets_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.AssetGroup.Assets(childComplexity, args["types"].([]string)), true - - case "AssetGroup.description": - if e.complexity.AssetGroup.Description == nil { - break - } - - return e.complexity.AssetGroup.Description(childComplexity), true - - case "AssetGroup.displayName": - if e.complexity.AssetGroup.DisplayName == nil { - break - } - - return e.complexity.AssetGroup.DisplayName(childComplexity), true - - case "AssetGroup.groupName": - if e.complexity.AssetGroup.GroupName == nil { - break - } - - return e.complexity.AssetGroup.GroupName(childComplexity), true - - case "AssetGroup.name": - if e.complexity.AssetGroup.Name == nil { - break - } - - return e.complexity.AssetGroup.Name(childComplexity), true - - case "AssetGroup.namespace": - if e.complexity.AssetGroup.Namespace == nil { - break - } - - return e.complexity.AssetGroup.Namespace(childComplexity), true - - case "AssetGroup.status": - if e.complexity.AssetGroup.Status == nil { - break - } - - return e.complexity.AssetGroup.Status(childComplexity), true - - case "AssetGroupEvent.assetGroup": - if e.complexity.AssetGroupEvent.AssetGroup == nil { - break - } - - return e.complexity.AssetGroupEvent.AssetGroup(childComplexity), true - - case "AssetGroupEvent.type": - if e.complexity.AssetGroupEvent.Type == nil { - break - } - - return e.complexity.AssetGroupEvent.Type(childComplexity), true - - case "AssetGroupStatus.message": - if e.complexity.AssetGroupStatus.Message == nil { - break - } - - return e.complexity.AssetGroupStatus.Message(childComplexity), true - - case "AssetGroupStatus.phase": - if e.complexity.AssetGroupStatus.Phase == nil { - break - } - - return e.complexity.AssetGroupStatus.Phase(childComplexity), true - - case "AssetGroupStatus.reason": - if e.complexity.AssetGroupStatus.Reason == nil { - break - } - - return e.complexity.AssetGroupStatus.Reason(childComplexity), true - - case "AssetStatus.message": - if e.complexity.AssetStatus.Message == nil { - break - } - - return e.complexity.AssetStatus.Message(childComplexity), true - - case "AssetStatus.phase": - if e.complexity.AssetStatus.Phase == nil { - break - } - - return e.complexity.AssetStatus.Phase(childComplexity), true - - case "AssetStatus.reason": - if e.complexity.AssetStatus.Reason == nil { - break - } - - return e.complexity.AssetStatus.Reason(childComplexity), true - - case "BackendModule.name": - if e.complexity.BackendModule.Name == nil { - break - } - - return e.complexity.BackendModule.Name(childComplexity), true - - case "BebFilter.eventSource": - if e.complexity.BebFilter.EventSource == nil { - break - } - - return e.complexity.BebFilter.EventSource(childComplexity), true - - case "BebFilter.eventType": - if e.complexity.BebFilter.EventType == nil { - break - } - - return e.complexity.BebFilter.EventType(childComplexity), true - - case "BebFilters.dialect": - if e.complexity.BebFilters.Dialect == nil { - break - } - - return e.complexity.BebFilters.Dialect(childComplexity), true - - case "BebFilters.filters": - if e.complexity.BebFilters.Filters == nil { - break - } - - return e.complexity.BebFilters.Filters(childComplexity), true - - case "BindableResourcesOutputItem.displayName": - if e.complexity.BindableResourcesOutputItem.DisplayName == nil { - break - } - - return e.complexity.BindableResourcesOutputItem.DisplayName(childComplexity), true - - case "BindableResourcesOutputItem.kind": - if e.complexity.BindableResourcesOutputItem.Kind == nil { - break - } - - return e.complexity.BindableResourcesOutputItem.Kind(childComplexity), true - - case "BindableResourcesOutputItem.resources": - if e.complexity.BindableResourcesOutputItem.Resources == nil { - break - } - - return e.complexity.BindableResourcesOutputItem.Resources(childComplexity), true - - case "ClusterAddonsConfigurationEvent.addonsConfiguration": - if e.complexity.ClusterAddonsConfigurationEvent.AddonsConfiguration == nil { - break - } - - return e.complexity.ClusterAddonsConfigurationEvent.AddonsConfiguration(childComplexity), true - - case "ClusterAddonsConfigurationEvent.type": - if e.complexity.ClusterAddonsConfigurationEvent.Type == nil { - break - } - - return e.complexity.ClusterAddonsConfigurationEvent.Type(childComplexity), true - - case "ClusterAsset.displayName": - if e.complexity.ClusterAsset.DisplayName == nil { - break - } - - return e.complexity.ClusterAsset.DisplayName(childComplexity), true - - case "ClusterAsset.files": - if e.complexity.ClusterAsset.Files == nil { - break - } - - args, err := ec.field_ClusterAsset_files_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.ClusterAsset.Files(childComplexity, args["filterExtensions"].([]string)), true - - case "ClusterAsset.name": - if e.complexity.ClusterAsset.Name == nil { - break - } - - return e.complexity.ClusterAsset.Name(childComplexity), true - - case "ClusterAsset.parameters": - if e.complexity.ClusterAsset.Parameters == nil { - break - } - - return e.complexity.ClusterAsset.Parameters(childComplexity), true - - case "ClusterAsset.status": - if e.complexity.ClusterAsset.Status == nil { - break - } - - return e.complexity.ClusterAsset.Status(childComplexity), true - - case "ClusterAsset.type": - if e.complexity.ClusterAsset.Type == nil { - break - } - - return e.complexity.ClusterAsset.Type(childComplexity), true - - case "ClusterAssetEvent.clusterAsset": - if e.complexity.ClusterAssetEvent.ClusterAsset == nil { - break - } - - return e.complexity.ClusterAssetEvent.ClusterAsset(childComplexity), true - - case "ClusterAssetEvent.type": - if e.complexity.ClusterAssetEvent.Type == nil { - break - } - - return e.complexity.ClusterAssetEvent.Type(childComplexity), true - - case "ClusterAssetGroup.assets": - if e.complexity.ClusterAssetGroup.Assets == nil { - break - } - - args, err := ec.field_ClusterAssetGroup_assets_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.ClusterAssetGroup.Assets(childComplexity, args["types"].([]string)), true - - case "ClusterAssetGroup.description": - if e.complexity.ClusterAssetGroup.Description == nil { - break - } - - return e.complexity.ClusterAssetGroup.Description(childComplexity), true - - case "ClusterAssetGroup.displayName": - if e.complexity.ClusterAssetGroup.DisplayName == nil { - break - } - - return e.complexity.ClusterAssetGroup.DisplayName(childComplexity), true - - case "ClusterAssetGroup.groupName": - if e.complexity.ClusterAssetGroup.GroupName == nil { - break - } - - return e.complexity.ClusterAssetGroup.GroupName(childComplexity), true - - case "ClusterAssetGroup.name": - if e.complexity.ClusterAssetGroup.Name == nil { - break - } - - return e.complexity.ClusterAssetGroup.Name(childComplexity), true - - case "ClusterAssetGroup.status": - if e.complexity.ClusterAssetGroup.Status == nil { - break - } - - return e.complexity.ClusterAssetGroup.Status(childComplexity), true - - case "ClusterAssetGroupEvent.clusterAssetGroup": - if e.complexity.ClusterAssetGroupEvent.ClusterAssetGroup == nil { - break - } - - return e.complexity.ClusterAssetGroupEvent.ClusterAssetGroup(childComplexity), true - - case "ClusterAssetGroupEvent.type": - if e.complexity.ClusterAssetGroupEvent.Type == nil { - break - } - - return e.complexity.ClusterAssetGroupEvent.Type(childComplexity), true - - case "ClusterMicroFrontend.category": - if e.complexity.ClusterMicroFrontend.Category == nil { - break - } - - return e.complexity.ClusterMicroFrontend.Category(childComplexity), true - - case "ClusterMicroFrontend.name": - if e.complexity.ClusterMicroFrontend.Name == nil { - break - } - - return e.complexity.ClusterMicroFrontend.Name(childComplexity), true - - case "ClusterMicroFrontend.navigationNodes": - if e.complexity.ClusterMicroFrontend.NavigationNodes == nil { - break - } - - return e.complexity.ClusterMicroFrontend.NavigationNodes(childComplexity), true - - case "ClusterMicroFrontend.placement": - if e.complexity.ClusterMicroFrontend.Placement == nil { - break - } - - return e.complexity.ClusterMicroFrontend.Placement(childComplexity), true - - case "ClusterMicroFrontend.preloadUrl": - if e.complexity.ClusterMicroFrontend.PreloadURL == nil { - break - } - - return e.complexity.ClusterMicroFrontend.PreloadURL(childComplexity), true - - case "ClusterMicroFrontend.version": - if e.complexity.ClusterMicroFrontend.Version == nil { - break - } - - return e.complexity.ClusterMicroFrontend.Version(childComplexity), true - - case "ClusterMicroFrontend.viewBaseUrl": - if e.complexity.ClusterMicroFrontend.ViewBaseURL == nil { - break - } - - return e.complexity.ClusterMicroFrontend.ViewBaseURL(childComplexity), true - - case "ClusterRole.name": - if e.complexity.ClusterRole.Name == nil { - break - } - - return e.complexity.ClusterRole.Name(childComplexity), true - - case "ClusterRole.rules": - if e.complexity.ClusterRole.Rules == nil { - break - } - - return e.complexity.ClusterRole.Rules(childComplexity), true - - case "ClusterRoleBinding.name": - if e.complexity.ClusterRoleBinding.Name == nil { - break - } - - return e.complexity.ClusterRoleBinding.Name(childComplexity), true - - case "ClusterRoleBinding.roleRef": - if e.complexity.ClusterRoleBinding.RoleRef == nil { - break - } - - return e.complexity.ClusterRoleBinding.RoleRef(childComplexity), true - - case "ClusterRoleBindingEvent.clusterRoleBinding": - if e.complexity.ClusterRoleBindingEvent.ClusterRoleBinding == nil { - break - } - - return e.complexity.ClusterRoleBindingEvent.ClusterRoleBinding(childComplexity), true - - case "ClusterRoleBindingEvent.type": - if e.complexity.ClusterRoleBindingEvent.Type == nil { - break - } - - return e.complexity.ClusterRoleBindingEvent.Type(childComplexity), true - - case "ClusterServiceBroker.creationTimestamp": - if e.complexity.ClusterServiceBroker.CreationTimestamp == nil { - break - } - - return e.complexity.ClusterServiceBroker.CreationTimestamp(childComplexity), true - - case "ClusterServiceBroker.labels": - if e.complexity.ClusterServiceBroker.Labels == nil { - break - } - - return e.complexity.ClusterServiceBroker.Labels(childComplexity), true - - case "ClusterServiceBroker.name": - if e.complexity.ClusterServiceBroker.Name == nil { - break - } - - return e.complexity.ClusterServiceBroker.Name(childComplexity), true - - case "ClusterServiceBroker.status": - if e.complexity.ClusterServiceBroker.Status == nil { - break - } - - return e.complexity.ClusterServiceBroker.Status(childComplexity), true - - case "ClusterServiceBroker.url": - if e.complexity.ClusterServiceBroker.URL == nil { - break - } - - return e.complexity.ClusterServiceBroker.URL(childComplexity), true - - case "ClusterServiceBrokerEvent.clusterServiceBroker": - if e.complexity.ClusterServiceBrokerEvent.ClusterServiceBroker == nil { - break - } - - return e.complexity.ClusterServiceBrokerEvent.ClusterServiceBroker(childComplexity), true - - case "ClusterServiceBrokerEvent.type": - if e.complexity.ClusterServiceBrokerEvent.Type == nil { - break - } - - return e.complexity.ClusterServiceBrokerEvent.Type(childComplexity), true - - case "ClusterServiceClass.activated": - if e.complexity.ClusterServiceClass.Activated == nil { - break - } - - args, err := ec.field_ClusterServiceClass_activated_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.ClusterServiceClass.Activated(childComplexity, args["namespace"].(*string)), true - - case "ClusterServiceClass.clusterAssetGroup": - if e.complexity.ClusterServiceClass.ClusterAssetGroup == nil { - break - } - - return e.complexity.ClusterServiceClass.ClusterAssetGroup(childComplexity), true - - case "ClusterServiceClass.creationTimestamp": - if e.complexity.ClusterServiceClass.CreationTimestamp == nil { - break - } - - return e.complexity.ClusterServiceClass.CreationTimestamp(childComplexity), true - - case "ClusterServiceClass.description": - if e.complexity.ClusterServiceClass.Description == nil { - break - } - - return e.complexity.ClusterServiceClass.Description(childComplexity), true - - case "ClusterServiceClass.displayName": - if e.complexity.ClusterServiceClass.DisplayName == nil { - break - } - - return e.complexity.ClusterServiceClass.DisplayName(childComplexity), true - - case "ClusterServiceClass.documentationUrl": - if e.complexity.ClusterServiceClass.DocumentationURL == nil { - break - } - - return e.complexity.ClusterServiceClass.DocumentationURL(childComplexity), true - - case "ClusterServiceClass.externalName": - if e.complexity.ClusterServiceClass.ExternalName == nil { - break - } - - return e.complexity.ClusterServiceClass.ExternalName(childComplexity), true - - case "ClusterServiceClass.imageUrl": - if e.complexity.ClusterServiceClass.ImageURL == nil { - break - } - - return e.complexity.ClusterServiceClass.ImageURL(childComplexity), true - - case "ClusterServiceClass.instances": - if e.complexity.ClusterServiceClass.Instances == nil { - break - } - - args, err := ec.field_ClusterServiceClass_instances_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.ClusterServiceClass.Instances(childComplexity, args["namespace"].(*string)), true - - case "ClusterServiceClass.labels": - if e.complexity.ClusterServiceClass.Labels == nil { - break - } - - return e.complexity.ClusterServiceClass.Labels(childComplexity), true - - case "ClusterServiceClass.longDescription": - if e.complexity.ClusterServiceClass.LongDescription == nil { - break - } - - return e.complexity.ClusterServiceClass.LongDescription(childComplexity), true - - case "ClusterServiceClass.name": - if e.complexity.ClusterServiceClass.Name == nil { - break - } - - return e.complexity.ClusterServiceClass.Name(childComplexity), true - - case "ClusterServiceClass.plans": - if e.complexity.ClusterServiceClass.Plans == nil { - break - } - - return e.complexity.ClusterServiceClass.Plans(childComplexity), true - - case "ClusterServiceClass.providerDisplayName": - if e.complexity.ClusterServiceClass.ProviderDisplayName == nil { - break - } - - return e.complexity.ClusterServiceClass.ProviderDisplayName(childComplexity), true - - case "ClusterServiceClass.supportUrl": - if e.complexity.ClusterServiceClass.SupportURL == nil { - break - } - - return e.complexity.ClusterServiceClass.SupportURL(childComplexity), true - - case "ClusterServiceClass.tags": - if e.complexity.ClusterServiceClass.Tags == nil { - break - } - - return e.complexity.ClusterServiceClass.Tags(childComplexity), true - - case "ClusterServicePlan.bindingCreateParameterSchema": - if e.complexity.ClusterServicePlan.BindingCreateParameterSchema == nil { - break - } - - return e.complexity.ClusterServicePlan.BindingCreateParameterSchema(childComplexity), true - - case "ClusterServicePlan.clusterAssetGroup": - if e.complexity.ClusterServicePlan.ClusterAssetGroup == nil { - break - } - - return e.complexity.ClusterServicePlan.ClusterAssetGroup(childComplexity), true - - case "ClusterServicePlan.description": - if e.complexity.ClusterServicePlan.Description == nil { - break - } - - return e.complexity.ClusterServicePlan.Description(childComplexity), true - - case "ClusterServicePlan.displayName": - if e.complexity.ClusterServicePlan.DisplayName == nil { - break - } - - return e.complexity.ClusterServicePlan.DisplayName(childComplexity), true - - case "ClusterServicePlan.externalName": - if e.complexity.ClusterServicePlan.ExternalName == nil { - break - } - - return e.complexity.ClusterServicePlan.ExternalName(childComplexity), true - - case "ClusterServicePlan.instanceCreateParameterSchema": - if e.complexity.ClusterServicePlan.InstanceCreateParameterSchema == nil { - break - } - - return e.complexity.ClusterServicePlan.InstanceCreateParameterSchema(childComplexity), true - - case "ClusterServicePlan.name": - if e.complexity.ClusterServicePlan.Name == nil { - break - } - - return e.complexity.ClusterServicePlan.Name(childComplexity), true - - case "ClusterServicePlan.relatedClusterServiceClassName": - if e.complexity.ClusterServicePlan.RelatedClusterServiceClassName == nil { - break - } - - return e.complexity.ClusterServicePlan.RelatedClusterServiceClassName(childComplexity), true - - case "Condition.message": - if e.complexity.Condition.Message == nil { - break - } - - return e.complexity.Condition.Message(childComplexity), true - - case "Condition.reason": - if e.complexity.Condition.Reason == nil { - break - } - - return e.complexity.Condition.Reason(childComplexity), true - - case "Condition.status": - if e.complexity.Condition.Status == nil { - break - } - - return e.complexity.Condition.Status(childComplexity), true - - case "Condition.type": - if e.complexity.Condition.Type == nil { - break - } - - return e.complexity.Condition.Type(childComplexity), true - - case "ConfigMap.creationTimestamp": - if e.complexity.ConfigMap.CreationTimestamp == nil { - break - } - - return e.complexity.ConfigMap.CreationTimestamp(childComplexity), true - - case "ConfigMap.json": - if e.complexity.ConfigMap.JSON == nil { - break - } - - return e.complexity.ConfigMap.JSON(childComplexity), true - - case "ConfigMap.labels": - if e.complexity.ConfigMap.Labels == nil { - break - } - - return e.complexity.ConfigMap.Labels(childComplexity), true - - case "ConfigMap.name": - if e.complexity.ConfigMap.Name == nil { - break - } - - return e.complexity.ConfigMap.Name(childComplexity), true - - case "ConfigMap.namespace": - if e.complexity.ConfigMap.Namespace == nil { - break - } - - return e.complexity.ConfigMap.Namespace(childComplexity), true - - case "ConfigMapEvent.configMap": - if e.complexity.ConfigMapEvent.ConfigMap == nil { - break - } - - return e.complexity.ConfigMapEvent.ConfigMap(childComplexity), true - - case "ConfigMapEvent.type": - if e.complexity.ConfigMapEvent.Type == nil { - break - } - - return e.complexity.ConfigMapEvent.Type(childComplexity), true - - case "ConnectorService.url": - if e.complexity.ConnectorService.URL == nil { - break - } - - return e.complexity.ConnectorService.URL(childComplexity), true - - case "Container.image": - if e.complexity.Container.Image == nil { - break - } - - return e.complexity.Container.Image(childComplexity), true - - case "Container.name": - if e.complexity.Container.Name == nil { - break - } - - return e.complexity.Container.Name(childComplexity), true - - case "ContainerState.message": - if e.complexity.ContainerState.Message == nil { - break - } - - return e.complexity.ContainerState.Message(childComplexity), true - - case "ContainerState.reason": - if e.complexity.ContainerState.Reason == nil { - break - } - - return e.complexity.ContainerState.Reason(childComplexity), true - - case "ContainerState.state": - if e.complexity.ContainerState.State == nil { - break - } - - return e.complexity.ContainerState.State(childComplexity), true - - case "CreateServiceBindingOutput.name": - if e.complexity.CreateServiceBindingOutput.Name == nil { - break - } - - return e.complexity.CreateServiceBindingOutput.Name(childComplexity), true - - case "CreateServiceBindingOutput.namespace": - if e.complexity.CreateServiceBindingOutput.Namespace == nil { - break - } - - return e.complexity.CreateServiceBindingOutput.Namespace(childComplexity), true - - case "CreateServiceBindingOutput.serviceInstanceName": - if e.complexity.CreateServiceBindingOutput.ServiceInstanceName == nil { - break - } - - return e.complexity.CreateServiceBindingOutput.ServiceInstanceName(childComplexity), true - - case "DeleteApplicationOutput.name": - if e.complexity.DeleteApplicationOutput.Name == nil { - break - } - - return e.complexity.DeleteApplicationOutput.Name(childComplexity), true - - case "DeleteServiceBindingOutput.name": - if e.complexity.DeleteServiceBindingOutput.Name == nil { - break - } - - return e.complexity.DeleteServiceBindingOutput.Name(childComplexity), true - - case "DeleteServiceBindingOutput.namespace": - if e.complexity.DeleteServiceBindingOutput.Namespace == nil { - break - } - - return e.complexity.DeleteServiceBindingOutput.Namespace(childComplexity), true - - case "DeleteServiceBindingUsageOutput.name": - if e.complexity.DeleteServiceBindingUsageOutput.Name == nil { - break - } - - return e.complexity.DeleteServiceBindingUsageOutput.Name(childComplexity), true - - case "DeleteServiceBindingUsageOutput.namespace": - if e.complexity.DeleteServiceBindingUsageOutput.Namespace == nil { - break - } - - return e.complexity.DeleteServiceBindingUsageOutput.Namespace(childComplexity), true - - case "Deployment.boundServiceInstanceNames": - if e.complexity.Deployment.BoundServiceInstanceNames == nil { - break - } - - return e.complexity.Deployment.BoundServiceInstanceNames(childComplexity), true - - case "Deployment.containers": - if e.complexity.Deployment.Containers == nil { - break - } - - return e.complexity.Deployment.Containers(childComplexity), true - - case "Deployment.creationTimestamp": - if e.complexity.Deployment.CreationTimestamp == nil { - break - } - - return e.complexity.Deployment.CreationTimestamp(childComplexity), true - - case "Deployment.labels": - if e.complexity.Deployment.Labels == nil { - break - } - - return e.complexity.Deployment.Labels(childComplexity), true - - case "Deployment.name": - if e.complexity.Deployment.Name == nil { - break - } - - return e.complexity.Deployment.Name(childComplexity), true - - case "Deployment.namespace": - if e.complexity.Deployment.Namespace == nil { - break - } - - return e.complexity.Deployment.Namespace(childComplexity), true - - case "Deployment.status": - if e.complexity.Deployment.Status == nil { - break - } - - return e.complexity.Deployment.Status(childComplexity), true - - case "DeploymentCondition.lastTransitionTimestamp": - if e.complexity.DeploymentCondition.LastTransitionTimestamp == nil { - break - } - - return e.complexity.DeploymentCondition.LastTransitionTimestamp(childComplexity), true - - case "DeploymentCondition.lastUpdateTimestamp": - if e.complexity.DeploymentCondition.LastUpdateTimestamp == nil { - break - } - - return e.complexity.DeploymentCondition.LastUpdateTimestamp(childComplexity), true - - case "DeploymentCondition.message": - if e.complexity.DeploymentCondition.Message == nil { - break - } - - return e.complexity.DeploymentCondition.Message(childComplexity), true - - case "DeploymentCondition.reason": - if e.complexity.DeploymentCondition.Reason == nil { - break - } - - return e.complexity.DeploymentCondition.Reason(childComplexity), true - - case "DeploymentCondition.status": - if e.complexity.DeploymentCondition.Status == nil { - break - } - - return e.complexity.DeploymentCondition.Status(childComplexity), true - - case "DeploymentCondition.type": - if e.complexity.DeploymentCondition.Type == nil { - break - } - - return e.complexity.DeploymentCondition.Type(childComplexity), true - - case "DeploymentEvent.deployment": - if e.complexity.DeploymentEvent.Deployment == nil { - break - } - - return e.complexity.DeploymentEvent.Deployment(childComplexity), true - - case "DeploymentEvent.type": - if e.complexity.DeploymentEvent.Type == nil { - break - } - - return e.complexity.DeploymentEvent.Type(childComplexity), true - - case "DeploymentStatus.availableReplicas": - if e.complexity.DeploymentStatus.AvailableReplicas == nil { - break - } - - return e.complexity.DeploymentStatus.AvailableReplicas(childComplexity), true - - case "DeploymentStatus.conditions": - if e.complexity.DeploymentStatus.Conditions == nil { - break - } - - return e.complexity.DeploymentStatus.Conditions(childComplexity), true - - case "DeploymentStatus.readyReplicas": - if e.complexity.DeploymentStatus.ReadyReplicas == nil { - break - } - - return e.complexity.DeploymentStatus.ReadyReplicas(childComplexity), true - - case "DeploymentStatus.replicas": - if e.complexity.DeploymentStatus.Replicas == nil { - break - } - - return e.complexity.DeploymentStatus.Replicas(childComplexity), true - - case "DeploymentStatus.updatedReplicas": - if e.complexity.DeploymentStatus.UpdatedReplicas == nil { - break - } - - return e.complexity.DeploymentStatus.UpdatedReplicas(childComplexity), true - - case "EmsSubscriptionStatus.lastFailedDelivery": - if e.complexity.EmsSubscriptionStatus.LastFailedDelivery == nil { - break - } - - return e.complexity.EmsSubscriptionStatus.LastFailedDelivery(childComplexity), true - - case "EmsSubscriptionStatus.lastFailedDeliveryReason": - if e.complexity.EmsSubscriptionStatus.LastFailedDeliveryReason == nil { - break - } - - return e.complexity.EmsSubscriptionStatus.LastFailedDeliveryReason(childComplexity), true - - case "EmsSubscriptionStatus.lastSuccessfulDelivery": - if e.complexity.EmsSubscriptionStatus.LastSuccessfulDelivery == nil { - break - } - - return e.complexity.EmsSubscriptionStatus.LastSuccessfulDelivery(childComplexity), true - - case "EmsSubscriptionStatus.subscriptionStatus": - if e.complexity.EmsSubscriptionStatus.SubscriptionStatus == nil { - break - } - - return e.complexity.EmsSubscriptionStatus.SubscriptionStatus(childComplexity), true - - case "EmsSubscriptionStatus.subscriptionStatusReason": - if e.complexity.EmsSubscriptionStatus.SubscriptionStatusReason == nil { - break - } - - return e.complexity.EmsSubscriptionStatus.SubscriptionStatusReason(childComplexity), true - - case "EnabledApplicationService.displayName": - if e.complexity.EnabledApplicationService.DisplayName == nil { - break - } - - return e.complexity.EnabledApplicationService.DisplayName(childComplexity), true - - case "EnabledApplicationService.exist": - if e.complexity.EnabledApplicationService.Exist == nil { - break - } - - return e.complexity.EnabledApplicationService.Exist(childComplexity), true - - case "EnabledApplicationService.id": - if e.complexity.EnabledApplicationService.ID == nil { - break - } - - return e.complexity.EnabledApplicationService.ID(childComplexity), true - - case "EnvPrefix.name": - if e.complexity.EnvPrefix.Name == nil { - break - } - - return e.complexity.EnvPrefix.Name(childComplexity), true - - case "EventActivation.displayName": - if e.complexity.EventActivation.DisplayName == nil { - break - } - - return e.complexity.EventActivation.DisplayName(childComplexity), true - - case "EventActivation.events": - if e.complexity.EventActivation.Events == nil { - break - } - - return e.complexity.EventActivation.Events(childComplexity), true - - case "EventActivation.name": - if e.complexity.EventActivation.Name == nil { - break - } - - return e.complexity.EventActivation.Name(childComplexity), true - - case "EventActivation.sourceId": - if e.complexity.EventActivation.SourceID == nil { - break - } - - return e.complexity.EventActivation.SourceID(childComplexity), true - - case "EventActivationEvent.description": - if e.complexity.EventActivationEvent.Description == nil { - break - } - - return e.complexity.EventActivationEvent.Description(childComplexity), true - - case "EventActivationEvent.eventType": - if e.complexity.EventActivationEvent.EventType == nil { - break - } - - return e.complexity.EventActivationEvent.EventType(childComplexity), true - - case "EventActivationEvent.schema": - if e.complexity.EventActivationEvent.Schema == nil { - break - } - - return e.complexity.EventActivationEvent.Schema(childComplexity), true - - case "EventActivationEvent.version": - if e.complexity.EventActivationEvent.Version == nil { - break - } - - return e.complexity.EventActivationEvent.Version(childComplexity), true - - case "EventSubscription.name": - if e.complexity.EventSubscription.Name == nil { - break - } - - return e.complexity.EventSubscription.Name(childComplexity), true - - case "EventSubscription.namespace": - if e.complexity.EventSubscription.Namespace == nil { - break - } - - return e.complexity.EventSubscription.Namespace(childComplexity), true - - case "EventSubscription.spec": - if e.complexity.EventSubscription.Spec == nil { - break - } - - return e.complexity.EventSubscription.Spec(childComplexity), true - - case "EventSubscription.status": - if e.complexity.EventSubscription.Status == nil { - break - } - - return e.complexity.EventSubscription.Status(childComplexity), true - - case "EventSubscriptionSpec.filter": - if e.complexity.EventSubscriptionSpec.Filter == nil { - break - } - - return e.complexity.EventSubscriptionSpec.Filter(childComplexity), true - - case "EventSubscriptionSpec.id": - if e.complexity.EventSubscriptionSpec.ID == nil { - break - } - - return e.complexity.EventSubscriptionSpec.ID(childComplexity), true - - case "EventSubscriptionSpec.protocol": - if e.complexity.EventSubscriptionSpec.Protocol == nil { - break - } - - return e.complexity.EventSubscriptionSpec.Protocol(childComplexity), true - - case "EventSubscriptionSpec.protocolSettings": - if e.complexity.EventSubscriptionSpec.ProtocolSettings == nil { - break - } - - return e.complexity.EventSubscriptionSpec.ProtocolSettings(childComplexity), true - - case "EventSubscriptionSpec.sink": - if e.complexity.EventSubscriptionSpec.Sink == nil { - break - } - - return e.complexity.EventSubscriptionSpec.Sink(childComplexity), true - - case "EventSubscriptionStatus.apiRuleName": - if e.complexity.EventSubscriptionStatus.APIRuleName == nil { - break - } - - return e.complexity.EventSubscriptionStatus.APIRuleName(childComplexity), true - - case "EventSubscriptionStatus.conditions": - if e.complexity.EventSubscriptionStatus.Conditions == nil { - break - } - - return e.complexity.EventSubscriptionStatus.Conditions(childComplexity), true - - case "EventSubscriptionStatus.emsSubscriptionStatus": - if e.complexity.EventSubscriptionStatus.EmsSubscriptionStatus == nil { - break - } - - return e.complexity.EventSubscriptionStatus.EmsSubscriptionStatus(childComplexity), true - - case "EventSubscriptionStatus.emshash": - if e.complexity.EventSubscriptionStatus.Emshash == nil { - break - } - - return e.complexity.EventSubscriptionStatus.Emshash(childComplexity), true - - case "EventSubscriptionStatus.ev2hash": - if e.complexity.EventSubscriptionStatus.Ev2hash == nil { - break - } - - return e.complexity.EventSubscriptionStatus.Ev2hash(childComplexity), true - - case "EventSubscriptionStatus.externalSink": - if e.complexity.EventSubscriptionStatus.ExternalSink == nil { - break - } - - return e.complexity.EventSubscriptionStatus.ExternalSink(childComplexity), true - - case "EventSubscriptionStatus.failedActivation": - if e.complexity.EventSubscriptionStatus.FailedActivation == nil { - break - } - - return e.complexity.EventSubscriptionStatus.FailedActivation(childComplexity), true - - case "EventSubscriptionStatus.ready": - if e.complexity.EventSubscriptionStatus.Ready == nil { - break - } - - return e.complexity.EventSubscriptionStatus.Ready(childComplexity), true - - case "File.metadata": - if e.complexity.File.Metadata == nil { - break - } - - return e.complexity.File.Metadata(childComplexity), true - - case "File.url": - if e.complexity.File.URL == nil { - break - } - - return e.complexity.File.URL(childComplexity), true - - case "Filter.property": - if e.complexity.Filter.Property == nil { - break - } - - return e.complexity.Filter.Property(childComplexity), true - - case "Filter.type": - if e.complexity.Filter.Type == nil { - break - } - - return e.complexity.Filter.Type(childComplexity), true - - case "Filter.value": - if e.complexity.Filter.Value == nil { - break - } - - return e.complexity.Filter.Value(childComplexity), true - - case "Function.baseDir": - if e.complexity.Function.BaseDir == nil { - break - } - - return e.complexity.Function.BaseDir(childComplexity), true - - case "Function.buildResources": - if e.complexity.Function.BuildResources == nil { - break - } - - return e.complexity.Function.BuildResources(childComplexity), true - - case "Function.dependencies": - if e.complexity.Function.Dependencies == nil { - break - } - - return e.complexity.Function.Dependencies(childComplexity), true - - case "Function.env": - if e.complexity.Function.Env == nil { - break - } - - return e.complexity.Function.Env(childComplexity), true - - case "Function.labels": - if e.complexity.Function.Labels == nil { - break - } - - return e.complexity.Function.Labels(childComplexity), true - - case "Function.name": - if e.complexity.Function.Name == nil { - break - } - - return e.complexity.Function.Name(childComplexity), true - - case "Function.namespace": - if e.complexity.Function.Namespace == nil { - break - } - - return e.complexity.Function.Namespace(childComplexity), true - - case "Function.reference": - if e.complexity.Function.Reference == nil { - break - } - - return e.complexity.Function.Reference(childComplexity), true - - case "Function.replicas": - if e.complexity.Function.Replicas == nil { - break - } - - return e.complexity.Function.Replicas(childComplexity), true - - case "Function.resources": - if e.complexity.Function.Resources == nil { - break - } - - return e.complexity.Function.Resources(childComplexity), true - - case "Function.runtime": - if e.complexity.Function.Runtime == nil { - break - } - - return e.complexity.Function.Runtime(childComplexity), true - - case "Function.source": - if e.complexity.Function.Source == nil { - break - } - - return e.complexity.Function.Source(childComplexity), true - - case "Function.sourceType": - if e.complexity.Function.SourceType == nil { - break - } - - return e.complexity.Function.SourceType(childComplexity), true - - case "Function.status": - if e.complexity.Function.Status == nil { - break - } - - return e.complexity.Function.Status(childComplexity), true - - case "Function.UID": - if e.complexity.Function.UID == nil { - break - } - - return e.complexity.Function.UID(childComplexity), true - - case "FunctionEnv.name": - if e.complexity.FunctionEnv.Name == nil { - break - } - - return e.complexity.FunctionEnv.Name(childComplexity), true - - case "FunctionEnv.value": - if e.complexity.FunctionEnv.Value == nil { - break - } - - return e.complexity.FunctionEnv.Value(childComplexity), true - - case "FunctionEnv.valueFrom": - if e.complexity.FunctionEnv.ValueFrom == nil { - break - } - - return e.complexity.FunctionEnv.ValueFrom(childComplexity), true - - case "FunctionEnvValueFrom.key": - if e.complexity.FunctionEnvValueFrom.Key == nil { - break - } - - return e.complexity.FunctionEnvValueFrom.Key(childComplexity), true - - case "FunctionEnvValueFrom.name": - if e.complexity.FunctionEnvValueFrom.Name == nil { - break - } - - return e.complexity.FunctionEnvValueFrom.Name(childComplexity), true - - case "FunctionEnvValueFrom.optional": - if e.complexity.FunctionEnvValueFrom.Optional == nil { - break - } - - return e.complexity.FunctionEnvValueFrom.Optional(childComplexity), true - - case "FunctionEnvValueFrom.type": - if e.complexity.FunctionEnvValueFrom.Type == nil { - break - } - - return e.complexity.FunctionEnvValueFrom.Type(childComplexity), true - - case "FunctionEvent.function": - if e.complexity.FunctionEvent.Function == nil { - break - } - - return e.complexity.FunctionEvent.Function(childComplexity), true - - case "FunctionEvent.type": - if e.complexity.FunctionEvent.Type == nil { - break - } - - return e.complexity.FunctionEvent.Type(childComplexity), true - - case "FunctionMetadata.name": - if e.complexity.FunctionMetadata.Name == nil { - break - } - - return e.complexity.FunctionMetadata.Name(childComplexity), true - - case "FunctionMetadata.namespace": - if e.complexity.FunctionMetadata.Namespace == nil { - break - } - - return e.complexity.FunctionMetadata.Namespace(childComplexity), true - - case "FunctionReplicas.max": - if e.complexity.FunctionReplicas.Max == nil { - break - } - - return e.complexity.FunctionReplicas.Max(childComplexity), true - - case "FunctionReplicas.min": - if e.complexity.FunctionReplicas.Min == nil { - break - } - - return e.complexity.FunctionReplicas.Min(childComplexity), true - - case "FunctionResources.limits": - if e.complexity.FunctionResources.Limits == nil { - break - } - - return e.complexity.FunctionResources.Limits(childComplexity), true - - case "FunctionResources.requests": - if e.complexity.FunctionResources.Requests == nil { - break - } - - return e.complexity.FunctionResources.Requests(childComplexity), true - - case "FunctionStatus.message": - if e.complexity.FunctionStatus.Message == nil { - break - } - - return e.complexity.FunctionStatus.Message(childComplexity), true - - case "FunctionStatus.phase": - if e.complexity.FunctionStatus.Phase == nil { - break - } - - return e.complexity.FunctionStatus.Phase(childComplexity), true - - case "FunctionStatus.reason": - if e.complexity.FunctionStatus.Reason == nil { - break - } - - return e.complexity.FunctionStatus.Reason(childComplexity), true - - case "GitRepository.name": - if e.complexity.GitRepository.Name == nil { - break - } - - return e.complexity.GitRepository.Name(childComplexity), true - - case "GitRepository.namespace": - if e.complexity.GitRepository.Namespace == nil { - break - } - - return e.complexity.GitRepository.Namespace(childComplexity), true - - case "GitRepository.spec": - if e.complexity.GitRepository.Spec == nil { - break - } - - return e.complexity.GitRepository.Spec(childComplexity), true - - case "GitRepositorySpec.auth": - if e.complexity.GitRepositorySpec.Auth == nil { - break - } - - return e.complexity.GitRepositorySpec.Auth(childComplexity), true - - case "GitRepositorySpec.url": - if e.complexity.GitRepositorySpec.URL == nil { - break - } - - return e.complexity.GitRepositorySpec.URL(childComplexity), true - - case "LimitRange.json": - if e.complexity.LimitRange.JSON == nil { - break - } - - return e.complexity.LimitRange.JSON(childComplexity), true - - case "LimitRange.name": - if e.complexity.LimitRange.Name == nil { - break - } - - return e.complexity.LimitRange.Name(childComplexity), true - - case "LimitRange.spec": - if e.complexity.LimitRange.Spec == nil { - break - } - - return e.complexity.LimitRange.Spec(childComplexity), true - - case "LimitRangeItem.default": - if e.complexity.LimitRangeItem.Default == nil { - break - } - - return e.complexity.LimitRangeItem.Default(childComplexity), true - - case "LimitRangeItem.defaultRequest": - if e.complexity.LimitRangeItem.DefaultRequest == nil { - break - } - - return e.complexity.LimitRangeItem.DefaultRequest(childComplexity), true - - case "LimitRangeItem.max": - if e.complexity.LimitRangeItem.Max == nil { - break - } - - return e.complexity.LimitRangeItem.Max(childComplexity), true - - case "LimitRangeItem.type": - if e.complexity.LimitRangeItem.Type == nil { - break - } - - return e.complexity.LimitRangeItem.Type(childComplexity), true - - case "LimitRangeSpec.limits": - if e.complexity.LimitRangeSpec.Limits == nil { - break - } - - return e.complexity.LimitRangeSpec.Limits(childComplexity), true - - case "LoadBalancerIngress.hostName": - if e.complexity.LoadBalancerIngress.HostName == nil { - break - } - - return e.complexity.LoadBalancerIngress.HostName(childComplexity), true - - case "LoadBalancerIngress.ip": - if e.complexity.LoadBalancerIngress.IP == nil { - break - } - - return e.complexity.LoadBalancerIngress.IP(childComplexity), true - - case "LoadBalancerStatus.ingress": - if e.complexity.LoadBalancerStatus.Ingress == nil { - break - } - - return e.complexity.LoadBalancerStatus.Ingress(childComplexity), true - - case "LocalObjectReference.kind": - if e.complexity.LocalObjectReference.Kind == nil { - break - } - - return e.complexity.LocalObjectReference.Kind(childComplexity), true - - case "LocalObjectReference.name": - if e.complexity.LocalObjectReference.Name == nil { - break - } - - return e.complexity.LocalObjectReference.Name(childComplexity), true - - case "MicroFrontend.category": - if e.complexity.MicroFrontend.Category == nil { - break - } - - return e.complexity.MicroFrontend.Category(childComplexity), true - - case "MicroFrontend.name": - if e.complexity.MicroFrontend.Name == nil { - break - } - - return e.complexity.MicroFrontend.Name(childComplexity), true - - case "MicroFrontend.navigationNodes": - if e.complexity.MicroFrontend.NavigationNodes == nil { - break - } - - return e.complexity.MicroFrontend.NavigationNodes(childComplexity), true - - case "MicroFrontend.version": - if e.complexity.MicroFrontend.Version == nil { - break - } - - return e.complexity.MicroFrontend.Version(childComplexity), true - - case "MicroFrontend.viewBaseUrl": - if e.complexity.MicroFrontend.ViewBaseURL == nil { - break - } - - return e.complexity.MicroFrontend.ViewBaseURL(childComplexity), true - - case "Mutation.addAddonsConfigurationRepository": - if e.complexity.Mutation.AddAddonsConfigurationRepository == nil { - break - } - - args, err := ec.field_Mutation_addAddonsConfigurationRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.AddAddonsConfigurationRepository(childComplexity, args["name"].(string), args["namespace"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput)), true - - case "Mutation.addAddonsConfigurationURLs": - if e.complexity.Mutation.AddAddonsConfigurationURLs == nil { - break - } - - args, err := ec.field_Mutation_addAddonsConfigurationURLs_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.AddAddonsConfigurationURLs(childComplexity, args["name"].(string), args["namespace"].(string), args["urls"].([]string)), true - - case "Mutation.addClusterAddonsConfigurationRepository": - if e.complexity.Mutation.AddClusterAddonsConfigurationRepository == nil { - break - } - - args, err := ec.field_Mutation_addClusterAddonsConfigurationRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.AddClusterAddonsConfigurationRepository(childComplexity, args["name"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput)), true - - case "Mutation.addClusterAddonsConfigurationURLs": - if e.complexity.Mutation.AddClusterAddonsConfigurationURLs == nil { - break - } - - args, err := ec.field_Mutation_addClusterAddonsConfigurationURLs_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.AddClusterAddonsConfigurationURLs(childComplexity, args["name"].(string), args["urls"].([]string)), true - - case "Mutation.createAPIRule": - if e.complexity.Mutation.CreateAPIRule == nil { - break - } - - args, err := ec.field_Mutation_createAPIRule_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateAPIRule(childComplexity, args["name"].(string), args["namespace"].(string), args["params"].(v1alpha1.APIRuleSpec)), true - - case "Mutation.createAddonsConfiguration": - if e.complexity.Mutation.CreateAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_createAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateAddonsConfiguration(childComplexity, args["name"].(string), args["namespace"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)), true - - case "Mutation.createApplication": - if e.complexity.Mutation.CreateApplication == nil { - break - } - - args, err := ec.field_Mutation_createApplication_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateApplication(childComplexity, args["name"].(string), args["description"].(*string), args["labels"].(Labels)), true - - case "Mutation.createClusterAddonsConfiguration": - if e.complexity.Mutation.CreateClusterAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_createClusterAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateClusterAddonsConfiguration(childComplexity, args["name"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)), true - - case "Mutation.createClusterRoleBinding": - if e.complexity.Mutation.CreateClusterRoleBinding == nil { - break - } - - args, err := ec.field_Mutation_createClusterRoleBinding_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateClusterRoleBinding(childComplexity, args["name"].(string), args["params"].(ClusterRoleBindingInput)), true - - case "Mutation.createFunction": - if e.complexity.Mutation.CreateFunction == nil { - break - } - - args, err := ec.field_Mutation_createFunction_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateFunction(childComplexity, args["name"].(string), args["namespace"].(string), args["params"].(FunctionMutationInput)), true - - case "Mutation.createGitRepository": - if e.complexity.Mutation.CreateGitRepository == nil { - break - } - - args, err := ec.field_Mutation_createGitRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateGitRepository(childComplexity, args["namespace"].(string), args["name"].(string), args["spec"].(v1alpha11.GitRepositorySpec)), true - - case "Mutation.createLimitRange": - if e.complexity.Mutation.CreateLimitRange == nil { - break - } - - args, err := ec.field_Mutation_createLimitRange_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateLimitRange(childComplexity, args["namespace"].(string), args["name"].(string), args["limitRange"].(LimitRangeInput)), true - - case "Mutation.createManyTriggers": - if e.complexity.Mutation.CreateManyTriggers == nil { - break - } - - args, err := ec.field_Mutation_createManyTriggers_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateManyTriggers(childComplexity, args["namespace"].(string), args["triggers"].([]*TriggerCreateInput), args["ownerRef"].([]*v1.OwnerReference)), true - - case "Mutation.createNamespace": - if e.complexity.Mutation.CreateNamespace == nil { - break - } - - args, err := ec.field_Mutation_createNamespace_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateNamespace(childComplexity, args["name"].(string), args["labels"].(Labels)), true - - case "Mutation.createOAuth2Client": - if e.complexity.Mutation.CreateOAuth2Client == nil { - break - } - - args, err := ec.field_Mutation_createOAuth2Client_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateOAuth2Client(childComplexity, args["name"].(string), args["namespace"].(string), args["params"].(v1alpha12.OAuth2ClientSpec)), true - - case "Mutation.createResource": - if e.complexity.Mutation.CreateResource == nil { - break - } - - args, err := ec.field_Mutation_createResource_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateResource(childComplexity, args["namespace"].(string), args["resource"].(JSON)), true - - case "Mutation.createResourceQuota": - if e.complexity.Mutation.CreateResourceQuota == nil { - break - } - - args, err := ec.field_Mutation_createResourceQuota_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateResourceQuota(childComplexity, args["namespace"].(string), args["name"].(string), args["resourceQuota"].(ResourceQuotaInput)), true - - case "Mutation.createRoleBinding": - if e.complexity.Mutation.CreateRoleBinding == nil { - break - } - - args, err := ec.field_Mutation_createRoleBinding_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateRoleBinding(childComplexity, args["name"].(string), args["namespace"].(string), args["params"].(RoleBindingInput)), true - - case "Mutation.createServiceBinding": - if e.complexity.Mutation.CreateServiceBinding == nil { - break - } - - args, err := ec.field_Mutation_createServiceBinding_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateServiceBinding(childComplexity, args["serviceBindingName"].(*string), args["serviceInstanceName"].(string), args["namespace"].(string), args["parameters"].(JSON)), true - - case "Mutation.createServiceBindingUsage": - if e.complexity.Mutation.CreateServiceBindingUsage == nil { - break - } - - args, err := ec.field_Mutation_createServiceBindingUsage_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateServiceBindingUsage(childComplexity, args["namespace"].(string), args["createServiceBindingUsageInput"].(*CreateServiceBindingUsageInput)), true - - case "Mutation.createServiceInstance": - if e.complexity.Mutation.CreateServiceInstance == nil { - break - } - - args, err := ec.field_Mutation_createServiceInstance_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateServiceInstance(childComplexity, args["namespace"].(string), args["params"].(ServiceInstanceCreateInput)), true - - case "Mutation.createSubscription": - if e.complexity.Mutation.CreateSubscription == nil { - break - } - - args, err := ec.field_Mutation_createSubscription_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateSubscription(childComplexity, args["name"].(string), args["namespace"].(string), args["params"].(EventSubscriptionSpecInput)), true - - case "Mutation.createTrigger": - if e.complexity.Mutation.CreateTrigger == nil { - break - } - - args, err := ec.field_Mutation_createTrigger_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.CreateTrigger(childComplexity, args["namespace"].(string), args["trigger"].(TriggerCreateInput), args["ownerRef"].([]*v1.OwnerReference)), true - - case "Mutation.deleteAPIRule": - if e.complexity.Mutation.DeleteAPIRule == nil { - break - } - - args, err := ec.field_Mutation_deleteAPIRule_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteAPIRule(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteAddonsConfiguration": - if e.complexity.Mutation.DeleteAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_deleteAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteAddonsConfiguration(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteApplication": - if e.complexity.Mutation.DeleteApplication == nil { - break - } - - args, err := ec.field_Mutation_deleteApplication_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteApplication(childComplexity, args["name"].(string)), true - - case "Mutation.deleteClusterAddonsConfiguration": - if e.complexity.Mutation.DeleteClusterAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_deleteClusterAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteClusterAddonsConfiguration(childComplexity, args["name"].(string)), true - - case "Mutation.deleteClusterRoleBinding": - if e.complexity.Mutation.DeleteClusterRoleBinding == nil { - break - } - - args, err := ec.field_Mutation_deleteClusterRoleBinding_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteClusterRoleBinding(childComplexity, args["name"].(string)), true - - case "Mutation.deleteConfigMap": - if e.complexity.Mutation.DeleteConfigMap == nil { - break - } - - args, err := ec.field_Mutation_deleteConfigMap_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteConfigMap(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteFunction": - if e.complexity.Mutation.DeleteFunction == nil { - break - } - - args, err := ec.field_Mutation_deleteFunction_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteFunction(childComplexity, args["namespace"].(string), args["function"].(FunctionMetadataInput)), true - - case "Mutation.deleteGitRepository": - if e.complexity.Mutation.DeleteGitRepository == nil { - break - } - - args, err := ec.field_Mutation_deleteGitRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteGitRepository(childComplexity, args["namespace"].(string), args["name"].(string)), true - - case "Mutation.deleteManyFunctions": - if e.complexity.Mutation.DeleteManyFunctions == nil { - break - } - - args, err := ec.field_Mutation_deleteManyFunctions_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteManyFunctions(childComplexity, args["namespace"].(string), args["functions"].([]*FunctionMetadataInput)), true - - case "Mutation.deleteManyTriggers": - if e.complexity.Mutation.DeleteManyTriggers == nil { - break - } - - args, err := ec.field_Mutation_deleteManyTriggers_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteManyTriggers(childComplexity, args["namespace"].(string), args["triggerNames"].([]string)), true - - case "Mutation.deleteNamespace": - if e.complexity.Mutation.DeleteNamespace == nil { - break - } - - args, err := ec.field_Mutation_deleteNamespace_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteNamespace(childComplexity, args["name"].(string)), true - - case "Mutation.deleteOAuth2Client": - if e.complexity.Mutation.DeleteOAuth2Client == nil { - break - } - - args, err := ec.field_Mutation_deleteOAuth2Client_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteOAuth2Client(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deletePod": - if e.complexity.Mutation.DeletePod == nil { - break - } - - args, err := ec.field_Mutation_deletePod_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeletePod(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteReplicaSet": - if e.complexity.Mutation.DeleteReplicaSet == nil { - break - } - - args, err := ec.field_Mutation_deleteReplicaSet_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteReplicaSet(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteRoleBinding": - if e.complexity.Mutation.DeleteRoleBinding == nil { - break - } - - args, err := ec.field_Mutation_deleteRoleBinding_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteRoleBinding(childComplexity, args["namespace"].(string), args["name"].(string)), true - - case "Mutation.deleteSecret": - if e.complexity.Mutation.DeleteSecret == nil { - break - } - - args, err := ec.field_Mutation_deleteSecret_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteSecret(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteService": - if e.complexity.Mutation.DeleteService == nil { - break - } - - args, err := ec.field_Mutation_deleteService_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteService(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteServiceBinding": - if e.complexity.Mutation.DeleteServiceBinding == nil { - break - } - - args, err := ec.field_Mutation_deleteServiceBinding_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteServiceBinding(childComplexity, args["serviceBindingName"].(string), args["namespace"].(string)), true - - case "Mutation.deleteServiceBindingUsage": - if e.complexity.Mutation.DeleteServiceBindingUsage == nil { - break - } - - args, err := ec.field_Mutation_deleteServiceBindingUsage_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteServiceBindingUsage(childComplexity, args["serviceBindingUsageName"].(string), args["namespace"].(string)), true - - case "Mutation.deleteServiceBindingUsages": - if e.complexity.Mutation.DeleteServiceBindingUsages == nil { - break - } - - args, err := ec.field_Mutation_deleteServiceBindingUsages_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteServiceBindingUsages(childComplexity, args["serviceBindingUsageNames"].([]string), args["namespace"].(string)), true - - case "Mutation.deleteServiceInstance": - if e.complexity.Mutation.DeleteServiceInstance == nil { - break - } - - args, err := ec.field_Mutation_deleteServiceInstance_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteServiceInstance(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteSubscription": - if e.complexity.Mutation.DeleteSubscription == nil { - break - } - - args, err := ec.field_Mutation_deleteSubscription_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteSubscription(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.deleteTrigger": - if e.complexity.Mutation.DeleteTrigger == nil { - break - } - - args, err := ec.field_Mutation_deleteTrigger_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DeleteTrigger(childComplexity, args["namespace"].(string), args["triggerName"].(string)), true - - case "Mutation.disableApplication": - if e.complexity.Mutation.DisableApplication == nil { - break - } - - args, err := ec.field_Mutation_disableApplication_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.DisableApplication(childComplexity, args["application"].(string), args["namespace"].(string)), true - - case "Mutation.enableApplication": - if e.complexity.Mutation.EnableApplication == nil { - break - } - - args, err := ec.field_Mutation_enableApplication_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.EnableApplication(childComplexity, args["application"].(string), args["namespace"].(string), args["allServices"].(*bool), args["services"].([]*ApplicationMappingService)), true - - case "Mutation.overloadApplication": - if e.complexity.Mutation.OverloadApplication == nil { - break - } - - args, err := ec.field_Mutation_overloadApplication_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.OverloadApplication(childComplexity, args["application"].(string), args["namespace"].(string), args["allServices"].(*bool), args["services"].([]*ApplicationMappingService)), true - - case "Mutation.removeAddonsConfigurationRepository": - if e.complexity.Mutation.RemoveAddonsConfigurationRepository == nil { - break - } - - args, err := ec.field_Mutation_removeAddonsConfigurationRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.RemoveAddonsConfigurationRepository(childComplexity, args["name"].(string), args["namespace"].(string), args["urls"].([]string)), true - - case "Mutation.removeAddonsConfigurationURLs": - if e.complexity.Mutation.RemoveAddonsConfigurationURLs == nil { - break - } - - args, err := ec.field_Mutation_removeAddonsConfigurationURLs_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.RemoveAddonsConfigurationURLs(childComplexity, args["name"].(string), args["namespace"].(string), args["urls"].([]string)), true - - case "Mutation.removeClusterAddonsConfigurationRepository": - if e.complexity.Mutation.RemoveClusterAddonsConfigurationRepository == nil { - break - } - - args, err := ec.field_Mutation_removeClusterAddonsConfigurationRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.RemoveClusterAddonsConfigurationRepository(childComplexity, args["name"].(string), args["urls"].([]string)), true - - case "Mutation.removeClusterAddonsConfigurationURLs": - if e.complexity.Mutation.RemoveClusterAddonsConfigurationURLs == nil { - break - } - - args, err := ec.field_Mutation_removeClusterAddonsConfigurationURLs_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.RemoveClusterAddonsConfigurationURLs(childComplexity, args["name"].(string), args["urls"].([]string)), true - - case "Mutation.resyncAddonsConfiguration": - if e.complexity.Mutation.ResyncAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_resyncAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.ResyncAddonsConfiguration(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Mutation.resyncClusterAddonsConfiguration": - if e.complexity.Mutation.ResyncClusterAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_resyncClusterAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.ResyncClusterAddonsConfiguration(childComplexity, args["name"].(string)), true - - case "Mutation.updateAPIRule": - if e.complexity.Mutation.UpdateAPIRule == nil { - break - } - - args, err := ec.field_Mutation_updateAPIRule_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateAPIRule(childComplexity, args["name"].(string), args["namespace"].(string), args["generation"].(int), args["params"].(v1alpha1.APIRuleSpec)), true - - case "Mutation.updateAddonsConfiguration": - if e.complexity.Mutation.UpdateAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_updateAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateAddonsConfiguration(childComplexity, args["name"].(string), args["namespace"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)), true - - case "Mutation.updateApplication": - if e.complexity.Mutation.UpdateApplication == nil { - break - } - - args, err := ec.field_Mutation_updateApplication_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateApplication(childComplexity, args["name"].(string), args["description"].(*string), args["labels"].(Labels)), true - - case "Mutation.updateClusterAddonsConfiguration": - if e.complexity.Mutation.UpdateClusterAddonsConfiguration == nil { - break - } - - args, err := ec.field_Mutation_updateClusterAddonsConfiguration_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateClusterAddonsConfiguration(childComplexity, args["name"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)), true - - case "Mutation.updateConfigMap": - if e.complexity.Mutation.UpdateConfigMap == nil { - break - } - - args, err := ec.field_Mutation_updateConfigMap_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateConfigMap(childComplexity, args["name"].(string), args["namespace"].(string), args["configMap"].(JSON)), true - - case "Mutation.updateFunction": - if e.complexity.Mutation.UpdateFunction == nil { - break - } - - args, err := ec.field_Mutation_updateFunction_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateFunction(childComplexity, args["name"].(string), args["namespace"].(string), args["params"].(FunctionMutationInput)), true - - case "Mutation.updateGitRepository": - if e.complexity.Mutation.UpdateGitRepository == nil { - break - } - - args, err := ec.field_Mutation_updateGitRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateGitRepository(childComplexity, args["namespace"].(string), args["name"].(string), args["spec"].(v1alpha11.GitRepositorySpec)), true - - case "Mutation.updateLimitRange": - if e.complexity.Mutation.UpdateLimitRange == nil { - break - } - - args, err := ec.field_Mutation_updateLimitRange_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateLimitRange(childComplexity, args["namespace"].(string), args["name"].(string), args["json"].(JSON)), true - - case "Mutation.updateNamespace": - if e.complexity.Mutation.UpdateNamespace == nil { - break - } - - args, err := ec.field_Mutation_updateNamespace_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateNamespace(childComplexity, args["name"].(string), args["labels"].(Labels)), true - - case "Mutation.updateOAuth2Client": - if e.complexity.Mutation.UpdateOAuth2Client == nil { - break - } - - args, err := ec.field_Mutation_updateOAuth2Client_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateOAuth2Client(childComplexity, args["name"].(string), args["namespace"].(string), args["generation"].(int), args["params"].(v1alpha12.OAuth2ClientSpec)), true - - case "Mutation.updatePod": - if e.complexity.Mutation.UpdatePod == nil { - break - } - - args, err := ec.field_Mutation_updatePod_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdatePod(childComplexity, args["name"].(string), args["namespace"].(string), args["pod"].(JSON)), true - - case "Mutation.updateReplicaSet": - if e.complexity.Mutation.UpdateReplicaSet == nil { - break - } - - args, err := ec.field_Mutation_updateReplicaSet_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateReplicaSet(childComplexity, args["name"].(string), args["namespace"].(string), args["replicaSet"].(JSON)), true - - case "Mutation.updateResourceQuota": - if e.complexity.Mutation.UpdateResourceQuota == nil { - break - } - - args, err := ec.field_Mutation_updateResourceQuota_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateResourceQuota(childComplexity, args["namespace"].(string), args["name"].(string), args["json"].(JSON)), true - - case "Mutation.updateSecret": - if e.complexity.Mutation.UpdateSecret == nil { - break - } - - args, err := ec.field_Mutation_updateSecret_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateSecret(childComplexity, args["name"].(string), args["namespace"].(string), args["secret"].(JSON)), true - - case "Mutation.updateService": - if e.complexity.Mutation.UpdateService == nil { - break - } - - args, err := ec.field_Mutation_updateService_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateService(childComplexity, args["name"].(string), args["namespace"].(string), args["service"].(JSON)), true - - case "Mutation.updateSubscription": - if e.complexity.Mutation.UpdateSubscription == nil { - break - } - - args, err := ec.field_Mutation_updateSubscription_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Mutation.UpdateSubscription(childComplexity, args["name"].(string), args["namespace"].(string), args["params"].(EventSubscriptionSpecInput)), true - - case "Namespace.applications": - if e.complexity.Namespace.Applications == nil { - break - } - - return e.complexity.Namespace.Applications(childComplexity), true - - case "Namespace.deployments": - if e.complexity.Namespace.Deployments == nil { - break - } - - args, err := ec.field_Namespace_deployments_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Namespace.Deployments(childComplexity, args["excludeFunctions"].(*bool)), true - - case "Namespace.isSystemNamespace": - if e.complexity.Namespace.IsSystemNamespace == nil { - break - } - - return e.complexity.Namespace.IsSystemNamespace(childComplexity), true - - case "Namespace.labels": - if e.complexity.Namespace.Labels == nil { - break - } - - return e.complexity.Namespace.Labels(childComplexity), true - - case "Namespace.name": - if e.complexity.Namespace.Name == nil { - break - } - - return e.complexity.Namespace.Name(childComplexity), true - - case "Namespace.pods": - if e.complexity.Namespace.Pods == nil { - break - } - - return e.complexity.Namespace.Pods(childComplexity), true - - case "Namespace.status": - if e.complexity.Namespace.Status == nil { - break - } - - return e.complexity.Namespace.Status(childComplexity), true - - case "NamespaceEvent.namespace": - if e.complexity.NamespaceEvent.Namespace == nil { - break - } - - return e.complexity.NamespaceEvent.Namespace(childComplexity), true - - case "NamespaceEvent.type": - if e.complexity.NamespaceEvent.Type == nil { - break - } - - return e.complexity.NamespaceEvent.Type(childComplexity), true - - case "NamespaceListItem.applicationsCount": - if e.complexity.NamespaceListItem.ApplicationsCount == nil { - break - } - - return e.complexity.NamespaceListItem.ApplicationsCount(childComplexity), true - - case "NamespaceListItem.healthyPodsCount": - if e.complexity.NamespaceListItem.HealthyPodsCount == nil { - break - } - - return e.complexity.NamespaceListItem.HealthyPodsCount(childComplexity), true - - case "NamespaceListItem.isSystemNamespace": - if e.complexity.NamespaceListItem.IsSystemNamespace == nil { - break - } - - return e.complexity.NamespaceListItem.IsSystemNamespace(childComplexity), true - - case "NamespaceListItem.labels": - if e.complexity.NamespaceListItem.Labels == nil { - break - } - - return e.complexity.NamespaceListItem.Labels(childComplexity), true - - case "NamespaceListItem.name": - if e.complexity.NamespaceListItem.Name == nil { - break - } - - return e.complexity.NamespaceListItem.Name(childComplexity), true - - case "NamespaceListItem.podsCount": - if e.complexity.NamespaceListItem.PodsCount == nil { - break - } - - return e.complexity.NamespaceListItem.PodsCount(childComplexity), true - - case "NamespaceListItem.status": - if e.complexity.NamespaceListItem.Status == nil { - break - } - - return e.complexity.NamespaceListItem.Status(childComplexity), true - - case "NamespaceMutationOutput.labels": - if e.complexity.NamespaceMutationOutput.Labels == nil { - break - } - - return e.complexity.NamespaceMutationOutput.Labels(childComplexity), true - - case "NamespaceMutationOutput.name": - if e.complexity.NamespaceMutationOutput.Name == nil { - break - } - - return e.complexity.NamespaceMutationOutput.Name(childComplexity), true - - case "NavigationNode.externalLink": - if e.complexity.NavigationNode.ExternalLink == nil { - break - } - - return e.complexity.NavigationNode.ExternalLink(childComplexity), true - - case "NavigationNode.label": - if e.complexity.NavigationNode.Label == nil { - break - } - - return e.complexity.NavigationNode.Label(childComplexity), true - - case "NavigationNode.navigationPath": - if e.complexity.NavigationNode.NavigationPath == nil { - break - } - - return e.complexity.NavigationNode.NavigationPath(childComplexity), true - - case "NavigationNode.order": - if e.complexity.NavigationNode.Order == nil { - break - } - - return e.complexity.NavigationNode.Order(childComplexity), true - - case "NavigationNode.requiredPermissions": - if e.complexity.NavigationNode.RequiredPermissions == nil { - break - } - - return e.complexity.NavigationNode.RequiredPermissions(childComplexity), true - - case "NavigationNode.settings": - if e.complexity.NavigationNode.Settings == nil { - break - } - - return e.complexity.NavigationNode.Settings(childComplexity), true - - case "NavigationNode.showInNavigation": - if e.complexity.NavigationNode.ShowInNavigation == nil { - break - } - - return e.complexity.NavigationNode.ShowInNavigation(childComplexity), true - - case "NavigationNode.viewUrl": - if e.complexity.NavigationNode.ViewURL == nil { - break - } - - return e.complexity.NavigationNode.ViewURL(childComplexity), true - - case "OAuth2Client.error": - if e.complexity.OAuth2Client.Error == nil { - break - } - - return e.complexity.OAuth2Client.Error(childComplexity), true - - case "OAuth2Client.generation": - if e.complexity.OAuth2Client.Generation == nil { - break - } - - return e.complexity.OAuth2Client.Generation(childComplexity), true - - case "OAuth2Client.name": - if e.complexity.OAuth2Client.Name == nil { - break - } - - return e.complexity.OAuth2Client.Name(childComplexity), true - - case "OAuth2Client.namespace": - if e.complexity.OAuth2Client.Namespace == nil { - break - } - - return e.complexity.OAuth2Client.Namespace(childComplexity), true - - case "OAuth2Client.spec": - if e.complexity.OAuth2Client.Spec == nil { - break - } - - return e.complexity.OAuth2Client.Spec(childComplexity), true - - case "OAuth2ClientError.code": - if e.complexity.OAuth2ClientError.Code == nil { - break - } - - return e.complexity.OAuth2ClientError.Code(childComplexity), true - - case "OAuth2ClientError.description": - if e.complexity.OAuth2ClientError.Description == nil { - break - } - - return e.complexity.OAuth2ClientError.Description(childComplexity), true - - case "OAuth2ClientEvent.client": - if e.complexity.OAuth2ClientEvent.Client == nil { - break - } - - return e.complexity.OAuth2ClientEvent.Client(childComplexity), true - - case "OAuth2ClientEvent.type": - if e.complexity.OAuth2ClientEvent.Type == nil { - break - } - - return e.complexity.OAuth2ClientEvent.Type(childComplexity), true - - case "OAuth2ClientSpec.grantTypes": - if e.complexity.OAuth2ClientSpec.GrantTypes == nil { - break - } - - return e.complexity.OAuth2ClientSpec.GrantTypes(childComplexity), true - - case "OAuth2ClientSpec.responseTypes": - if e.complexity.OAuth2ClientSpec.ResponseTypes == nil { - break - } - - return e.complexity.OAuth2ClientSpec.ResponseTypes(childComplexity), true - - case "OAuth2ClientSpec.scope": - if e.complexity.OAuth2ClientSpec.Scope == nil { - break - } - - return e.complexity.OAuth2ClientSpec.Scope(childComplexity), true - - case "OAuth2ClientSpec.secretName": - if e.complexity.OAuth2ClientSpec.SecretName == nil { - break - } - - return e.complexity.OAuth2ClientSpec.SecretName(childComplexity), true - - case "OwnerReference.apiVersion": - if e.complexity.OwnerReference.APIVersion == nil { - break - } - - return e.complexity.OwnerReference.APIVersion(childComplexity), true - - case "OwnerReference.blockOwnerDeletion": - if e.complexity.OwnerReference.BlockOwnerDeletion == nil { - break - } - - return e.complexity.OwnerReference.BlockOwnerDeletion(childComplexity), true - - case "OwnerReference.controller": - if e.complexity.OwnerReference.Controller == nil { - break - } - - return e.complexity.OwnerReference.Controller(childComplexity), true - - case "OwnerReference.kind": - if e.complexity.OwnerReference.Kind == nil { - break - } - - return e.complexity.OwnerReference.Kind(childComplexity), true - - case "OwnerReference.name": - if e.complexity.OwnerReference.Name == nil { - break - } - - return e.complexity.OwnerReference.Name(childComplexity), true - - case "OwnerReference.UID": - if e.complexity.OwnerReference.UID == nil { - break - } - - return e.complexity.OwnerReference.UID(childComplexity), true - - case "Pod.containerStates": - if e.complexity.Pod.ContainerStates == nil { - break - } - - return e.complexity.Pod.ContainerStates(childComplexity), true - - case "Pod.creationTimestamp": - if e.complexity.Pod.CreationTimestamp == nil { - break - } - - return e.complexity.Pod.CreationTimestamp(childComplexity), true - - case "Pod.json": - if e.complexity.Pod.JSON == nil { - break - } - - return e.complexity.Pod.JSON(childComplexity), true - - case "Pod.labels": - if e.complexity.Pod.Labels == nil { - break - } - - return e.complexity.Pod.Labels(childComplexity), true - - case "Pod.name": - if e.complexity.Pod.Name == nil { - break - } - - return e.complexity.Pod.Name(childComplexity), true - - case "Pod.namespace": - if e.complexity.Pod.Namespace == nil { - break - } - - return e.complexity.Pod.Namespace(childComplexity), true - - case "Pod.nodeName": - if e.complexity.Pod.NodeName == nil { - break - } - - return e.complexity.Pod.NodeName(childComplexity), true - - case "Pod.restartCount": - if e.complexity.Pod.RestartCount == nil { - break - } - - return e.complexity.Pod.RestartCount(childComplexity), true - - case "Pod.status": - if e.complexity.Pod.Status == nil { - break - } - - return e.complexity.Pod.Status(childComplexity), true - - case "PodEvent.pod": - if e.complexity.PodEvent.Pod == nil { - break - } - - return e.complexity.PodEvent.Pod(childComplexity), true - - case "PodEvent.type": - if e.complexity.PodEvent.Type == nil { - break - } - - return e.complexity.PodEvent.Type(childComplexity), true - - case "PolicyRule.apiGroups": - if e.complexity.PolicyRule.APIGroups == nil { - break - } - - return e.complexity.PolicyRule.APIGroups(childComplexity), true - - case "PolicyRule.resources": - if e.complexity.PolicyRule.Resources == nil { - break - } - - return e.complexity.PolicyRule.Resources(childComplexity), true - - case "PolicyRule.verbs": - if e.complexity.PolicyRule.Verbs == nil { - break - } - - return e.complexity.PolicyRule.Verbs(childComplexity), true - - case "ProtocolSettings.contentMode": - if e.complexity.ProtocolSettings.ContentMode == nil { - break - } - - return e.complexity.ProtocolSettings.ContentMode(childComplexity), true - - case "ProtocolSettings.exemptHandshake": - if e.complexity.ProtocolSettings.ExemptHandshake == nil { - break - } - - return e.complexity.ProtocolSettings.ExemptHandshake(childComplexity), true - - case "ProtocolSettings.qos": - if e.complexity.ProtocolSettings.Qos == nil { - break - } - - return e.complexity.ProtocolSettings.Qos(childComplexity), true - - case "ProtocolSettings.webhookAuth": - if e.complexity.ProtocolSettings.WebhookAuth == nil { - break - } - - return e.complexity.ProtocolSettings.WebhookAuth(childComplexity), true - - case "Query.APIRule": - if e.complexity.Query.APIRule == nil { - break - } - - args, err := ec.field_Query_APIRule_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.APIRule(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.APIRules": - if e.complexity.Query.APIRules == nil { - break - } - - args, err := ec.field_Query_APIRules_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.APIRules(childComplexity, args["namespace"].(string), args["serviceName"].(*string), args["hostname"].(*string)), true - - case "Query.addonsConfigurations": - if e.complexity.Query.AddonsConfigurations == nil { - break - } - - args, err := ec.field_Query_addonsConfigurations_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.AddonsConfigurations(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.application": - if e.complexity.Query.Application == nil { - break - } - - args, err := ec.field_Query_application_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Application(childComplexity, args["name"].(string)), true - - case "Query.applications": - if e.complexity.Query.Applications == nil { - break - } - - args, err := ec.field_Query_applications_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Applications(childComplexity, args["namespace"].(*string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.backendModules": - if e.complexity.Query.BackendModules == nil { - break - } - - return e.complexity.Query.BackendModules(childComplexity), true - - case "Query.bindableResources": - if e.complexity.Query.BindableResources == nil { - break - } - - args, err := ec.field_Query_bindableResources_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.BindableResources(childComplexity, args["namespace"].(string)), true - - case "Query.clusterAddonsConfigurations": - if e.complexity.Query.ClusterAddonsConfigurations == nil { - break - } - - args, err := ec.field_Query_clusterAddonsConfigurations_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ClusterAddonsConfigurations(childComplexity, args["first"].(*int), args["offset"].(*int)), true - - case "Query.clusterMicroFrontends": - if e.complexity.Query.ClusterMicroFrontends == nil { - break - } - - return e.complexity.Query.ClusterMicroFrontends(childComplexity), true - - case "Query.clusterRole": - if e.complexity.Query.ClusterRole == nil { - break - } - - args, err := ec.field_Query_clusterRole_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ClusterRole(childComplexity, args["name"].(string)), true - - case "Query.clusterRoleBindings": - if e.complexity.Query.ClusterRoleBindings == nil { - break - } - - return e.complexity.Query.ClusterRoleBindings(childComplexity), true - - case "Query.clusterRoles": - if e.complexity.Query.ClusterRoles == nil { - break - } - - return e.complexity.Query.ClusterRoles(childComplexity), true - - case "Query.clusterServiceBroker": - if e.complexity.Query.ClusterServiceBroker == nil { - break - } - - args, err := ec.field_Query_clusterServiceBroker_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ClusterServiceBroker(childComplexity, args["name"].(string)), true - - case "Query.clusterServiceBrokers": - if e.complexity.Query.ClusterServiceBrokers == nil { - break - } - - args, err := ec.field_Query_clusterServiceBrokers_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ClusterServiceBrokers(childComplexity, args["first"].(*int), args["offset"].(*int)), true - - case "Query.clusterServiceClass": - if e.complexity.Query.ClusterServiceClass == nil { - break - } - - args, err := ec.field_Query_clusterServiceClass_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ClusterServiceClass(childComplexity, args["name"].(string)), true - - case "Query.clusterServiceClasses": - if e.complexity.Query.ClusterServiceClasses == nil { - break - } - - args, err := ec.field_Query_clusterServiceClasses_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ClusterServiceClasses(childComplexity, args["first"].(*int), args["offset"].(*int)), true - - case "Query.configMap": - if e.complexity.Query.ConfigMap == nil { - break - } - - args, err := ec.field_Query_configMap_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ConfigMap(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.configMaps": - if e.complexity.Query.ConfigMaps == nil { - break - } - - args, err := ec.field_Query_configMaps_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ConfigMaps(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.connectorService": - if e.complexity.Query.ConnectorService == nil { - break - } - - args, err := ec.field_Query_connectorService_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ConnectorService(childComplexity, args["application"].(string)), true - - case "Query.deployments": - if e.complexity.Query.Deployments == nil { - break - } - - args, err := ec.field_Query_deployments_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Deployments(childComplexity, args["namespace"].(string), args["excludeFunctions"].(*bool)), true - - case "Query.eventActivations": - if e.complexity.Query.EventActivations == nil { - break - } - - args, err := ec.field_Query_eventActivations_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.EventActivations(childComplexity, args["namespace"].(string)), true - - case "Query.eventSubscriptions": - if e.complexity.Query.EventSubscriptions == nil { - break - } - - args, err := ec.field_Query_eventSubscriptions_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.EventSubscriptions(childComplexity, args["ownerName"].(string), args["namespace"].(string)), true - - case "Query.function": - if e.complexity.Query.Function == nil { - break - } - - args, err := ec.field_Query_function_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Function(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.functions": - if e.complexity.Query.Functions == nil { - break - } - - args, err := ec.field_Query_functions_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Functions(childComplexity, args["namespace"].(string)), true - - case "Query.gitRepositories": - if e.complexity.Query.GitRepositories == nil { - break - } - - args, err := ec.field_Query_gitRepositories_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.GitRepositories(childComplexity, args["namespace"].(string)), true - - case "Query.gitRepository": - if e.complexity.Query.GitRepository == nil { - break - } - - args, err := ec.field_Query_gitRepository_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.GitRepository(childComplexity, args["namespace"].(string), args["name"].(string)), true - - case "Query.limitRanges": - if e.complexity.Query.LimitRanges == nil { - break - } - - args, err := ec.field_Query_limitRanges_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.LimitRanges(childComplexity, args["namespace"].(string)), true - - case "Query.microFrontends": - if e.complexity.Query.MicroFrontends == nil { - break - } - - args, err := ec.field_Query_microFrontends_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.MicroFrontends(childComplexity, args["namespace"].(string)), true - - case "Query.namespace": - if e.complexity.Query.Namespace == nil { - break - } - - args, err := ec.field_Query_namespace_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Namespace(childComplexity, args["name"].(string)), true - - case "Query.namespaces": - if e.complexity.Query.Namespaces == nil { - break - } - - args, err := ec.field_Query_namespaces_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Namespaces(childComplexity, args["withSystemNamespaces"].(*bool), args["withInactiveStatus"].(*bool)), true - - case "Query.oAuth2Client": - if e.complexity.Query.OAuth2Client == nil { - break - } - - args, err := ec.field_Query_oAuth2Client_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.OAuth2Client(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.oAuth2Clients": - if e.complexity.Query.OAuth2Clients == nil { - break - } - - args, err := ec.field_Query_oAuth2Clients_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.OAuth2Clients(childComplexity, args["namespace"].(string)), true - - case "Query.pod": - if e.complexity.Query.Pod == nil { - break - } - - args, err := ec.field_Query_pod_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Pod(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.pods": - if e.complexity.Query.Pods == nil { - break - } - - args, err := ec.field_Query_pods_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Pods(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.replicaSet": - if e.complexity.Query.ReplicaSet == nil { - break - } - - args, err := ec.field_Query_replicaSet_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ReplicaSet(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.replicaSets": - if e.complexity.Query.ReplicaSets == nil { - break - } - - args, err := ec.field_Query_replicaSets_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ReplicaSets(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.resourceQuotas": - if e.complexity.Query.ResourceQuotas == nil { - break - } - - args, err := ec.field_Query_resourceQuotas_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ResourceQuotas(childComplexity, args["namespace"].(string)), true - - case "Query.role": - if e.complexity.Query.Role == nil { - break - } - - args, err := ec.field_Query_role_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Role(childComplexity, args["namespace"].(string), args["name"].(string)), true - - case "Query.roleBindings": - if e.complexity.Query.RoleBindings == nil { - break - } - - args, err := ec.field_Query_roleBindings_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.RoleBindings(childComplexity, args["namespace"].(string)), true - - case "Query.roles": - if e.complexity.Query.Roles == nil { - break - } - - args, err := ec.field_Query_roles_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Roles(childComplexity, args["namespace"].(string)), true - - case "Query.secret": - if e.complexity.Query.Secret == nil { - break - } - - args, err := ec.field_Query_secret_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Secret(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.secrets": - if e.complexity.Query.Secrets == nil { - break - } - - args, err := ec.field_Query_secrets_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Secrets(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.selfSubjectRules": - if e.complexity.Query.SelfSubjectRules == nil { - break - } - - args, err := ec.field_Query_selfSubjectRules_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.SelfSubjectRules(childComplexity, args["namespace"].(*string)), true - - case "Query.service": - if e.complexity.Query.Service == nil { - break - } - - args, err := ec.field_Query_service_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Service(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.serviceBinding": - if e.complexity.Query.ServiceBinding == nil { - break - } - - args, err := ec.field_Query_serviceBinding_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceBinding(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.serviceBindingUsage": - if e.complexity.Query.ServiceBindingUsage == nil { - break - } - - args, err := ec.field_Query_serviceBindingUsage_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceBindingUsage(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.serviceBindingUsages": - if e.complexity.Query.ServiceBindingUsages == nil { - break - } - - args, err := ec.field_Query_serviceBindingUsages_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceBindingUsages(childComplexity, args["namespace"].(string), args["resourceKind"].(*string), args["resourceName"].(*string)), true - - case "Query.serviceBroker": - if e.complexity.Query.ServiceBroker == nil { - break - } - - args, err := ec.field_Query_serviceBroker_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceBroker(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.serviceBrokers": - if e.complexity.Query.ServiceBrokers == nil { - break - } - - args, err := ec.field_Query_serviceBrokers_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceBrokers(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.serviceClass": - if e.complexity.Query.ServiceClass == nil { - break - } - - args, err := ec.field_Query_serviceClass_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceClass(childComplexity, args["namespace"].(string), args["name"].(string)), true - - case "Query.serviceClasses": - if e.complexity.Query.ServiceClasses == nil { - break - } - - args, err := ec.field_Query_serviceClasses_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceClasses(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.serviceInstance": - if e.complexity.Query.ServiceInstance == nil { - break - } - - args, err := ec.field_Query_serviceInstance_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceInstance(childComplexity, args["name"].(string), args["namespace"].(string)), true - - case "Query.serviceInstances": - if e.complexity.Query.ServiceInstances == nil { - break - } - - args, err := ec.field_Query_serviceInstances_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.ServiceInstances(childComplexity, args["namespace"].(string), args["first"].(*int), args["offset"].(*int), args["status"].(*InstanceStatusType)), true - - case "Query.services": - if e.complexity.Query.Services == nil { - break - } - - args, err := ec.field_Query_services_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Services(childComplexity, args["namespace"].(string), args["excludedLabels"].([]string), args["first"].(*int), args["offset"].(*int)), true - - case "Query.triggers": - if e.complexity.Query.Triggers == nil { - break - } - - args, err := ec.field_Query_triggers_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Triggers(childComplexity, args["namespace"].(string), args["serviceName"].(string)), true - - case "Query.usageKinds": - if e.complexity.Query.UsageKinds == nil { - break - } - - args, err := ec.field_Query_usageKinds_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.UsageKinds(childComplexity, args["first"].(*int), args["offset"].(*int)), true - - case "Query.versionInfo": - if e.complexity.Query.VersionInfo == nil { - break - } - - return e.complexity.Query.VersionInfo(childComplexity), true - - case "ReplicaSet.creationTimestamp": - if e.complexity.ReplicaSet.CreationTimestamp == nil { - break - } - - return e.complexity.ReplicaSet.CreationTimestamp(childComplexity), true - - case "ReplicaSet.images": - if e.complexity.ReplicaSet.Images == nil { - break - } - - return e.complexity.ReplicaSet.Images(childComplexity), true - - case "ReplicaSet.json": - if e.complexity.ReplicaSet.JSON == nil { - break - } - - return e.complexity.ReplicaSet.JSON(childComplexity), true - - case "ReplicaSet.labels": - if e.complexity.ReplicaSet.Labels == nil { - break - } - - return e.complexity.ReplicaSet.Labels(childComplexity), true - - case "ReplicaSet.name": - if e.complexity.ReplicaSet.Name == nil { - break - } - - return e.complexity.ReplicaSet.Name(childComplexity), true - - case "ReplicaSet.namespace": - if e.complexity.ReplicaSet.Namespace == nil { - break - } - - return e.complexity.ReplicaSet.Namespace(childComplexity), true - - case "ReplicaSet.pods": - if e.complexity.ReplicaSet.Pods == nil { - break - } - - return e.complexity.ReplicaSet.Pods(childComplexity), true - - case "RepositoryAuth.secretName": - if e.complexity.RepositoryAuth.SecretName == nil { - break - } - - return e.complexity.RepositoryAuth.SecretName(childComplexity), true - - case "RepositoryAuth.type": - if e.complexity.RepositoryAuth.Type == nil { - break - } - - return e.complexity.RepositoryAuth.Type(childComplexity), true - - case "RequiredPermission.apiGroup": - if e.complexity.RequiredPermission.APIGroup == nil { - break - } - - return e.complexity.RequiredPermission.APIGroup(childComplexity), true - - case "RequiredPermission.resource": - if e.complexity.RequiredPermission.Resource == nil { - break - } - - return e.complexity.RequiredPermission.Resource(childComplexity), true - - case "RequiredPermission.verbs": - if e.complexity.RequiredPermission.Verbs == nil { - break - } - - return e.complexity.RequiredPermission.Verbs(childComplexity), true - - case "ResourceLimits.cpu": - if e.complexity.ResourceLimits.CPU == nil { - break - } - - return e.complexity.ResourceLimits.CPU(childComplexity), true - - case "ResourceLimits.memory": - if e.complexity.ResourceLimits.Memory == nil { - break - } - - return e.complexity.ResourceLimits.Memory(childComplexity), true - - case "ResourceQuota.json": - if e.complexity.ResourceQuota.JSON == nil { - break - } - - return e.complexity.ResourceQuota.JSON(childComplexity), true - - case "ResourceQuota.name": - if e.complexity.ResourceQuota.Name == nil { - break - } - - return e.complexity.ResourceQuota.Name(childComplexity), true - - case "ResourceQuota.spec": - if e.complexity.ResourceQuota.Spec == nil { - break - } - - return e.complexity.ResourceQuota.Spec(childComplexity), true - - case "ResourceQuotaHard.limits": - if e.complexity.ResourceQuotaHard.Limits == nil { - break - } - - return e.complexity.ResourceQuotaHard.Limits(childComplexity), true - - case "ResourceQuotaHard.pods": - if e.complexity.ResourceQuotaHard.Pods == nil { - break - } - - return e.complexity.ResourceQuotaHard.Pods(childComplexity), true - - case "ResourceQuotaHard.requests": - if e.complexity.ResourceQuotaHard.Requests == nil { - break - } - - return e.complexity.ResourceQuotaHard.Requests(childComplexity), true - - case "ResourceQuotaSpec.hard": - if e.complexity.ResourceQuotaSpec.Hard == nil { - break - } - - return e.complexity.ResourceQuotaSpec.Hard(childComplexity), true - - case "ResourceRef.name": - if e.complexity.ResourceRef.Name == nil { - break - } - - return e.complexity.ResourceRef.Name(childComplexity), true - - case "ResourceRef.namespace": - if e.complexity.ResourceRef.Namespace == nil { - break - } - - return e.complexity.ResourceRef.Namespace(childComplexity), true - - case "ResourceRule.apiGroups": - if e.complexity.ResourceRule.APIGroups == nil { - break - } - - return e.complexity.ResourceRule.APIGroups(childComplexity), true - - case "ResourceRule.resources": - if e.complexity.ResourceRule.Resources == nil { - break - } - - return e.complexity.ResourceRule.Resources(childComplexity), true - - case "ResourceRule.verbs": - if e.complexity.ResourceRule.Verbs == nil { - break - } - - return e.complexity.ResourceRule.Verbs(childComplexity), true - - case "ResourceType.cpu": - if e.complexity.ResourceType.CPU == nil { - break - } - - return e.complexity.ResourceType.CPU(childComplexity), true - - case "ResourceType.memory": - if e.complexity.ResourceType.Memory == nil { - break - } - - return e.complexity.ResourceType.Memory(childComplexity), true - - case "ResourceValues.cpu": - if e.complexity.ResourceValues.CPU == nil { - break - } - - return e.complexity.ResourceValues.CPU(childComplexity), true - - case "ResourceValues.memory": - if e.complexity.ResourceValues.Memory == nil { - break - } - - return e.complexity.ResourceValues.Memory(childComplexity), true - - case "Role.name": - if e.complexity.Role.Name == nil { - break - } - - return e.complexity.Role.Name(childComplexity), true - - case "Role.namespace": - if e.complexity.Role.Namespace == nil { - break - } - - return e.complexity.Role.Namespace(childComplexity), true - - case "Role.rules": - if e.complexity.Role.Rules == nil { - break - } - - return e.complexity.Role.Rules(childComplexity), true - - case "RoleBinding.name": - if e.complexity.RoleBinding.Name == nil { - break - } - - return e.complexity.RoleBinding.Name(childComplexity), true - - case "RoleBinding.namespace": - if e.complexity.RoleBinding.Namespace == nil { - break - } - - return e.complexity.RoleBinding.Namespace(childComplexity), true - - case "RoleBinding.roleRef": - if e.complexity.RoleBinding.RoleRef == nil { - break - } - - return e.complexity.RoleBinding.RoleRef(childComplexity), true - - case "RoleBindingEvent.roleBinding": - if e.complexity.RoleBindingEvent.RoleBinding == nil { - break - } - - return e.complexity.RoleBindingEvent.RoleBinding(childComplexity), true - - case "RoleBindingEvent.type": - if e.complexity.RoleBindingEvent.Type == nil { - break - } - - return e.complexity.RoleBindingEvent.Type(childComplexity), true - - case "RoleRef.kind": - if e.complexity.RoleRef.Kind == nil { - break - } - - return e.complexity.RoleRef.Kind(childComplexity), true - - case "RoleRef.name": - if e.complexity.RoleRef.Name == nil { - break - } - - return e.complexity.RoleRef.Name(childComplexity), true - - case "Rule.accessStrategies": - if e.complexity.Rule.AccessStrategies == nil { - break - } - - return e.complexity.Rule.AccessStrategies(childComplexity), true - - case "Rule.methods": - if e.complexity.Rule.Methods == nil { - break - } - - return e.complexity.Rule.Methods(childComplexity), true - - case "Rule.path": - if e.complexity.Rule.Path == nil { - break - } - - return e.complexity.Rule.Path(childComplexity), true - - case "Secret.annotations": - if e.complexity.Secret.Annotations == nil { - break - } - - return e.complexity.Secret.Annotations(childComplexity), true - - case "Secret.creationTime": - if e.complexity.Secret.CreationTime == nil { - break - } - - return e.complexity.Secret.CreationTime(childComplexity), true - - case "Secret.data": - if e.complexity.Secret.Data == nil { - break - } - - return e.complexity.Secret.Data(childComplexity), true - - case "Secret.json": - if e.complexity.Secret.JSON == nil { - break - } - - return e.complexity.Secret.JSON(childComplexity), true - - case "Secret.labels": - if e.complexity.Secret.Labels == nil { - break - } - - return e.complexity.Secret.Labels(childComplexity), true - - case "Secret.name": - if e.complexity.Secret.Name == nil { - break - } - - return e.complexity.Secret.Name(childComplexity), true - - case "Secret.namespace": - if e.complexity.Secret.Namespace == nil { - break - } - - return e.complexity.Secret.Namespace(childComplexity), true - - case "Secret.type": - if e.complexity.Secret.Type == nil { - break - } - - return e.complexity.Secret.Type(childComplexity), true - - case "SecretEvent.secret": - if e.complexity.SecretEvent.Secret == nil { - break - } - - return e.complexity.SecretEvent.Secret(childComplexity), true - - case "SecretEvent.type": - if e.complexity.SecretEvent.Type == nil { - break - } - - return e.complexity.SecretEvent.Type(childComplexity), true - - case "Service.clusterIP": - if e.complexity.Service.ClusterIP == nil { - break - } - - return e.complexity.Service.ClusterIP(childComplexity), true - - case "Service.creationTimestamp": - if e.complexity.Service.CreationTimestamp == nil { - break - } - - return e.complexity.Service.CreationTimestamp(childComplexity), true - - case "Service.json": - if e.complexity.Service.JSON == nil { - break - } - - return e.complexity.Service.JSON(childComplexity), true - - case "Service.labels": - if e.complexity.Service.Labels == nil { - break - } - - return e.complexity.Service.Labels(childComplexity), true - - case "Service.name": - if e.complexity.Service.Name == nil { - break - } - - return e.complexity.Service.Name(childComplexity), true - - case "Service.ports": - if e.complexity.Service.Ports == nil { - break - } - - return e.complexity.Service.Ports(childComplexity), true - - case "Service.status": - if e.complexity.Service.Status == nil { - break - } - - return e.complexity.Service.Status(childComplexity), true - - case "Service.UID": - if e.complexity.Service.UID == nil { - break - } - - return e.complexity.Service.UID(childComplexity), true - - case "ServiceBinding.name": - if e.complexity.ServiceBinding.Name == nil { - break - } - - return e.complexity.ServiceBinding.Name(childComplexity), true - - case "ServiceBinding.namespace": - if e.complexity.ServiceBinding.Namespace == nil { - break - } - - return e.complexity.ServiceBinding.Namespace(childComplexity), true - - case "ServiceBinding.parameters": - if e.complexity.ServiceBinding.Parameters == nil { - break - } - - return e.complexity.ServiceBinding.Parameters(childComplexity), true - - case "ServiceBinding.secret": - if e.complexity.ServiceBinding.Secret == nil { - break - } - - return e.complexity.ServiceBinding.Secret(childComplexity), true - - case "ServiceBinding.serviceInstanceName": - if e.complexity.ServiceBinding.ServiceInstanceName == nil { - break - } - - return e.complexity.ServiceBinding.ServiceInstanceName(childComplexity), true - - case "ServiceBinding.status": - if e.complexity.ServiceBinding.Status == nil { - break - } - - return e.complexity.ServiceBinding.Status(childComplexity), true - - case "ServiceBindingEvent.serviceBinding": - if e.complexity.ServiceBindingEvent.ServiceBinding == nil { - break - } - - return e.complexity.ServiceBindingEvent.ServiceBinding(childComplexity), true - - case "ServiceBindingEvent.type": - if e.complexity.ServiceBindingEvent.Type == nil { - break - } - - return e.complexity.ServiceBindingEvent.Type(childComplexity), true - - case "ServiceBindingStatus.message": - if e.complexity.ServiceBindingStatus.Message == nil { - break - } - - return e.complexity.ServiceBindingStatus.Message(childComplexity), true - - case "ServiceBindingStatus.reason": - if e.complexity.ServiceBindingStatus.Reason == nil { - break - } - - return e.complexity.ServiceBindingStatus.Reason(childComplexity), true - - case "ServiceBindingStatus.type": - if e.complexity.ServiceBindingStatus.Type == nil { - break - } - - return e.complexity.ServiceBindingStatus.Type(childComplexity), true - - case "ServiceBindingUsage.name": - if e.complexity.ServiceBindingUsage.Name == nil { - break - } - - return e.complexity.ServiceBindingUsage.Name(childComplexity), true - - case "ServiceBindingUsage.namespace": - if e.complexity.ServiceBindingUsage.Namespace == nil { - break - } - - return e.complexity.ServiceBindingUsage.Namespace(childComplexity), true - - case "ServiceBindingUsage.parameters": - if e.complexity.ServiceBindingUsage.Parameters == nil { - break - } - - return e.complexity.ServiceBindingUsage.Parameters(childComplexity), true - - case "ServiceBindingUsage.serviceBinding": - if e.complexity.ServiceBindingUsage.ServiceBinding == nil { - break - } - - return e.complexity.ServiceBindingUsage.ServiceBinding(childComplexity), true - - case "ServiceBindingUsage.status": - if e.complexity.ServiceBindingUsage.Status == nil { - break - } - - return e.complexity.ServiceBindingUsage.Status(childComplexity), true - - case "ServiceBindingUsage.usedBy": - if e.complexity.ServiceBindingUsage.UsedBy == nil { - break - } - - return e.complexity.ServiceBindingUsage.UsedBy(childComplexity), true - - case "ServiceBindingUsageEvent.serviceBindingUsage": - if e.complexity.ServiceBindingUsageEvent.ServiceBindingUsage == nil { - break - } - - return e.complexity.ServiceBindingUsageEvent.ServiceBindingUsage(childComplexity), true - - case "ServiceBindingUsageEvent.type": - if e.complexity.ServiceBindingUsageEvent.Type == nil { - break - } - - return e.complexity.ServiceBindingUsageEvent.Type(childComplexity), true - - case "ServiceBindingUsageParameters.envPrefix": - if e.complexity.ServiceBindingUsageParameters.EnvPrefix == nil { - break - } - - return e.complexity.ServiceBindingUsageParameters.EnvPrefix(childComplexity), true - - case "ServiceBindingUsageStatus.message": - if e.complexity.ServiceBindingUsageStatus.Message == nil { - break - } - - return e.complexity.ServiceBindingUsageStatus.Message(childComplexity), true - - case "ServiceBindingUsageStatus.reason": - if e.complexity.ServiceBindingUsageStatus.Reason == nil { - break - } - - return e.complexity.ServiceBindingUsageStatus.Reason(childComplexity), true - - case "ServiceBindingUsageStatus.type": - if e.complexity.ServiceBindingUsageStatus.Type == nil { - break - } - - return e.complexity.ServiceBindingUsageStatus.Type(childComplexity), true - - case "ServiceBindings.items": - if e.complexity.ServiceBindings.Items == nil { - break - } - - return e.complexity.ServiceBindings.Items(childComplexity), true - - case "ServiceBindings.stats": - if e.complexity.ServiceBindings.Stats == nil { - break - } - - return e.complexity.ServiceBindings.Stats(childComplexity), true - - case "ServiceBindingsStats.failed": - if e.complexity.ServiceBindingsStats.Failed == nil { - break - } - - return e.complexity.ServiceBindingsStats.Failed(childComplexity), true - - case "ServiceBindingsStats.pending": - if e.complexity.ServiceBindingsStats.Pending == nil { - break - } - - return e.complexity.ServiceBindingsStats.Pending(childComplexity), true - - case "ServiceBindingsStats.ready": - if e.complexity.ServiceBindingsStats.Ready == nil { - break - } - - return e.complexity.ServiceBindingsStats.Ready(childComplexity), true - - case "ServiceBindingsStats.unknown": - if e.complexity.ServiceBindingsStats.Unknown == nil { - break - } - - return e.complexity.ServiceBindingsStats.Unknown(childComplexity), true - - case "ServiceBroker.creationTimestamp": - if e.complexity.ServiceBroker.CreationTimestamp == nil { - break - } - - return e.complexity.ServiceBroker.CreationTimestamp(childComplexity), true - - case "ServiceBroker.labels": - if e.complexity.ServiceBroker.Labels == nil { - break - } - - return e.complexity.ServiceBroker.Labels(childComplexity), true - - case "ServiceBroker.name": - if e.complexity.ServiceBroker.Name == nil { - break - } - - return e.complexity.ServiceBroker.Name(childComplexity), true - - case "ServiceBroker.namespace": - if e.complexity.ServiceBroker.Namespace == nil { - break - } - - return e.complexity.ServiceBroker.Namespace(childComplexity), true - - case "ServiceBroker.status": - if e.complexity.ServiceBroker.Status == nil { - break - } - - return e.complexity.ServiceBroker.Status(childComplexity), true - - case "ServiceBroker.url": - if e.complexity.ServiceBroker.URL == nil { - break - } - - return e.complexity.ServiceBroker.URL(childComplexity), true - - case "ServiceBrokerEvent.serviceBroker": - if e.complexity.ServiceBrokerEvent.ServiceBroker == nil { - break - } - - return e.complexity.ServiceBrokerEvent.ServiceBroker(childComplexity), true - - case "ServiceBrokerEvent.type": - if e.complexity.ServiceBrokerEvent.Type == nil { - break - } - - return e.complexity.ServiceBrokerEvent.Type(childComplexity), true - - case "ServiceBrokerStatus.message": - if e.complexity.ServiceBrokerStatus.Message == nil { - break - } - - return e.complexity.ServiceBrokerStatus.Message(childComplexity), true - - case "ServiceBrokerStatus.ready": - if e.complexity.ServiceBrokerStatus.Ready == nil { - break - } - - return e.complexity.ServiceBrokerStatus.Ready(childComplexity), true - - case "ServiceBrokerStatus.reason": - if e.complexity.ServiceBrokerStatus.Reason == nil { - break - } - - return e.complexity.ServiceBrokerStatus.Reason(childComplexity), true - - case "ServiceClass.activated": - if e.complexity.ServiceClass.Activated == nil { - break - } - - return e.complexity.ServiceClass.Activated(childComplexity), true - - case "ServiceClass.assetGroup": - if e.complexity.ServiceClass.AssetGroup == nil { - break - } - - return e.complexity.ServiceClass.AssetGroup(childComplexity), true - - case "ServiceClass.clusterAssetGroup": - if e.complexity.ServiceClass.ClusterAssetGroup == nil { - break - } - - return e.complexity.ServiceClass.ClusterAssetGroup(childComplexity), true - - case "ServiceClass.creationTimestamp": - if e.complexity.ServiceClass.CreationTimestamp == nil { - break - } - - return e.complexity.ServiceClass.CreationTimestamp(childComplexity), true - - case "ServiceClass.description": - if e.complexity.ServiceClass.Description == nil { - break - } - - return e.complexity.ServiceClass.Description(childComplexity), true - - case "ServiceClass.displayName": - if e.complexity.ServiceClass.DisplayName == nil { - break - } - - return e.complexity.ServiceClass.DisplayName(childComplexity), true - - case "ServiceClass.documentationUrl": - if e.complexity.ServiceClass.DocumentationURL == nil { - break - } - - return e.complexity.ServiceClass.DocumentationURL(childComplexity), true - - case "ServiceClass.externalName": - if e.complexity.ServiceClass.ExternalName == nil { - break - } - - return e.complexity.ServiceClass.ExternalName(childComplexity), true - - case "ServiceClass.imageUrl": - if e.complexity.ServiceClass.ImageURL == nil { - break - } - - return e.complexity.ServiceClass.ImageURL(childComplexity), true - - case "ServiceClass.instances": - if e.complexity.ServiceClass.Instances == nil { - break - } - - return e.complexity.ServiceClass.Instances(childComplexity), true - - case "ServiceClass.labels": - if e.complexity.ServiceClass.Labels == nil { - break - } - - return e.complexity.ServiceClass.Labels(childComplexity), true - - case "ServiceClass.longDescription": - if e.complexity.ServiceClass.LongDescription == nil { - break - } - - return e.complexity.ServiceClass.LongDescription(childComplexity), true - - case "ServiceClass.name": - if e.complexity.ServiceClass.Name == nil { - break - } - - return e.complexity.ServiceClass.Name(childComplexity), true - - case "ServiceClass.namespace": - if e.complexity.ServiceClass.Namespace == nil { - break - } - - return e.complexity.ServiceClass.Namespace(childComplexity), true - - case "ServiceClass.plans": - if e.complexity.ServiceClass.Plans == nil { - break - } - - return e.complexity.ServiceClass.Plans(childComplexity), true - - case "ServiceClass.providerDisplayName": - if e.complexity.ServiceClass.ProviderDisplayName == nil { - break - } - - return e.complexity.ServiceClass.ProviderDisplayName(childComplexity), true - - case "ServiceClass.supportUrl": - if e.complexity.ServiceClass.SupportURL == nil { - break - } - - return e.complexity.ServiceClass.SupportURL(childComplexity), true - - case "ServiceClass.tags": - if e.complexity.ServiceClass.Tags == nil { - break - } - - return e.complexity.ServiceClass.Tags(childComplexity), true - - case "ServiceEvent.service": - if e.complexity.ServiceEvent.Service == nil { - break - } - - return e.complexity.ServiceEvent.Service(childComplexity), true - - case "ServiceEvent.type": - if e.complexity.ServiceEvent.Type == nil { - break - } - - return e.complexity.ServiceEvent.Type(childComplexity), true - - case "ServiceInstance.bindable": - if e.complexity.ServiceInstance.Bindable == nil { - break - } - - return e.complexity.ServiceInstance.Bindable(childComplexity), true - - case "ServiceInstance.classReference": - if e.complexity.ServiceInstance.ClassReference == nil { - break - } - - return e.complexity.ServiceInstance.ClassReference(childComplexity), true - - case "ServiceInstance.clusterServiceClass": - if e.complexity.ServiceInstance.ClusterServiceClass == nil { - break - } - - return e.complexity.ServiceInstance.ClusterServiceClass(childComplexity), true - - case "ServiceInstance.clusterServicePlan": - if e.complexity.ServiceInstance.ClusterServicePlan == nil { - break - } - - return e.complexity.ServiceInstance.ClusterServicePlan(childComplexity), true - - case "ServiceInstance.creationTimestamp": - if e.complexity.ServiceInstance.CreationTimestamp == nil { - break - } - - return e.complexity.ServiceInstance.CreationTimestamp(childComplexity), true - - case "ServiceInstance.labels": - if e.complexity.ServiceInstance.Labels == nil { - break - } - - return e.complexity.ServiceInstance.Labels(childComplexity), true - - case "ServiceInstance.name": - if e.complexity.ServiceInstance.Name == nil { - break - } - - return e.complexity.ServiceInstance.Name(childComplexity), true - - case "ServiceInstance.namespace": - if e.complexity.ServiceInstance.Namespace == nil { - break - } - - return e.complexity.ServiceInstance.Namespace(childComplexity), true - - case "ServiceInstance.planReference": - if e.complexity.ServiceInstance.PlanReference == nil { - break - } - - return e.complexity.ServiceInstance.PlanReference(childComplexity), true - - case "ServiceInstance.planSpec": - if e.complexity.ServiceInstance.PlanSpec == nil { - break - } - - return e.complexity.ServiceInstance.PlanSpec(childComplexity), true - - case "ServiceInstance.serviceBindingUsages": - if e.complexity.ServiceInstance.ServiceBindingUsages == nil { - break - } - - return e.complexity.ServiceInstance.ServiceBindingUsages(childComplexity), true - - case "ServiceInstance.serviceBindings": - if e.complexity.ServiceInstance.ServiceBindings == nil { - break - } - - return e.complexity.ServiceInstance.ServiceBindings(childComplexity), true - - case "ServiceInstance.serviceClass": - if e.complexity.ServiceInstance.ServiceClass == nil { - break - } - - return e.complexity.ServiceInstance.ServiceClass(childComplexity), true - - case "ServiceInstance.servicePlan": - if e.complexity.ServiceInstance.ServicePlan == nil { - break - } - - return e.complexity.ServiceInstance.ServicePlan(childComplexity), true - - case "ServiceInstance.status": - if e.complexity.ServiceInstance.Status == nil { - break - } - - return e.complexity.ServiceInstance.Status(childComplexity), true - - case "ServiceInstanceEvent.serviceInstance": - if e.complexity.ServiceInstanceEvent.ServiceInstance == nil { - break - } - - return e.complexity.ServiceInstanceEvent.ServiceInstance(childComplexity), true - - case "ServiceInstanceEvent.type": - if e.complexity.ServiceInstanceEvent.Type == nil { - break - } - - return e.complexity.ServiceInstanceEvent.Type(childComplexity), true - - case "ServiceInstanceResourceRef.clusterWide": - if e.complexity.ServiceInstanceResourceRef.ClusterWide == nil { - break - } - - return e.complexity.ServiceInstanceResourceRef.ClusterWide(childComplexity), true - - case "ServiceInstanceResourceRef.displayName": - if e.complexity.ServiceInstanceResourceRef.DisplayName == nil { - break - } - - return e.complexity.ServiceInstanceResourceRef.DisplayName(childComplexity), true - - case "ServiceInstanceResourceRef.name": - if e.complexity.ServiceInstanceResourceRef.Name == nil { - break - } - - return e.complexity.ServiceInstanceResourceRef.Name(childComplexity), true - - case "ServiceInstanceStatus.message": - if e.complexity.ServiceInstanceStatus.Message == nil { - break - } - - return e.complexity.ServiceInstanceStatus.Message(childComplexity), true - - case "ServiceInstanceStatus.reason": - if e.complexity.ServiceInstanceStatus.Reason == nil { - break - } - - return e.complexity.ServiceInstanceStatus.Reason(childComplexity), true - - case "ServiceInstanceStatus.type": - if e.complexity.ServiceInstanceStatus.Type == nil { - break - } - - return e.complexity.ServiceInstanceStatus.Type(childComplexity), true - - case "ServicePlan.assetGroup": - if e.complexity.ServicePlan.AssetGroup == nil { - break - } - - return e.complexity.ServicePlan.AssetGroup(childComplexity), true - - case "ServicePlan.bindingCreateParameterSchema": - if e.complexity.ServicePlan.BindingCreateParameterSchema == nil { - break - } - - return e.complexity.ServicePlan.BindingCreateParameterSchema(childComplexity), true - - case "ServicePlan.clusterAssetGroup": - if e.complexity.ServicePlan.ClusterAssetGroup == nil { - break - } - - return e.complexity.ServicePlan.ClusterAssetGroup(childComplexity), true - - case "ServicePlan.description": - if e.complexity.ServicePlan.Description == nil { - break - } - - return e.complexity.ServicePlan.Description(childComplexity), true - - case "ServicePlan.displayName": - if e.complexity.ServicePlan.DisplayName == nil { - break - } - - return e.complexity.ServicePlan.DisplayName(childComplexity), true - - case "ServicePlan.externalName": - if e.complexity.ServicePlan.ExternalName == nil { - break - } - - return e.complexity.ServicePlan.ExternalName(childComplexity), true - - case "ServicePlan.instanceCreateParameterSchema": - if e.complexity.ServicePlan.InstanceCreateParameterSchema == nil { - break - } - - return e.complexity.ServicePlan.InstanceCreateParameterSchema(childComplexity), true - - case "ServicePlan.name": - if e.complexity.ServicePlan.Name == nil { - break - } - - return e.complexity.ServicePlan.Name(childComplexity), true - - case "ServicePlan.namespace": - if e.complexity.ServicePlan.Namespace == nil { - break - } - - return e.complexity.ServicePlan.Namespace(childComplexity), true - - case "ServicePlan.relatedServiceClassName": - if e.complexity.ServicePlan.RelatedServiceClassName == nil { - break - } - - return e.complexity.ServicePlan.RelatedServiceClassName(childComplexity), true - - case "ServicePort.name": - if e.complexity.ServicePort.Name == nil { - break - } - - return e.complexity.ServicePort.Name(childComplexity), true - - case "ServicePort.nodePort": - if e.complexity.ServicePort.NodePort == nil { - break - } - - return e.complexity.ServicePort.NodePort(childComplexity), true - - case "ServicePort.port": - if e.complexity.ServicePort.Port == nil { - break - } - - return e.complexity.ServicePort.Port(childComplexity), true - - case "ServicePort.serviceProtocol": - if e.complexity.ServicePort.ServiceProtocol == nil { - break - } - - return e.complexity.ServicePort.ServiceProtocol(childComplexity), true - - case "ServicePort.targetPort": - if e.complexity.ServicePort.TargetPort == nil { - break - } - - return e.complexity.ServicePort.TargetPort(childComplexity), true - - case "ServiceStatus.loadBalancer": - if e.complexity.ServiceStatus.LoadBalancer == nil { - break - } - - return e.complexity.ServiceStatus.LoadBalancer(childComplexity), true - - case "Subscriber.ref": - if e.complexity.Subscriber.Ref == nil { - break - } - - return e.complexity.Subscriber.Ref(childComplexity), true - - case "SubscriberRef.apiVersion": - if e.complexity.SubscriberRef.APIVersion == nil { - break - } - - return e.complexity.SubscriberRef.APIVersion(childComplexity), true - - case "SubscriberRef.kind": - if e.complexity.SubscriberRef.Kind == nil { - break - } - - return e.complexity.SubscriberRef.Kind(childComplexity), true - - case "SubscriberRef.name": - if e.complexity.SubscriberRef.Name == nil { - break - } - - return e.complexity.SubscriberRef.Name(childComplexity), true - - case "SubscriberRef.namespace": - if e.complexity.SubscriberRef.Namespace == nil { - break - } - - return e.complexity.SubscriberRef.Namespace(childComplexity), true - - case "Subscription.apiRuleEvent": - if e.complexity.Subscription.APIRuleEvent == nil { - break - } - - args, err := ec.field_Subscription_apiRuleEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.APIRuleEvent(childComplexity, args["namespace"].(string), args["serviceName"].(*string)), true - - case "Subscription.addonsConfigurationEvent": - if e.complexity.Subscription.AddonsConfigurationEvent == nil { - break - } - - args, err := ec.field_Subscription_addonsConfigurationEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.AddonsConfigurationEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.applicationEvent": - if e.complexity.Subscription.ApplicationEvent == nil { - break - } - - return e.complexity.Subscription.ApplicationEvent(childComplexity), true - - case "Subscription.assetEvent": - if e.complexity.Subscription.AssetEvent == nil { - break - } - - args, err := ec.field_Subscription_assetEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.AssetEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.assetGroupEvent": - if e.complexity.Subscription.AssetGroupEvent == nil { - break - } - - args, err := ec.field_Subscription_assetGroupEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.AssetGroupEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.clusterAddonsConfigurationEvent": - if e.complexity.Subscription.ClusterAddonsConfigurationEvent == nil { - break - } - - return e.complexity.Subscription.ClusterAddonsConfigurationEvent(childComplexity), true - - case "Subscription.clusterAssetEvent": - if e.complexity.Subscription.ClusterAssetEvent == nil { - break - } - - return e.complexity.Subscription.ClusterAssetEvent(childComplexity), true - - case "Subscription.clusterAssetGroupEvent": - if e.complexity.Subscription.ClusterAssetGroupEvent == nil { - break - } - - return e.complexity.Subscription.ClusterAssetGroupEvent(childComplexity), true - - case "Subscription.clusterRoleBindingEvent": - if e.complexity.Subscription.ClusterRoleBindingEvent == nil { - break - } - - return e.complexity.Subscription.ClusterRoleBindingEvent(childComplexity), true - - case "Subscription.clusterServiceBrokerEvent": - if e.complexity.Subscription.ClusterServiceBrokerEvent == nil { - break - } - - return e.complexity.Subscription.ClusterServiceBrokerEvent(childComplexity), true - - case "Subscription.configMapEvent": - if e.complexity.Subscription.ConfigMapEvent == nil { - break - } - - args, err := ec.field_Subscription_configMapEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.ConfigMapEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.deploymentEvent": - if e.complexity.Subscription.DeploymentEvent == nil { - break - } - - args, err := ec.field_Subscription_deploymentEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.DeploymentEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.functionEvent": - if e.complexity.Subscription.FunctionEvent == nil { - break - } - - args, err := ec.field_Subscription_functionEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.FunctionEvent(childComplexity, args["namespace"].(string), args["functionName"].(*string)), true - - case "Subscription.namespaceEvent": - if e.complexity.Subscription.NamespaceEvent == nil { - break - } - - args, err := ec.field_Subscription_namespaceEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.NamespaceEvent(childComplexity, args["withSystemNamespaces"].(*bool)), true - - case "Subscription.oAuth2ClientEvent": - if e.complexity.Subscription.OAuth2ClientEvent == nil { - break - } - - args, err := ec.field_Subscription_oAuth2ClientEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.OAuth2ClientEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.podEvent": - if e.complexity.Subscription.PodEvent == nil { - break - } - - args, err := ec.field_Subscription_podEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.PodEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.roleBindingEvent": - if e.complexity.Subscription.RoleBindingEvent == nil { - break - } - - args, err := ec.field_Subscription_roleBindingEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.RoleBindingEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.secretEvent": - if e.complexity.Subscription.SecretEvent == nil { - break - } - - args, err := ec.field_Subscription_secretEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.SecretEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.serviceBindingEvent": - if e.complexity.Subscription.ServiceBindingEvent == nil { - break - } - - args, err := ec.field_Subscription_serviceBindingEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.ServiceBindingEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.serviceBindingUsageEvent": - if e.complexity.Subscription.ServiceBindingUsageEvent == nil { - break - } - - args, err := ec.field_Subscription_serviceBindingUsageEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.ServiceBindingUsageEvent(childComplexity, args["namespace"].(string), args["resourceKind"].(*string), args["resourceName"].(*string)), true - - case "Subscription.serviceBrokerEvent": - if e.complexity.Subscription.ServiceBrokerEvent == nil { - break - } - - args, err := ec.field_Subscription_serviceBrokerEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.ServiceBrokerEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.serviceEvent": - if e.complexity.Subscription.ServiceEvent == nil { - break - } - - args, err := ec.field_Subscription_serviceEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.ServiceEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.serviceInstanceEvent": - if e.complexity.Subscription.ServiceInstanceEvent == nil { - break - } - - args, err := ec.field_Subscription_serviceInstanceEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.ServiceInstanceEvent(childComplexity, args["namespace"].(string)), true - - case "Subscription.subscriptionSubscription": - if e.complexity.Subscription.SubscriptionSubscription == nil { - break - } - - args, err := ec.field_Subscription_subscriptionSubscription_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.SubscriptionSubscription(childComplexity, args["ownerName"].(string), args["namespace"].(string)), true - - case "Subscription.triggerEvent": - if e.complexity.Subscription.TriggerEvent == nil { - break - } - - args, err := ec.field_Subscription_triggerEvent_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Subscription.TriggerEvent(childComplexity, args["namespace"].(string), args["serviceName"].(string)), true - - case "SubscriptionEvent.subscription": - if e.complexity.SubscriptionEvent.Subscription == nil { - break - } - - return e.complexity.SubscriptionEvent.Subscription(childComplexity), true - - case "SubscriptionEvent.type": - if e.complexity.SubscriptionEvent.Type == nil { - break - } - - return e.complexity.SubscriptionEvent.Type(childComplexity), true - - case "Trigger.name": - if e.complexity.Trigger.Name == nil { - break - } - - return e.complexity.Trigger.Name(childComplexity), true - - case "Trigger.namespace": - if e.complexity.Trigger.Namespace == nil { - break - } - - return e.complexity.Trigger.Namespace(childComplexity), true - - case "Trigger.spec": - if e.complexity.Trigger.Spec == nil { - break - } - - return e.complexity.Trigger.Spec(childComplexity), true - - case "Trigger.status": - if e.complexity.Trigger.Status == nil { - break - } - - return e.complexity.Trigger.Status(childComplexity), true - - case "TriggerEvent.trigger": - if e.complexity.TriggerEvent.Trigger == nil { - break - } - - return e.complexity.TriggerEvent.Trigger(childComplexity), true - - case "TriggerEvent.type": - if e.complexity.TriggerEvent.Type == nil { - break - } - - return e.complexity.TriggerEvent.Type(childComplexity), true - - case "TriggerSpec.broker": - if e.complexity.TriggerSpec.Broker == nil { - break - } - - return e.complexity.TriggerSpec.Broker(childComplexity), true - - case "TriggerSpec.filter": - if e.complexity.TriggerSpec.Filter == nil { - break - } - - return e.complexity.TriggerSpec.Filter(childComplexity), true - - case "TriggerSpec.path": - if e.complexity.TriggerSpec.Path == nil { - break - } - - return e.complexity.TriggerSpec.Path(childComplexity), true - - case "TriggerSpec.port": - if e.complexity.TriggerSpec.Port == nil { - break - } - - return e.complexity.TriggerSpec.Port(childComplexity), true - - case "TriggerSpec.subscriber": - if e.complexity.TriggerSpec.Subscriber == nil { - break - } - - return e.complexity.TriggerSpec.Subscriber(childComplexity), true - - case "TriggerStatus.reason": - if e.complexity.TriggerStatus.Reason == nil { - break - } - - return e.complexity.TriggerStatus.Reason(childComplexity), true - - case "TriggerStatus.status": - if e.complexity.TriggerStatus.Status == nil { - break - } - - return e.complexity.TriggerStatus.Status(childComplexity), true - - case "UsageKind.displayName": - if e.complexity.UsageKind.DisplayName == nil { - break - } - - return e.complexity.UsageKind.DisplayName(childComplexity), true - - case "UsageKind.group": - if e.complexity.UsageKind.Group == nil { - break - } - - return e.complexity.UsageKind.Group(childComplexity), true - - case "UsageKind.kind": - if e.complexity.UsageKind.Kind == nil { - break - } - - return e.complexity.UsageKind.Kind(childComplexity), true - - case "UsageKind.name": - if e.complexity.UsageKind.Name == nil { - break - } - - return e.complexity.UsageKind.Name(childComplexity), true - - case "UsageKind.version": - if e.complexity.UsageKind.Version == nil { - break - } - - return e.complexity.UsageKind.Version(childComplexity), true - - case "UsageKindResource.name": - if e.complexity.UsageKindResource.Name == nil { - break - } - - return e.complexity.UsageKindResource.Name(childComplexity), true - - case "UsageKindResource.namespace": - if e.complexity.UsageKindResource.Namespace == nil { - break - } - - return e.complexity.UsageKindResource.Namespace(childComplexity), true - - case "VersionInfo.kymaVersion": - if e.complexity.VersionInfo.KymaVersion == nil { - break - } - - return e.complexity.VersionInfo.KymaVersion(childComplexity), true - - case "WebhookAuth.clientId": - if e.complexity.WebhookAuth.ClientId == nil { - break - } - - return e.complexity.WebhookAuth.ClientId(childComplexity), true - - case "WebhookAuth.clientSecret": - if e.complexity.WebhookAuth.ClientSecret == nil { - break - } - - return e.complexity.WebhookAuth.ClientSecret(childComplexity), true - - case "WebhookAuth.grantType": - if e.complexity.WebhookAuth.GrantType == nil { - break - } - - return e.complexity.WebhookAuth.GrantType(childComplexity), true - - case "WebhookAuth.scope": - if e.complexity.WebhookAuth.Scope == nil { - break - } - - return e.complexity.WebhookAuth.Scope(childComplexity), true - - case "WebhookAuth.tokenUrl": - if e.complexity.WebhookAuth.TokenUrl == nil { - break - } - - return e.complexity.WebhookAuth.TokenUrl(childComplexity), true - - case "WebhookAuth.type": - if e.complexity.WebhookAuth.Type == nil { - break - } - - return e.complexity.WebhookAuth.Type(childComplexity), true - - case "compassMetadata.applicationId": - if e.complexity.CompassMetadata.ApplicationID == nil { - break - } - - return e.complexity.CompassMetadata.ApplicationID(childComplexity), true - - case "enabledMappingService.allServices": - if e.complexity.EnabledMappingService.AllServices == nil { - break - } - - return e.complexity.EnabledMappingService.AllServices(childComplexity), true - - case "enabledMappingService.namespace": - if e.complexity.EnabledMappingService.Namespace == nil { - break - } - - return e.complexity.EnabledMappingService.Namespace(childComplexity), true - - case "enabledMappingService.services": - if e.complexity.EnabledMappingService.Services == nil { - break - } - - return e.complexity.EnabledMappingService.Services(childComplexity), true - - } - return 0, false -} - -func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { - rc := graphql.GetOperationContext(ctx) - ec := executionContext{rc, e} - first := true - - switch rc.Operation.Operation { - case ast.Query: - return func(ctx context.Context) *graphql.Response { - if !first { - return nil - } - first = false - data := ec._Query(ctx, rc.Operation.SelectionSet) - var buf bytes.Buffer - data.MarshalGQL(&buf) - - return &graphql.Response{ - Data: buf.Bytes(), - } - } - case ast.Mutation: - return func(ctx context.Context) *graphql.Response { - if !first { - return nil - } - first = false - data := ec._Mutation(ctx, rc.Operation.SelectionSet) - var buf bytes.Buffer - data.MarshalGQL(&buf) - - return &graphql.Response{ - Data: buf.Bytes(), - } - } - case ast.Subscription: - next := ec._Subscription(ctx, rc.Operation.SelectionSet) - - var buf bytes.Buffer - return func(ctx context.Context) *graphql.Response { - buf.Reset() - data := next() - - if data == nil { - return nil - } - data.MarshalGQL(&buf) - - return &graphql.Response{ - Data: buf.Bytes(), - } - } - - default: - return graphql.OneShot(graphql.ErrorResponse(ctx, "unsupported GraphQL operation")) - } -} - -type executionContext struct { - *graphql.OperationContext - *executableSchema -} - -func (ec *executionContext) introspectSchema() (*introspection.Schema, error) { - if ec.DisableIntrospection { - return nil, errors.New("introspection disabled") - } - return introspection.WrapSchema(parsedSchema), nil -} - -func (ec *executionContext) introspectType(name string) (*introspection.Type, error) { - if ec.DisableIntrospection { - return nil, errors.New("introspection disabled") - } - return introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name]), nil -} - -var sources = []*ast.Source{ - &ast.Source{Name: "internal/gqlschema/apigateway.graphql", Input: `scalar APIRuleAccessStrategyInput @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.APIRuleAccessStrategyInput") - -type APIRule @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRule"){ - name: String! - spec: APIRuleSpec! - status: APIRuleStatuses! - generation: Int! - json: JSON! - ownerSubscription: OwnerReference -} - -type APIRuleSpec @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleSpec") { - service: APIRuleService! - gateway: String! - rules: [Rule!]! -} - -input APIRuleSpecInput @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleSpec") { - service: APIRuleServiceInput! - gateway: String! - rules: [RuleInput!]! -} - -type APIRuleService @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Service") { - host: String! - name: String! - port: Port! -} - -input APIRuleServiceInput @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Service") { - host: String! - name: String! - port: Port! -} - -type Rule @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Rule") { - path: String! - methods: [String!]! - accessStrategies: [APIRuleAccessStrategy!]! -} - -input RuleInput @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.Rule") { - path: String! - methods: [String!]! - accessStrategies: [APIRuleAccessStrategyInput!]! -} - -type APIRuleAccessStrategy @goModel(model: "github.com/ory/oathkeeper-maester/api/v1alpha1.Authenticator") { - name: String! - config: Extension -} - -type APIRuleStatuses @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleStatus") { - apiRuleStatus: APIRuleStatus - accessRuleStatus: APIRuleStatus - virtualServiceStatus: APIRuleStatus -} - -type APIRuleStatus @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRuleResourceStatus") { - code: APIRuleStatusCode! - description: String -} - -enum APIRuleStatusCode @goModel(model: "github.com/kyma-incubator/api-gateway/api/v1alpha1.StatusCode") { - OK - SKIPPED - ERROR -} - -type ApiRuleEvent { - type: SubscriptionEventType! - apiRule: APIRule! -} - -extend type Query { - APIRules(namespace: String!, serviceName: String, hostname: String): [APIRule!]! @HasAccess(attributes: {resource: "apirules", verb: "list", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - APIRule(name: String!, namespace: String!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "get", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Mutation { - createAPIRule(name: String!, namespace: String!, params: APIRuleSpecInput!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "create", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - updateAPIRule(name: String!, namespace: String!, generation: Int!, params: APIRuleSpecInput!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "update", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - deleteAPIRule(name: String!, namespace: String!): APIRule @HasAccess(attributes: {resource: "apirules", verb: "delete", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Subscription { - apiRuleEvent(namespace: String!, serviceName: String): ApiRuleEvent! @HasAccess(attributes: {resource: "apirules", verb: "watch", apiGroup: "gateway.kyma-project.io", apiVersion: "v1alpha", namespaceArg: "namespace"}) -} -`, BuiltIn: false}, - &ast.Source{Name: "internal/gqlschema/bebeventing.graphql", Input: `scalar ConditionReason @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.ConditionReason") -scalar ConditionType @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.ConditionType") -scalar CoreStatus @goModel(model: "k8s.io/api/core/v1.ConditionStatus") - -type EventSubscription @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Subscription") { - name: String! - namespace: String! - spec: EventSubscriptionSpec! - status: EventSubscriptionStatus! -} - -type EventSubscriptionSpec @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.SubscriptionSpec") { - filter: BebFilters! - id: String - protocol: String - protocolSettings: ProtocolSettings - sink: String -} - -type ProtocolSettings @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.ProtocolSettings") { - contentMode: String - exemptHandshake: Boolean - qos: String - webhookAuth: WebhookAuth -} - -type WebhookAuth @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.WebhookAuth") { - clientId: String - clientSecret: String - grantType: String - scope: [String!] - tokenUrl: String - type: String! -} - -type BebFilters @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.BebFilters") { - dialect: String! - filters: [BebFilter!]! -} - -type BebFilter @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.BebFilter") { - eventSource: Filter - eventType: Filter -} - -type Filter @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Filter") { - property: String - type: String! - value: String -} - -input EventSubscriptionSpecInput { - filters: [FiltersInput!]! - ownerRef: OwnerReferenceInput! -} - -input FiltersInput { - applicationName: String! - version: String! - eventName: String! -} - -type EventSubscriptionStatus @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.SubscriptionStatus") { - apiRuleName: String - conditions: [Condition] - emsSubscriptionStatus: EmsSubscriptionStatus - emshash: Int - ev2hash: Int - externalSink: String - failedActivation: String - ready: Boolean -} - -type Condition @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Condition") { - message: String - reason: ConditionReason - status: CoreStatus! - type: ConditionType -} - -type EmsSubscriptionStatus @goModel(model: "github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.EmsSubscriptionStatus") { - lastFailedDelivery: String - lastFailedDeliveryReason: String - lastSuccessfulDelivery: String - subscriptionStatus: String - subscriptionStatusReason: String -} - -type SubscriptionEvent { - type: SubscriptionEventType! - subscription: EventSubscription! -} - -extend type Query { - eventSubscriptions(ownerName: String!, namespace: String!): [EventSubscription!]! @HasAccess(attributes: {resource: "subscriptions", verb: "list", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Mutation { - createSubscription(name: String!, namespace: String!, params: EventSubscriptionSpecInput!): EventSubscription @HasAccess(attributes: {resource: "subscriptions", verb: "create", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - updateSubscription(name: String!, namespace: String!, params: EventSubscriptionSpecInput!): EventSubscription @HasAccess(attributes: {resource: "subscriptions", verb: "update", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - deleteSubscription(name: String!, namespace: String!): EventSubscription @HasAccess(attributes: {resource: "subscriptions", verb: "delete", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Subscription { - subscriptionSubscription(ownerName: String!, namespace: String!): SubscriptionEvent! @HasAccess(attributes: {resource: "subscriptions", verb: "watch", apiGroup: "eventing.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} -`, BuiltIn: false}, - &ast.Source{Name: "internal/gqlschema/eventing.graphql", Input: `type Trigger @goModel(model: "knative.dev/eventing/pkg/apis/eventing/v1alpha1.Trigger"){ - name: String! - namespace: String! - spec: TriggerSpec! - status: TriggerStatus! -} - -type TriggerSpec @goModel(model: "knative.dev/eventing/pkg/apis/eventing/v1alpha1.TriggerSpec"){ - broker: String! - filter: JSON - port: Port! - path: String! - subscriber: Subscriber! -} - -type TriggerStatus { - reason: [String!] - status: TriggerStatusType! -} - -enum TriggerStatusType { - FAILED - UNKNOWN - READY -} - -type Subscriber @goModel(model: "knative.dev/pkg/apis/duck/v1.Destination"){ - ref: SubscriberRef -} - -type SubscriberRef @goModel(model: "knative.dev/pkg/apis/duck/v1.KReference"){ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -input SubscriberInput { - ref: SubscriberRefInput! - port: Port - path: String -} - -input SubscriberRefInput @goModel(model: "knative.dev/pkg/apis/duck/v1.KReference"){ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -input TriggerCreateInput { - name: String - broker: String! - filterAttributes: JSON - subscriber: SubscriberInput! -} - -type TriggerEvent { - type: SubscriptionEventType! - trigger: Trigger! -} - -extend type Query { - triggers(namespace: String!, serviceName: String!): [Trigger!] @HasAccess(attributes: {resource: "triggers", verb: "list", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Mutation { - createTrigger(namespace: String!, trigger: TriggerCreateInput!, ownerRef: [OwnerReferenceInput!]): Trigger @HasAccess(attributes: {resource: "triggers", verb: "create", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - createManyTriggers(namespace: String!, triggers: [TriggerCreateInput!]!, ownerRef: [OwnerReferenceInput!]): [Trigger!] @HasAccess(attributes: {resource: "triggers", verb: "create", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteTrigger(namespace: String!, triggerName: String!): Trigger @HasAccess(attributes: {resource: "triggers", verb: "delete", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteManyTriggers(namespace: String!, triggerNames: [String!]!): [Trigger!] @HasAccess(attributes: {resource: "triggers", verb: "delete", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Subscription { - triggerEvent(namespace: String!, serviceName: String!): TriggerEvent! @HasAccess(attributes: {resource: "triggers", verb: "watch", apiGroup: "eventing.knative.dev", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -}`, BuiltIn: false}, - &ast.Source{Name: "internal/gqlschema/k8sNew.graphql", Input: `scalar LimitType @goModel(model: "k8s.io/api/core/v1.LimitType") - -type ResourceLimits { - memory: String - cpu: String -} - -# LIMIT RANGE -type LimitRangeItem @goModel(model: "k8s.io/api/core/v1.LimitRangeItem") { - type: LimitType! - max: ResourceLimits! - default: ResourceLimits! - defaultRequest: ResourceLimits! -} - -type LimitRangeSpec @goModel(model: "k8s.io/api/core/v1.LimitRangeSpec") { - limits: [LimitRangeItem!]! -} -type LimitRange @goModel(model: "k8s.io/api/core/v1.LimitRange") { - name: String! - spec: LimitRangeSpec! - json: JSON! -} - -# RESOURCE QUOTA - -type ResourceQuotaHard { - limits: ResourceLimits! - requests: ResourceLimits! - pods: String! -} - -type ResourceQuotaSpec @goModel(model: "k8s.io/api/core/v1.ResourceQuotaSpec") { - hard: ResourceQuotaHard! -} -type ResourceQuota @goModel(model: "k8s.io/api/core/v1.ResourceQuota") { - name: String! - spec: ResourceQuotaSpec! - json: JSON! -} - -extend type Query { - limitRanges(namespace: String!): [LimitRange!]! - @HasAccess( - attributes: { - resource: "limitRange" - verb: "list" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - resourceQuotas(namespace: String!): [ResourceQuota!]! - @HasAccess( - attributes: { - resource: "resourcequotas" - verb: "list" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - # resourceQuotasStatus(namespace: String!): ResourceQuotasStatus! - # @HasAccess( - # attributes: { - # resource: "resourcequotas" - # verb: "list" - # apiGroup: "" - # apiVersion: "v1" - # namespaceArg: "namespace" - # } - # ) -} - -enum LimitRangeType { - Container - Pod -} - -input ResourceQuotaInput { - limits: ResourceValuesInput! - requests: ResourceValuesInput! -} - -input LimitRangeInput { - default: ResourceValuesInput! - defaultRequest: ResourceValuesInput! - max: ResourceValuesInput! - type: LimitRangeType! -} - -extend type Mutation { - createLimitRange(namespace: String!, name: String!, limitRange: LimitRangeInput!): LimitRange - @HasAccess( - attributes: { - resource: "limitrange" - verb: "create" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - updateLimitRange(namespace: String!, name: String!, json: JSON!): LimitRange - @HasAccess( - attributes: { - resource: "limitrange" - verb: "update" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - createResourceQuota(namespace: String!, name: String!, resourceQuota: ResourceQuotaInput!): ResourceQuota - @HasAccess( - attributes: { - resource: "resourcequotas" - verb: "create" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) - - updateResourceQuota(namespace: String!, name: String!, json: JSON!): ResourceQuota - @HasAccess( - attributes: { - resource: "resourcequotas" - verb: "update" - apiGroup: "" - apiVersion: "v1" - namespaceArg: "namespace" - } - ) -} -`, BuiltIn: false}, - &ast.Source{Name: "internal/gqlschema/oauth.graphql", Input: `scalar GrantType @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.GrantType") - -scalar ResponseType @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.ResponseType") - -scalar StatusCode @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.StatusCode") - -type OAuth2Client @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.OAuth2Client") { - namespace: String! - name: String! - generation: Int! - - error: OAuth2ClientError - spec: OAuth2ClientSpec! -} - -type OAuth2ClientError @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.ReconciliationError") { - code: StatusCode - description: String -} - -type OAuth2ClientSpec @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.OAuth2ClientSpec") { - grantTypes: [GrantType!]! - responseTypes: [ResponseType!]! - scope: String! - secretName: String! -} - -input OAuth2ClientSpecInput @goModel(model: "github.com/ory/hydra-maester/api/v1alpha1.OAuth2ClientSpec") { - grantTypes: [GrantType!]! - responseTypes: [ResponseType!]! - scope: String! - secretName: String! -} - -type OAuth2ClientEvent { - type: SubscriptionEventType! - client: OAuth2Client! -} - -extend type Query { - oAuth2Clients(namespace: String!): [OAuth2Client!]! @HasAccess(attributes: {resource: "OAuth2Clients", verb: "list", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - oAuth2Client(name: String!, namespace: String!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "get", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Mutation { - createOAuth2Client(name: String!, namespace: String!, params: OAuth2ClientSpecInput!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "create", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - updateOAuth2Client(name: String!, namespace: String!, generation: Int!, params: OAuth2ClientSpecInput!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "update", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - deleteOAuth2Client(name: String!, namespace: String!): OAuth2Client @HasAccess(attributes: {resource: "OAuth2Clients", verb: "delete", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) -} - -extend type Subscription { - oAuth2ClientEvent(namespace: String!): OAuth2ClientEvent! @HasAccess(attributes: {resource: "OAuth2Clients", verb: "watch", apiGroup: "hydra.ory.sh", apiVersion: "v1alpha", namespaceArg: "namespace"}) -} - -`, BuiltIn: false}, - &ast.Source{Name: "internal/gqlschema/roles.graphql", Input: `enum SubjectKind { User Group } - -enum RoleKind { Role ClusterRole } - -type Role @goModel(model: "k8s.io/api/rbac/v1.Role") { - name: String! - namespace: String! - rules: [PolicyRule!] -} - -type ClusterRole @goModel(model: "k8s.io/api/rbac/v1.ClusterRole") { - name: String! - rules: [PolicyRule!] -} - -type PolicyRule @goModel(model: "k8s.io/api/rbac/v1.PolicyRule") { - apiGroups: [String!]! - resources: [String!]! - verbs: [String!]! -} - -type RoleRef @goModel(model: "k8s.io/api/rbac/v1.RoleRef") { - name: String! - kind: String! -} - -type RoleBinding @goModel(model: "k8s.io/api/rbac/v1.RoleBinding") { - name: String! - namespace: String! - roleRef: RoleRef! -} - -type ClusterRoleBinding @goModel(model: "k8s.io/api/rbac/v1.ClusterRoleBinding") { - name: String! - roleRef: RoleRef! -} - -input RoleBindingSubject { - name: String! - kind: SubjectKind! -} - -input RoleBindingInput { - roleName: String! - roleKind: RoleKind! - subjects: [RoleBindingSubject!]! -} - -input ClusterRoleBindingInput { - roleName: String! - subjects: [RoleBindingSubject!]! -} - -type ClusterRoleBindingEvent { - type: SubscriptionEventType! - clusterRoleBinding: ClusterRoleBinding! -} - -type RoleBindingEvent { - type: SubscriptionEventType! - roleBinding: RoleBinding! -} - -extend type Query { - roles(namespace: String!): [Role!]! @HasAccess(attributes: {resource: "roles", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - role(namespace: String!, name: String!): Role! @HasAccess(attributes: {resource: "roles", verb: "get", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - - clusterRoles: [ClusterRole!]! @HasAccess(attributes: {resource: "clusterRoles", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) - clusterRole(name: String!): ClusterRole! @HasAccess(attributes: {resource: "clusterRoles", verb: "get", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) - - roleBindings(namespace: String!): [RoleBinding!]! @HasAccess(attributes: {resource: "roleBindings", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - - clusterRoleBindings: [ClusterRoleBinding!]! @HasAccess(attributes: {resource: "clusterRoleBindings", verb: "list", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) -} - -extend type Mutation { - createRoleBinding(name: String!, namespace: String!, params: RoleBindingInput!): RoleBinding!@HasAccess(attributes: {resource: "roleBindings", verb: "create", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - deleteRoleBinding(namespace: String!, name: String!): RoleBinding!@HasAccess(attributes: {resource: "roleBindings", verb: "delete", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1", namespaceArg: "namespace"}) - - createClusterRoleBinding(name: String!, params: ClusterRoleBindingInput!): ClusterRoleBinding!@HasAccess(attributes: {resource: "clusterRoleBindings", verb: "create", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) - deleteClusterRoleBinding(name: String!): ClusterRoleBinding!@HasAccess(attributes: {resource: "clusterRoleBindings", verb: "delete", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1"}) -} - -extend type Subscription { - roleBindingEvent(namespace: String!): RoleBindingEvent! @HasAccess(attributes: {resource: "roleBindings", verb: "watch", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1alpha", namespaceArg: "namespace"}) - clusterRoleBindingEvent: ClusterRoleBindingEvent! @HasAccess(attributes: {resource: "clusterRoleBindings", verb: "watch", apiGroup: "rbac.authorization.k8s.io", apiVersion: "v1alpha"}) -}`, BuiltIn: false}, - &ast.Source{Name: "internal/gqlschema/schema.graphql", Input: `# Scalars - -scalar JSON - -scalar Labels - -scalar Timestamp - -scalar Settings - -scalar ApplicationMappingService - -scalar Port @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Port") -scalar Extension @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.RawExtension") -scalar UID @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.UID") -scalar URI @goModel(model: "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.URI") - -type OwnerReference @goModel(model: "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"){ - apiVersion: String! - blockOwnerDeletion: Boolean - controller: Boolean - kind: String! - name: String! - UID: UID! -} - -input OwnerReferenceInput @goModel(model: "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"){ - apiVersion: String! - blockOwnerDeletion: Boolean - controller: Boolean - kind: String! - name: String! - UID: UID! -} - -input ResourceValuesInput { - memory: String - cpu: String -} - -# Directives - -directive @goModel(model: String, models: [String!]) on OBJECT - | INPUT_OBJECT - | SCALAR - | ENUM - | INTERFACE - | UNION - -directive @HasAccess(attributes: ResourceAttributes!) on FIELD_DEFINITION - -input ResourceAttributes { - verb: String! - apiGroup: String - apiVersion: String - resource: String - resourceArg: String - subresource: String! = "" - nameArg: String - namespaceArg: String - isChildResolver: Boolean! = false -} - -# Rafter resources - -type File { - url: String! - metadata: JSON! -} - -type Asset { - name: String! - namespace: String! - parameters: JSON! - type: String! - files(filterExtensions: [String!]): [File!]! - status: AssetStatus! - displayName: String -} - -type AssetEvent { - type: SubscriptionEventType! - asset: Asset! -} - -type ClusterAsset { - name: String! - parameters: JSON! - type: String! - files(filterExtensions: [String!]): [File!]! - status: AssetStatus! - displayName: String -} - -type ClusterAssetEvent { - type: SubscriptionEventType! - clusterAsset: ClusterAsset! -} - -type AssetStatus { - phase: AssetPhaseType! - reason: String! - message: String! -} - -enum AssetPhaseType { - READY - PENDING - FAILED -} - -type AssetGroup { - name: String! - namespace: String! - groupName: String! - assets(types: [String!]): [Asset!]! - displayName: String! - description: String! - status: AssetGroupStatus! -} - -type AssetGroupEvent { - type: SubscriptionEventType! - assetGroup: AssetGroup! -} - -type ClusterAssetGroup { - name: String! - groupName: String! - assets(types: [String!]): [ClusterAsset!]! - displayName: String! - description: String! - status: AssetGroupStatus! -} - -type ClusterAssetGroupEvent { - type: SubscriptionEventType! - clusterAssetGroup: ClusterAssetGroup! -} - -type AssetGroupStatus { - phase: AssetGroupPhaseType! - reason: String! - message: String! -} - -enum AssetGroupPhaseType { - READY - PENDING - FAILED -} - -# Service Catalog - -type AddonsConfiguration { - name: String! - urls: [String!] - repositories: [AddonsConfigurationRepository!] - labels: Labels! - status: AddonsConfigurationStatus! -} - -type AddonsConfigurationRepository { - url: String! - secretRef: ResourceRef -} - -type ResourceRef { - name: String! - namespace: String! -} - -input AddonsConfigurationRepositoryInput { - url: String! - secretRef: ResourceRefInput -} - -input ResourceRefInput { - name: String! - namespace: String! -} - -type AddonsConfigurationStatus { - phase: String! - repositories: [AddonsConfigurationStatusRepository!] -} - -type AddonsConfigurationStatusRepository { - url: String! - status: String! - addons: [AddonsConfigurationStatusAddons!] - reason: String! - message: String! -} - -type AddonsConfigurationStatusAddons { - name: String! - version: String! - status: String! - reason: String! - message: String! -} - -type AddonsConfigurationEvent { - type: SubscriptionEventType! - addonsConfiguration: AddonsConfiguration! -} - -type ClusterAddonsConfigurationEvent { - type: SubscriptionEventType! - addonsConfiguration: AddonsConfiguration! -} - -type ServiceInstance { - name: String! - namespace: String! - planSpec: JSON - creationTimestamp: Timestamp! - labels: [String!]! - status: ServiceInstanceStatus! - classReference: ServiceInstanceResourceRef - planReference: ServiceInstanceResourceRef - serviceClass: ServiceClass - clusterServiceClass: ClusterServiceClass - servicePlan: ServicePlan - clusterServicePlan: ClusterServicePlan - bindable: Boolean! - serviceBindings: ServiceBindings - - # Depends on servicecatalogaddons domain - serviceBindingUsages: [ServiceBindingUsage!] -} - -type ServiceInstanceResourceRef { - name: String! - displayName: String! - clusterWide: Boolean! -} - -type ServiceInstanceStatus { - type: InstanceStatusType! - reason: String! - message: String! -} - -enum InstanceStatusType { - RUNNING - PROVISIONING - DEPROVISIONING - PENDING - FAILED -} - -type ServiceInstanceEvent { - type: SubscriptionEventType! - serviceInstance: ServiceInstance! -} - -type ServiceBrokerEvent { - type: SubscriptionEventType! - serviceBroker: ServiceBroker! -} - -type ClusterServiceBrokerEvent { - type: SubscriptionEventType! - clusterServiceBroker: ClusterServiceBroker! -} - -enum SubscriptionEventType { - ADD - UPDATE - DELETE -} - -input ServiceInstanceCreateInput { - name: String! - classRef: ServiceInstanceCreateInputResourceRef! - planRef: ServiceInstanceCreateInputResourceRef! - labels: [String!]! - parameterSchema: JSON -} - -input ServiceInstanceCreateInputResourceRef { - externalName: String! - clusterWide: Boolean! -} - -type ServiceClass { - name: String! - namespace: String! - externalName: String! - displayName: String - creationTimestamp: Timestamp! - description: String! - longDescription: String - imageUrl: String - documentationUrl: String - supportUrl: String - providerDisplayName: String - tags: [String!]! - labels: Labels! - plans: [ServicePlan!]! - activated: Boolean! - instances: [ServiceInstance!]! - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup - assetGroup: AssetGroup -} - -type ClusterServiceClass { - name: String! - externalName: String! - displayName: String - creationTimestamp: Timestamp! - description: String! - longDescription: String - imageUrl: String - documentationUrl: String - supportUrl: String - providerDisplayName: String - tags: [String!]! - labels: Labels! - plans: [ClusterServicePlan!]! - activated(namespace: String): Boolean! - instances(namespace: String): [ServiceInstance!]! - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup -} - -type ServicePlan { - name: String! - namespace: String! - displayName: String - externalName: String! - description: String! - relatedServiceClassName: String! - instanceCreateParameterSchema: JSON - bindingCreateParameterSchema: JSON - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup - assetGroup: AssetGroup -} - -type ClusterServicePlan { - name: String! - displayName: String - externalName: String! - description: String! - relatedClusterServiceClassName: String! - instanceCreateParameterSchema: JSON - bindingCreateParameterSchema: JSON - - # Depends on rafter domain - clusterAssetGroup: ClusterAssetGroup -} - -type ServiceBroker { - name: String! - namespace: String! - status: ServiceBrokerStatus! - creationTimestamp: Timestamp! - url: String! - labels: Labels! -} - -type ClusterServiceBroker { - name: String! - status: ServiceBrokerStatus! - creationTimestamp: Timestamp! - url: String! - labels: Labels! -} - -type ServiceBrokerStatus { - ready: Boolean! - reason: String! - message: String! -} - -type ServiceBindings { - items: [ServiceBinding!]! - stats: ServiceBindingsStats! -} - -type ServiceBindingsStats { - ready: Int! - failed: Int! - pending: Int! - unknown: Int! -} - -type ServiceBinding { - name: String! - serviceInstanceName: String! - namespace: String! - secret: Secret - status: ServiceBindingStatus! - parameters: JSON -} - -type ServiceBindingStatus { - type: ServiceBindingStatusType! - reason: String! - message: String! -} - -enum ServiceBindingStatusType { - READY - PENDING - FAILED - UNKNOWN -} - -type ServiceBindingEvent { - type: SubscriptionEventType! - serviceBinding: ServiceBinding! -} - -# We cannot use ServiceBinding as a result of create action -# because secret at the moment of mutation execution is not available. -type CreateServiceBindingOutput { - name: String! - serviceInstanceName: String! - namespace: String! -} - -type Secret { - name: String! - namespace: String! - data: JSON! - type: String! - creationTime: Timestamp! - labels: JSON! - annotations: JSON! - json: JSON! -} - -type DeleteServiceBindingOutput { - name: String! - namespace: String! -} - -type DeleteServiceBindingUsageOutput { - name: String! - namespace: String! -} - -type ServiceBindingUsage { - name: String! - namespace: String! - serviceBinding: ServiceBinding - usedBy: LocalObjectReference! - parameters: ServiceBindingUsageParameters - status: ServiceBindingUsageStatus! -} - -type ServiceBindingUsageEvent { - type: SubscriptionEventType! - serviceBindingUsage: ServiceBindingUsage! -} - -type ServiceBindingUsageStatus { - type: ServiceBindingUsageStatusType! - reason: String! - message: String! -} - -enum ServiceBindingUsageStatusType { - READY - PENDING - FAILED - UNKNOWN -} - -type LocalObjectReference { - kind: String! - name: String! -} - -type ServiceBindingUsageParameters { - envPrefix: EnvPrefix -} - -type EnvPrefix { - name: String! -} - - - -type ResourceType { - memory: String - cpu: String -} - -input CreateServiceBindingUsageInput { - name: String - serviceBindingRef: ServiceBindingRefInput! - usedBy: LocalObjectReferenceInput! - parameters: ServiceBindingUsageParametersInput -} - -input ServiceBindingRefInput { - name: String! -} - -input LocalObjectReferenceInput { - kind: String! - name: String! -} - -input ServiceBindingUsageParametersInput { - envPrefix: EnvPrefixInput -} - -input EnvPrefixInput { - name: String! -} - -type Container { - name: String! - image: String! -} - -type DeploymentStatus { - replicas: Int! - updatedReplicas: Int! - readyReplicas: Int! - availableReplicas: Int! - conditions: [DeploymentCondition!]! -} - -type DeploymentCondition { - status: String! - type: String! - lastTransitionTimestamp: Timestamp! - lastUpdateTimestamp: Timestamp! - message: String! - reason: String! -} - -type Deployment { - name: String! - namespace: String! - creationTimestamp: Timestamp! - status: DeploymentStatus! - labels: Labels! - containers: [Container!]! - - # Depends on servicecatalog and servicecatalogaddons modules - boundServiceInstanceNames: [String!] -} - -type DeploymentEvent { - type: SubscriptionEventType! - deployment: Deployment! -} - -enum ServiceProtocol { - TCP - UDP - UNKNOWN -} - -type ServicePort { - name: String! - serviceProtocol: ServiceProtocol! - port: Int! - nodePort: Int! - targetPort: Int! -} - -type LoadBalancerIngress { - ip: String! - hostName: String! -} - -type LoadBalancerStatus { - ingress: [LoadBalancerIngress!]! -} - -type ServiceStatus { - loadBalancer: LoadBalancerStatus! -} - -type Service { - name: String! - clusterIP: String! - creationTimestamp: Timestamp! - labels: Labels! - ports: [ServicePort!]! - status: ServiceStatus! - json: JSON! - UID: String! -} - -type Pod { - name: String! - nodeName: String! - namespace: String! - restartCount: Int! - creationTimestamp: Timestamp! - labels: Labels! - status: PodStatusType! - containerStates: [ContainerState!]! - json: JSON! -} - -type ReplicaSet { - name: String! - pods: String! - namespace: String! - images: [String!]! - creationTimestamp: Timestamp! - labels: Labels! - json: JSON! -} - -enum PodStatusType { - PENDING - RUNNING - SUCCEEDED - FAILED - UNKNOWN -} - -type PodEvent { - type: SubscriptionEventType! - pod: Pod! -} - -type ServiceEvent { - type: SubscriptionEventType! - service: Service! -} - -type SecretEvent { - type: SubscriptionEventType! - secret: Secret! -} - -type ContainerState { - state: ContainerStateType! - reason: String! - message: String! -} - -enum ContainerStateType { - WAITING - RUNNING - TERMINATED -} - -type ResourceValues { - memory: String - cpu: String -} - - -# Applications - -type Namespace { - name: String! - labels: Labels - status: String! - isSystemNamespace: Boolean! - pods: [Pod!]! - deployments(excludeFunctions: Boolean): [Deployment!]! - - # Depends on application module - applications: [String!] -} - -type NamespaceListItem { - name: String! - labels: Labels - status: String! - isSystemNamespace: Boolean! - podsCount: Int! - healthyPodsCount: Int! - - # Depends on application module - applicationsCount: Int -} - -type NamespaceEvent { - type: SubscriptionEventType! - namespace: NamespaceListItem! -} - -type NamespaceMutationOutput { - name: String! - labels: Labels! -} - -type Application { - name: String! - description: String! - labels: Labels! - services: [ApplicationService!]! - enabledInNamespaces: [String!]! - enabledMappingServices: [enabledMappingService] - status: ApplicationStatus! - compassMetadata: compassMetadata -} - -type compassMetadata { - applicationId: String! -} - -type enabledMappingService { - namespace: String! - allServices: Boolean! - services: [EnabledApplicationService] -} - -type EnabledApplicationService { - id: String! - displayName: String! - exist: Boolean! -} - -type ConnectorService { - url: String! -} - -type ApplicationMapping { - namespace: String! - application: String! - allServices: Boolean - services: [ApplicationMappingService] -} - -type ApplicationService { - id: String! - displayName: String! - longDescription: String! - providerDisplayName: String! - tags: [String!]! - entries: [ApplicationEntry!]! -} - -type ApplicationEntry { - type: String! - gatewayUrl: String - accessLabel: String -} - -enum ApplicationStatus { - SERVING - NOT_SERVING - GATEWAY_NOT_CONFIGURED -} - -type ApplicationEvent { - type: SubscriptionEventType! - application: Application! -} - -type ApplicationMutationOutput { - name: String! - description: String! - labels: Labels! -} - -type DeleteApplicationOutput { - name: String! -} - -type EventActivationEvent { - eventType: String! - version: String! - description: String! - schema: JSON! -} - -type EventActivation { - name: String! - displayName: String! - sourceId: String! - events: [EventActivationEvent!] # content module -} - -type UsageKind { - name: String! - group: String! - kind: String! - version: String! - displayName: String! -} - -type UsageKindResource { - name: String! - namespace: String! -} - -type BindableResourcesOutputItem { - kind: String! - displayName: String! - resources: [UsageKindResource!]! -} - -# Backend Module -type BackendModule { - name: String! -} - -# Config Maps - -type ConfigMap { - name: String! - namespace: String! - creationTimestamp: Timestamp! - labels: Labels! - json: JSON! -} - -type ConfigMapEvent { - type: SubscriptionEventType! - configMap: ConfigMap! -} - -# MF - -type MicroFrontend { - name: String! - version: String! - category: String! - viewBaseUrl: String! - navigationNodes: [NavigationNode!]! -} - -type ClusterMicroFrontend { - name: String! - version: String! - category: String! - viewBaseUrl: String! - placement: String! - preloadUrl: String! - navigationNodes: [NavigationNode!]! -} - -type NavigationNode { - label: String! - navigationPath: String! - viewUrl: String! - showInNavigation: Boolean! - order: Int! - settings: Settings! - externalLink: String - requiredPermissions: [RequiredPermission!]! -} - -type RequiredPermission { - verbs: [String!]! - apiGroup: String! - resource: String! -} - -# SelfSubjectRules - -type ResourceRule { - verbs: [String!] - apiGroups: [String!] - resources: [String!] -} - -# Function - -type Function { - # meta - name: String! - namespace: String! - UID: String! - labels: Labels! - - # spec - source: String! - dependencies: String! - env: [FunctionEnv!]! - replicas: FunctionReplicas! - resources: FunctionResources! - buildResources: FunctionResources! - runtime: String - sourceType: String - baseDir: String - reference: String - - # status - status: FunctionStatus! -} - -type FunctionEnv { - name: String! - value: String! - valueFrom: FunctionEnvValueFrom -} - -type FunctionEnvValueFrom { - type: FunctionEnvValueFromType! - name: String! - key: String! - optional: Boolean -} - -input FunctionEnvInput { - name: String! - value: String! - valueFrom: FunctionEnvValueFromInput -} - -input FunctionEnvValueFromInput { - type: FunctionEnvValueFromType! - name: String! - key: String! - optional: Boolean -} - -enum FunctionEnvValueFromType { - ConfigMap - Secret -} - -type FunctionReplicas { - min: Int - max: Int -} - -input FunctionReplicasInput { - min: Int - max: Int -} - -type FunctionResources { - limits: ResourceValues! - requests: ResourceValues! -} - -input FunctionResourcesInput { - limits: ResourceValuesInput! - requests: ResourceValuesInput! -} - -type FunctionStatus { - phase: FunctionPhaseType! - reason: FunctionReasonType - message: String -} - -enum FunctionPhaseType { - INITIALIZING - BUILDING - DEPLOYING - RUNNING - NEW_REVISION_ERROR - FAILED -} - -enum FunctionReasonType { - CONFIG # ConfigMap - JOB # K8S Job - SERVICE # Deployment + Service + hpa -} - -input FunctionMutationInput { - labels: Labels! - source: String! - dependencies: String! - env: [FunctionEnvInput!]! - replicas: FunctionReplicasInput! - resources: FunctionResourcesInput! - buildResources: FunctionResourcesInput! - runtime: String - sourceType: String - baseDir: String - reference: String -} - -type FunctionMetadata { - name: String! - namespace: String! -} - -input FunctionMetadataInput { - name: String! - namespace: String! -} - -type FunctionEvent { - type: SubscriptionEventType! - function: Function! -} - -# Misc - -type VersionInfo { - kymaVersion: String -} - -# Queries - -type Query { - serviceInstance(name: String!, namespace: String!): ServiceInstance @HasAccess(attributes: {resource: "serviceinstances", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - serviceInstances(namespace: String!, first: Int, offset: Int, status: InstanceStatusType): [ServiceInstance!]! @HasAccess(attributes: {resource: "serviceinstances", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - - clusterServiceClasses(first: Int, offset: Int): [ClusterServiceClass!]! @HasAccess(attributes: {resource: "clusterserviceclasses", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1"}) - clusterServiceClass(name: String!): ClusterServiceClass @HasAccess(attributes: {resource: "clusterserviceclasses", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", nameArg: "name"}) - serviceClasses(namespace: String!, first: Int, offset: Int): [ServiceClass!]! @HasAccess(attributes: {resource: "serviceclasses", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceClass(namespace: String!, name: String!): ServiceClass @HasAccess(attributes: {resource: "serviceclasses", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - - clusterServiceBrokers(first: Int, offset: Int): [ClusterServiceBroker!]! @HasAccess(attributes: {resource: "clusterservicebrokers", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1"}) - clusterServiceBroker(name: String!): ClusterServiceBroker @HasAccess(attributes: {resource: "clusterservicebrokers", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", nameArg: "name"}) - serviceBrokers(namespace: String!, first: Int, offset: Int): [ServiceBroker!]! @HasAccess(attributes: {resource: "servicebrokers", verb: "list", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceBroker(name: String!, namespace: String!): ServiceBroker @HasAccess(attributes: {resource: "servicebrokers", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - - serviceBindingUsage(name: String!, namespace: String!): ServiceBindingUsage @HasAccess(attributes: {resource: "servicebindingusages", verb: "get", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "name"}) - serviceBindingUsages(namespace: String!, resourceKind: String, resourceName: String): [ServiceBindingUsage!]! @HasAccess(attributes: {resource: "servicebindingusages", verb: "get", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - serviceBinding(name: String!, namespace: String!): ServiceBinding @HasAccess(attributes: {resource: "servicebindings", verb: "get", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - usageKinds(first: Int, offset: Int): [UsageKind!]! @HasAccess(attributes: {resource: "usagekinds", verb: "list", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1"}) - - clusterAddonsConfigurations(first: Int, offset: Int): [AddonsConfiguration!]! @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "list", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - addonsConfigurations(namespace: String!, first: Int, offset: Int): [AddonsConfiguration!]! @HasAccess(attributes: {resource: "addonsconfigurations", verb: "list", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - - # The query returns all instance of the resources which could be bound (proper UsageKind exists). - bindableResources(namespace: String!): [BindableResourcesOutputItem!]! @HasAccess(attributes: {resource: "usagekinds", verb: "list", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - - application(name: String!): Application @HasAccess(attributes: {resource: "applications", verb: "get", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - applications(namespace: String, first: Int, offset: Int): [Application!]! @HasAccess(attributes: {resource: "applications", verb: "list", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - connectorService(application: String!): ConnectorService! @HasAccess(attributes: {resource: "applications", verb: "create", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - - # Depends on 'application' - namespaces(withSystemNamespaces: Boolean, withInactiveStatus: Boolean): [NamespaceListItem!]! @HasAccess(attributes: {resource: "namespaces", verb: "list", apiGroup: "", apiVersion: "v1"}) - namespace(name: String!): Namespace @HasAccess(attributes: {resource: "namespaces", verb: "get", apiGroup: "", apiVersion: "v1", namespaceArg: "name"}) - - deployments(namespace: String!, excludeFunctions: Boolean): [Deployment!]! @HasAccess(attributes: {resource: "deployments", verb: "list", apiGroup: "apps", apiVersion: "v1beta2", namespaceArg: "namespace"}) - versionInfo: VersionInfo! - - pod(name: String!, namespace: String!): Pod @HasAccess(attributes: {resource: "pods", verb: "get", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - pods(namespace: String!, first: Int, offset: Int): [Pod!]! @HasAccess(attributes: {resource: "pods", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - service(name: String!, namespace: String!): Service @HasAccess(attributes: {resource: "services", verb: "get", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - services(namespace: String!, excludedLabels: [String!], first: Int, offset: Int): [Service!]! @HasAccess(attributes: {resource: "services", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - configMap(name: String!, namespace: String!): ConfigMap @HasAccess(attributes: {resource: "configmaps", verb: "get", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - configMaps(namespace: String!, first: Int, offset: Int): [ConfigMap!]! @HasAccess(attributes: {resource: "configmaps", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - replicaSet(name: String!, namespace: String!): ReplicaSet @HasAccess(attributes: {resource: "replicasets", verb: "get", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - replicaSets(namespace: String!, first: Int, offset: Int): [ReplicaSet!]! @HasAccess(attributes: {resource: "replicasets", verb: "list", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace"}) - - - eventActivations(namespace: String!): [EventActivation!]! @HasAccess(attributes: {resource: "eventactivations", verb: "list", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - - - backendModules: [BackendModule!]! @HasAccess(attributes: {resource: "backendmodules", verb: "list", apiGroup: "ui.kyma-project.io", apiVersion: "v1alpha1"}) - - secret(name: String!, namespace: String!): Secret @HasAccess(attributes: {resource: "secrets", verb: "get", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - secrets(namespace: String!, first: Int, offset: Int): [Secret!]! @HasAccess(attributes: {resource: "secrets", verb: "list", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - microFrontends(namespace: String!): [MicroFrontend!]! @HasAccess(attributes: {resource: "microfrontends", verb: "list", apiGroup: "ui.kyma-project.io", apiVersion: "v1alpha1"}) - clusterMicroFrontends: [ClusterMicroFrontend!]! @HasAccess(attributes: {resource: "clustermicrofrontends", verb: "list", apiGroup: "ui.kyma-project.io", apiVersion: "v1alpha1"}) - - selfSubjectRules(namespace: String): [ResourceRule!]! @HasAccess(attributes: {apiGroup: "authorization.k8s.io", resource: "selfsubjectrulesreviews", verb: "create", apiVersion: "v1" namespaceArg: "namespace"}) - - function(name: String!, namespace: String!): Function @HasAccess(attributes: {apiGroup: "serverless.kyma-project.io", resource: "functions", verb: "get", apiVersion: "v1alpha1" nameArg:"name" namespaceArg: "namespace"}) - functions(namespace: String!): [Function!]! @HasAccess(attributes: {apiGroup: "serverless.kyma-project.io", resource: "functions", verb: "list", apiVersion: "v1alpha1" namespaceArg: "namespace"}) -} - -# Mutations - -type Mutation { - createResource(namespace: String!, resource: JSON!): JSON @HasAccess(attributes: {verb: "create", resourceArg: "resource", namespaceArg: "namespace"}) - createServiceInstance(namespace: String!, params: ServiceInstanceCreateInput!): ServiceInstance @HasAccess(attributes: {resource: "serviceinstances", verb: "create", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - deleteServiceInstance(name: String!, namespace: String!): ServiceInstance @HasAccess(attributes: {resource: "serviceinstances", verb: "delete", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "name"}) - createServiceBinding(serviceBindingName: String, serviceInstanceName: String!, namespace: String!, parameters: JSON): CreateServiceBindingOutput @HasAccess(attributes: {resource: "servicebindings", verb: "create", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - deleteServiceBinding(serviceBindingName: String!, namespace: String!): DeleteServiceBindingOutput @HasAccess(attributes: {resource: "servicebindings", verb: "delete", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace", nameArg: "serviceBindingName"}) - createServiceBindingUsage(namespace: String!, createServiceBindingUsageInput: CreateServiceBindingUsageInput): ServiceBindingUsage @HasAccess(attributes: {resource: "servicebindingusages", verb: "create", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteServiceBindingUsage(serviceBindingUsageName: String!, namespace: String!): DeleteServiceBindingUsageOutput @HasAccess(attributes: {resource: "servicebindingusages", verb: "delete", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace", nameArg: "serviceBindingUsageName"}) - deleteServiceBindingUsages(serviceBindingUsageNames: [String!]!, namespace: String!): [DeleteServiceBindingUsageOutput] @HasAccess(attributes: {resource: "servicebindingusages", verb: "delete", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - - createClusterAddonsConfiguration(name: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "create", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - updateClusterAddonsConfiguration(name: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - deleteClusterAddonsConfiguration(name: String!): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "delete", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addClusterAddonsConfigurationURLs(name: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeClusterAddonsConfigurationURLs(name: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addClusterAddonsConfigurationRepository(name: String!, repositories: [AddonsConfigurationRepositoryInput!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeClusterAddonsConfigurationRepository(name: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - resyncClusterAddonsConfiguration(name: String!): AddonsConfiguration @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - - createAddonsConfiguration(name: String!, namespace: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "create", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - updateAddonsConfiguration(name: String!, namespace: String!, repositories: [AddonsConfigurationRepositoryInput!], urls: [String!], labels: Labels): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - deleteAddonsConfiguration(name: String!, namespace: String!): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "delete", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addAddonsConfigurationURLs(name: String!, namespace: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeAddonsConfigurationURLs(name: String!, namespace: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - addAddonsConfigurationRepository(name: String!, namespace: String!, repositories: [AddonsConfigurationRepositoryInput!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - removeAddonsConfigurationRepository(name: String!, namespace: String!, urls: [String!]): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - resyncAddonsConfiguration(name: String!, namespace: String!): AddonsConfiguration @HasAccess(attributes: {resource: "addonsconfigurations", verb: "update", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - - createApplication(name: String!, description: String, labels: Labels): ApplicationMutationOutput! @HasAccess(attributes: {resource: "applications", verb: "create", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - updateApplication(name: String!, description: String, labels: Labels): ApplicationMutationOutput! @HasAccess(attributes: {resource: "applications", verb: "update", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - deleteApplication(name: String!): DeleteApplicationOutput! @HasAccess(attributes: {resource: "applications", verb: "delete", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name"}) - - enableApplication(application: String!, namespace: String!, allServices: Boolean, services: [ApplicationMappingService]): ApplicationMapping @HasAccess(attributes: {resource: "applicationmappings", verb: "create", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - overloadApplication(application: String!, namespace: String!, allServices: Boolean, services: [ApplicationMappingService]): ApplicationMapping @HasAccess(attributes: {resource: "applicationmappings", verb: "update", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - disableApplication(application: String!, namespace: String!): ApplicationMapping @HasAccess(attributes: {resource: "applicationmappings", verb: "delete", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1", nameArg: "application", namespaceArg: "namespace"}) - - updatePod(name: String!, namespace: String!, pod: JSON!): Pod @HasAccess(attributes: {resource: "pods", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - deletePod(name: String!, namespace: String!): Pod @HasAccess(attributes: {resource: "pods", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - - updateSecret(name: String!, namespace: String!, secret: JSON!): Secret @HasAccess(attributes: {resource: "secrets", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - deleteSecret(name: String!, namespace: String!): Secret @HasAccess(attributes: {resource: "secrets", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - updateReplicaSet(name: String!, namespace: String!, replicaSet: JSON!): ReplicaSet @HasAccess(attributes: {resource: "replicasets", verb: "update", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - deleteReplicaSet(name: String!, namespace: String!): ReplicaSet @HasAccess(attributes: {resource: "replicasets", verb: "delete", apiGroup: "apps", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - - updateConfigMap(name: String!, namespace: String!, configMap: JSON!): ConfigMap @HasAccess(attributes: {resource: "configmaps", verb: "update", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - deleteConfigMap(name: String!, namespace: String!): ConfigMap @HasAccess(attributes: {resource: "configmaps", verb: "delete", apiGroup: "", apiVersion: "v1", nameArg: "name", namespaceArg: "namespace"}) - - updateService(name: String!, namespace: String!, service: JSON!): Service @HasAccess(attributes: {resource: "services", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - deleteService(name: String!, namespace: String!): Service @HasAccess(attributes: {resource: "services", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace", nameArg: "name"}) - - createNamespace(name: String!, labels: Labels): NamespaceMutationOutput! @HasAccess(attributes: {resource: "namespaces", verb: "create", apiGroup: "", apiVersion: "v1"}) - updateNamespace(name: String!, labels: Labels): NamespaceMutationOutput! @HasAccess(attributes: {resource: "namespaces", verb: "update", apiGroup: "", apiVersion: "v1", namespaceArg: "name"}) - deleteNamespace(name: String!): Namespace @HasAccess(attributes: {resource: "namespaces", verb: "delete", apiGroup: "", apiVersion: "v1", namespaceArg: "name"}) - - createFunction(name: String!, namespace: String!, params: FunctionMutationInput!): Function @HasAccess(attributes: {resource: "functions", verb: "create", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name", namespaceArg: "namespace"}) - updateFunction(name: String!, namespace: String!, params: FunctionMutationInput!): Function @HasAccess(attributes: {resource: "functions", verb: "create", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", nameArg: "name", namespaceArg: "namespace"}) - deleteFunction(namespace: String!, function: FunctionMetadataInput!): FunctionMetadata @HasAccess(attributes: {resource: "functions", verb: "delete", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteManyFunctions(namespace: String!, functions: [FunctionMetadataInput!]!): [FunctionMetadata!] @HasAccess(attributes: {resource: "functions", verb: "delete", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -# Subscriptions - -type Subscription { - clusterAssetEvent: ClusterAssetEvent! @HasAccess(attributes: {resource: "clusterassets", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1"}) - assetEvent(namespace: String!): AssetEvent! @HasAccess(attributes: {resource: "assets", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - clusterAssetGroupEvent: ClusterAssetGroupEvent! @HasAccess(attributes: {resource: "clusterassetgroups", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1"}) - assetGroupEvent(namespace: String!): AssetGroupEvent! @HasAccess(attributes: {resource: "assetgroups", verb: "watch", apiGroup: "rafter.kyma-project.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - - serviceInstanceEvent(namespace: String!): ServiceInstanceEvent! @HasAccess(attributes: {resource: "serviceinstances", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceBindingEvent(namespace: String!): ServiceBindingEvent! @HasAccess(attributes: {resource: "servicebindings", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - serviceBindingUsageEvent(namespace: String!, resourceKind: String, resourceName: String): ServiceBindingUsageEvent! @HasAccess(attributes: {resource: "servicebindingusages", verb: "watch", apiGroup: "servicecatalog.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - serviceBrokerEvent(namespace: String!): ServiceBrokerEvent! @HasAccess(attributes: {resource: "servicebrokers", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1", namespaceArg: "namespace"}) - clusterServiceBrokerEvent: ClusterServiceBrokerEvent! @HasAccess(attributes: {resource: "clusterservicebrokers", verb: "watch", apiGroup: "servicecatalog.k8s.io", apiVersion: "v1beta1"}) - - applicationEvent: ApplicationEvent! @HasAccess(attributes: {resource: "applications", verb: "watch", apiGroup: "applicationconnector.kyma-project.io", apiVersion: "v1alpha1"}) - - podEvent(namespace: String!): PodEvent! @HasAccess(attributes: {resource: "pods", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - deploymentEvent(namespace: String!): DeploymentEvent! @HasAccess(attributes: {resource: "deployments", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - serviceEvent(namespace: String!): ServiceEvent! @HasAccess(attributes: {resource: "services", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - configMapEvent(namespace: String!): ConfigMapEvent! @HasAccess(attributes: {resource: "configmaps", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - secretEvent(namespace: String!): SecretEvent! @HasAccess(attributes: {resource: "secrets", verb: "watch", apiGroup: "", apiVersion: "v1", namespaceArg: "namespace"}) - - clusterAddonsConfigurationEvent: ClusterAddonsConfigurationEvent! @HasAccess(attributes: {resource: "clusteraddonsconfigurations", verb: "watch", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - addonsConfigurationEvent(namespace: String!): AddonsConfigurationEvent! @HasAccess(attributes: {resource: "addonsconfigurations", verb: "watch", apiGroup: "addons.kyma-project.io", apiVersion: "v1alpha1"}) - - namespaceEvent(withSystemNamespaces: Boolean): NamespaceEvent! @HasAccess(attributes: {resource: "namespaces", verb: "watch", apiGroup: "", apiVersion: "v1"}) - - functionEvent(namespace: String!, functionName: String): FunctionEvent! @HasAccess(attributes: {resource: "functions", verb: "watch", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -# Schema - -schema { - query: Query - mutation: Mutation -} -`, BuiltIn: false}, - &ast.Source{Name: "internal/gqlschema/serverless.graphql", Input: `type GitRepository @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepository") { - name: String! - namespace: String! - spec: GitRepositorySpec! -} - -type GitRepositorySpec @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepositorySpec") { - url: String! - auth: RepositoryAuth -} - -input GitRepositorySpecInput @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepositorySpec") { - url: String! - auth: RepositoryAuthInput -} - -type RepositoryAuth @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.RepositoryAuth") { - type: RepositoryAuthType! - secretName: String! -} - -input RepositoryAuthInput @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.RepositoryAuth") { - type: RepositoryAuthType! - secretName: String! -} - -enum RepositoryAuthType @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.RepositoryAuthType") { - BASIC - KEY -} - -extend type Query { - gitRepositories(namespace: String!): [GitRepository!] @HasAccess(attributes: {resource: "gitrepositories", verb: "list", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - gitRepository(namespace: String!, name: String!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "list", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Mutation { - createGitRepository(namespace: String!, name: String!, spec: GitRepositorySpecInput!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "create", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - updateGitRepository(namespace: String!, name: String!, spec: GitRepositorySpecInput!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "update", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteGitRepository(namespace: String!, name: String!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "delete", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} -`, BuiltIn: false}, -} -var parsedSchema = gqlparser.MustLoadSchema(sources...) - -// endregion ************************** generated!.gotpl ************************** - -// region ***************************** args.gotpl ***************************** - -func (ec *executionContext) dir_HasAccess_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 ResourceAttributes - if tmp, ok := rawArgs["attributes"]; ok { - arg0, err = ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, tmp) - if err != nil { - return nil, err - } - } - args["attributes"] = arg0 - return args, nil -} - -func (ec *executionContext) field_AssetGroup_assets_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 []string - if tmp, ok := rawArgs["types"]; ok { - arg0, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["types"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Asset_files_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 []string - if tmp, ok := rawArgs["filterExtensions"]; ok { - arg0, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["filterExtensions"] = arg0 - return args, nil -} - -func (ec *executionContext) field_ClusterAssetGroup_assets_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 []string - if tmp, ok := rawArgs["types"]; ok { - arg0, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["types"] = arg0 - return args, nil -} - -func (ec *executionContext) field_ClusterAsset_files_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 []string - if tmp, ok := rawArgs["filterExtensions"]; ok { - arg0, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["filterExtensions"] = arg0 - return args, nil -} - -func (ec *executionContext) field_ClusterServiceClass_activated_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_ClusterServiceClass_instances_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Mutation_addAddonsConfigurationRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 []*AddonsConfigurationRepositoryInput - if tmp, ok := rawArgs["repositories"]; ok { - arg2, err = ec.unmarshalOAddonsConfigurationRepositoryInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["repositories"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_addAddonsConfigurationURLs_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 []string - if tmp, ok := rawArgs["urls"]; ok { - arg2, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_addClusterAddonsConfigurationRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 []*AddonsConfigurationRepositoryInput - if tmp, ok := rawArgs["repositories"]; ok { - arg1, err = ec.unmarshalOAddonsConfigurationRepositoryInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["repositories"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_addClusterAddonsConfigurationURLs_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 []string - if tmp, ok := rawArgs["urls"]; ok { - arg1, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_createAPIRule_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 v1alpha1.APIRuleSpec - if tmp, ok := rawArgs["params"]; ok { - arg2, err = ec.unmarshalNAPIRuleSpecInput2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleSpec(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 []*AddonsConfigurationRepositoryInput - if tmp, ok := rawArgs["repositories"]; ok { - arg2, err = ec.unmarshalOAddonsConfigurationRepositoryInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["repositories"] = arg2 - var arg3 []string - if tmp, ok := rawArgs["urls"]; ok { - arg3, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg3 - var arg4 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg4, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg4 - return args, nil -} - -func (ec *executionContext) field_Mutation_createApplication_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 *string - if tmp, ok := rawArgs["description"]; ok { - arg1, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["description"] = arg1 - var arg2 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg2, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createClusterAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 []*AddonsConfigurationRepositoryInput - if tmp, ok := rawArgs["repositories"]; ok { - arg1, err = ec.unmarshalOAddonsConfigurationRepositoryInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["repositories"] = arg1 - var arg2 []string - if tmp, ok := rawArgs["urls"]; ok { - arg2, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg2 - var arg3 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg3, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Mutation_createClusterRoleBinding_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 ClusterRoleBindingInput - if tmp, ok := rawArgs["params"]; ok { - arg1, err = ec.unmarshalNClusterRoleBindingInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterRoleBindingInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_createFunction_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 FunctionMutationInput - if tmp, ok := rawArgs["params"]; ok { - arg2, err = ec.unmarshalNFunctionMutationInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMutationInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createGitRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - var arg2 v1alpha11.GitRepositorySpec - if tmp, ok := rawArgs["spec"]; ok { - arg2, err = ec.unmarshalNGitRepositorySpecInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepositorySpec(ctx, tmp) - if err != nil { - return nil, err - } - } - args["spec"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createLimitRange_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - var arg2 LimitRangeInput - if tmp, ok := rawArgs["limitRange"]; ok { - arg2, err = ec.unmarshalNLimitRangeInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLimitRangeInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["limitRange"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createManyTriggers_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 []*TriggerCreateInput - if tmp, ok := rawArgs["triggers"]; ok { - arg1, err = ec.unmarshalNTriggerCreateInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerCreateInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["triggers"] = arg1 - var arg2 []*v1.OwnerReference - if tmp, ok := rawArgs["ownerRef"]; ok { - arg2, err = ec.unmarshalOOwnerReferenceInput2ᚕᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReferenceᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["ownerRef"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createNamespace_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg1, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_createOAuth2Client_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 v1alpha12.OAuth2ClientSpec - if tmp, ok := rawArgs["params"]; ok { - arg2, err = ec.unmarshalNOAuth2ClientSpecInput2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2ClientSpec(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createResourceQuota_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - var arg2 ResourceQuotaInput - if tmp, ok := rawArgs["resourceQuota"]; ok { - arg2, err = ec.unmarshalNResourceQuotaInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceQuotaInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["resourceQuota"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createResource_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 JSON - if tmp, ok := rawArgs["resource"]; ok { - arg1, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["resource"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_createRoleBinding_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 RoleBindingInput - if tmp, ok := rawArgs["params"]; ok { - arg2, err = ec.unmarshalNRoleBindingInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createServiceBindingUsage_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *CreateServiceBindingUsageInput - if tmp, ok := rawArgs["createServiceBindingUsageInput"]; ok { - arg1, err = ec.unmarshalOCreateServiceBindingUsageInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCreateServiceBindingUsageInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["createServiceBindingUsageInput"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_createServiceBinding_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *string - if tmp, ok := rawArgs["serviceBindingName"]; ok { - arg0, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceBindingName"] = arg0 - var arg1 string - if tmp, ok := rawArgs["serviceInstanceName"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceInstanceName"] = arg1 - var arg2 string - if tmp, ok := rawArgs["namespace"]; ok { - arg2, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg2 - var arg3 JSON - if tmp, ok := rawArgs["parameters"]; ok { - arg3, err = ec.unmarshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["parameters"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Mutation_createServiceInstance_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 ServiceInstanceCreateInput - if tmp, ok := rawArgs["params"]; ok { - arg1, err = ec.unmarshalNServiceInstanceCreateInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceCreateInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_createSubscription_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 EventSubscriptionSpecInput - if tmp, ok := rawArgs["params"]; ok { - arg2, err = ec.unmarshalNEventSubscriptionSpecInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventSubscriptionSpecInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_createTrigger_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 TriggerCreateInput - if tmp, ok := rawArgs["trigger"]; ok { - arg1, err = ec.unmarshalNTriggerCreateInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerCreateInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["trigger"] = arg1 - var arg2 []*v1.OwnerReference - if tmp, ok := rawArgs["ownerRef"]; ok { - arg2, err = ec.unmarshalOOwnerReferenceInput2ᚕᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReferenceᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["ownerRef"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteAPIRule_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteApplication_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteClusterAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteClusterRoleBinding_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteConfigMap_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteFunction_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 FunctionMetadataInput - if tmp, ok := rawArgs["function"]; ok { - arg1, err = ec.unmarshalNFunctionMetadataInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["function"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteGitRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteManyFunctions_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 []*FunctionMetadataInput - if tmp, ok := rawArgs["functions"]; ok { - arg1, err = ec.unmarshalNFunctionMetadataInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["functions"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteManyTriggers_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 []string - if tmp, ok := rawArgs["triggerNames"]; ok { - arg1, err = ec.unmarshalNString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["triggerNames"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteNamespace_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteOAuth2Client_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deletePod_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteReplicaSet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteRoleBinding_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteSecret_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteServiceBindingUsage_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["serviceBindingUsageName"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceBindingUsageName"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteServiceBindingUsages_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 []string - if tmp, ok := rawArgs["serviceBindingUsageNames"]; ok { - arg0, err = ec.unmarshalNString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceBindingUsageNames"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteServiceBinding_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["serviceBindingName"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceBindingName"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteServiceInstance_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteService_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteSubscription_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_deleteTrigger_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["triggerName"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["triggerName"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_disableApplication_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["application"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["application"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_enableApplication_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["application"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["application"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 *bool - if tmp, ok := rawArgs["allServices"]; ok { - arg2, err = ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["allServices"] = arg2 - var arg3 []*ApplicationMappingService - if tmp, ok := rawArgs["services"]; ok { - arg3, err = ec.unmarshalOApplicationMappingService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx, tmp) - if err != nil { - return nil, err - } - } - args["services"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Mutation_overloadApplication_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["application"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["application"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 *bool - if tmp, ok := rawArgs["allServices"]; ok { - arg2, err = ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["allServices"] = arg2 - var arg3 []*ApplicationMappingService - if tmp, ok := rawArgs["services"]; ok { - arg3, err = ec.unmarshalOApplicationMappingService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx, tmp) - if err != nil { - return nil, err - } - } - args["services"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Mutation_removeAddonsConfigurationRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 []string - if tmp, ok := rawArgs["urls"]; ok { - arg2, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_removeAddonsConfigurationURLs_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 []string - if tmp, ok := rawArgs["urls"]; ok { - arg2, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_removeClusterAddonsConfigurationRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 []string - if tmp, ok := rawArgs["urls"]; ok { - arg1, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_removeClusterAddonsConfigurationURLs_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 []string - if tmp, ok := rawArgs["urls"]; ok { - arg1, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_resyncAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_resyncClusterAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateAPIRule_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 int - if tmp, ok := rawArgs["generation"]; ok { - arg2, err = ec.unmarshalNInt2int(ctx, tmp) - if err != nil { - return nil, err - } - } - args["generation"] = arg2 - var arg3 v1alpha1.APIRuleSpec - if tmp, ok := rawArgs["params"]; ok { - arg3, err = ec.unmarshalNAPIRuleSpecInput2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleSpec(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 []*AddonsConfigurationRepositoryInput - if tmp, ok := rawArgs["repositories"]; ok { - arg2, err = ec.unmarshalOAddonsConfigurationRepositoryInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["repositories"] = arg2 - var arg3 []string - if tmp, ok := rawArgs["urls"]; ok { - arg3, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg3 - var arg4 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg4, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg4 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateApplication_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 *string - if tmp, ok := rawArgs["description"]; ok { - arg1, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["description"] = arg1 - var arg2 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg2, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateClusterAddonsConfiguration_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 []*AddonsConfigurationRepositoryInput - if tmp, ok := rawArgs["repositories"]; ok { - arg1, err = ec.unmarshalOAddonsConfigurationRepositoryInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInputᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["repositories"] = arg1 - var arg2 []string - if tmp, ok := rawArgs["urls"]; ok { - arg2, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["urls"] = arg2 - var arg3 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg3, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateConfigMap_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 JSON - if tmp, ok := rawArgs["configMap"]; ok { - arg2, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["configMap"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateFunction_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 FunctionMutationInput - if tmp, ok := rawArgs["params"]; ok { - arg2, err = ec.unmarshalNFunctionMutationInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMutationInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateGitRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - var arg2 v1alpha11.GitRepositorySpec - if tmp, ok := rawArgs["spec"]; ok { - arg2, err = ec.unmarshalNGitRepositorySpecInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepositorySpec(ctx, tmp) - if err != nil { - return nil, err - } - } - args["spec"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateLimitRange_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - var arg2 JSON - if tmp, ok := rawArgs["json"]; ok { - arg2, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["json"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateNamespace_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 Labels - if tmp, ok := rawArgs["labels"]; ok { - arg1, err = ec.unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, tmp) - if err != nil { - return nil, err - } - } - args["labels"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateOAuth2Client_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 int - if tmp, ok := rawArgs["generation"]; ok { - arg2, err = ec.unmarshalNInt2int(ctx, tmp) - if err != nil { - return nil, err - } - } - args["generation"] = arg2 - var arg3 v1alpha12.OAuth2ClientSpec - if tmp, ok := rawArgs["params"]; ok { - arg3, err = ec.unmarshalNOAuth2ClientSpecInput2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2ClientSpec(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Mutation_updatePod_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 JSON - if tmp, ok := rawArgs["pod"]; ok { - arg2, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["pod"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateReplicaSet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 JSON - if tmp, ok := rawArgs["replicaSet"]; ok { - arg2, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["replicaSet"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateResourceQuota_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - var arg2 JSON - if tmp, ok := rawArgs["json"]; ok { - arg2, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["json"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateSecret_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 JSON - if tmp, ok := rawArgs["secret"]; ok { - arg2, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["secret"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateService_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 JSON - if tmp, ok := rawArgs["service"]; ok { - arg2, err = ec.unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, tmp) - if err != nil { - return nil, err - } - } - args["service"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Mutation_updateSubscription_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - var arg2 EventSubscriptionSpecInput - if tmp, ok := rawArgs["params"]; ok { - arg2, err = ec.unmarshalNEventSubscriptionSpecInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventSubscriptionSpecInput(ctx, tmp) - if err != nil { - return nil, err - } - } - args["params"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Namespace_deployments_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *bool - if tmp, ok := rawArgs["excludeFunctions"]; ok { - arg0, err = ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["excludeFunctions"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_APIRule_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_APIRules_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *string - if tmp, ok := rawArgs["serviceName"]; ok { - arg1, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceName"] = arg1 - var arg2 *string - if tmp, ok := rawArgs["hostname"]; ok { - arg2, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["hostname"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_addonsConfigurations_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_application_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_applications_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_bindableResources_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_clusterAddonsConfigurations_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *int - if tmp, ok := rawArgs["first"]; ok { - arg0, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["offset"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_clusterRole_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_clusterServiceBroker_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_clusterServiceBrokers_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *int - if tmp, ok := rawArgs["first"]; ok { - arg0, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["offset"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_clusterServiceClass_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_clusterServiceClasses_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *int - if tmp, ok := rawArgs["first"]; ok { - arg0, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["offset"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_configMap_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_configMaps_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_connectorService_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["application"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["application"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_deployments_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *bool - if tmp, ok := rawArgs["excludeFunctions"]; ok { - arg1, err = ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["excludeFunctions"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_eventActivations_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_eventSubscriptions_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["ownerName"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["ownerName"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_function_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_functions_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_gitRepositories_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_gitRepository_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_limitRanges_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_microFrontends_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_namespace_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_namespaces_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *bool - if tmp, ok := rawArgs["withSystemNamespaces"]; ok { - arg0, err = ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["withSystemNamespaces"] = arg0 - var arg1 *bool - if tmp, ok := rawArgs["withInactiveStatus"]; ok { - arg1, err = ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["withInactiveStatus"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_oAuth2Client_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_oAuth2Clients_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_pod_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_pods_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_replicaSet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_replicaSets_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_resourceQuotas_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_roleBindings_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_role_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_roles_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_secret_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_secrets_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_selfSubjectRules_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Query_serviceBindingUsage_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_serviceBindingUsages_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *string - if tmp, ok := rawArgs["resourceKind"]; ok { - arg1, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["resourceKind"] = arg1 - var arg2 *string - if tmp, ok := rawArgs["resourceName"]; ok { - arg2, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["resourceName"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_serviceBinding_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_serviceBroker_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_serviceBrokers_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_serviceClass_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["name"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_serviceClasses_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Query_serviceInstance_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_serviceInstances_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["first"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["offset"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg2 - var arg3 *InstanceStatusType - if tmp, ok := rawArgs["status"]; ok { - arg3, err = ec.unmarshalOInstanceStatusType2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx, tmp) - if err != nil { - return nil, err - } - } - args["status"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Query_service_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["name"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["name"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_services_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 []string - if tmp, ok := rawArgs["excludedLabels"]; ok { - arg1, err = ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - if err != nil { - return nil, err - } - } - args["excludedLabels"] = arg1 - var arg2 *int - if tmp, ok := rawArgs["first"]; ok { - arg2, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg2 - var arg3 *int - if tmp, ok := rawArgs["offset"]; ok { - arg3, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg3 - return args, nil -} - -func (ec *executionContext) field_Query_triggers_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["serviceName"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceName"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Query_usageKinds_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *int - if tmp, ok := rawArgs["first"]; ok { - arg0, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["first"] = arg0 - var arg1 *int - if tmp, ok := rawArgs["offset"]; ok { - arg1, err = ec.unmarshalOInt2ᚖint(ctx, tmp) - if err != nil { - return nil, err - } - } - args["offset"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Subscription_addonsConfigurationEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_apiRuleEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *string - if tmp, ok := rawArgs["serviceName"]; ok { - arg1, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceName"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Subscription_assetEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_assetGroupEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_configMapEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_deploymentEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_functionEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *string - if tmp, ok := rawArgs["functionName"]; ok { - arg1, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["functionName"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Subscription_namespaceEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 *bool - if tmp, ok := rawArgs["withSystemNamespaces"]; ok { - arg0, err = ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["withSystemNamespaces"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_oAuth2ClientEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_podEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_roleBindingEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_secretEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_serviceBindingEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_serviceBindingUsageEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 *string - if tmp, ok := rawArgs["resourceKind"]; ok { - arg1, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["resourceKind"] = arg1 - var arg2 *string - if tmp, ok := rawArgs["resourceName"]; ok { - arg2, err = ec.unmarshalOString2ᚖstring(ctx, tmp) - if err != nil { - return nil, err - } - } - args["resourceName"] = arg2 - return args, nil -} - -func (ec *executionContext) field_Subscription_serviceBrokerEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_serviceEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_serviceInstanceEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - return args, nil -} - -func (ec *executionContext) field_Subscription_subscriptionSubscription_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["ownerName"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["ownerName"] = arg0 - var arg1 string - if tmp, ok := rawArgs["namespace"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg1 - return args, nil -} - -func (ec *executionContext) field_Subscription_triggerEvent_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["namespace"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["namespace"] = arg0 - var arg1 string - if tmp, ok := rawArgs["serviceName"]; ok { - arg1, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["serviceName"] = arg1 - return args, nil -} - -func (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 bool - if tmp, ok := rawArgs["includeDeprecated"]; ok { - arg0, err = ec.unmarshalOBoolean2bool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["includeDeprecated"] = arg0 - return args, nil -} - -func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 bool - if tmp, ok := rawArgs["includeDeprecated"]; ok { - arg0, err = ec.unmarshalOBoolean2bool(ctx, tmp) - if err != nil { - return nil, err - } - } - args["includeDeprecated"] = arg0 - return args, nil -} - -// endregion ***************************** args.gotpl ***************************** - -// region ************************** directives.gotpl ************************** - -// endregion ************************** directives.gotpl ************************** - -// region **************************** field.gotpl ***************************** - -func (ec *executionContext) _APIRule_name(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRule_spec(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Spec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha1.APIRuleSpec) - fc.Result = res - return ec.marshalNAPIRuleSpec2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleSpec(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRule_status(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha1.APIRuleStatus) - fc.Result = res - return ec.marshalNAPIRuleStatuses2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRule_generation(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Generation, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int64) - fc.Result = res - return ec.marshalNInt2int64(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRule_json(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRule", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.APIRule().JSON(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRule_ownerSubscription(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRule", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.APIRule().OwnerSubscription(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1.OwnerReference) - fc.Result = res - return ec.marshalOOwnerReference2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleAccessStrategy_name(ctx context.Context, field graphql.CollectedField, obj *v1alpha15.Authenticator) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleAccessStrategy", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleAccessStrategy_config(ctx context.Context, field graphql.CollectedField, obj *v1alpha15.Authenticator) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleAccessStrategy", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Config, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*runtime.RawExtension) - fc.Result = res - return ec.marshalOExtension2ᚖk8sᚗioᚋapimachineryᚋpkgᚋruntimeᚐRawExtension(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleService_host(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Host, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalNString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleService_name(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalNString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleService_port(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Port, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*uint32) - fc.Result = res - return ec.marshalNPort2ᚖuint32(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleSpec_service(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Service, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v1alpha1.Service) - fc.Result = res - return ec.marshalNAPIRuleService2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐService(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleSpec_gateway(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Gateway, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalNString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleSpec_rules(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Rules, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]v1alpha1.Rule) - fc.Result = res - return ec.marshalNRule2ᚕgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRuleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleStatus_code(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleResourceStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Code, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha1.StatusCode) - fc.Result = res - return ec.marshalNAPIRuleStatusCode2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐStatusCode(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleStatus_description(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleResourceStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleStatuses_apiRuleStatus(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleStatuses", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIRuleStatus, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRuleResourceStatus) - fc.Result = res - return ec.marshalOAPIRuleStatus2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleResourceStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleStatuses_accessRuleStatus(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleStatuses", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AccessRuleStatus, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRuleResourceStatus) - fc.Result = res - return ec.marshalOAPIRuleStatus2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleResourceStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _APIRuleStatuses_virtualServiceStatus(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.APIRuleStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "APIRuleStatuses", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.VirtualServiceStatus, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRuleResourceStatus) - fc.Result = res - return ec.marshalOAPIRuleStatus2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleResourceStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfiguration_name(ctx context.Context, field graphql.CollectedField, obj *AddonsConfiguration) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfiguration", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfiguration_urls(ctx context.Context, field graphql.CollectedField, obj *AddonsConfiguration) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfiguration", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Urls, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfiguration_repositories(ctx context.Context, field graphql.CollectedField, obj *AddonsConfiguration) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfiguration", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Repositories, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*AddonsConfigurationRepository) - fc.Result = res - return ec.marshalOAddonsConfigurationRepository2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfiguration_labels(ctx context.Context, field graphql.CollectedField, obj *AddonsConfiguration) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfiguration", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfiguration_status(ctx context.Context, field graphql.CollectedField, obj *AddonsConfiguration) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfiguration", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*AddonsConfigurationStatus) - fc.Result = res - return ec.marshalNAddonsConfigurationStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationEvent_type(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationEvent_addonsConfiguration(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AddonsConfiguration, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalNAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationRepository_url(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.URL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationRepository_secretRef(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SecretRef, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ResourceRef) - fc.Result = res - return ec.marshalOResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRef(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatus_phase(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Phase, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatus_repositories(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Repositories, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*AddonsConfigurationStatusRepository) - fc.Result = res - return ec.marshalOAddonsConfigurationStatusRepository2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusRepositoryᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusAddons_name(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusAddons) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusAddons", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusAddons_version(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusAddons) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusAddons", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Version, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusAddons_status(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusAddons) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusAddons", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusAddons_reason(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusAddons) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusAddons", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusAddons_message(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusAddons) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusAddons", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusRepository_url(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.URL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusRepository_status(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusRepository_addons(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Addons, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*AddonsConfigurationStatusAddons) - fc.Result = res - return ec.marshalOAddonsConfigurationStatusAddons2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusAddonsᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusRepository_reason(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AddonsConfigurationStatusRepository_message(ctx context.Context, field graphql.CollectedField, obj *AddonsConfigurationStatusRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AddonsConfigurationStatusRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApiRuleEvent_type(ctx context.Context, field graphql.CollectedField, obj *APIRuleEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApiRuleEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApiRuleEvent_apiRule(ctx context.Context, field graphql.CollectedField, obj *APIRuleEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApiRuleEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIRule, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRule) - fc.Result = res - return ec.marshalNAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_name(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_description(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_labels(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_services(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Services, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]ApplicationService) - fc.Result = res - return ec.marshalNApplicationService2ᚕgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationServiceᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_enabledInNamespaces(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Application().EnabledInNamespaces(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_enabledMappingServices(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Application().EnabledMappingServices(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*EnabledMappingService) - fc.Result = res - return ec.marshalOenabledMappingService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledMappingService(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_status(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Application().Status(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ApplicationStatus) - fc.Result = res - return ec.marshalNApplicationStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _Application_compassMetadata(ctx context.Context, field graphql.CollectedField, obj *Application) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Application", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CompassMetadata, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*CompassMetadata) - fc.Result = res - return ec.marshalOcompassMetadata2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCompassMetadata(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationEntry_type(ctx context.Context, field graphql.CollectedField, obj *ApplicationEntry) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationEntry", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationEntry_gatewayUrl(ctx context.Context, field graphql.CollectedField, obj *ApplicationEntry) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationEntry", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.GatewayURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationEntry_accessLabel(ctx context.Context, field graphql.CollectedField, obj *ApplicationEntry) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationEntry", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AccessLabel, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationEvent_type(ctx context.Context, field graphql.CollectedField, obj *ApplicationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationEvent_application(ctx context.Context, field graphql.CollectedField, obj *ApplicationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Application, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*Application) - fc.Result = res - return ec.marshalNApplication2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplication(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationMapping_namespace(ctx context.Context, field graphql.CollectedField, obj *ApplicationMapping) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationMapping", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationMapping_application(ctx context.Context, field graphql.CollectedField, obj *ApplicationMapping) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationMapping", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Application, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationMapping_allServices(ctx context.Context, field graphql.CollectedField, obj *ApplicationMapping) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationMapping", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AllServices, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*bool) - fc.Result = res - return ec.marshalOBoolean2ᚖbool(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationMapping_services(ctx context.Context, field graphql.CollectedField, obj *ApplicationMapping) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationMapping", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Services, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*ApplicationMappingService) - fc.Result = res - return ec.marshalOApplicationMappingService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationMutationOutput_name(ctx context.Context, field graphql.CollectedField, obj *ApplicationMutationOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationMutationOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationMutationOutput_description(ctx context.Context, field graphql.CollectedField, obj *ApplicationMutationOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationMutationOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationMutationOutput_labels(ctx context.Context, field graphql.CollectedField, obj *ApplicationMutationOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationMutationOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationService_id(ctx context.Context, field graphql.CollectedField, obj *ApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationService_displayName(ctx context.Context, field graphql.CollectedField, obj *ApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationService_longDescription(ctx context.Context, field graphql.CollectedField, obj *ApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LongDescription, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationService_providerDisplayName(ctx context.Context, field graphql.CollectedField, obj *ApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ProviderDisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationService_tags(ctx context.Context, field graphql.CollectedField, obj *ApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Tags, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ApplicationService_entries(ctx context.Context, field graphql.CollectedField, obj *ApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Entries, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ApplicationEntry) - fc.Result = res - return ec.marshalNApplicationEntry2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEntryᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Asset_name(ctx context.Context, field graphql.CollectedField, obj *Asset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Asset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Asset_namespace(ctx context.Context, field graphql.CollectedField, obj *Asset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Asset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Asset_parameters(ctx context.Context, field graphql.CollectedField, obj *Asset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Asset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Parameters, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _Asset_type(ctx context.Context, field graphql.CollectedField, obj *Asset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Asset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Asset_files(ctx context.Context, field graphql.CollectedField, obj *Asset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Asset", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Asset_files_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Asset().Files(rctx, obj, args["filterExtensions"].([]string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*File) - fc.Result = res - return ec.marshalNFile2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFileᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Asset_status(ctx context.Context, field graphql.CollectedField, obj *Asset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Asset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(AssetStatus) - fc.Result = res - return ec.marshalNAssetStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _Asset_displayName(ctx context.Context, field graphql.CollectedField, obj *Asset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Asset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetEvent_type(ctx context.Context, field graphql.CollectedField, obj *AssetEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetEvent_asset(ctx context.Context, field graphql.CollectedField, obj *AssetEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Asset, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*Asset) - fc.Result = res - return ec.marshalNAsset2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAsset(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroup_name(ctx context.Context, field graphql.CollectedField, obj *AssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroup_namespace(ctx context.Context, field graphql.CollectedField, obj *AssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroup_groupName(ctx context.Context, field graphql.CollectedField, obj *AssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.GroupName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroup_assets(ctx context.Context, field graphql.CollectedField, obj *AssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroup", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_AssetGroup_assets_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.AssetGroup().Assets(rctx, obj, args["types"].([]string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Asset) - fc.Result = res - return ec.marshalNAsset2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroup_displayName(ctx context.Context, field graphql.CollectedField, obj *AssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroup_description(ctx context.Context, field graphql.CollectedField, obj *AssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroup_status(ctx context.Context, field graphql.CollectedField, obj *AssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(AssetGroupStatus) - fc.Result = res - return ec.marshalNAssetGroupStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroupEvent_type(ctx context.Context, field graphql.CollectedField, obj *AssetGroupEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroupEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroupEvent_assetGroup(ctx context.Context, field graphql.CollectedField, obj *AssetGroupEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroupEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AssetGroup, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*AssetGroup) - fc.Result = res - return ec.marshalNAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroupStatus_phase(ctx context.Context, field graphql.CollectedField, obj *AssetGroupStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroupStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Phase, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(AssetGroupPhaseType) - fc.Result = res - return ec.marshalNAssetGroupPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupPhaseType(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroupStatus_reason(ctx context.Context, field graphql.CollectedField, obj *AssetGroupStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroupStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetGroupStatus_message(ctx context.Context, field graphql.CollectedField, obj *AssetGroupStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetGroupStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetStatus_phase(ctx context.Context, field graphql.CollectedField, obj *AssetStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Phase, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(AssetPhaseType) - fc.Result = res - return ec.marshalNAssetPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetPhaseType(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetStatus_reason(ctx context.Context, field graphql.CollectedField, obj *AssetStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _AssetStatus_message(ctx context.Context, field graphql.CollectedField, obj *AssetStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "AssetStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _BackendModule_name(ctx context.Context, field graphql.CollectedField, obj *BackendModule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BackendModule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _BebFilter_eventSource(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.BebFilter) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BebFilter", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.EventSource, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha13.Filter) - fc.Result = res - return ec.marshalOFilter2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐFilter(ctx, field.Selections, res) -} - -func (ec *executionContext) _BebFilter_eventType(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.BebFilter) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BebFilter", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.EventType, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha13.Filter) - fc.Result = res - return ec.marshalOFilter2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐFilter(ctx, field.Selections, res) -} - -func (ec *executionContext) _BebFilters_dialect(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.BebFilters) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BebFilters", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Dialect, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _BebFilters_filters(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.BebFilters) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BebFilters", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Filters, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v1alpha13.BebFilter) - fc.Result = res - return ec.marshalNBebFilter2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilterᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _BindableResourcesOutputItem_kind(ctx context.Context, field graphql.CollectedField, obj *BindableResourcesOutputItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BindableResourcesOutputItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Kind, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _BindableResourcesOutputItem_displayName(ctx context.Context, field graphql.CollectedField, obj *BindableResourcesOutputItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BindableResourcesOutputItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _BindableResourcesOutputItem_resources(ctx context.Context, field graphql.CollectedField, obj *BindableResourcesOutputItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "BindableResourcesOutputItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Resources, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*UsageKindResource) - fc.Result = res - return ec.marshalNUsageKindResource2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKindResourceᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAddonsConfigurationEvent_type(ctx context.Context, field graphql.CollectedField, obj *ClusterAddonsConfigurationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAddonsConfigurationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAddonsConfigurationEvent_addonsConfiguration(ctx context.Context, field graphql.CollectedField, obj *ClusterAddonsConfigurationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAddonsConfigurationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AddonsConfiguration, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalNAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAsset_name(ctx context.Context, field graphql.CollectedField, obj *ClusterAsset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAsset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAsset_parameters(ctx context.Context, field graphql.CollectedField, obj *ClusterAsset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAsset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Parameters, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAsset_type(ctx context.Context, field graphql.CollectedField, obj *ClusterAsset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAsset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAsset_files(ctx context.Context, field graphql.CollectedField, obj *ClusterAsset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAsset", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_ClusterAsset_files_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ClusterAsset().Files(rctx, obj, args["filterExtensions"].([]string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*File) - fc.Result = res - return ec.marshalNFile2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFileᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAsset_status(ctx context.Context, field graphql.CollectedField, obj *ClusterAsset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAsset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(AssetStatus) - fc.Result = res - return ec.marshalNAssetStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAsset_displayName(ctx context.Context, field graphql.CollectedField, obj *ClusterAsset) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAsset", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetEvent_type(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetEvent_clusterAsset(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClusterAsset, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ClusterAsset) - fc.Result = res - return ec.marshalNClusterAsset2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAsset(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroup_name(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroup_groupName(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.GroupName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroup_assets(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroup", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_ClusterAssetGroup_assets_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ClusterAssetGroup().Assets(rctx, obj, args["types"].([]string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ClusterAsset) - fc.Result = res - return ec.marshalNClusterAsset2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroup_displayName(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroup_description(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroup_status(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroup) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroup", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(AssetGroupStatus) - fc.Result = res - return ec.marshalNAssetGroupStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroupEvent_type(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroupEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroupEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterAssetGroupEvent_clusterAssetGroup(ctx context.Context, field graphql.CollectedField, obj *ClusterAssetGroupEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterAssetGroupEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClusterAssetGroup, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ClusterAssetGroup) - fc.Result = res - return ec.marshalNClusterAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterMicroFrontend_name(ctx context.Context, field graphql.CollectedField, obj *ClusterMicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterMicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterMicroFrontend_version(ctx context.Context, field graphql.CollectedField, obj *ClusterMicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterMicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Version, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterMicroFrontend_category(ctx context.Context, field graphql.CollectedField, obj *ClusterMicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterMicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Category, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterMicroFrontend_viewBaseUrl(ctx context.Context, field graphql.CollectedField, obj *ClusterMicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterMicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ViewBaseURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterMicroFrontend_placement(ctx context.Context, field graphql.CollectedField, obj *ClusterMicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterMicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Placement, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterMicroFrontend_preloadUrl(ctx context.Context, field graphql.CollectedField, obj *ClusterMicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterMicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.PreloadURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterMicroFrontend_navigationNodes(ctx context.Context, field graphql.CollectedField, obj *ClusterMicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterMicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.NavigationNodes, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*NavigationNode) - fc.Result = res - return ec.marshalNNavigationNode2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNavigationNodeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterRole_name(ctx context.Context, field graphql.CollectedField, obj *v12.ClusterRole) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterRole", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterRole_rules(ctx context.Context, field graphql.CollectedField, obj *v12.ClusterRole) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterRole", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Rules, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]v12.PolicyRule) - fc.Result = res - return ec.marshalOPolicyRule2ᚕk8sᚗioᚋapiᚋrbacᚋv1ᚐPolicyRuleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterRoleBinding_name(ctx context.Context, field graphql.CollectedField, obj *v12.ClusterRoleBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterRoleBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterRoleBinding_roleRef(ctx context.Context, field graphql.CollectedField, obj *v12.ClusterRoleBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterRoleBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.RoleRef, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v12.RoleRef) - fc.Result = res - return ec.marshalNRoleRef2k8sᚗioᚋapiᚋrbacᚋv1ᚐRoleRef(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterRoleBindingEvent_type(ctx context.Context, field graphql.CollectedField, obj *ClusterRoleBindingEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterRoleBindingEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterRoleBindingEvent_clusterRoleBinding(ctx context.Context, field graphql.CollectedField, obj *ClusterRoleBindingEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterRoleBindingEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClusterRoleBinding, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.ClusterRoleBinding) - fc.Result = res - return ec.marshalNClusterRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceBroker_name(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceBroker_status(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceBrokerStatus) - fc.Result = res - return ec.marshalNServiceBrokerStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceBroker_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceBroker_url(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.URL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceBroker_labels(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceBrokerEvent_type(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceBrokerEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceBrokerEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceBrokerEvent_clusterServiceBroker(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceBrokerEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceBrokerEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClusterServiceBroker, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ClusterServiceBroker) - fc.Result = res - return ec.marshalNClusterServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBroker(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_name(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_externalName(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ExternalName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_displayName(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_description(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_longDescription(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LongDescription, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_imageUrl(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ImageURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_documentationUrl(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DocumentationURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_supportUrl(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SupportURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_providerDisplayName(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ProviderDisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_tags(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Tags, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_labels(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_plans(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ClusterServiceClass().Plans(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ClusterServicePlan) - fc.Result = res - return ec.marshalNClusterServicePlan2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlanᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_activated(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_ClusterServiceClass_activated_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ClusterServiceClass().Activated(rctx, obj, args["namespace"].(*string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_instances(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_ClusterServiceClass_instances_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ClusterServiceClass().Instances(rctx, obj, args["namespace"].(*string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServiceInstance) - fc.Result = res - return ec.marshalNServiceInstance2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServiceClass_clusterAssetGroup(ctx context.Context, field graphql.CollectedField, obj *ClusterServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ClusterServiceClass().ClusterAssetGroup(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterAssetGroup) - fc.Result = res - return ec.marshalOClusterAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_name(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_displayName(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_externalName(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ExternalName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_description(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_relatedClusterServiceClassName(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.RelatedClusterServiceClassName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_instanceCreateParameterSchema(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.InstanceCreateParameterSchema, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*JSON) - fc.Result = res - return ec.marshalOJSON2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_bindingCreateParameterSchema(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.BindingCreateParameterSchema, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*JSON) - fc.Result = res - return ec.marshalOJSON2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ClusterServicePlan_clusterAssetGroup(ctx context.Context, field graphql.CollectedField, obj *ClusterServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ClusterServicePlan", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ClusterServicePlan().ClusterAssetGroup(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterAssetGroup) - fc.Result = res - return ec.marshalOClusterAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _Condition_message(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Condition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Condition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Condition_reason(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Condition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Condition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(v1alpha13.ConditionReason) - fc.Result = res - return ec.marshalOConditionReason2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐConditionReason(ctx, field.Selections, res) -} - -func (ec *executionContext) _Condition_status(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Condition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Condition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v11.ConditionStatus) - fc.Result = res - return ec.marshalNCoreStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _Condition_type(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Condition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Condition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(v1alpha13.ConditionType) - fc.Result = res - return ec.marshalOConditionType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐConditionType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConfigMap_name(ctx context.Context, field graphql.CollectedField, obj *ConfigMap) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConfigMap", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConfigMap_namespace(ctx context.Context, field graphql.CollectedField, obj *ConfigMap) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConfigMap", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConfigMap_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *ConfigMap) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConfigMap", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConfigMap_labels(ctx context.Context, field graphql.CollectedField, obj *ConfigMap) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConfigMap", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConfigMap_json(ctx context.Context, field graphql.CollectedField, obj *ConfigMap) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConfigMap", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.JSON, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConfigMapEvent_type(ctx context.Context, field graphql.CollectedField, obj *ConfigMapEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConfigMapEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConfigMapEvent_configMap(ctx context.Context, field graphql.CollectedField, obj *ConfigMapEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConfigMapEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ConfigMap, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ConfigMap) - fc.Result = res - return ec.marshalNConfigMap2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx, field.Selections, res) -} - -func (ec *executionContext) _ConnectorService_url(ctx context.Context, field graphql.CollectedField, obj *ConnectorService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ConnectorService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.URL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Container_name(ctx context.Context, field graphql.CollectedField, obj *Container) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Container", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Container_image(ctx context.Context, field graphql.CollectedField, obj *Container) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Container", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Image, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ContainerState_state(ctx context.Context, field graphql.CollectedField, obj *ContainerState) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ContainerState", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.State, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ContainerStateType) - fc.Result = res - return ec.marshalNContainerStateType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerStateType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ContainerState_reason(ctx context.Context, field graphql.CollectedField, obj *ContainerState) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ContainerState", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ContainerState_message(ctx context.Context, field graphql.CollectedField, obj *ContainerState) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ContainerState", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _CreateServiceBindingOutput_name(ctx context.Context, field graphql.CollectedField, obj *CreateServiceBindingOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "CreateServiceBindingOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _CreateServiceBindingOutput_serviceInstanceName(ctx context.Context, field graphql.CollectedField, obj *CreateServiceBindingOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "CreateServiceBindingOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ServiceInstanceName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _CreateServiceBindingOutput_namespace(ctx context.Context, field graphql.CollectedField, obj *CreateServiceBindingOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "CreateServiceBindingOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeleteApplicationOutput_name(ctx context.Context, field graphql.CollectedField, obj *DeleteApplicationOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeleteApplicationOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeleteServiceBindingOutput_name(ctx context.Context, field graphql.CollectedField, obj *DeleteServiceBindingOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeleteServiceBindingOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeleteServiceBindingOutput_namespace(ctx context.Context, field graphql.CollectedField, obj *DeleteServiceBindingOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeleteServiceBindingOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeleteServiceBindingUsageOutput_name(ctx context.Context, field graphql.CollectedField, obj *DeleteServiceBindingUsageOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeleteServiceBindingUsageOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeleteServiceBindingUsageOutput_namespace(ctx context.Context, field graphql.CollectedField, obj *DeleteServiceBindingUsageOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeleteServiceBindingUsageOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Deployment_name(ctx context.Context, field graphql.CollectedField, obj *Deployment) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Deployment", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Deployment_namespace(ctx context.Context, field graphql.CollectedField, obj *Deployment) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Deployment", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Deployment_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *Deployment) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Deployment", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _Deployment_status(ctx context.Context, field graphql.CollectedField, obj *Deployment) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Deployment", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*DeploymentStatus) - fc.Result = res - return ec.marshalNDeploymentStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _Deployment_labels(ctx context.Context, field graphql.CollectedField, obj *Deployment) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Deployment", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _Deployment_containers(ctx context.Context, field graphql.CollectedField, obj *Deployment) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Deployment", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Containers, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Container) - fc.Result = res - return ec.marshalNContainer2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Deployment_boundServiceInstanceNames(ctx context.Context, field graphql.CollectedField, obj *Deployment) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Deployment", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Deployment().BoundServiceInstanceNames(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentCondition_status(ctx context.Context, field graphql.CollectedField, obj *DeploymentCondition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentCondition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentCondition_type(ctx context.Context, field graphql.CollectedField, obj *DeploymentCondition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentCondition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentCondition_lastTransitionTimestamp(ctx context.Context, field graphql.CollectedField, obj *DeploymentCondition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentCondition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LastTransitionTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentCondition_lastUpdateTimestamp(ctx context.Context, field graphql.CollectedField, obj *DeploymentCondition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentCondition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LastUpdateTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentCondition_message(ctx context.Context, field graphql.CollectedField, obj *DeploymentCondition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentCondition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentCondition_reason(ctx context.Context, field graphql.CollectedField, obj *DeploymentCondition) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentCondition", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentEvent_type(ctx context.Context, field graphql.CollectedField, obj *DeploymentEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentEvent_deployment(ctx context.Context, field graphql.CollectedField, obj *DeploymentEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Deployment, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*Deployment) - fc.Result = res - return ec.marshalNDeployment2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeployment(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentStatus_replicas(ctx context.Context, field graphql.CollectedField, obj *DeploymentStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Replicas, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentStatus_updatedReplicas(ctx context.Context, field graphql.CollectedField, obj *DeploymentStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.UpdatedReplicas, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentStatus_readyReplicas(ctx context.Context, field graphql.CollectedField, obj *DeploymentStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ReadyReplicas, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentStatus_availableReplicas(ctx context.Context, field graphql.CollectedField, obj *DeploymentStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AvailableReplicas, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _DeploymentStatus_conditions(ctx context.Context, field graphql.CollectedField, obj *DeploymentStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "DeploymentStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Conditions, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*DeploymentCondition) - fc.Result = res - return ec.marshalNDeploymentCondition2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentConditionᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _EmsSubscriptionStatus_lastFailedDelivery(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.EmsSubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EmsSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LastFailedDelivery, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EmsSubscriptionStatus_lastFailedDeliveryReason(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.EmsSubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EmsSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LastFailedDeliveryReason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EmsSubscriptionStatus_lastSuccessfulDelivery(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.EmsSubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EmsSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LastSuccessfulDelivery, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EmsSubscriptionStatus_subscriptionStatus(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.EmsSubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EmsSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SubscriptionStatus, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EmsSubscriptionStatus_subscriptionStatusReason(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.EmsSubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EmsSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SubscriptionStatusReason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EnabledApplicationService_id(ctx context.Context, field graphql.CollectedField, obj *EnabledApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EnabledApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EnabledApplicationService_displayName(ctx context.Context, field graphql.CollectedField, obj *EnabledApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EnabledApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EnabledApplicationService_exist(ctx context.Context, field graphql.CollectedField, obj *EnabledApplicationService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EnabledApplicationService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Exist, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _EnvPrefix_name(ctx context.Context, field graphql.CollectedField, obj *EnvPrefix) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EnvPrefix", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivation_name(ctx context.Context, field graphql.CollectedField, obj *EventActivation) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivation", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivation_displayName(ctx context.Context, field graphql.CollectedField, obj *EventActivation) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivation", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivation_sourceId(ctx context.Context, field graphql.CollectedField, obj *EventActivation) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivation", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SourceID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivation_events(ctx context.Context, field graphql.CollectedField, obj *EventActivation) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.EventActivation().Events(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*EventActivationEvent) - fc.Result = res - return ec.marshalOEventActivationEvent2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivationEventᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivationEvent_eventType(ctx context.Context, field graphql.CollectedField, obj *EventActivationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.EventType, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivationEvent_version(ctx context.Context, field graphql.CollectedField, obj *EventActivationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Version, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivationEvent_description(ctx context.Context, field graphql.CollectedField, obj *EventActivationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventActivationEvent_schema(ctx context.Context, field graphql.CollectedField, obj *EventActivationEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventActivationEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Schema, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscription_name(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Subscription) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscription", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscription_namespace(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Subscription) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscription", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscription_spec(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Subscription) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscription", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Spec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha13.SubscriptionSpec) - fc.Result = res - return ec.marshalNEventSubscriptionSpec2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscriptionSpec(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscription_status(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Subscription) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscription", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha13.SubscriptionStatus) - fc.Result = res - return ec.marshalNEventSubscriptionStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscriptionStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionSpec_filter(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Filter, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v1alpha13.BebFilters) - fc.Result = res - return ec.marshalNBebFilters2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilters(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionSpec_id(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionSpec_protocol(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Protocol, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionSpec_protocolSettings(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ProtocolSettings, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha13.ProtocolSettings) - fc.Result = res - return ec.marshalOProtocolSettings2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐProtocolSettings(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionSpec_sink(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Sink, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_apiRuleName(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIRuleName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_conditions(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Conditions, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]v1alpha13.Condition) - fc.Result = res - return ec.marshalOCondition2ᚕgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐCondition(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_emsSubscriptionStatus(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.EmsSubscriptionStatus, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(v1alpha13.EmsSubscriptionStatus) - fc.Result = res - return ec.marshalOEmsSubscriptionStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐEmsSubscriptionStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_emshash(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Emshash, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(int64) - fc.Result = res - return ec.marshalOInt2int64(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_ev2hash(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ev2hash, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(int64) - fc.Result = res - return ec.marshalOInt2int64(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_externalSink(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ExternalSink, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_failedActivation(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.FailedActivation, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _EventSubscriptionStatus_ready(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.SubscriptionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "EventSubscriptionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ready, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalOBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _File_url(ctx context.Context, field graphql.CollectedField, obj *File) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "File", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.URL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _File_metadata(ctx context.Context, field graphql.CollectedField, obj *File) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "File", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Metadata, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _Filter_property(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Filter) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Filter", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Property, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Filter_type(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Filter) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Filter", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Filter_value(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.Filter) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Filter", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Value, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_name(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_namespace(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_UID(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.UID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_labels(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_source(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Source, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_dependencies(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Dependencies, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_env(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Env, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*FunctionEnv) - fc.Result = res - return ec.marshalNFunctionEnv2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_replicas(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Replicas, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*FunctionReplicas) - fc.Result = res - return ec.marshalNFunctionReplicas2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReplicas(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_resources(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Resources, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*FunctionResources) - fc.Result = res - return ec.marshalNFunctionResources2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResources(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_buildResources(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.BuildResources, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*FunctionResources) - fc.Result = res - return ec.marshalNFunctionResources2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResources(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_runtime(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Runtime, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_sourceType(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SourceType, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_baseDir(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.BaseDir, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_reference(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reference, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _Function_status(ctx context.Context, field graphql.CollectedField, obj *Function) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Function", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*FunctionStatus) - fc.Result = res - return ec.marshalNFunctionStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEnv_name(ctx context.Context, field graphql.CollectedField, obj *FunctionEnv) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEnv", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEnv_value(ctx context.Context, field graphql.CollectedField, obj *FunctionEnv) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEnv", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Value, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEnv_valueFrom(ctx context.Context, field graphql.CollectedField, obj *FunctionEnv) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEnv", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ValueFrom, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*FunctionEnvValueFrom) - fc.Result = res - return ec.marshalOFunctionEnvValueFrom2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFrom(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEnvValueFrom_type(ctx context.Context, field graphql.CollectedField, obj *FunctionEnvValueFrom) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEnvValueFrom", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(FunctionEnvValueFromType) - fc.Result = res - return ec.marshalNFunctionEnvValueFromType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromType(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEnvValueFrom_name(ctx context.Context, field graphql.CollectedField, obj *FunctionEnvValueFrom) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEnvValueFrom", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEnvValueFrom_key(ctx context.Context, field graphql.CollectedField, obj *FunctionEnvValueFrom) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEnvValueFrom", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Key, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEnvValueFrom_optional(ctx context.Context, field graphql.CollectedField, obj *FunctionEnvValueFrom) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEnvValueFrom", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Optional, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*bool) - fc.Result = res - return ec.marshalOBoolean2ᚖbool(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEvent_type(ctx context.Context, field graphql.CollectedField, obj *FunctionEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionEvent_function(ctx context.Context, field graphql.CollectedField, obj *FunctionEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Function, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*Function) - fc.Result = res - return ec.marshalNFunction2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionMetadata_name(ctx context.Context, field graphql.CollectedField, obj *FunctionMetadata) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionMetadata", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionMetadata_namespace(ctx context.Context, field graphql.CollectedField, obj *FunctionMetadata) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionMetadata", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionReplicas_min(ctx context.Context, field graphql.CollectedField, obj *FunctionReplicas) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionReplicas", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Min, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*int) - fc.Result = res - return ec.marshalOInt2ᚖint(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionReplicas_max(ctx context.Context, field graphql.CollectedField, obj *FunctionReplicas) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionReplicas", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Max, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*int) - fc.Result = res - return ec.marshalOInt2ᚖint(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionResources_limits(ctx context.Context, field graphql.CollectedField, obj *FunctionResources) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionResources", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Limits, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceValues) - fc.Result = res - return ec.marshalNResourceValues2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValues(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionResources_requests(ctx context.Context, field graphql.CollectedField, obj *FunctionResources) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionResources", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Requests, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceValues) - fc.Result = res - return ec.marshalNResourceValues2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValues(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionStatus_phase(ctx context.Context, field graphql.CollectedField, obj *FunctionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Phase, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(FunctionPhaseType) - fc.Result = res - return ec.marshalNFunctionPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionPhaseType(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionStatus_reason(ctx context.Context, field graphql.CollectedField, obj *FunctionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*FunctionReasonType) - fc.Result = res - return ec.marshalOFunctionReasonType2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReasonType(ctx, field.Selections, res) -} - -func (ec *executionContext) _FunctionStatus_message(ctx context.Context, field graphql.CollectedField, obj *FunctionStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "FunctionStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _GitRepository_name(ctx context.Context, field graphql.CollectedField, obj *v1alpha11.GitRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "GitRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _GitRepository_namespace(ctx context.Context, field graphql.CollectedField, obj *v1alpha11.GitRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "GitRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _GitRepository_spec(ctx context.Context, field graphql.CollectedField, obj *v1alpha11.GitRepository) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "GitRepository", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Spec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha11.GitRepositorySpec) - fc.Result = res - return ec.marshalNGitRepositorySpec2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepositorySpec(ctx, field.Selections, res) -} - -func (ec *executionContext) _GitRepositorySpec_url(ctx context.Context, field graphql.CollectedField, obj *v1alpha11.GitRepositorySpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "GitRepositorySpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.URL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _GitRepositorySpec_auth(ctx context.Context, field graphql.CollectedField, obj *v1alpha11.GitRepositorySpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "GitRepositorySpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Auth, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha11.RepositoryAuth) - fc.Result = res - return ec.marshalORepositoryAuth2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuth(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRange_name(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRange) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRange", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRange_spec(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRange) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRange", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Spec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v11.LimitRangeSpec) - fc.Result = res - return ec.marshalNLimitRangeSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeSpec(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRange_json(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRange) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRange", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.LimitRange().JSON(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRangeItem_type(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRangeItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRangeItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v11.LimitType) - fc.Result = res - return ec.marshalNLimitType2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitType(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRangeItem_max(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRangeItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRangeItem", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.LimitRangeItem().Max(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceLimits) - fc.Result = res - return ec.marshalNResourceLimits2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceLimits(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRangeItem_default(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRangeItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRangeItem", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.LimitRangeItem().Default(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceLimits) - fc.Result = res - return ec.marshalNResourceLimits2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceLimits(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRangeItem_defaultRequest(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRangeItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRangeItem", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.LimitRangeItem().DefaultRequest(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceLimits) - fc.Result = res - return ec.marshalNResourceLimits2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceLimits(ctx, field.Selections, res) -} - -func (ec *executionContext) _LimitRangeSpec_limits(ctx context.Context, field graphql.CollectedField, obj *v11.LimitRangeSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LimitRangeSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Limits, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]v11.LimitRangeItem) - fc.Result = res - return ec.marshalNLimitRangeItem2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeItemᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _LoadBalancerIngress_ip(ctx context.Context, field graphql.CollectedField, obj *LoadBalancerIngress) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LoadBalancerIngress", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.IP, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _LoadBalancerIngress_hostName(ctx context.Context, field graphql.CollectedField, obj *LoadBalancerIngress) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LoadBalancerIngress", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.HostName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _LoadBalancerStatus_ingress(ctx context.Context, field graphql.CollectedField, obj *LoadBalancerStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LoadBalancerStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ingress, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*LoadBalancerIngress) - fc.Result = res - return ec.marshalNLoadBalancerIngress2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerIngressᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _LocalObjectReference_kind(ctx context.Context, field graphql.CollectedField, obj *LocalObjectReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LocalObjectReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Kind, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _LocalObjectReference_name(ctx context.Context, field graphql.CollectedField, obj *LocalObjectReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "LocalObjectReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _MicroFrontend_name(ctx context.Context, field graphql.CollectedField, obj *MicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "MicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _MicroFrontend_version(ctx context.Context, field graphql.CollectedField, obj *MicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "MicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Version, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _MicroFrontend_category(ctx context.Context, field graphql.CollectedField, obj *MicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "MicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Category, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _MicroFrontend_viewBaseUrl(ctx context.Context, field graphql.CollectedField, obj *MicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "MicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ViewBaseURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _MicroFrontend_navigationNodes(ctx context.Context, field graphql.CollectedField, obj *MicroFrontend) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "MicroFrontend", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.NavigationNodes, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*NavigationNode) - fc.Result = res - return ec.marshalNNavigationNode2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNavigationNodeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createResource(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createResource_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateResource(rctx, args["namespace"].(string), args["resource"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"namespaceArg": "namespace", "resourceArg": "resource", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(JSON); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.JSON`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createServiceInstance(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createServiceInstance_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateServiceInstance(rctx, args["namespace"].(string), args["params"].(ServiceInstanceCreateInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "serviceinstances", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceInstance); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceInstance`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceInstance) - fc.Result = res - return ec.marshalOServiceInstance2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteServiceInstance(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteServiceInstance_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteServiceInstance(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "name", "namespaceArg": "namespace", "resource": "serviceinstances", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceInstance); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceInstance`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceInstance) - fc.Result = res - return ec.marshalOServiceInstance2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createServiceBinding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createServiceBinding_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateServiceBinding(rctx, args["serviceBindingName"].(*string), args["serviceInstanceName"].(string), args["namespace"].(string), args["parameters"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "servicebindings", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*CreateServiceBindingOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.CreateServiceBindingOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*CreateServiceBindingOutput) - fc.Result = res - return ec.marshalOCreateServiceBindingOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCreateServiceBindingOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteServiceBinding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteServiceBinding_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteServiceBinding(rctx, args["serviceBindingName"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "serviceBindingName", "namespaceArg": "namespace", "resource": "servicebindings", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*DeleteServiceBindingOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.DeleteServiceBindingOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*DeleteServiceBindingOutput) - fc.Result = res - return ec.marshalODeleteServiceBindingOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createServiceBindingUsage(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createServiceBindingUsage_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateServiceBindingUsage(rctx, args["namespace"].(string), args["createServiceBindingUsageInput"].(*CreateServiceBindingUsageInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "servicebindingusages", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceBindingUsage); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBindingUsage`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceBindingUsage) - fc.Result = res - return ec.marshalOServiceBindingUsage2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteServiceBindingUsage(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteServiceBindingUsage_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteServiceBindingUsage(rctx, args["serviceBindingUsageName"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "serviceBindingUsageName", "namespaceArg": "namespace", "resource": "servicebindingusages", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*DeleteServiceBindingUsageOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.DeleteServiceBindingUsageOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*DeleteServiceBindingUsageOutput) - fc.Result = res - return ec.marshalODeleteServiceBindingUsageOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingUsageOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteServiceBindingUsages(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteServiceBindingUsages_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteServiceBindingUsages(rctx, args["serviceBindingUsageNames"].([]string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "servicebindingusages", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*DeleteServiceBindingUsageOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.DeleteServiceBindingUsageOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*DeleteServiceBindingUsageOutput) - fc.Result = res - return ec.marshalODeleteServiceBindingUsageOutput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingUsageOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createClusterAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createClusterAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateClusterAddonsConfiguration(rctx, args["name"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateClusterAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateClusterAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateClusterAddonsConfiguration(rctx, args["name"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteClusterAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteClusterAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteClusterAddonsConfiguration(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_addClusterAddonsConfigurationURLs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_addClusterAddonsConfigurationURLs_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().AddClusterAddonsConfigurationURLs(rctx, args["name"].(string), args["urls"].([]string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_removeClusterAddonsConfigurationURLs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_removeClusterAddonsConfigurationURLs_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().RemoveClusterAddonsConfigurationURLs(rctx, args["name"].(string), args["urls"].([]string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_addClusterAddonsConfigurationRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_addClusterAddonsConfigurationRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().AddClusterAddonsConfigurationRepository(rctx, args["name"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_removeClusterAddonsConfigurationRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_removeClusterAddonsConfigurationRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().RemoveClusterAddonsConfigurationRepository(rctx, args["name"].(string), args["urls"].([]string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_resyncClusterAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_resyncClusterAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().ResyncClusterAddonsConfiguration(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "clusteraddonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateAddonsConfiguration(rctx, args["name"].(string), args["namespace"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateAddonsConfiguration(rctx, args["name"].(string), args["namespace"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput), args["urls"].([]string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteAddonsConfiguration(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_addAddonsConfigurationURLs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_addAddonsConfigurationURLs_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().AddAddonsConfigurationURLs(rctx, args["name"].(string), args["namespace"].(string), args["urls"].([]string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_removeAddonsConfigurationURLs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_removeAddonsConfigurationURLs_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().RemoveAddonsConfigurationURLs(rctx, args["name"].(string), args["namespace"].(string), args["urls"].([]string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_addAddonsConfigurationRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_addAddonsConfigurationRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().AddAddonsConfigurationRepository(rctx, args["name"].(string), args["namespace"].(string), args["repositories"].([]*AddonsConfigurationRepositoryInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_removeAddonsConfigurationRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_removeAddonsConfigurationRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().RemoveAddonsConfigurationRepository(rctx, args["name"].(string), args["namespace"].(string), args["urls"].([]string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_resyncAddonsConfiguration(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_resyncAddonsConfiguration_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().ResyncAddonsConfiguration(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "addonsconfigurations", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AddonsConfiguration) - fc.Result = res - return ec.marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createApplication(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createApplication_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateApplication(rctx, args["name"].(string), args["description"].(*string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "resource": "applications", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ApplicationMutationOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ApplicationMutationOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ApplicationMutationOutput) - fc.Result = res - return ec.marshalNApplicationMutationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMutationOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateApplication(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateApplication_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateApplication(rctx, args["name"].(string), args["description"].(*string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "applications", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ApplicationMutationOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ApplicationMutationOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ApplicationMutationOutput) - fc.Result = res - return ec.marshalNApplicationMutationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMutationOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteApplication(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteApplication_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteApplication(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "applications", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*DeleteApplicationOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.DeleteApplicationOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*DeleteApplicationOutput) - fc.Result = res - return ec.marshalNDeleteApplicationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteApplicationOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_enableApplication(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_enableApplication_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().EnableApplication(rctx, args["application"].(string), args["namespace"].(string), args["allServices"].(*bool), args["services"].([]*ApplicationMappingService)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "applicationmappings", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ApplicationMapping); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ApplicationMapping`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ApplicationMapping) - fc.Result = res - return ec.marshalOApplicationMapping2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMapping(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_overloadApplication(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_overloadApplication_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().OverloadApplication(rctx, args["application"].(string), args["namespace"].(string), args["allServices"].(*bool), args["services"].([]*ApplicationMappingService)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "applicationmappings", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ApplicationMapping); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ApplicationMapping`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ApplicationMapping) - fc.Result = res - return ec.marshalOApplicationMapping2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMapping(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_disableApplication(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_disableApplication_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DisableApplication(rctx, args["application"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "application", "namespaceArg": "namespace", "resource": "applicationmappings", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ApplicationMapping); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ApplicationMapping`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ApplicationMapping) - fc.Result = res - return ec.marshalOApplicationMapping2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMapping(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updatePod(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updatePod_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdatePod(rctx, args["name"].(string), args["namespace"].(string), args["pod"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "pods", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Pod); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Pod`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Pod) - fc.Result = res - return ec.marshalOPod2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deletePod(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deletePod_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeletePod(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "pods", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Pod); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Pod`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Pod) - fc.Result = res - return ec.marshalOPod2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateSecret(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateSecret_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateSecret(rctx, args["name"].(string), args["namespace"].(string), args["secret"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "secrets", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Secret); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Secret`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Secret) - fc.Result = res - return ec.marshalOSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteSecret(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteSecret_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteSecret(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "secrets", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Secret); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Secret`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Secret) - fc.Result = res - return ec.marshalOSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateReplicaSet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateReplicaSet_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateReplicaSet(rctx, args["name"].(string), args["namespace"].(string), args["replicaSet"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "apps", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "replicasets", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ReplicaSet); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ReplicaSet`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ReplicaSet) - fc.Result = res - return ec.marshalOReplicaSet2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteReplicaSet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteReplicaSet_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteReplicaSet(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "apps", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "replicasets", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ReplicaSet); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ReplicaSet`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ReplicaSet) - fc.Result = res - return ec.marshalOReplicaSet2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateConfigMap(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateConfigMap_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateConfigMap(rctx, args["name"].(string), args["namespace"].(string), args["configMap"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "configmaps", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ConfigMap); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ConfigMap`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ConfigMap) - fc.Result = res - return ec.marshalOConfigMap2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteConfigMap(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteConfigMap_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteConfigMap(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "configmaps", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ConfigMap); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ConfigMap`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ConfigMap) - fc.Result = res - return ec.marshalOConfigMap2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateService(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateService_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateService(rctx, args["name"].(string), args["namespace"].(string), args["service"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "services", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Service); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Service`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Service) - fc.Result = res - return ec.marshalOService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteService(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteService_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteService(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "services", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Service); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Service`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Service) - fc.Result = res - return ec.marshalOService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createNamespace(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createNamespace_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateNamespace(rctx, args["name"].(string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "resource": "namespaces", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*NamespaceMutationOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.NamespaceMutationOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*NamespaceMutationOutput) - fc.Result = res - return ec.marshalNNamespaceMutationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceMutationOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateNamespace(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateNamespace_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateNamespace(rctx, args["name"].(string), args["labels"].(Labels)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "name", "resource": "namespaces", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*NamespaceMutationOutput); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.NamespaceMutationOutput`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*NamespaceMutationOutput) - fc.Result = res - return ec.marshalNNamespaceMutationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceMutationOutput(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteNamespace(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteNamespace_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteNamespace(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "name", "resource": "namespaces", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Namespace); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Namespace`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Namespace) - fc.Result = res - return ec.marshalONamespace2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespace(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createFunction(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createFunction_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateFunction(rctx, args["name"].(string), args["namespace"].(string), args["params"].(FunctionMutationInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "functions", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Function); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Function`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Function) - fc.Result = res - return ec.marshalOFunction2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateFunction(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateFunction_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateFunction(rctx, args["name"].(string), args["namespace"].(string), args["params"].(FunctionMutationInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "functions", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Function); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Function`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Function) - fc.Result = res - return ec.marshalOFunction2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteFunction(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteFunction_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteFunction(rctx, args["namespace"].(string), args["function"].(FunctionMetadataInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "functions", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*FunctionMetadata); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.FunctionMetadata`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*FunctionMetadata) - fc.Result = res - return ec.marshalOFunctionMetadata2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadata(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteManyFunctions(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteManyFunctions_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteManyFunctions(rctx, args["namespace"].(string), args["functions"].([]*FunctionMetadataInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "functions", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*FunctionMetadata); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.FunctionMetadata`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*FunctionMetadata) - fc.Result = res - return ec.marshalOFunctionMetadata2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createAPIRule(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createAPIRule_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateAPIRule(rctx, args["name"].(string), args["namespace"].(string), args["params"].(v1alpha1.APIRuleSpec)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "gateway.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "apirules", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha1.APIRule); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRule`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRule) - fc.Result = res - return ec.marshalOAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateAPIRule(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateAPIRule_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateAPIRule(rctx, args["name"].(string), args["namespace"].(string), args["generation"].(int), args["params"].(v1alpha1.APIRuleSpec)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "gateway.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "apirules", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha1.APIRule); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRule`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRule) - fc.Result = res - return ec.marshalOAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteAPIRule(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteAPIRule_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteAPIRule(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "gateway.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "apirules", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha1.APIRule); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRule`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRule) - fc.Result = res - return ec.marshalOAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createSubscription(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createSubscription_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateSubscription(rctx, args["name"].(string), args["namespace"].(string), args["params"].(EventSubscriptionSpecInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "subscriptions", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha13.Subscription); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Subscription`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha13.Subscription) - fc.Result = res - return ec.marshalOEventSubscription2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateSubscription(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateSubscription_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateSubscription(rctx, args["name"].(string), args["namespace"].(string), args["params"].(EventSubscriptionSpecInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "subscriptions", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha13.Subscription); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Subscription`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha13.Subscription) - fc.Result = res - return ec.marshalOEventSubscription2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteSubscription(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteSubscription_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteSubscription(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "subscriptions", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha13.Subscription); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Subscription`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha13.Subscription) - fc.Result = res - return ec.marshalOEventSubscription2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createTrigger(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createTrigger_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateTrigger(rctx, args["namespace"].(string), args["trigger"].(TriggerCreateInput), args["ownerRef"].([]*v1.OwnerReference)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.knative.dev", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "triggers", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha14.Trigger); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *knative.dev/eventing/pkg/apis/eventing/v1alpha1.Trigger`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha14.Trigger) - fc.Result = res - return ec.marshalOTrigger2ᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createManyTriggers(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createManyTriggers_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateManyTriggers(rctx, args["namespace"].(string), args["triggers"].([]*TriggerCreateInput), args["ownerRef"].([]*v1.OwnerReference)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.knative.dev", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "triggers", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v1alpha14.Trigger); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*knative.dev/eventing/pkg/apis/eventing/v1alpha1.Trigger`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*v1alpha14.Trigger) - fc.Result = res - return ec.marshalOTrigger2ᚕᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTriggerᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteTrigger(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteTrigger_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteTrigger(rctx, args["namespace"].(string), args["triggerName"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.knative.dev", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "triggers", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha14.Trigger); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *knative.dev/eventing/pkg/apis/eventing/v1alpha1.Trigger`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha14.Trigger) - fc.Result = res - return ec.marshalOTrigger2ᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteManyTriggers(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteManyTriggers_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteManyTriggers(rctx, args["namespace"].(string), args["triggerNames"].([]string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.knative.dev", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "triggers", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v1alpha14.Trigger); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*knative.dev/eventing/pkg/apis/eventing/v1alpha1.Trigger`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*v1alpha14.Trigger) - fc.Result = res - return ec.marshalOTrigger2ᚕᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTriggerᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createLimitRange(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createLimitRange_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateLimitRange(rctx, args["namespace"].(string), args["name"].(string), args["limitRange"].(LimitRangeInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "limitrange", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v11.LimitRange); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/core/v1.LimitRange`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v11.LimitRange) - fc.Result = res - return ec.marshalOLimitRange2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRange(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateLimitRange(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateLimitRange_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateLimitRange(rctx, args["namespace"].(string), args["name"].(string), args["json"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "limitrange", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v11.LimitRange); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/core/v1.LimitRange`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v11.LimitRange) - fc.Result = res - return ec.marshalOLimitRange2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRange(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createResourceQuota(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createResourceQuota_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateResourceQuota(rctx, args["namespace"].(string), args["name"].(string), args["resourceQuota"].(ResourceQuotaInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "resourcequotas", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v11.ResourceQuota); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/core/v1.ResourceQuota`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v11.ResourceQuota) - fc.Result = res - return ec.marshalOResourceQuota2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuota(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateResourceQuota(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateResourceQuota_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateResourceQuota(rctx, args["namespace"].(string), args["name"].(string), args["json"].(JSON)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "resourcequotas", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v11.ResourceQuota); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/core/v1.ResourceQuota`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v11.ResourceQuota) - fc.Result = res - return ec.marshalOResourceQuota2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuota(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createOAuth2Client(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createOAuth2Client_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateOAuth2Client(rctx, args["name"].(string), args["namespace"].(string), args["params"].(v1alpha12.OAuth2ClientSpec)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "hydra.ory.sh", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "OAuth2Clients", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha12.OAuth2Client); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/ory/hydra-maester/api/v1alpha1.OAuth2Client`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha12.OAuth2Client) - fc.Result = res - return ec.marshalOOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateOAuth2Client(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateOAuth2Client_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateOAuth2Client(rctx, args["name"].(string), args["namespace"].(string), args["generation"].(int), args["params"].(v1alpha12.OAuth2ClientSpec)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "hydra.ory.sh", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "OAuth2Clients", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha12.OAuth2Client); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/ory/hydra-maester/api/v1alpha1.OAuth2Client`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha12.OAuth2Client) - fc.Result = res - return ec.marshalOOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteOAuth2Client(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteOAuth2Client_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteOAuth2Client(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "hydra.ory.sh", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "OAuth2Clients", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha12.OAuth2Client); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/ory/hydra-maester/api/v1alpha1.OAuth2Client`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha12.OAuth2Client) - fc.Result = res - return ec.marshalOOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createRoleBinding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createRoleBinding_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateRoleBinding(rctx, args["name"].(string), args["namespace"].(string), args["params"].(RoleBindingInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "roleBindings", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v12.RoleBinding); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/rbac/v1.RoleBinding`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.RoleBinding) - fc.Result = res - return ec.marshalNRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteRoleBinding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteRoleBinding_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteRoleBinding(rctx, args["namespace"].(string), args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "roleBindings", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v12.RoleBinding); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/rbac/v1.RoleBinding`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.RoleBinding) - fc.Result = res - return ec.marshalNRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createClusterRoleBinding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createClusterRoleBinding_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateClusterRoleBinding(rctx, args["name"].(string), args["params"].(ClusterRoleBindingInput)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "resource": "clusterRoleBindings", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v12.ClusterRoleBinding); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/rbac/v1.ClusterRoleBinding`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.ClusterRoleBinding) - fc.Result = res - return ec.marshalNClusterRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteClusterRoleBinding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteClusterRoleBinding_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteClusterRoleBinding(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "resource": "clusterRoleBindings", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v12.ClusterRoleBinding); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/rbac/v1.ClusterRoleBinding`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.ClusterRoleBinding) - fc.Result = res - return ec.marshalNClusterRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_createGitRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_createGitRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().CreateGitRepository(rctx, args["namespace"].(string), args["name"].(string), args["spec"].(v1alpha11.GitRepositorySpec)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "gitrepositories", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha11.GitRepository); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepository`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha11.GitRepository) - fc.Result = res - return ec.marshalOGitRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_updateGitRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_updateGitRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().UpdateGitRepository(rctx, args["namespace"].(string), args["name"].(string), args["spec"].(v1alpha11.GitRepositorySpec)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "gitrepositories", "verb": "update"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha11.GitRepository); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepository`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha11.GitRepository) - fc.Result = res - return ec.marshalOGitRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx, field.Selections, res) -} - -func (ec *executionContext) _Mutation_deleteGitRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Mutation", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Mutation_deleteGitRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().DeleteGitRepository(rctx, args["namespace"].(string), args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "gitrepositories", "verb": "delete"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha11.GitRepository); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepository`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha11.GitRepository) - fc.Result = res - return ec.marshalOGitRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx, field.Selections, res) -} - -func (ec *executionContext) _Namespace_name(ctx context.Context, field graphql.CollectedField, obj *Namespace) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Namespace", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Namespace_labels(ctx context.Context, field graphql.CollectedField, obj *Namespace) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Namespace", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _Namespace_status(ctx context.Context, field graphql.CollectedField, obj *Namespace) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Namespace", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Namespace_isSystemNamespace(ctx context.Context, field graphql.CollectedField, obj *Namespace) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Namespace", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.IsSystemNamespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _Namespace_pods(ctx context.Context, field graphql.CollectedField, obj *Namespace) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Namespace", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Namespace().Pods(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Pod) - fc.Result = res - return ec.marshalNPod2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Namespace_deployments(ctx context.Context, field graphql.CollectedField, obj *Namespace) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Namespace", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Namespace_deployments_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Namespace().Deployments(rctx, obj, args["excludeFunctions"].(*bool)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Deployment) - fc.Result = res - return ec.marshalNDeployment2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Namespace_applications(ctx context.Context, field graphql.CollectedField, obj *Namespace) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Namespace", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Namespace().Applications(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceEvent_type(ctx context.Context, field graphql.CollectedField, obj *NamespaceEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceEvent_namespace(ctx context.Context, field graphql.CollectedField, obj *NamespaceEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*NamespaceListItem) - fc.Result = res - return ec.marshalNNamespaceListItem2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceListItem(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceListItem_name(ctx context.Context, field graphql.CollectedField, obj *NamespaceListItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceListItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceListItem_labels(ctx context.Context, field graphql.CollectedField, obj *NamespaceListItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceListItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceListItem_status(ctx context.Context, field graphql.CollectedField, obj *NamespaceListItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceListItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceListItem_isSystemNamespace(ctx context.Context, field graphql.CollectedField, obj *NamespaceListItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceListItem", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.IsSystemNamespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceListItem_podsCount(ctx context.Context, field graphql.CollectedField, obj *NamespaceListItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceListItem", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.NamespaceListItem().PodsCount(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceListItem_healthyPodsCount(ctx context.Context, field graphql.CollectedField, obj *NamespaceListItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceListItem", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.NamespaceListItem().HealthyPodsCount(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceListItem_applicationsCount(ctx context.Context, field graphql.CollectedField, obj *NamespaceListItem) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceListItem", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.NamespaceListItem().ApplicationsCount(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*int) - fc.Result = res - return ec.marshalOInt2ᚖint(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceMutationOutput_name(ctx context.Context, field graphql.CollectedField, obj *NamespaceMutationOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceMutationOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _NamespaceMutationOutput_labels(ctx context.Context, field graphql.CollectedField, obj *NamespaceMutationOutput) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NamespaceMutationOutput", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_label(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Label, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_navigationPath(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.NavigationPath, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_viewUrl(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ViewURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_showInNavigation(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ShowInNavigation, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_order(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Order, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_settings(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Settings, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Settings) - fc.Result = res - return ec.marshalNSettings2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSettings(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_externalLink(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ExternalLink, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _NavigationNode_requiredPermissions(ctx context.Context, field graphql.CollectedField, obj *NavigationNode) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "NavigationNode", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.RequiredPermissions, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*RequiredPermission) - fc.Result = res - return ec.marshalNRequiredPermission2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRequiredPermissionᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2Client_namespace(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2Client) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2Client", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2Client_name(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2Client) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2Client", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2Client_generation(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2Client) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2Client", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Generation, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int64) - fc.Result = res - return ec.marshalNInt2int64(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2Client_error(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2Client) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2Client", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.OAuth2Client().Error(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha12.ReconciliationError) - fc.Result = res - return ec.marshalOOAuth2ClientError2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐReconciliationError(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2Client_spec(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2Client) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2Client", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Spec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha12.OAuth2ClientSpec) - fc.Result = res - return ec.marshalNOAuth2ClientSpec2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2ClientSpec(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientError_code(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.ReconciliationError) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientError", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Code, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(v1alpha12.StatusCode) - fc.Result = res - return ec.marshalOStatusCode2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐStatusCode(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientError_description(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.ReconciliationError) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientError", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientEvent_type(ctx context.Context, field graphql.CollectedField, obj *OAuth2ClientEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientEvent_client(ctx context.Context, field graphql.CollectedField, obj *OAuth2ClientEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Client, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v1alpha12.OAuth2Client) - fc.Result = res - return ec.marshalNOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientSpec_grantTypes(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2ClientSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.GrantTypes, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]v1alpha12.GrantType) - fc.Result = res - return ec.marshalNGrantType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantTypeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientSpec_responseTypes(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2ClientSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ResponseTypes, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]v1alpha12.ResponseType) - fc.Result = res - return ec.marshalNResponseType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseTypeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientSpec_scope(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2ClientSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Scope, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OAuth2ClientSpec_secretName(ctx context.Context, field graphql.CollectedField, obj *v1alpha12.OAuth2ClientSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OAuth2ClientSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SecretName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OwnerReference_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OwnerReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIVersion, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OwnerReference_blockOwnerDeletion(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OwnerReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.BlockOwnerDeletion, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*bool) - fc.Result = res - return ec.marshalOBoolean2ᚖbool(ctx, field.Selections, res) -} - -func (ec *executionContext) _OwnerReference_controller(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OwnerReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Controller, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*bool) - fc.Result = res - return ec.marshalOBoolean2ᚖbool(ctx, field.Selections, res) -} - -func (ec *executionContext) _OwnerReference_kind(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OwnerReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Kind, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OwnerReference_name(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OwnerReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _OwnerReference_UID(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "OwnerReference", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.UID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(types.UID) - fc.Result = res - return ec.marshalNUID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_name(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_nodeName(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.NodeName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_namespace(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_restartCount(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.RestartCount, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_labels(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_status(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(PodStatusType) - fc.Result = res - return ec.marshalNPodStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodStatusType(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_containerStates(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ContainerStates, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ContainerState) - fc.Result = res - return ec.marshalNContainerState2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerStateᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Pod_json(ctx context.Context, field graphql.CollectedField, obj *Pod) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Pod", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.JSON, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _PodEvent_type(ctx context.Context, field graphql.CollectedField, obj *PodEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "PodEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _PodEvent_pod(ctx context.Context, field graphql.CollectedField, obj *PodEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "PodEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Pod, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*Pod) - fc.Result = res - return ec.marshalNPod2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx, field.Selections, res) -} - -func (ec *executionContext) _PolicyRule_apiGroups(ctx context.Context, field graphql.CollectedField, obj *v12.PolicyRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "PolicyRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIGroups, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _PolicyRule_resources(ctx context.Context, field graphql.CollectedField, obj *v12.PolicyRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "PolicyRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Resources, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _PolicyRule_verbs(ctx context.Context, field graphql.CollectedField, obj *v12.PolicyRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "PolicyRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Verbs, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ProtocolSettings_contentMode(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.ProtocolSettings) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ProtocolSettings", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ContentMode, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ProtocolSettings_exemptHandshake(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.ProtocolSettings) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ProtocolSettings", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ExemptHandshake, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalOBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _ProtocolSettings_qos(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.ProtocolSettings) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ProtocolSettings", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Qos, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ProtocolSettings_webhookAuth(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.ProtocolSettings) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ProtocolSettings", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.WebhookAuth, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha13.WebhookAuth) - fc.Result = res - return ec.marshalOWebhookAuth2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐWebhookAuth(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceInstance(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceInstance_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceInstance(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "name", "namespaceArg": "namespace", "resource": "serviceinstances", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceInstance); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceInstance`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceInstance) - fc.Result = res - return ec.marshalOServiceInstance2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceInstances(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceInstances_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceInstances(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int), args["status"].(*InstanceStatusType)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "serviceinstances", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ServiceInstance); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceInstance`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServiceInstance) - fc.Result = res - return ec.marshalNServiceInstance2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterServiceClasses(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_clusterServiceClasses_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterServiceClasses(rctx, args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "resource": "clusterserviceclasses", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ClusterServiceClass); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterServiceClass`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ClusterServiceClass) - fc.Result = res - return ec.marshalNClusterServiceClass2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClassᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterServiceClass(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_clusterServiceClass_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterServiceClass(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "name", "resource": "clusterserviceclasses", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ClusterServiceClass); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterServiceClass`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterServiceClass) - fc.Result = res - return ec.marshalOClusterServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClass(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceClasses(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceClasses_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceClasses(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "serviceclasses", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ServiceClass); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceClass`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServiceClass) - fc.Result = res - return ec.marshalNServiceClass2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClassᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceClass(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceClass_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceClass(rctx, args["namespace"].(string), args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "name", "namespaceArg": "namespace", "resource": "serviceclasses", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceClass); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceClass`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceClass) - fc.Result = res - return ec.marshalOServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClass(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterServiceBrokers(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_clusterServiceBrokers_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterServiceBrokers(rctx, args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "resource": "clusterservicebrokers", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ClusterServiceBroker); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterServiceBroker`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ClusterServiceBroker) - fc.Result = res - return ec.marshalNClusterServiceBroker2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBrokerᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterServiceBroker(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_clusterServiceBroker_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterServiceBroker(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "name", "resource": "clusterservicebrokers", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ClusterServiceBroker); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterServiceBroker`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterServiceBroker) - fc.Result = res - return ec.marshalOClusterServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBroker(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceBrokers(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceBrokers_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceBrokers(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "servicebrokers", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ServiceBroker); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBroker`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServiceBroker) - fc.Result = res - return ec.marshalNServiceBroker2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceBroker(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceBroker_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceBroker(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "name", "namespaceArg": "namespace", "resource": "servicebrokers", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceBroker); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBroker`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceBroker) - fc.Result = res - return ec.marshalOServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBroker(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceBindingUsage(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceBindingUsage_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceBindingUsage(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "servicebindingusages", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceBindingUsage); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBindingUsage`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceBindingUsage) - fc.Result = res - return ec.marshalOServiceBindingUsage2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceBindingUsages(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceBindingUsages_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceBindingUsages(rctx, args["namespace"].(string), args["resourceKind"].(*string), args["resourceName"].(*string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "servicebindingusages", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ServiceBindingUsage); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBindingUsage`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServiceBindingUsage) - fc.Result = res - return ec.marshalNServiceBindingUsage2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_serviceBinding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_serviceBinding_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ServiceBinding(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "nameArg": "name", "namespaceArg": "namespace", "resource": "servicebindings", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ServiceBinding); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBinding`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceBinding) - fc.Result = res - return ec.marshalOServiceBinding2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_usageKinds(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_usageKinds_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().UsageKinds(rctx, args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "resource": "usagekinds", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*UsageKind); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.UsageKind`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*UsageKind) - fc.Result = res - return ec.marshalNUsageKind2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKindᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterAddonsConfigurations(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_clusterAddonsConfigurations_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterAddonsConfigurations(rctx, args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "resource": "clusteraddonsconfigurations", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*AddonsConfiguration) - fc.Result = res - return ec.marshalNAddonsConfiguration2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_addonsConfigurations(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_addonsConfigurations_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AddonsConfigurations(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "resource": "addonsconfigurations", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*AddonsConfiguration); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfiguration`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*AddonsConfiguration) - fc.Result = res - return ec.marshalNAddonsConfiguration2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_bindableResources(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_bindableResources_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().BindableResources(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "usagekinds", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*BindableResourcesOutputItem); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.BindableResourcesOutputItem`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*BindableResourcesOutputItem) - fc.Result = res - return ec.marshalNBindableResourcesOutputItem2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBindableResourcesOutputItemᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_application(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_application_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Application(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "resource": "applications", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Application); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Application`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Application) - fc.Result = res - return ec.marshalOApplication2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplication(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_applications(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_applications_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Applications(rctx, args["namespace"].(*string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "resource": "applications", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*Application); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Application`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Application) - fc.Result = res - return ec.marshalNApplication2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_connectorService(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_connectorService_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ConnectorService(rctx, args["application"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "resource": "applications", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ConnectorService); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ConnectorService`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ConnectorService) - fc.Result = res - return ec.marshalNConnectorService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConnectorService(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_namespaces(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_namespaces_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Namespaces(rctx, args["withSystemNamespaces"].(*bool), args["withInactiveStatus"].(*bool)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "resource": "namespaces", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*NamespaceListItem); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.NamespaceListItem`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*NamespaceListItem) - fc.Result = res - return ec.marshalNNamespaceListItem2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceListItemᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_namespace(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_namespace_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Namespace(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "name", "resource": "namespaces", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Namespace); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Namespace`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Namespace) - fc.Result = res - return ec.marshalONamespace2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespace(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_deployments(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_deployments_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Deployments(rctx, args["namespace"].(string), args["excludeFunctions"].(*bool)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "apps", "apiVersion": "v1beta2", "namespaceArg": "namespace", "resource": "deployments", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*Deployment); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Deployment`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Deployment) - fc.Result = res - return ec.marshalNDeployment2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_versionInfo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().VersionInfo(rctx) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*VersionInfo) - fc.Result = res - return ec.marshalNVersionInfo2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐVersionInfo(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_pod(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_pod_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Pod(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "pods", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Pod); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Pod`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Pod) - fc.Result = res - return ec.marshalOPod2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_pods(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_pods_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Pods(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "pods", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*Pod); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Pod`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Pod) - fc.Result = res - return ec.marshalNPod2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_service_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Service(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "services", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Service); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Service`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Service) - fc.Result = res - return ec.marshalOService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_services(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_services_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Services(rctx, args["namespace"].(string), args["excludedLabels"].([]string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "services", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*Service); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Service`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Service) - fc.Result = res - return ec.marshalNService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_configMap(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_configMap_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ConfigMap(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "configmaps", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ConfigMap); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ConfigMap`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ConfigMap) - fc.Result = res - return ec.marshalOConfigMap2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_configMaps(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_configMaps_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ConfigMaps(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "configmaps", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ConfigMap); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ConfigMap`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ConfigMap) - fc.Result = res - return ec.marshalNConfigMap2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMapᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_replicaSet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_replicaSet_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ReplicaSet(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "apps", "apiVersion": "v1", "nameArg": "name", "namespaceArg": "namespace", "resource": "replicasets", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*ReplicaSet); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ReplicaSet`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ReplicaSet) - fc.Result = res - return ec.marshalOReplicaSet2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_replicaSets(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_replicaSets_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ReplicaSets(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "apps", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "replicasets", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ReplicaSet); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ReplicaSet`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ReplicaSet) - fc.Result = res - return ec.marshalNReplicaSet2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSetᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_eventActivations(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_eventActivations_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().EventActivations(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "eventactivations", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*EventActivation); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.EventActivation`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*EventActivation) - fc.Result = res - return ec.marshalNEventActivation2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivationᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_backendModules(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().BackendModules(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "ui.kyma-project.io", "apiVersion": "v1alpha1", "resource": "backendmodules", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*BackendModule); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.BackendModule`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*BackendModule) - fc.Result = res - return ec.marshalNBackendModule2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBackendModuleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_secret(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_secret_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Secret(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "secrets", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Secret); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Secret`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Secret) - fc.Result = res - return ec.marshalOSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_secrets(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_secrets_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Secrets(rctx, args["namespace"].(string), args["first"].(*int), args["offset"].(*int)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "secrets", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*Secret); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Secret`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Secret) - fc.Result = res - return ec.marshalNSecret2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecretᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_microFrontends(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_microFrontends_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().MicroFrontends(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "ui.kyma-project.io", "apiVersion": "v1alpha1", "resource": "microfrontends", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*MicroFrontend); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.MicroFrontend`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*MicroFrontend) - fc.Result = res - return ec.marshalNMicroFrontend2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐMicroFrontendᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterMicroFrontends(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterMicroFrontends(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "ui.kyma-project.io", "apiVersion": "v1alpha1", "resource": "clustermicrofrontends", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ClusterMicroFrontend); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterMicroFrontend`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ClusterMicroFrontend) - fc.Result = res - return ec.marshalNClusterMicroFrontend2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterMicroFrontendᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_selfSubjectRules(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_selfSubjectRules_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().SelfSubjectRules(rctx, args["namespace"].(*string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "authorization.k8s.io", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "selfsubjectrulesreviews", "verb": "create"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*ResourceRule); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ResourceRule`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ResourceRule) - fc.Result = res - return ec.marshalNResourceRule2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRuleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_function(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_function_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Function(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "functions", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*Function); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Function`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Function) - fc.Result = res - return ec.marshalOFunction2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_functions(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_functions_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Functions(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "functions", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*Function); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.Function`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*Function) - fc.Result = res - return ec.marshalNFunction2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_APIRules(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_APIRules_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().APIRules(rctx, args["namespace"].(string), args["serviceName"].(*string), args["hostname"].(*string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "gateway.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "apirules", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v1alpha1.APIRule); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRule`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v1alpha1.APIRule) - fc.Result = res - return ec.marshalNAPIRule2ᚕᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_APIRule(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_APIRule_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().APIRule(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "gateway.kyma-project.io", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "apirules", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha1.APIRule); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-incubator/api-gateway/api/v1alpha1.APIRule`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha1.APIRule) - fc.Result = res - return ec.marshalOAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_eventSubscriptions(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_eventSubscriptions_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().EventSubscriptions(rctx, args["ownerName"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "subscriptions", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v1alpha13.Subscription); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/eventing-controller/api/v1alpha1.Subscription`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v1alpha13.Subscription) - fc.Result = res - return ec.marshalNEventSubscription2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscriptionᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_triggers(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_triggers_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Triggers(rctx, args["namespace"].(string), args["serviceName"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.knative.dev", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "triggers", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v1alpha14.Trigger); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*knative.dev/eventing/pkg/apis/eventing/v1alpha1.Trigger`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*v1alpha14.Trigger) - fc.Result = res - return ec.marshalOTrigger2ᚕᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTriggerᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_limitRanges(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_limitRanges_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().LimitRanges(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "limitRange", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v11.LimitRange); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*k8s.io/api/core/v1.LimitRange`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v11.LimitRange) - fc.Result = res - return ec.marshalNLimitRange2ᚕᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_resourceQuotas(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_resourceQuotas_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ResourceQuotas(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "resourcequotas", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v11.ResourceQuota); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*k8s.io/api/core/v1.ResourceQuota`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v11.ResourceQuota) - fc.Result = res - return ec.marshalNResourceQuota2ᚕᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuotaᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_oAuth2Clients(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_oAuth2Clients_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().OAuth2Clients(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "hydra.ory.sh", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "OAuth2Clients", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v1alpha12.OAuth2Client); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/ory/hydra-maester/api/v1alpha1.OAuth2Client`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v1alpha12.OAuth2Client) - fc.Result = res - return ec.marshalNOAuth2Client2ᚕᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Clientᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_oAuth2Client(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_oAuth2Client_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().OAuth2Client(rctx, args["name"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "hydra.ory.sh", "apiVersion": "v1alpha1", "nameArg": "name", "namespaceArg": "namespace", "resource": "OAuth2Clients", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha12.OAuth2Client); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/ory/hydra-maester/api/v1alpha1.OAuth2Client`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha12.OAuth2Client) - fc.Result = res - return ec.marshalOOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_roles(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_roles_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Roles(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "roles", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v12.Role); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*k8s.io/api/rbac/v1.Role`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v12.Role) - fc.Result = res - return ec.marshalNRole2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_role(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_role_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Role(rctx, args["namespace"].(string), args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "roles", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v12.Role); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/rbac/v1.Role`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.Role) - fc.Result = res - return ec.marshalNRole2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRole(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterRoles(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterRoles(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "resource": "clusterRoles", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v12.ClusterRole); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*k8s.io/api/rbac/v1.ClusterRole`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v12.ClusterRole) - fc.Result = res - return ec.marshalNClusterRole2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterRole(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_clusterRole_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterRole(rctx, args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "resource": "clusterRoles", "verb": "get"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v12.ClusterRole); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *k8s.io/api/rbac/v1.ClusterRole`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.ClusterRole) - fc.Result = res - return ec.marshalNClusterRole2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRole(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_roleBindings(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_roleBindings_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().RoleBindings(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "roleBindings", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v12.RoleBinding); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*k8s.io/api/rbac/v1.RoleBinding`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v12.RoleBinding) - fc.Result = res - return ec.marshalNRoleBinding2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBindingᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_clusterRoleBindings(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ClusterRoleBindings(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1", "resource": "clusterRoleBindings", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v12.ClusterRoleBinding); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*k8s.io/api/rbac/v1.ClusterRoleBinding`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v12.ClusterRoleBinding) - fc.Result = res - return ec.marshalNClusterRoleBinding2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBindingᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_gitRepositories(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_gitRepositories_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().GitRepositories(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "gitrepositories", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.([]*v1alpha11.GitRepository); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be []*github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepository`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*v1alpha11.GitRepository) - fc.Result = res - return ec.marshalOGitRepository2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepositoryᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query_gitRepository(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_gitRepository_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().GitRepository(rctx, args["namespace"].(string), args["name"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "gitrepositories", "verb": "list"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*v1alpha11.GitRepository); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepository`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v1alpha11.GitRepository) - fc.Result = res - return ec.marshalOGitRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query___type_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.introspectType(args["name"].(string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*introspection.Type) - fc.Result = res - return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.introspectSchema() - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*introspection.Schema) - fc.Result = res - return ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res) -} - -func (ec *executionContext) _ReplicaSet_name(ctx context.Context, field graphql.CollectedField, obj *ReplicaSet) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ReplicaSet", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ReplicaSet_pods(ctx context.Context, field graphql.CollectedField, obj *ReplicaSet) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ReplicaSet", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Pods, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ReplicaSet_namespace(ctx context.Context, field graphql.CollectedField, obj *ReplicaSet) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ReplicaSet", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ReplicaSet_images(ctx context.Context, field graphql.CollectedField, obj *ReplicaSet) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ReplicaSet", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Images, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ReplicaSet_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *ReplicaSet) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ReplicaSet", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _ReplicaSet_labels(ctx context.Context, field graphql.CollectedField, obj *ReplicaSet) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ReplicaSet", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _ReplicaSet_json(ctx context.Context, field graphql.CollectedField, obj *ReplicaSet) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ReplicaSet", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.JSON, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _RepositoryAuth_type(ctx context.Context, field graphql.CollectedField, obj *v1alpha11.RepositoryAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RepositoryAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha11.RepositoryAuthType) - fc.Result = res - return ec.marshalNRepositoryAuthType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuthType(ctx, field.Selections, res) -} - -func (ec *executionContext) _RepositoryAuth_secretName(ctx context.Context, field graphql.CollectedField, obj *v1alpha11.RepositoryAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RepositoryAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SecretName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _RequiredPermission_verbs(ctx context.Context, field graphql.CollectedField, obj *RequiredPermission) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RequiredPermission", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Verbs, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _RequiredPermission_apiGroup(ctx context.Context, field graphql.CollectedField, obj *RequiredPermission) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RequiredPermission", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIGroup, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _RequiredPermission_resource(ctx context.Context, field graphql.CollectedField, obj *RequiredPermission) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RequiredPermission", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Resource, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceLimits_memory(ctx context.Context, field graphql.CollectedField, obj *ResourceLimits) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceLimits", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Memory, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceLimits_cpu(ctx context.Context, field graphql.CollectedField, obj *ResourceLimits) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceLimits", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CPU, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceQuota_name(ctx context.Context, field graphql.CollectedField, obj *v11.ResourceQuota) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceQuota", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceQuota_spec(ctx context.Context, field graphql.CollectedField, obj *v11.ResourceQuota) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceQuota", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Spec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v11.ResourceQuotaSpec) - fc.Result = res - return ec.marshalNResourceQuotaSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuotaSpec(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceQuota_json(ctx context.Context, field graphql.CollectedField, obj *v11.ResourceQuota) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceQuota", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ResourceQuota().JSON(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceQuotaHard_limits(ctx context.Context, field graphql.CollectedField, obj *ResourceQuotaHard) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceQuotaHard", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Limits, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceLimits) - fc.Result = res - return ec.marshalNResourceLimits2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceLimits(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceQuotaHard_requests(ctx context.Context, field graphql.CollectedField, obj *ResourceQuotaHard) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceQuotaHard", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Requests, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceLimits) - fc.Result = res - return ec.marshalNResourceLimits2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceLimits(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceQuotaHard_pods(ctx context.Context, field graphql.CollectedField, obj *ResourceQuotaHard) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceQuotaHard", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Pods, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceQuotaSpec_hard(ctx context.Context, field graphql.CollectedField, obj *v11.ResourceQuotaSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceQuotaSpec", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ResourceQuotaSpec().Hard(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ResourceQuotaHard) - fc.Result = res - return ec.marshalNResourceQuotaHard2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceQuotaHard(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceRef_name(ctx context.Context, field graphql.CollectedField, obj *ResourceRef) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceRef_namespace(ctx context.Context, field graphql.CollectedField, obj *ResourceRef) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceRule_verbs(ctx context.Context, field graphql.CollectedField, obj *ResourceRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Verbs, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceRule_apiGroups(ctx context.Context, field graphql.CollectedField, obj *ResourceRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIGroups, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceRule_resources(ctx context.Context, field graphql.CollectedField, obj *ResourceRule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceRule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Resources, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceType_memory(ctx context.Context, field graphql.CollectedField, obj *ResourceType) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceType", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Memory, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceType_cpu(ctx context.Context, field graphql.CollectedField, obj *ResourceType) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceType", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CPU, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceValues_memory(ctx context.Context, field graphql.CollectedField, obj *ResourceValues) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceValues", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Memory, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ResourceValues_cpu(ctx context.Context, field graphql.CollectedField, obj *ResourceValues) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ResourceValues", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CPU, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _Role_name(ctx context.Context, field graphql.CollectedField, obj *v12.Role) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Role", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Role_namespace(ctx context.Context, field graphql.CollectedField, obj *v12.Role) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Role", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Role_rules(ctx context.Context, field graphql.CollectedField, obj *v12.Role) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Role", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Rules, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]v12.PolicyRule) - fc.Result = res - return ec.marshalOPolicyRule2ᚕk8sᚗioᚋapiᚋrbacᚋv1ᚐPolicyRuleᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _RoleBinding_name(ctx context.Context, field graphql.CollectedField, obj *v12.RoleBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RoleBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _RoleBinding_namespace(ctx context.Context, field graphql.CollectedField, obj *v12.RoleBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RoleBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _RoleBinding_roleRef(ctx context.Context, field graphql.CollectedField, obj *v12.RoleBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RoleBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.RoleRef, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v12.RoleRef) - fc.Result = res - return ec.marshalNRoleRef2k8sᚗioᚋapiᚋrbacᚋv1ᚐRoleRef(ctx, field.Selections, res) -} - -func (ec *executionContext) _RoleBindingEvent_type(ctx context.Context, field graphql.CollectedField, obj *RoleBindingEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RoleBindingEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _RoleBindingEvent_roleBinding(ctx context.Context, field graphql.CollectedField, obj *RoleBindingEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RoleBindingEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.RoleBinding, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v12.RoleBinding) - fc.Result = res - return ec.marshalNRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _RoleRef_name(ctx context.Context, field graphql.CollectedField, obj *v12.RoleRef) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RoleRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _RoleRef_kind(ctx context.Context, field graphql.CollectedField, obj *v12.RoleRef) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "RoleRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Kind, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Rule_path(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.Rule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Rule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Path, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Rule_methods(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.Rule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Rule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Methods, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Rule_accessStrategies(ctx context.Context, field graphql.CollectedField, obj *v1alpha1.Rule) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Rule", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AccessStrategies, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*v1alpha15.Authenticator) - fc.Result = res - return ec.marshalNAPIRuleAccessStrategy2ᚕᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticatorᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_name(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_namespace(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_data(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Data, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_type(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_creationTime(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTime, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_labels(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_annotations(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Annotations, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _Secret_json(ctx context.Context, field graphql.CollectedField, obj *Secret) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Secret", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.JSON, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _SecretEvent_type(ctx context.Context, field graphql.CollectedField, obj *SecretEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SecretEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _SecretEvent_secret(ctx context.Context, field graphql.CollectedField, obj *SecretEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SecretEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Secret, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*Secret) - fc.Result = res - return ec.marshalNSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_name(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_clusterIP(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClusterIP, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_labels(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_ports(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ports, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServicePort) - fc.Result = res - return ec.marshalNServicePort2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePortᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_status(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceStatus) - fc.Result = res - return ec.marshalNServiceStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_json(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.JSON, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _Service_UID(ctx context.Context, field graphql.CollectedField, obj *Service) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Service", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.UID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBinding_name(ctx context.Context, field graphql.CollectedField, obj *ServiceBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBinding_serviceInstanceName(ctx context.Context, field graphql.CollectedField, obj *ServiceBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ServiceInstanceName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBinding_namespace(ctx context.Context, field graphql.CollectedField, obj *ServiceBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBinding_secret(ctx context.Context, field graphql.CollectedField, obj *ServiceBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBinding", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceBinding().Secret(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*Secret) - fc.Result = res - return ec.marshalOSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBinding_status(ctx context.Context, field graphql.CollectedField, obj *ServiceBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ServiceBindingStatus) - fc.Result = res - return ec.marshalNServiceBindingStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBinding_parameters(ctx context.Context, field graphql.CollectedField, obj *ServiceBinding) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBinding", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Parameters, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingEvent_type(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingEvent_serviceBinding(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ServiceBinding, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceBinding) - fc.Result = res - return ec.marshalNServiceBinding2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingStatus_type(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ServiceBindingStatusType) - fc.Result = res - return ec.marshalNServiceBindingStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingStatusType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingStatus_reason(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingStatus_message(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsage_name(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsage) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsage", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsage_namespace(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsage) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsage", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsage_serviceBinding(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsage) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsage", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceBindingUsage().ServiceBinding(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceBinding) - fc.Result = res - return ec.marshalOServiceBinding2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsage_usedBy(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsage) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsage", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.UsedBy, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(LocalObjectReference) - fc.Result = res - return ec.marshalNLocalObjectReference2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLocalObjectReference(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsage_parameters(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsage) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsage", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Parameters, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceBindingUsageParameters) - fc.Result = res - return ec.marshalOServiceBindingUsageParameters2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageParameters(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsage_status(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsage) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsage", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ServiceBindingUsageStatus) - fc.Result = res - return ec.marshalNServiceBindingUsageStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsageEvent_type(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsageEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsageEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsageEvent_serviceBindingUsage(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsageEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsageEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ServiceBindingUsage, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceBindingUsage) - fc.Result = res - return ec.marshalNServiceBindingUsage2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsageParameters_envPrefix(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsageParameters) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsageParameters", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.EnvPrefix, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*EnvPrefix) - fc.Result = res - return ec.marshalOEnvPrefix2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnvPrefix(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsageStatus_type(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsageStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsageStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ServiceBindingUsageStatusType) - fc.Result = res - return ec.marshalNServiceBindingUsageStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageStatusType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsageStatus_reason(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsageStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsageStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingUsageStatus_message(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingUsageStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingUsageStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindings_items(ctx context.Context, field graphql.CollectedField, obj *ServiceBindings) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindings", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Items, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServiceBinding) - fc.Result = res - return ec.marshalNServiceBinding2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindings_stats(ctx context.Context, field graphql.CollectedField, obj *ServiceBindings) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindings", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Stats, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceBindingsStats) - fc.Result = res - return ec.marshalNServiceBindingsStats2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingsStats(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingsStats_ready(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingsStats) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingsStats", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ready, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingsStats_failed(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingsStats) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingsStats", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Failed, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingsStats_pending(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingsStats) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingsStats", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Pending, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBindingsStats_unknown(ctx context.Context, field graphql.CollectedField, obj *ServiceBindingsStats) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBindingsStats", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Unknown, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBroker_name(ctx context.Context, field graphql.CollectedField, obj *ServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBroker_namespace(ctx context.Context, field graphql.CollectedField, obj *ServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBroker_status(ctx context.Context, field graphql.CollectedField, obj *ServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceBrokerStatus) - fc.Result = res - return ec.marshalNServiceBrokerStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBroker_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *ServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBroker_url(ctx context.Context, field graphql.CollectedField, obj *ServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.URL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBroker_labels(ctx context.Context, field graphql.CollectedField, obj *ServiceBroker) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBroker", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBrokerEvent_type(ctx context.Context, field graphql.CollectedField, obj *ServiceBrokerEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBrokerEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBrokerEvent_serviceBroker(ctx context.Context, field graphql.CollectedField, obj *ServiceBrokerEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBrokerEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ServiceBroker, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceBroker) - fc.Result = res - return ec.marshalNServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBroker(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBrokerStatus_ready(ctx context.Context, field graphql.CollectedField, obj *ServiceBrokerStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBrokerStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ready, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBrokerStatus_reason(ctx context.Context, field graphql.CollectedField, obj *ServiceBrokerStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBrokerStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceBrokerStatus_message(ctx context.Context, field graphql.CollectedField, obj *ServiceBrokerStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceBrokerStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_name(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_namespace(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_externalName(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ExternalName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_displayName(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_description(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_longDescription(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LongDescription, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_imageUrl(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ImageURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_documentationUrl(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DocumentationURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_supportUrl(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SupportURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_providerDisplayName(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ProviderDisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_tags(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Tags, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_labels(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(Labels) - fc.Result = res - return ec.marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_plans(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceClass().Plans(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServicePlan) - fc.Result = res - return ec.marshalNServicePlan2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlanᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_activated(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceClass().Activated(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_instances(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceClass().Instances(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]*ServiceInstance) - fc.Result = res - return ec.marshalNServiceInstance2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_clusterAssetGroup(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceClass().ClusterAssetGroup(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterAssetGroup) - fc.Result = res - return ec.marshalOClusterAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceClass_assetGroup(ctx context.Context, field graphql.CollectedField, obj *ServiceClass) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceClass", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceClass().AssetGroup(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AssetGroup) - fc.Result = res - return ec.marshalOAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceEvent_type(ctx context.Context, field graphql.CollectedField, obj *ServiceEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceEvent_service(ctx context.Context, field graphql.CollectedField, obj *ServiceEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Service, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*Service) - fc.Result = res - return ec.marshalNService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_name(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_namespace(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_planSpec(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.PlanSpec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*JSON) - fc.Result = res - return ec.marshalOJSON2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTimestamp2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_labels(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Labels, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_status(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ServiceInstanceStatus) - fc.Result = res - return ec.marshalNServiceInstanceStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_classReference(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClassReference, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceInstanceResourceRef) - fc.Result = res - return ec.marshalOServiceInstanceResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceResourceRef(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_planReference(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.PlanReference, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceInstanceResourceRef) - fc.Result = res - return ec.marshalOServiceInstanceResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceResourceRef(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_serviceClass(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceInstance().ServiceClass(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceClass) - fc.Result = res - return ec.marshalOServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClass(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_clusterServiceClass(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceInstance().ClusterServiceClass(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterServiceClass) - fc.Result = res - return ec.marshalOClusterServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClass(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_servicePlan(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceInstance().ServicePlan(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServicePlan) - fc.Result = res - return ec.marshalOServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlan(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_clusterServicePlan(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceInstance().ClusterServicePlan(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterServicePlan) - fc.Result = res - return ec.marshalOClusterServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlan(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_bindable(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceInstance().Bindable(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_serviceBindings(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceInstance().ServiceBindings(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ServiceBindings) - fc.Result = res - return ec.marshalOServiceBindings2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindings(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstance_serviceBindingUsages(ctx context.Context, field graphql.CollectedField, obj *ServiceInstance) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstance", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServiceInstance().ServiceBindingUsages(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*ServiceBindingUsage) - fc.Result = res - return ec.marshalOServiceBindingUsage2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceEvent_type(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceEvent_serviceInstance(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ServiceInstance, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ServiceInstance) - fc.Result = res - return ec.marshalNServiceInstance2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceResourceRef_name(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceResourceRef) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceResourceRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceResourceRef_displayName(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceResourceRef) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceResourceRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceResourceRef_clusterWide(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceResourceRef) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceResourceRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClusterWide, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceStatus_type(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(InstanceStatusType) - fc.Result = res - return ec.marshalNInstanceStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceStatus_reason(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceInstanceStatus_message(ctx context.Context, field graphql.CollectedField, obj *ServiceInstanceStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceInstanceStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Message, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_name(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_namespace(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_displayName(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_externalName(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ExternalName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_description(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_relatedServiceClassName(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.RelatedServiceClassName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_instanceCreateParameterSchema(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.InstanceCreateParameterSchema, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*JSON) - fc.Result = res - return ec.marshalOJSON2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_bindingCreateParameterSchema(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.BindingCreateParameterSchema, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*JSON) - fc.Result = res - return ec.marshalOJSON2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_clusterAssetGroup(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServicePlan().ClusterAssetGroup(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*ClusterAssetGroup) - fc.Result = res - return ec.marshalOClusterAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePlan_assetGroup(ctx context.Context, field graphql.CollectedField, obj *ServicePlan) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePlan", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.ServicePlan().AssetGroup(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*AssetGroup) - fc.Result = res - return ec.marshalOAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroup(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePort_name(ctx context.Context, field graphql.CollectedField, obj *ServicePort) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePort", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePort_serviceProtocol(ctx context.Context, field graphql.CollectedField, obj *ServicePort) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePort", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ServiceProtocol, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(ServiceProtocol) - fc.Result = res - return ec.marshalNServiceProtocol2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceProtocol(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePort_port(ctx context.Context, field graphql.CollectedField, obj *ServicePort) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePort", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Port, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePort_nodePort(ctx context.Context, field graphql.CollectedField, obj *ServicePort) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePort", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.NodePort, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServicePort_targetPort(ctx context.Context, field graphql.CollectedField, obj *ServicePort) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServicePort", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.TargetPort, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) _ServiceStatus_loadBalancer(ctx context.Context, field graphql.CollectedField, obj *ServiceStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "ServiceStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.LoadBalancer, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*LoadBalancerStatus) - fc.Result = res - return ec.marshalNLoadBalancerStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _Subscriber_ref(ctx context.Context, field graphql.CollectedField, obj *v13.Destination) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Subscriber", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ref, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*v13.KReference) - fc.Result = res - return ec.marshalOSubscriberRef2ᚖknativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐKReference(ctx, field.Selections, res) -} - -func (ec *executionContext) _SubscriberRef_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.KReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SubscriberRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.APIVersion, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _SubscriberRef_kind(ctx context.Context, field graphql.CollectedField, obj *v13.KReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SubscriberRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Kind, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _SubscriberRef_name(ctx context.Context, field graphql.CollectedField, obj *v13.KReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SubscriberRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _SubscriberRef_namespace(ctx context.Context, field graphql.CollectedField, obj *v13.KReference) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SubscriberRef", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Subscription_clusterAssetEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ClusterAssetEvent(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rafter.kyma-project.io", "apiVersion": "v1beta1", "resource": "clusterassets", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ClusterAssetEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterAssetEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ClusterAssetEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNClusterAssetEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_assetEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_assetEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().AssetEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rafter.kyma-project.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "assets", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *AssetEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AssetEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *AssetEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNAssetEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_clusterAssetGroupEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ClusterAssetGroupEvent(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rafter.kyma-project.io", "apiVersion": "v1beta1", "resource": "clusterassetgroups", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ClusterAssetGroupEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterAssetGroupEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ClusterAssetGroupEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNClusterAssetGroupEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroupEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_assetGroupEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_assetGroupEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().AssetGroupEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rafter.kyma-project.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "assetgroups", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *AssetGroupEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AssetGroupEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *AssetGroupEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNAssetGroupEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_serviceInstanceEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_serviceInstanceEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ServiceInstanceEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "serviceinstances", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ServiceInstanceEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceInstanceEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ServiceInstanceEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNServiceInstanceEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_serviceBindingEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_serviceBindingEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ServiceBindingEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "servicebindings", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ServiceBindingEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBindingEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ServiceBindingEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNServiceBindingEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_serviceBindingUsageEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_serviceBindingUsageEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ServiceBindingUsageEvent(rctx, args["namespace"].(string), args["resourceKind"].(*string), args["resourceName"].(*string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "servicebindingusages", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ServiceBindingUsageEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBindingUsageEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ServiceBindingUsageEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNServiceBindingUsageEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_serviceBrokerEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_serviceBrokerEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ServiceBrokerEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "namespaceArg": "namespace", "resource": "servicebrokers", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ServiceBrokerEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceBrokerEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ServiceBrokerEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNServiceBrokerEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_clusterServiceBrokerEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ClusterServiceBrokerEvent(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "servicecatalog.k8s.io", "apiVersion": "v1beta1", "resource": "clusterservicebrokers", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ClusterServiceBrokerEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterServiceBrokerEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ClusterServiceBrokerEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNClusterServiceBrokerEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBrokerEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_applicationEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ApplicationEvent(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "applicationconnector.kyma-project.io", "apiVersion": "v1alpha1", "resource": "applications", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ApplicationEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ApplicationEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ApplicationEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNApplicationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_podEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_podEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().PodEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "pods", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *PodEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.PodEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *PodEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNPodEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_deploymentEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_deploymentEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().DeploymentEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "deployments", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *DeploymentEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.DeploymentEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *DeploymentEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNDeploymentEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_serviceEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_serviceEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ServiceEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "services", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ServiceEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ServiceEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ServiceEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNServiceEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_configMapEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_configMapEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ConfigMapEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "configmaps", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ConfigMapEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ConfigMapEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ConfigMapEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNConfigMapEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMapEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_secretEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_secretEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().SecretEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "namespaceArg": "namespace", "resource": "secrets", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *SecretEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.SecretEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *SecretEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNSecretEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecretEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_clusterAddonsConfigurationEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ClusterAddonsConfigurationEvent(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "resource": "clusteraddonsconfigurations", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ClusterAddonsConfigurationEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterAddonsConfigurationEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ClusterAddonsConfigurationEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNClusterAddonsConfigurationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAddonsConfigurationEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_addonsConfigurationEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_addonsConfigurationEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().AddonsConfigurationEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "addons.kyma-project.io", "apiVersion": "v1alpha1", "resource": "addonsconfigurations", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *AddonsConfigurationEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.AddonsConfigurationEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *AddonsConfigurationEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNAddonsConfigurationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_namespaceEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_namespaceEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().NamespaceEvent(rctx, args["withSystemNamespaces"].(*bool)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "", "apiVersion": "v1", "resource": "namespaces", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *NamespaceEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.NamespaceEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *NamespaceEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNNamespaceEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_functionEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_functionEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().FunctionEvent(rctx, args["namespace"].(string), args["functionName"].(*string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "serverless.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "functions", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *FunctionEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.FunctionEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *FunctionEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNFunctionEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_apiRuleEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_apiRuleEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().APIRuleEvent(rctx, args["namespace"].(string), args["serviceName"].(*string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "gateway.kyma-project.io", "apiVersion": "v1alpha", "namespaceArg": "namespace", "resource": "apirules", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *APIRuleEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.APIRuleEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *APIRuleEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNApiRuleEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAPIRuleEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_subscriptionSubscription(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_subscriptionSubscription_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().SubscriptionSubscription(rctx, args["ownerName"].(string), args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.kyma-project.io", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "subscriptions", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *SubscriptionEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.SubscriptionEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *SubscriptionEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNSubscriptionEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_triggerEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_triggerEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().TriggerEvent(rctx, args["namespace"].(string), args["serviceName"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "eventing.knative.dev", "apiVersion": "v1alpha1", "namespaceArg": "namespace", "resource": "triggers", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *TriggerEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.TriggerEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *TriggerEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNTriggerEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_oAuth2ClientEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_oAuth2ClientEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().OAuth2ClientEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "hydra.ory.sh", "apiVersion": "v1alpha", "namespaceArg": "namespace", "resource": "OAuth2Clients", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *OAuth2ClientEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.OAuth2ClientEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *OAuth2ClientEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNOAuth2ClientEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐOAuth2ClientEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_roleBindingEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Subscription_roleBindingEvent_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return nil - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().RoleBindingEvent(rctx, args["namespace"].(string)) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1alpha", "namespaceArg": "namespace", "resource": "roleBindings", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *RoleBindingEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.RoleBindingEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *RoleBindingEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNRoleBindingEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _Subscription_clusterRoleBindingEvent(ctx context.Context, field graphql.CollectedField) (ret func() graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - fc := &graphql.FieldContext{ - Object: "Subscription", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ClusterRoleBindingEvent(rctx) - } - directive1 := func(ctx context.Context) (interface{}, error) { - attributes, err := ec.unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx, map[string]interface{}{"apiGroup": "rbac.authorization.k8s.io", "apiVersion": "v1alpha", "resource": "clusterRoleBindings", "verb": "watch"}) - if err != nil { - return nil, err - } - if ec.directives.HasAccess == nil { - return nil, errors.New("directive HasAccess is not implemented") - } - return ec.directives.HasAccess(ctx, nil, directive0, attributes) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, err - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *ClusterRoleBindingEvent); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema.ClusterRoleBindingEvent`, tmp) - }) - if err != nil { - ec.Error(ctx, err) - return nil - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return nil - } - return func() graphql.Marshaler { - res, ok := <-resTmp.(<-chan *ClusterRoleBindingEvent) - if !ok { - return nil - } - return graphql.WriterFunc(func(w io.Writer) { - w.Write([]byte{'{'}) - graphql.MarshalString(field.Alias).MarshalGQL(w) - w.Write([]byte{':'}) - ec.marshalNClusterRoleBindingEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterRoleBindingEvent(ctx, field.Selections, res).MarshalGQL(w) - w.Write([]byte{'}'}) - }) - } -} - -func (ec *executionContext) _SubscriptionEvent_type(ctx context.Context, field graphql.CollectedField, obj *SubscriptionEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SubscriptionEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _SubscriptionEvent_subscription(ctx context.Context, field graphql.CollectedField, obj *SubscriptionEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "SubscriptionEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Subscription, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v1alpha13.Subscription) - fc.Result = res - return ec.marshalNEventSubscription2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx, field.Selections, res) -} - -func (ec *executionContext) _Trigger_name(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.Trigger) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Trigger", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Trigger_namespace(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.Trigger) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Trigger", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _Trigger_spec(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.Trigger) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Trigger", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Spec, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v1alpha14.TriggerSpec) - fc.Result = res - return ec.marshalNTriggerSpec2knativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTriggerSpec(ctx, field.Selections, res) -} - -func (ec *executionContext) _Trigger_status(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.Trigger) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Trigger", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Trigger().Status(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*TriggerStatus) - fc.Result = res - return ec.marshalNTriggerStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerStatus(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerEvent_type(ctx context.Context, field graphql.CollectedField, obj *TriggerEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(SubscriptionEventType) - fc.Result = res - return ec.marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerEvent_trigger(ctx context.Context, field graphql.CollectedField, obj *TriggerEvent) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerEvent", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Trigger, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*v1alpha14.Trigger) - fc.Result = res - return ec.marshalNTrigger2ᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerSpec_broker(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.TriggerSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Broker, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerSpec_filter(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.TriggerSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerSpec", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.TriggerSpec().Filter(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(JSON) - fc.Result = res - return ec.marshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerSpec_port(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.TriggerSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerSpec", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.TriggerSpec().Port(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(uint32) - fc.Result = res - return ec.marshalNPort2uint32(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerSpec_path(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.TriggerSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerSpec", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.TriggerSpec().Path(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerSpec_subscriber(ctx context.Context, field graphql.CollectedField, obj *v1alpha14.TriggerSpec) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerSpec", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Subscriber, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(v13.Destination) - fc.Result = res - return ec.marshalNSubscriber2knativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐDestination(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerStatus_reason(ctx context.Context, field graphql.CollectedField, obj *TriggerStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Reason, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _TriggerStatus_status(ctx context.Context, field graphql.CollectedField, obj *TriggerStatus) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "TriggerStatus", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Status, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(TriggerStatusType) - fc.Result = res - return ec.marshalNTriggerStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerStatusType(ctx, field.Selections, res) -} - -func (ec *executionContext) _UsageKind_name(ctx context.Context, field graphql.CollectedField, obj *UsageKind) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "UsageKind", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _UsageKind_group(ctx context.Context, field graphql.CollectedField, obj *UsageKind) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "UsageKind", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Group, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _UsageKind_kind(ctx context.Context, field graphql.CollectedField, obj *UsageKind) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "UsageKind", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Kind, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _UsageKind_version(ctx context.Context, field graphql.CollectedField, obj *UsageKind) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "UsageKind", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Version, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _UsageKind_displayName(ctx context.Context, field graphql.CollectedField, obj *UsageKind) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "UsageKind", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DisplayName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _UsageKindResource_name(ctx context.Context, field graphql.CollectedField, obj *UsageKindResource) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "UsageKindResource", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _UsageKindResource_namespace(ctx context.Context, field graphql.CollectedField, obj *UsageKindResource) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "UsageKindResource", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _VersionInfo_kymaVersion(ctx context.Context, field graphql.CollectedField, obj *VersionInfo) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "VersionInfo", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.KymaVersion, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) _WebhookAuth_clientId(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.WebhookAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "WebhookAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClientId, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _WebhookAuth_clientSecret(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.WebhookAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "WebhookAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ClientSecret, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _WebhookAuth_grantType(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.WebhookAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "WebhookAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.GrantType, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _WebhookAuth_scope(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.WebhookAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "WebhookAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Scope, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) _WebhookAuth_tokenUrl(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.WebhookAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "WebhookAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.TokenUrl, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _WebhookAuth_type(ctx context.Context, field graphql.CollectedField, obj *v1alpha13.WebhookAuth) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "WebhookAuth", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Directive", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Directive", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Directive", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Locations, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]string) - fc.Result = res - return ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Directive", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Args, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]introspection.InputValue) - fc.Result = res - return ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.IsDeprecated(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DeprecationReason(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Field", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Field", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Field", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Args, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]introspection.InputValue) - fc.Result = res - return ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Field", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*introspection.Type) - fc.Result = res - return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Field", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.IsDeprecated(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Field", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DeprecationReason(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Type, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*introspection.Type) - fc.Result = res - return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) -} - -func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.DefaultValue, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Schema", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Types(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]introspection.Type) - fc.Result = res - return ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Schema", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.QueryType(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*introspection.Type) - fc.Result = res - return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Schema", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.MutationType(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*introspection.Type) - fc.Result = res - return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Schema", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.SubscriptionType(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*introspection.Type) - fc.Result = res - return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Schema", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Directives(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.([]introspection.Directive) - fc.Result = res - return ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Kind(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalN__TypeKind2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Name(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*string) - fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Description(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field___Type_fields_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Fields(args["includeDeprecated"].(bool)), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]introspection.Field) - fc.Result = res - return ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Interfaces(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]introspection.Type) - fc.Result = res - return ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.PossibleTypes(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]introspection.Type) - fc.Result = res - return ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field___Type_enumValues_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.EnumValues(args["includeDeprecated"].(bool)), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]introspection.EnumValue) - fc.Result = res - return ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.InputFields(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]introspection.InputValue) - fc.Result = res - return ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "__Type", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.OfType(), nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*introspection.Type) - fc.Result = res - return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) -} - -func (ec *executionContext) _compassMetadata_applicationId(ctx context.Context, field graphql.CollectedField, obj *CompassMetadata) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "compassMetadata", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.ApplicationID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _enabledMappingService_namespace(ctx context.Context, field graphql.CollectedField, obj *EnabledMappingService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "enabledMappingService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) _enabledMappingService_allServices(ctx context.Context, field graphql.CollectedField, obj *EnabledMappingService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "enabledMappingService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.AllServices, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) _enabledMappingService_services(ctx context.Context, field graphql.CollectedField, obj *EnabledMappingService) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "enabledMappingService", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.Services, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*EnabledApplicationService) - fc.Result = res - return ec.marshalOEnabledApplicationService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledApplicationService(ctx, field.Selections, res) -} - -// endregion **************************** field.gotpl ***************************** - -// region **************************** input.gotpl ***************************** - -func (ec *executionContext) unmarshalInputAPIRuleServiceInput(ctx context.Context, obj interface{}) (v1alpha1.Service, error) { - var it v1alpha1.Service - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "host": - var err error - it.Host, err = ec.unmarshalNString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "name": - var err error - it.Name, err = ec.unmarshalNString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "port": - var err error - it.Port, err = ec.unmarshalNPort2ᚖuint32(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputAPIRuleSpecInput(ctx context.Context, obj interface{}) (v1alpha1.APIRuleSpec, error) { - var it v1alpha1.APIRuleSpec - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "service": - var err error - it.Service, err = ec.unmarshalNAPIRuleServiceInput2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐService(ctx, v) - if err != nil { - return it, err - } - case "gateway": - var err error - it.Gateway, err = ec.unmarshalNString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "rules": - var err error - it.Rules, err = ec.unmarshalNRuleInput2ᚕgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRuleᚄ(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputAddonsConfigurationRepositoryInput(ctx context.Context, obj interface{}) (AddonsConfigurationRepositoryInput, error) { - var it AddonsConfigurationRepositoryInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "url": - var err error - it.URL, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "secretRef": - var err error - it.SecretRef, err = ec.unmarshalOResourceRefInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRefInput(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputClusterRoleBindingInput(ctx context.Context, obj interface{}) (ClusterRoleBindingInput, error) { - var it ClusterRoleBindingInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "roleName": - var err error - it.RoleName, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "subjects": - var err error - it.Subjects, err = ec.unmarshalNRoleBindingSubject2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingSubjectᚄ(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputCreateServiceBindingUsageInput(ctx context.Context, obj interface{}) (CreateServiceBindingUsageInput, error) { - var it CreateServiceBindingUsageInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "serviceBindingRef": - var err error - it.ServiceBindingRef, err = ec.unmarshalNServiceBindingRefInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingRefInput(ctx, v) - if err != nil { - return it, err - } - case "usedBy": - var err error - it.UsedBy, err = ec.unmarshalNLocalObjectReferenceInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLocalObjectReferenceInput(ctx, v) - if err != nil { - return it, err - } - case "parameters": - var err error - it.Parameters, err = ec.unmarshalOServiceBindingUsageParametersInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageParametersInput(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputEnvPrefixInput(ctx context.Context, obj interface{}) (EnvPrefixInput, error) { - var it EnvPrefixInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputEventSubscriptionSpecInput(ctx context.Context, obj interface{}) (EventSubscriptionSpecInput, error) { - var it EventSubscriptionSpecInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "filters": - var err error - it.Filters, err = ec.unmarshalNFiltersInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFiltersInputᚄ(ctx, v) - if err != nil { - return it, err - } - case "ownerRef": - var err error - it.OwnerRef, err = ec.unmarshalNOwnerReferenceInput2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputFiltersInput(ctx context.Context, obj interface{}) (FiltersInput, error) { - var it FiltersInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "applicationName": - var err error - it.ApplicationName, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "version": - var err error - it.Version, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "eventName": - var err error - it.EventName, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputFunctionEnvInput(ctx context.Context, obj interface{}) (FunctionEnvInput, error) { - var it FunctionEnvInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "value": - var err error - it.Value, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "valueFrom": - var err error - it.ValueFrom, err = ec.unmarshalOFunctionEnvValueFromInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromInput(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputFunctionEnvValueFromInput(ctx context.Context, obj interface{}) (FunctionEnvValueFromInput, error) { - var it FunctionEnvValueFromInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "type": - var err error - it.Type, err = ec.unmarshalNFunctionEnvValueFromType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromType(ctx, v) - if err != nil { - return it, err - } - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "key": - var err error - it.Key, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "optional": - var err error - it.Optional, err = ec.unmarshalOBoolean2ᚖbool(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputFunctionMetadataInput(ctx context.Context, obj interface{}) (FunctionMetadataInput, error) { - var it FunctionMetadataInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "namespace": - var err error - it.Namespace, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputFunctionMutationInput(ctx context.Context, obj interface{}) (FunctionMutationInput, error) { - var it FunctionMutationInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "labels": - var err error - it.Labels, err = ec.unmarshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx, v) - if err != nil { - return it, err - } - case "source": - var err error - it.Source, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "dependencies": - var err error - it.Dependencies, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "env": - var err error - it.Env, err = ec.unmarshalNFunctionEnvInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvInputᚄ(ctx, v) - if err != nil { - return it, err - } - case "replicas": - var err error - it.Replicas, err = ec.unmarshalNFunctionReplicasInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReplicasInput(ctx, v) - if err != nil { - return it, err - } - case "resources": - var err error - it.Resources, err = ec.unmarshalNFunctionResourcesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResourcesInput(ctx, v) - if err != nil { - return it, err - } - case "buildResources": - var err error - it.BuildResources, err = ec.unmarshalNFunctionResourcesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResourcesInput(ctx, v) - if err != nil { - return it, err - } - case "runtime": - var err error - it.Runtime, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "sourceType": - var err error - it.SourceType, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "baseDir": - var err error - it.BaseDir, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "reference": - var err error - it.Reference, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputFunctionReplicasInput(ctx context.Context, obj interface{}) (FunctionReplicasInput, error) { - var it FunctionReplicasInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "min": - var err error - it.Min, err = ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - case "max": - var err error - it.Max, err = ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputFunctionResourcesInput(ctx context.Context, obj interface{}) (FunctionResourcesInput, error) { - var it FunctionResourcesInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "limits": - var err error - it.Limits, err = ec.unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - if err != nil { - return it, err - } - case "requests": - var err error - it.Requests, err = ec.unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputGitRepositorySpecInput(ctx context.Context, obj interface{}) (v1alpha11.GitRepositorySpec, error) { - var it v1alpha11.GitRepositorySpec - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "url": - var err error - it.URL, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "auth": - var err error - it.Auth, err = ec.unmarshalORepositoryAuthInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuth(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputLimitRangeInput(ctx context.Context, obj interface{}) (LimitRangeInput, error) { - var it LimitRangeInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "default": - var err error - it.Default, err = ec.unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - if err != nil { - return it, err - } - case "defaultRequest": - var err error - it.DefaultRequest, err = ec.unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - if err != nil { - return it, err - } - case "max": - var err error - it.Max, err = ec.unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - if err != nil { - return it, err - } - case "type": - var err error - it.Type, err = ec.unmarshalNLimitRangeType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLimitRangeType(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputLocalObjectReferenceInput(ctx context.Context, obj interface{}) (LocalObjectReferenceInput, error) { - var it LocalObjectReferenceInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "kind": - var err error - it.Kind, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputOAuth2ClientSpecInput(ctx context.Context, obj interface{}) (v1alpha12.OAuth2ClientSpec, error) { - var it v1alpha12.OAuth2ClientSpec - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "grantTypes": - var err error - it.GrantTypes, err = ec.unmarshalNGrantType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantTypeᚄ(ctx, v) - if err != nil { - return it, err - } - case "responseTypes": - var err error - it.ResponseTypes, err = ec.unmarshalNResponseType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseTypeᚄ(ctx, v) - if err != nil { - return it, err - } - case "scope": - var err error - it.Scope, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "secretName": - var err error - it.SecretName, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputOwnerReferenceInput(ctx context.Context, obj interface{}) (v1.OwnerReference, error) { - var it v1.OwnerReference - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "apiVersion": - var err error - it.APIVersion, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "blockOwnerDeletion": - var err error - it.BlockOwnerDeletion, err = ec.unmarshalOBoolean2ᚖbool(ctx, v) - if err != nil { - return it, err - } - case "controller": - var err error - it.Controller, err = ec.unmarshalOBoolean2ᚖbool(ctx, v) - if err != nil { - return it, err - } - case "kind": - var err error - it.Kind, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "UID": - var err error - it.UID, err = ec.unmarshalNUID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputRepositoryAuthInput(ctx context.Context, obj interface{}) (v1alpha11.RepositoryAuth, error) { - var it v1alpha11.RepositoryAuth - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "type": - var err error - it.Type, err = ec.unmarshalNRepositoryAuthType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuthType(ctx, v) - if err != nil { - return it, err - } - case "secretName": - var err error - it.SecretName, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputResourceAttributes(ctx context.Context, obj interface{}) (ResourceAttributes, error) { - var it ResourceAttributes - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "verb": - var err error - it.Verb, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "apiGroup": - var err error - it.APIGroup, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "apiVersion": - var err error - it.APIVersion, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "resource": - var err error - it.Resource, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "resourceArg": - var err error - it.ResourceArg, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "subresource": - var err error - it.Subresource, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "nameArg": - var err error - it.NameArg, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "namespaceArg": - var err error - it.NamespaceArg, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "isChildResolver": - var err error - it.IsChildResolver, err = ec.unmarshalNBoolean2bool(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputResourceQuotaInput(ctx context.Context, obj interface{}) (ResourceQuotaInput, error) { - var it ResourceQuotaInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "limits": - var err error - it.Limits, err = ec.unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - if err != nil { - return it, err - } - case "requests": - var err error - it.Requests, err = ec.unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputResourceRefInput(ctx context.Context, obj interface{}) (ResourceRefInput, error) { - var it ResourceRefInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "namespace": - var err error - it.Namespace, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputResourceValuesInput(ctx context.Context, obj interface{}) (ResourceValuesInput, error) { - var it ResourceValuesInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "memory": - var err error - it.Memory, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "cpu": - var err error - it.CPU, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputRoleBindingInput(ctx context.Context, obj interface{}) (RoleBindingInput, error) { - var it RoleBindingInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "roleName": - var err error - it.RoleName, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "roleKind": - var err error - it.RoleKind, err = ec.unmarshalNRoleKind2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleKind(ctx, v) - if err != nil { - return it, err - } - case "subjects": - var err error - it.Subjects, err = ec.unmarshalNRoleBindingSubject2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingSubjectᚄ(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputRoleBindingSubject(ctx context.Context, obj interface{}) (RoleBindingSubject, error) { - var it RoleBindingSubject - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "kind": - var err error - it.Kind, err = ec.unmarshalNSubjectKind2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubjectKind(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputRuleInput(ctx context.Context, obj interface{}) (v1alpha1.Rule, error) { - var it v1alpha1.Rule - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "path": - var err error - it.Path, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "methods": - var err error - it.Methods, err = ec.unmarshalNString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - case "accessStrategies": - var err error - it.AccessStrategies, err = ec.unmarshalNAPIRuleAccessStrategyInput2ᚕᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticatorᚄ(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputServiceBindingRefInput(ctx context.Context, obj interface{}) (ServiceBindingRefInput, error) { - var it ServiceBindingRefInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputServiceBindingUsageParametersInput(ctx context.Context, obj interface{}) (ServiceBindingUsageParametersInput, error) { - var it ServiceBindingUsageParametersInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "envPrefix": - var err error - it.EnvPrefix, err = ec.unmarshalOEnvPrefixInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnvPrefixInput(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputServiceInstanceCreateInput(ctx context.Context, obj interface{}) (ServiceInstanceCreateInput, error) { - var it ServiceInstanceCreateInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "classRef": - var err error - it.ClassRef, err = ec.unmarshalNServiceInstanceCreateInputResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceCreateInputResourceRef(ctx, v) - if err != nil { - return it, err - } - case "planRef": - var err error - it.PlanRef, err = ec.unmarshalNServiceInstanceCreateInputResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceCreateInputResourceRef(ctx, v) - if err != nil { - return it, err - } - case "labels": - var err error - it.Labels, err = ec.unmarshalNString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - case "parameterSchema": - var err error - it.ParameterSchema, err = ec.unmarshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputServiceInstanceCreateInputResourceRef(ctx context.Context, obj interface{}) (ServiceInstanceCreateInputResourceRef, error) { - var it ServiceInstanceCreateInputResourceRef - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "externalName": - var err error - it.ExternalName, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "clusterWide": - var err error - it.ClusterWide, err = ec.unmarshalNBoolean2bool(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputSubscriberInput(ctx context.Context, obj interface{}) (SubscriberInput, error) { - var it SubscriberInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "ref": - var err error - it.Ref, err = ec.unmarshalNSubscriberRefInput2ᚖknativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐKReference(ctx, v) - if err != nil { - return it, err - } - case "port": - var err error - it.Port, err = ec.unmarshalOPort2ᚖuint32(ctx, v) - if err != nil { - return it, err - } - case "path": - var err error - it.Path, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputSubscriberRefInput(ctx context.Context, obj interface{}) (v13.KReference, error) { - var it v13.KReference - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "apiVersion": - var err error - it.APIVersion, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "kind": - var err error - it.Kind, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "name": - var err error - it.Name, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "namespace": - var err error - it.Namespace, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) unmarshalInputTriggerCreateInput(ctx context.Context, obj interface{}) (TriggerCreateInput, error) { - var it TriggerCreateInput - var asMap = obj.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "name": - var err error - it.Name, err = ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - case "broker": - var err error - it.Broker, err = ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - case "filterAttributes": - var err error - it.FilterAttributes, err = ec.unmarshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, v) - if err != nil { - return it, err - } - case "subscriber": - var err error - it.Subscriber, err = ec.unmarshalNSubscriberInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriberInput(ctx, v) - if err != nil { - return it, err - } - } - } - - return it, nil -} - -// endregion **************************** input.gotpl ***************************** - -// region ************************** interface.gotpl *************************** - -// endregion ************************** interface.gotpl *************************** - -// region **************************** object.gotpl **************************** - -var aPIRuleImplementors = []string{"APIRule"} - -func (ec *executionContext) _APIRule(ctx context.Context, sel ast.SelectionSet, obj *v1alpha1.APIRule) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, aPIRuleImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("APIRule") - case "name": - out.Values[i] = ec._APIRule_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "spec": - out.Values[i] = ec._APIRule_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "status": - out.Values[i] = ec._APIRule_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "generation": - out.Values[i] = ec._APIRule_generation(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "json": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._APIRule_json(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "ownerSubscription": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._APIRule_ownerSubscription(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var aPIRuleAccessStrategyImplementors = []string{"APIRuleAccessStrategy"} - -func (ec *executionContext) _APIRuleAccessStrategy(ctx context.Context, sel ast.SelectionSet, obj *v1alpha15.Authenticator) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, aPIRuleAccessStrategyImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("APIRuleAccessStrategy") - case "name": - out.Values[i] = ec._APIRuleAccessStrategy_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "config": - out.Values[i] = ec._APIRuleAccessStrategy_config(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var aPIRuleServiceImplementors = []string{"APIRuleService"} - -func (ec *executionContext) _APIRuleService(ctx context.Context, sel ast.SelectionSet, obj *v1alpha1.Service) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, aPIRuleServiceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("APIRuleService") - case "host": - out.Values[i] = ec._APIRuleService_host(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "name": - out.Values[i] = ec._APIRuleService_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "port": - out.Values[i] = ec._APIRuleService_port(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var aPIRuleSpecImplementors = []string{"APIRuleSpec"} - -func (ec *executionContext) _APIRuleSpec(ctx context.Context, sel ast.SelectionSet, obj *v1alpha1.APIRuleSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, aPIRuleSpecImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("APIRuleSpec") - case "service": - out.Values[i] = ec._APIRuleSpec_service(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "gateway": - out.Values[i] = ec._APIRuleSpec_gateway(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "rules": - out.Values[i] = ec._APIRuleSpec_rules(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var aPIRuleStatusImplementors = []string{"APIRuleStatus"} - -func (ec *executionContext) _APIRuleStatus(ctx context.Context, sel ast.SelectionSet, obj *v1alpha1.APIRuleResourceStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, aPIRuleStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("APIRuleStatus") - case "code": - out.Values[i] = ec._APIRuleStatus_code(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "description": - out.Values[i] = ec._APIRuleStatus_description(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var aPIRuleStatusesImplementors = []string{"APIRuleStatuses"} - -func (ec *executionContext) _APIRuleStatuses(ctx context.Context, sel ast.SelectionSet, obj *v1alpha1.APIRuleStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, aPIRuleStatusesImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("APIRuleStatuses") - case "apiRuleStatus": - out.Values[i] = ec._APIRuleStatuses_apiRuleStatus(ctx, field, obj) - case "accessRuleStatus": - out.Values[i] = ec._APIRuleStatuses_accessRuleStatus(ctx, field, obj) - case "virtualServiceStatus": - out.Values[i] = ec._APIRuleStatuses_virtualServiceStatus(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var addonsConfigurationImplementors = []string{"AddonsConfiguration"} - -func (ec *executionContext) _AddonsConfiguration(ctx context.Context, sel ast.SelectionSet, obj *AddonsConfiguration) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, addonsConfigurationImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AddonsConfiguration") - case "name": - out.Values[i] = ec._AddonsConfiguration_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "urls": - out.Values[i] = ec._AddonsConfiguration_urls(ctx, field, obj) - case "repositories": - out.Values[i] = ec._AddonsConfiguration_repositories(ctx, field, obj) - case "labels": - out.Values[i] = ec._AddonsConfiguration_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._AddonsConfiguration_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var addonsConfigurationEventImplementors = []string{"AddonsConfigurationEvent"} - -func (ec *executionContext) _AddonsConfigurationEvent(ctx context.Context, sel ast.SelectionSet, obj *AddonsConfigurationEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, addonsConfigurationEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AddonsConfigurationEvent") - case "type": - out.Values[i] = ec._AddonsConfigurationEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "addonsConfiguration": - out.Values[i] = ec._AddonsConfigurationEvent_addonsConfiguration(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var addonsConfigurationRepositoryImplementors = []string{"AddonsConfigurationRepository"} - -func (ec *executionContext) _AddonsConfigurationRepository(ctx context.Context, sel ast.SelectionSet, obj *AddonsConfigurationRepository) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, addonsConfigurationRepositoryImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AddonsConfigurationRepository") - case "url": - out.Values[i] = ec._AddonsConfigurationRepository_url(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "secretRef": - out.Values[i] = ec._AddonsConfigurationRepository_secretRef(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var addonsConfigurationStatusImplementors = []string{"AddonsConfigurationStatus"} - -func (ec *executionContext) _AddonsConfigurationStatus(ctx context.Context, sel ast.SelectionSet, obj *AddonsConfigurationStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, addonsConfigurationStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AddonsConfigurationStatus") - case "phase": - out.Values[i] = ec._AddonsConfigurationStatus_phase(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "repositories": - out.Values[i] = ec._AddonsConfigurationStatus_repositories(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var addonsConfigurationStatusAddonsImplementors = []string{"AddonsConfigurationStatusAddons"} - -func (ec *executionContext) _AddonsConfigurationStatusAddons(ctx context.Context, sel ast.SelectionSet, obj *AddonsConfigurationStatusAddons) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, addonsConfigurationStatusAddonsImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AddonsConfigurationStatusAddons") - case "name": - out.Values[i] = ec._AddonsConfigurationStatusAddons_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "version": - out.Values[i] = ec._AddonsConfigurationStatusAddons_version(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._AddonsConfigurationStatusAddons_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._AddonsConfigurationStatusAddons_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._AddonsConfigurationStatusAddons_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var addonsConfigurationStatusRepositoryImplementors = []string{"AddonsConfigurationStatusRepository"} - -func (ec *executionContext) _AddonsConfigurationStatusRepository(ctx context.Context, sel ast.SelectionSet, obj *AddonsConfigurationStatusRepository) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, addonsConfigurationStatusRepositoryImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AddonsConfigurationStatusRepository") - case "url": - out.Values[i] = ec._AddonsConfigurationStatusRepository_url(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._AddonsConfigurationStatusRepository_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "addons": - out.Values[i] = ec._AddonsConfigurationStatusRepository_addons(ctx, field, obj) - case "reason": - out.Values[i] = ec._AddonsConfigurationStatusRepository_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._AddonsConfigurationStatusRepository_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var apiRuleEventImplementors = []string{"ApiRuleEvent"} - -func (ec *executionContext) _ApiRuleEvent(ctx context.Context, sel ast.SelectionSet, obj *APIRuleEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, apiRuleEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ApiRuleEvent") - case "type": - out.Values[i] = ec._ApiRuleEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "apiRule": - out.Values[i] = ec._ApiRuleEvent_apiRule(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var applicationImplementors = []string{"Application"} - -func (ec *executionContext) _Application(ctx context.Context, sel ast.SelectionSet, obj *Application) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, applicationImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Application") - case "name": - out.Values[i] = ec._Application_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "description": - out.Values[i] = ec._Application_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "labels": - out.Values[i] = ec._Application_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "services": - out.Values[i] = ec._Application_services(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "enabledInNamespaces": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Application_enabledInNamespaces(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "enabledMappingServices": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Application_enabledMappingServices(ctx, field, obj) - return res - }) - case "status": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Application_status(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "compassMetadata": - out.Values[i] = ec._Application_compassMetadata(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var applicationEntryImplementors = []string{"ApplicationEntry"} - -func (ec *executionContext) _ApplicationEntry(ctx context.Context, sel ast.SelectionSet, obj *ApplicationEntry) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, applicationEntryImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ApplicationEntry") - case "type": - out.Values[i] = ec._ApplicationEntry_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "gatewayUrl": - out.Values[i] = ec._ApplicationEntry_gatewayUrl(ctx, field, obj) - case "accessLabel": - out.Values[i] = ec._ApplicationEntry_accessLabel(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var applicationEventImplementors = []string{"ApplicationEvent"} - -func (ec *executionContext) _ApplicationEvent(ctx context.Context, sel ast.SelectionSet, obj *ApplicationEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, applicationEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ApplicationEvent") - case "type": - out.Values[i] = ec._ApplicationEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "application": - out.Values[i] = ec._ApplicationEvent_application(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var applicationMappingImplementors = []string{"ApplicationMapping"} - -func (ec *executionContext) _ApplicationMapping(ctx context.Context, sel ast.SelectionSet, obj *ApplicationMapping) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, applicationMappingImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ApplicationMapping") - case "namespace": - out.Values[i] = ec._ApplicationMapping_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "application": - out.Values[i] = ec._ApplicationMapping_application(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "allServices": - out.Values[i] = ec._ApplicationMapping_allServices(ctx, field, obj) - case "services": - out.Values[i] = ec._ApplicationMapping_services(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var applicationMutationOutputImplementors = []string{"ApplicationMutationOutput"} - -func (ec *executionContext) _ApplicationMutationOutput(ctx context.Context, sel ast.SelectionSet, obj *ApplicationMutationOutput) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, applicationMutationOutputImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ApplicationMutationOutput") - case "name": - out.Values[i] = ec._ApplicationMutationOutput_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "description": - out.Values[i] = ec._ApplicationMutationOutput_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._ApplicationMutationOutput_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var applicationServiceImplementors = []string{"ApplicationService"} - -func (ec *executionContext) _ApplicationService(ctx context.Context, sel ast.SelectionSet, obj *ApplicationService) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, applicationServiceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ApplicationService") - case "id": - out.Values[i] = ec._ApplicationService_id(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "displayName": - out.Values[i] = ec._ApplicationService_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "longDescription": - out.Values[i] = ec._ApplicationService_longDescription(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "providerDisplayName": - out.Values[i] = ec._ApplicationService_providerDisplayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "tags": - out.Values[i] = ec._ApplicationService_tags(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "entries": - out.Values[i] = ec._ApplicationService_entries(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var assetImplementors = []string{"Asset"} - -func (ec *executionContext) _Asset(ctx context.Context, sel ast.SelectionSet, obj *Asset) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, assetImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Asset") - case "name": - out.Values[i] = ec._Asset_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._Asset_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "parameters": - out.Values[i] = ec._Asset_parameters(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "type": - out.Values[i] = ec._Asset_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "files": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Asset_files(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "status": - out.Values[i] = ec._Asset_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "displayName": - out.Values[i] = ec._Asset_displayName(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var assetEventImplementors = []string{"AssetEvent"} - -func (ec *executionContext) _AssetEvent(ctx context.Context, sel ast.SelectionSet, obj *AssetEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, assetEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AssetEvent") - case "type": - out.Values[i] = ec._AssetEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "asset": - out.Values[i] = ec._AssetEvent_asset(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var assetGroupImplementors = []string{"AssetGroup"} - -func (ec *executionContext) _AssetGroup(ctx context.Context, sel ast.SelectionSet, obj *AssetGroup) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, assetGroupImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AssetGroup") - case "name": - out.Values[i] = ec._AssetGroup_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._AssetGroup_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "groupName": - out.Values[i] = ec._AssetGroup_groupName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "assets": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._AssetGroup_assets(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "displayName": - out.Values[i] = ec._AssetGroup_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "description": - out.Values[i] = ec._AssetGroup_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "status": - out.Values[i] = ec._AssetGroup_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var assetGroupEventImplementors = []string{"AssetGroupEvent"} - -func (ec *executionContext) _AssetGroupEvent(ctx context.Context, sel ast.SelectionSet, obj *AssetGroupEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, assetGroupEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AssetGroupEvent") - case "type": - out.Values[i] = ec._AssetGroupEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "assetGroup": - out.Values[i] = ec._AssetGroupEvent_assetGroup(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var assetGroupStatusImplementors = []string{"AssetGroupStatus"} - -func (ec *executionContext) _AssetGroupStatus(ctx context.Context, sel ast.SelectionSet, obj *AssetGroupStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, assetGroupStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AssetGroupStatus") - case "phase": - out.Values[i] = ec._AssetGroupStatus_phase(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._AssetGroupStatus_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._AssetGroupStatus_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var assetStatusImplementors = []string{"AssetStatus"} - -func (ec *executionContext) _AssetStatus(ctx context.Context, sel ast.SelectionSet, obj *AssetStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, assetStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AssetStatus") - case "phase": - out.Values[i] = ec._AssetStatus_phase(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._AssetStatus_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._AssetStatus_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var backendModuleImplementors = []string{"BackendModule"} - -func (ec *executionContext) _BackendModule(ctx context.Context, sel ast.SelectionSet, obj *BackendModule) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, backendModuleImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("BackendModule") - case "name": - out.Values[i] = ec._BackendModule_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var bebFilterImplementors = []string{"BebFilter"} - -func (ec *executionContext) _BebFilter(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.BebFilter) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, bebFilterImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("BebFilter") - case "eventSource": - out.Values[i] = ec._BebFilter_eventSource(ctx, field, obj) - case "eventType": - out.Values[i] = ec._BebFilter_eventType(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var bebFiltersImplementors = []string{"BebFilters"} - -func (ec *executionContext) _BebFilters(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.BebFilters) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, bebFiltersImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("BebFilters") - case "dialect": - out.Values[i] = ec._BebFilters_dialect(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "filters": - out.Values[i] = ec._BebFilters_filters(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var bindableResourcesOutputItemImplementors = []string{"BindableResourcesOutputItem"} - -func (ec *executionContext) _BindableResourcesOutputItem(ctx context.Context, sel ast.SelectionSet, obj *BindableResourcesOutputItem) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, bindableResourcesOutputItemImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("BindableResourcesOutputItem") - case "kind": - out.Values[i] = ec._BindableResourcesOutputItem_kind(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "displayName": - out.Values[i] = ec._BindableResourcesOutputItem_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "resources": - out.Values[i] = ec._BindableResourcesOutputItem_resources(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterAddonsConfigurationEventImplementors = []string{"ClusterAddonsConfigurationEvent"} - -func (ec *executionContext) _ClusterAddonsConfigurationEvent(ctx context.Context, sel ast.SelectionSet, obj *ClusterAddonsConfigurationEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterAddonsConfigurationEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterAddonsConfigurationEvent") - case "type": - out.Values[i] = ec._ClusterAddonsConfigurationEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "addonsConfiguration": - out.Values[i] = ec._ClusterAddonsConfigurationEvent_addonsConfiguration(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterAssetImplementors = []string{"ClusterAsset"} - -func (ec *executionContext) _ClusterAsset(ctx context.Context, sel ast.SelectionSet, obj *ClusterAsset) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterAssetImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterAsset") - case "name": - out.Values[i] = ec._ClusterAsset_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "parameters": - out.Values[i] = ec._ClusterAsset_parameters(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "type": - out.Values[i] = ec._ClusterAsset_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "files": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ClusterAsset_files(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "status": - out.Values[i] = ec._ClusterAsset_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "displayName": - out.Values[i] = ec._ClusterAsset_displayName(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterAssetEventImplementors = []string{"ClusterAssetEvent"} - -func (ec *executionContext) _ClusterAssetEvent(ctx context.Context, sel ast.SelectionSet, obj *ClusterAssetEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterAssetEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterAssetEvent") - case "type": - out.Values[i] = ec._ClusterAssetEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "clusterAsset": - out.Values[i] = ec._ClusterAssetEvent_clusterAsset(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterAssetGroupImplementors = []string{"ClusterAssetGroup"} - -func (ec *executionContext) _ClusterAssetGroup(ctx context.Context, sel ast.SelectionSet, obj *ClusterAssetGroup) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterAssetGroupImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterAssetGroup") - case "name": - out.Values[i] = ec._ClusterAssetGroup_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "groupName": - out.Values[i] = ec._ClusterAssetGroup_groupName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "assets": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ClusterAssetGroup_assets(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "displayName": - out.Values[i] = ec._ClusterAssetGroup_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "description": - out.Values[i] = ec._ClusterAssetGroup_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "status": - out.Values[i] = ec._ClusterAssetGroup_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterAssetGroupEventImplementors = []string{"ClusterAssetGroupEvent"} - -func (ec *executionContext) _ClusterAssetGroupEvent(ctx context.Context, sel ast.SelectionSet, obj *ClusterAssetGroupEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterAssetGroupEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterAssetGroupEvent") - case "type": - out.Values[i] = ec._ClusterAssetGroupEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "clusterAssetGroup": - out.Values[i] = ec._ClusterAssetGroupEvent_clusterAssetGroup(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterMicroFrontendImplementors = []string{"ClusterMicroFrontend"} - -func (ec *executionContext) _ClusterMicroFrontend(ctx context.Context, sel ast.SelectionSet, obj *ClusterMicroFrontend) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterMicroFrontendImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterMicroFrontend") - case "name": - out.Values[i] = ec._ClusterMicroFrontend_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "version": - out.Values[i] = ec._ClusterMicroFrontend_version(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "category": - out.Values[i] = ec._ClusterMicroFrontend_category(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "viewBaseUrl": - out.Values[i] = ec._ClusterMicroFrontend_viewBaseUrl(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "placement": - out.Values[i] = ec._ClusterMicroFrontend_placement(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "preloadUrl": - out.Values[i] = ec._ClusterMicroFrontend_preloadUrl(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "navigationNodes": - out.Values[i] = ec._ClusterMicroFrontend_navigationNodes(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterRoleImplementors = []string{"ClusterRole"} - -func (ec *executionContext) _ClusterRole(ctx context.Context, sel ast.SelectionSet, obj *v12.ClusterRole) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterRoleImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterRole") - case "name": - out.Values[i] = ec._ClusterRole_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "rules": - out.Values[i] = ec._ClusterRole_rules(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterRoleBindingImplementors = []string{"ClusterRoleBinding"} - -func (ec *executionContext) _ClusterRoleBinding(ctx context.Context, sel ast.SelectionSet, obj *v12.ClusterRoleBinding) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterRoleBindingImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterRoleBinding") - case "name": - out.Values[i] = ec._ClusterRoleBinding_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "roleRef": - out.Values[i] = ec._ClusterRoleBinding_roleRef(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterRoleBindingEventImplementors = []string{"ClusterRoleBindingEvent"} - -func (ec *executionContext) _ClusterRoleBindingEvent(ctx context.Context, sel ast.SelectionSet, obj *ClusterRoleBindingEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterRoleBindingEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterRoleBindingEvent") - case "type": - out.Values[i] = ec._ClusterRoleBindingEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "clusterRoleBinding": - out.Values[i] = ec._ClusterRoleBindingEvent_clusterRoleBinding(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterServiceBrokerImplementors = []string{"ClusterServiceBroker"} - -func (ec *executionContext) _ClusterServiceBroker(ctx context.Context, sel ast.SelectionSet, obj *ClusterServiceBroker) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterServiceBrokerImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterServiceBroker") - case "name": - out.Values[i] = ec._ClusterServiceBroker_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._ClusterServiceBroker_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "creationTimestamp": - out.Values[i] = ec._ClusterServiceBroker_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "url": - out.Values[i] = ec._ClusterServiceBroker_url(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._ClusterServiceBroker_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterServiceBrokerEventImplementors = []string{"ClusterServiceBrokerEvent"} - -func (ec *executionContext) _ClusterServiceBrokerEvent(ctx context.Context, sel ast.SelectionSet, obj *ClusterServiceBrokerEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterServiceBrokerEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterServiceBrokerEvent") - case "type": - out.Values[i] = ec._ClusterServiceBrokerEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "clusterServiceBroker": - out.Values[i] = ec._ClusterServiceBrokerEvent_clusterServiceBroker(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterServiceClassImplementors = []string{"ClusterServiceClass"} - -func (ec *executionContext) _ClusterServiceClass(ctx context.Context, sel ast.SelectionSet, obj *ClusterServiceClass) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterServiceClassImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterServiceClass") - case "name": - out.Values[i] = ec._ClusterServiceClass_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "externalName": - out.Values[i] = ec._ClusterServiceClass_externalName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "displayName": - out.Values[i] = ec._ClusterServiceClass_displayName(ctx, field, obj) - case "creationTimestamp": - out.Values[i] = ec._ClusterServiceClass_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "description": - out.Values[i] = ec._ClusterServiceClass_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "longDescription": - out.Values[i] = ec._ClusterServiceClass_longDescription(ctx, field, obj) - case "imageUrl": - out.Values[i] = ec._ClusterServiceClass_imageUrl(ctx, field, obj) - case "documentationUrl": - out.Values[i] = ec._ClusterServiceClass_documentationUrl(ctx, field, obj) - case "supportUrl": - out.Values[i] = ec._ClusterServiceClass_supportUrl(ctx, field, obj) - case "providerDisplayName": - out.Values[i] = ec._ClusterServiceClass_providerDisplayName(ctx, field, obj) - case "tags": - out.Values[i] = ec._ClusterServiceClass_tags(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "labels": - out.Values[i] = ec._ClusterServiceClass_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "plans": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ClusterServiceClass_plans(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "activated": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ClusterServiceClass_activated(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "instances": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ClusterServiceClass_instances(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterAssetGroup": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ClusterServiceClass_clusterAssetGroup(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var clusterServicePlanImplementors = []string{"ClusterServicePlan"} - -func (ec *executionContext) _ClusterServicePlan(ctx context.Context, sel ast.SelectionSet, obj *ClusterServicePlan) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, clusterServicePlanImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ClusterServicePlan") - case "name": - out.Values[i] = ec._ClusterServicePlan_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "displayName": - out.Values[i] = ec._ClusterServicePlan_displayName(ctx, field, obj) - case "externalName": - out.Values[i] = ec._ClusterServicePlan_externalName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "description": - out.Values[i] = ec._ClusterServicePlan_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "relatedClusterServiceClassName": - out.Values[i] = ec._ClusterServicePlan_relatedClusterServiceClassName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "instanceCreateParameterSchema": - out.Values[i] = ec._ClusterServicePlan_instanceCreateParameterSchema(ctx, field, obj) - case "bindingCreateParameterSchema": - out.Values[i] = ec._ClusterServicePlan_bindingCreateParameterSchema(ctx, field, obj) - case "clusterAssetGroup": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ClusterServicePlan_clusterAssetGroup(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var conditionImplementors = []string{"Condition"} - -func (ec *executionContext) _Condition(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.Condition) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, conditionImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Condition") - case "message": - out.Values[i] = ec._Condition_message(ctx, field, obj) - case "reason": - out.Values[i] = ec._Condition_reason(ctx, field, obj) - case "status": - out.Values[i] = ec._Condition_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "type": - out.Values[i] = ec._Condition_type(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var configMapImplementors = []string{"ConfigMap"} - -func (ec *executionContext) _ConfigMap(ctx context.Context, sel ast.SelectionSet, obj *ConfigMap) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, configMapImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ConfigMap") - case "name": - out.Values[i] = ec._ConfigMap_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._ConfigMap_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "creationTimestamp": - out.Values[i] = ec._ConfigMap_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._ConfigMap_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "json": - out.Values[i] = ec._ConfigMap_json(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var configMapEventImplementors = []string{"ConfigMapEvent"} - -func (ec *executionContext) _ConfigMapEvent(ctx context.Context, sel ast.SelectionSet, obj *ConfigMapEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, configMapEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ConfigMapEvent") - case "type": - out.Values[i] = ec._ConfigMapEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "configMap": - out.Values[i] = ec._ConfigMapEvent_configMap(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var connectorServiceImplementors = []string{"ConnectorService"} - -func (ec *executionContext) _ConnectorService(ctx context.Context, sel ast.SelectionSet, obj *ConnectorService) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, connectorServiceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ConnectorService") - case "url": - out.Values[i] = ec._ConnectorService_url(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var containerImplementors = []string{"Container"} - -func (ec *executionContext) _Container(ctx context.Context, sel ast.SelectionSet, obj *Container) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, containerImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Container") - case "name": - out.Values[i] = ec._Container_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "image": - out.Values[i] = ec._Container_image(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var containerStateImplementors = []string{"ContainerState"} - -func (ec *executionContext) _ContainerState(ctx context.Context, sel ast.SelectionSet, obj *ContainerState) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, containerStateImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ContainerState") - case "state": - out.Values[i] = ec._ContainerState_state(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._ContainerState_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._ContainerState_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var createServiceBindingOutputImplementors = []string{"CreateServiceBindingOutput"} - -func (ec *executionContext) _CreateServiceBindingOutput(ctx context.Context, sel ast.SelectionSet, obj *CreateServiceBindingOutput) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, createServiceBindingOutputImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("CreateServiceBindingOutput") - case "name": - out.Values[i] = ec._CreateServiceBindingOutput_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "serviceInstanceName": - out.Values[i] = ec._CreateServiceBindingOutput_serviceInstanceName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._CreateServiceBindingOutput_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var deleteApplicationOutputImplementors = []string{"DeleteApplicationOutput"} - -func (ec *executionContext) _DeleteApplicationOutput(ctx context.Context, sel ast.SelectionSet, obj *DeleteApplicationOutput) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, deleteApplicationOutputImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("DeleteApplicationOutput") - case "name": - out.Values[i] = ec._DeleteApplicationOutput_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var deleteServiceBindingOutputImplementors = []string{"DeleteServiceBindingOutput"} - -func (ec *executionContext) _DeleteServiceBindingOutput(ctx context.Context, sel ast.SelectionSet, obj *DeleteServiceBindingOutput) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, deleteServiceBindingOutputImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("DeleteServiceBindingOutput") - case "name": - out.Values[i] = ec._DeleteServiceBindingOutput_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._DeleteServiceBindingOutput_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var deleteServiceBindingUsageOutputImplementors = []string{"DeleteServiceBindingUsageOutput"} - -func (ec *executionContext) _DeleteServiceBindingUsageOutput(ctx context.Context, sel ast.SelectionSet, obj *DeleteServiceBindingUsageOutput) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, deleteServiceBindingUsageOutputImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("DeleteServiceBindingUsageOutput") - case "name": - out.Values[i] = ec._DeleteServiceBindingUsageOutput_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._DeleteServiceBindingUsageOutput_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var deploymentImplementors = []string{"Deployment"} - -func (ec *executionContext) _Deployment(ctx context.Context, sel ast.SelectionSet, obj *Deployment) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, deploymentImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Deployment") - case "name": - out.Values[i] = ec._Deployment_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._Deployment_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "creationTimestamp": - out.Values[i] = ec._Deployment_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "status": - out.Values[i] = ec._Deployment_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "labels": - out.Values[i] = ec._Deployment_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "containers": - out.Values[i] = ec._Deployment_containers(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "boundServiceInstanceNames": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Deployment_boundServiceInstanceNames(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var deploymentConditionImplementors = []string{"DeploymentCondition"} - -func (ec *executionContext) _DeploymentCondition(ctx context.Context, sel ast.SelectionSet, obj *DeploymentCondition) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, deploymentConditionImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("DeploymentCondition") - case "status": - out.Values[i] = ec._DeploymentCondition_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "type": - out.Values[i] = ec._DeploymentCondition_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "lastTransitionTimestamp": - out.Values[i] = ec._DeploymentCondition_lastTransitionTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "lastUpdateTimestamp": - out.Values[i] = ec._DeploymentCondition_lastUpdateTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._DeploymentCondition_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._DeploymentCondition_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var deploymentEventImplementors = []string{"DeploymentEvent"} - -func (ec *executionContext) _DeploymentEvent(ctx context.Context, sel ast.SelectionSet, obj *DeploymentEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, deploymentEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("DeploymentEvent") - case "type": - out.Values[i] = ec._DeploymentEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "deployment": - out.Values[i] = ec._DeploymentEvent_deployment(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var deploymentStatusImplementors = []string{"DeploymentStatus"} - -func (ec *executionContext) _DeploymentStatus(ctx context.Context, sel ast.SelectionSet, obj *DeploymentStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, deploymentStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("DeploymentStatus") - case "replicas": - out.Values[i] = ec._DeploymentStatus_replicas(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "updatedReplicas": - out.Values[i] = ec._DeploymentStatus_updatedReplicas(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "readyReplicas": - out.Values[i] = ec._DeploymentStatus_readyReplicas(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "availableReplicas": - out.Values[i] = ec._DeploymentStatus_availableReplicas(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "conditions": - out.Values[i] = ec._DeploymentStatus_conditions(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var emsSubscriptionStatusImplementors = []string{"EmsSubscriptionStatus"} - -func (ec *executionContext) _EmsSubscriptionStatus(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.EmsSubscriptionStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, emsSubscriptionStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EmsSubscriptionStatus") - case "lastFailedDelivery": - out.Values[i] = ec._EmsSubscriptionStatus_lastFailedDelivery(ctx, field, obj) - case "lastFailedDeliveryReason": - out.Values[i] = ec._EmsSubscriptionStatus_lastFailedDeliveryReason(ctx, field, obj) - case "lastSuccessfulDelivery": - out.Values[i] = ec._EmsSubscriptionStatus_lastSuccessfulDelivery(ctx, field, obj) - case "subscriptionStatus": - out.Values[i] = ec._EmsSubscriptionStatus_subscriptionStatus(ctx, field, obj) - case "subscriptionStatusReason": - out.Values[i] = ec._EmsSubscriptionStatus_subscriptionStatusReason(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var enabledApplicationServiceImplementors = []string{"EnabledApplicationService"} - -func (ec *executionContext) _EnabledApplicationService(ctx context.Context, sel ast.SelectionSet, obj *EnabledApplicationService) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, enabledApplicationServiceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EnabledApplicationService") - case "id": - out.Values[i] = ec._EnabledApplicationService_id(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "displayName": - out.Values[i] = ec._EnabledApplicationService_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "exist": - out.Values[i] = ec._EnabledApplicationService_exist(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var envPrefixImplementors = []string{"EnvPrefix"} - -func (ec *executionContext) _EnvPrefix(ctx context.Context, sel ast.SelectionSet, obj *EnvPrefix) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, envPrefixImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EnvPrefix") - case "name": - out.Values[i] = ec._EnvPrefix_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var eventActivationImplementors = []string{"EventActivation"} - -func (ec *executionContext) _EventActivation(ctx context.Context, sel ast.SelectionSet, obj *EventActivation) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, eventActivationImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EventActivation") - case "name": - out.Values[i] = ec._EventActivation_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "displayName": - out.Values[i] = ec._EventActivation_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "sourceId": - out.Values[i] = ec._EventActivation_sourceId(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "events": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._EventActivation_events(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var eventActivationEventImplementors = []string{"EventActivationEvent"} - -func (ec *executionContext) _EventActivationEvent(ctx context.Context, sel ast.SelectionSet, obj *EventActivationEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, eventActivationEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EventActivationEvent") - case "eventType": - out.Values[i] = ec._EventActivationEvent_eventType(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "version": - out.Values[i] = ec._EventActivationEvent_version(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "description": - out.Values[i] = ec._EventActivationEvent_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "schema": - out.Values[i] = ec._EventActivationEvent_schema(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var eventSubscriptionImplementors = []string{"EventSubscription"} - -func (ec *executionContext) _EventSubscription(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.Subscription) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, eventSubscriptionImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EventSubscription") - case "name": - out.Values[i] = ec._EventSubscription_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._EventSubscription_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "spec": - out.Values[i] = ec._EventSubscription_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._EventSubscription_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var eventSubscriptionSpecImplementors = []string{"EventSubscriptionSpec"} - -func (ec *executionContext) _EventSubscriptionSpec(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.SubscriptionSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, eventSubscriptionSpecImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EventSubscriptionSpec") - case "filter": - out.Values[i] = ec._EventSubscriptionSpec_filter(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "id": - out.Values[i] = ec._EventSubscriptionSpec_id(ctx, field, obj) - case "protocol": - out.Values[i] = ec._EventSubscriptionSpec_protocol(ctx, field, obj) - case "protocolSettings": - out.Values[i] = ec._EventSubscriptionSpec_protocolSettings(ctx, field, obj) - case "sink": - out.Values[i] = ec._EventSubscriptionSpec_sink(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var eventSubscriptionStatusImplementors = []string{"EventSubscriptionStatus"} - -func (ec *executionContext) _EventSubscriptionStatus(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.SubscriptionStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, eventSubscriptionStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("EventSubscriptionStatus") - case "apiRuleName": - out.Values[i] = ec._EventSubscriptionStatus_apiRuleName(ctx, field, obj) - case "conditions": - out.Values[i] = ec._EventSubscriptionStatus_conditions(ctx, field, obj) - case "emsSubscriptionStatus": - out.Values[i] = ec._EventSubscriptionStatus_emsSubscriptionStatus(ctx, field, obj) - case "emshash": - out.Values[i] = ec._EventSubscriptionStatus_emshash(ctx, field, obj) - case "ev2hash": - out.Values[i] = ec._EventSubscriptionStatus_ev2hash(ctx, field, obj) - case "externalSink": - out.Values[i] = ec._EventSubscriptionStatus_externalSink(ctx, field, obj) - case "failedActivation": - out.Values[i] = ec._EventSubscriptionStatus_failedActivation(ctx, field, obj) - case "ready": - out.Values[i] = ec._EventSubscriptionStatus_ready(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var fileImplementors = []string{"File"} - -func (ec *executionContext) _File(ctx context.Context, sel ast.SelectionSet, obj *File) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, fileImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("File") - case "url": - out.Values[i] = ec._File_url(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "metadata": - out.Values[i] = ec._File_metadata(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var filterImplementors = []string{"Filter"} - -func (ec *executionContext) _Filter(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.Filter) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, filterImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Filter") - case "property": - out.Values[i] = ec._Filter_property(ctx, field, obj) - case "type": - out.Values[i] = ec._Filter_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "value": - out.Values[i] = ec._Filter_value(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionImplementors = []string{"Function"} - -func (ec *executionContext) _Function(ctx context.Context, sel ast.SelectionSet, obj *Function) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Function") - case "name": - out.Values[i] = ec._Function_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._Function_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "UID": - out.Values[i] = ec._Function_UID(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._Function_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "source": - out.Values[i] = ec._Function_source(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "dependencies": - out.Values[i] = ec._Function_dependencies(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "env": - out.Values[i] = ec._Function_env(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "replicas": - out.Values[i] = ec._Function_replicas(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "resources": - out.Values[i] = ec._Function_resources(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "buildResources": - out.Values[i] = ec._Function_buildResources(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "runtime": - out.Values[i] = ec._Function_runtime(ctx, field, obj) - case "sourceType": - out.Values[i] = ec._Function_sourceType(ctx, field, obj) - case "baseDir": - out.Values[i] = ec._Function_baseDir(ctx, field, obj) - case "reference": - out.Values[i] = ec._Function_reference(ctx, field, obj) - case "status": - out.Values[i] = ec._Function_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionEnvImplementors = []string{"FunctionEnv"} - -func (ec *executionContext) _FunctionEnv(ctx context.Context, sel ast.SelectionSet, obj *FunctionEnv) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionEnvImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("FunctionEnv") - case "name": - out.Values[i] = ec._FunctionEnv_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "value": - out.Values[i] = ec._FunctionEnv_value(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "valueFrom": - out.Values[i] = ec._FunctionEnv_valueFrom(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionEnvValueFromImplementors = []string{"FunctionEnvValueFrom"} - -func (ec *executionContext) _FunctionEnvValueFrom(ctx context.Context, sel ast.SelectionSet, obj *FunctionEnvValueFrom) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionEnvValueFromImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("FunctionEnvValueFrom") - case "type": - out.Values[i] = ec._FunctionEnvValueFrom_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "name": - out.Values[i] = ec._FunctionEnvValueFrom_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "key": - out.Values[i] = ec._FunctionEnvValueFrom_key(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "optional": - out.Values[i] = ec._FunctionEnvValueFrom_optional(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionEventImplementors = []string{"FunctionEvent"} - -func (ec *executionContext) _FunctionEvent(ctx context.Context, sel ast.SelectionSet, obj *FunctionEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("FunctionEvent") - case "type": - out.Values[i] = ec._FunctionEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "function": - out.Values[i] = ec._FunctionEvent_function(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionMetadataImplementors = []string{"FunctionMetadata"} - -func (ec *executionContext) _FunctionMetadata(ctx context.Context, sel ast.SelectionSet, obj *FunctionMetadata) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionMetadataImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("FunctionMetadata") - case "name": - out.Values[i] = ec._FunctionMetadata_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._FunctionMetadata_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionReplicasImplementors = []string{"FunctionReplicas"} - -func (ec *executionContext) _FunctionReplicas(ctx context.Context, sel ast.SelectionSet, obj *FunctionReplicas) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionReplicasImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("FunctionReplicas") - case "min": - out.Values[i] = ec._FunctionReplicas_min(ctx, field, obj) - case "max": - out.Values[i] = ec._FunctionReplicas_max(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionResourcesImplementors = []string{"FunctionResources"} - -func (ec *executionContext) _FunctionResources(ctx context.Context, sel ast.SelectionSet, obj *FunctionResources) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionResourcesImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("FunctionResources") - case "limits": - out.Values[i] = ec._FunctionResources_limits(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "requests": - out.Values[i] = ec._FunctionResources_requests(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var functionStatusImplementors = []string{"FunctionStatus"} - -func (ec *executionContext) _FunctionStatus(ctx context.Context, sel ast.SelectionSet, obj *FunctionStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, functionStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("FunctionStatus") - case "phase": - out.Values[i] = ec._FunctionStatus_phase(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._FunctionStatus_reason(ctx, field, obj) - case "message": - out.Values[i] = ec._FunctionStatus_message(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var gitRepositoryImplementors = []string{"GitRepository"} - -func (ec *executionContext) _GitRepository(ctx context.Context, sel ast.SelectionSet, obj *v1alpha11.GitRepository) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, gitRepositoryImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("GitRepository") - case "name": - out.Values[i] = ec._GitRepository_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._GitRepository_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "spec": - out.Values[i] = ec._GitRepository_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var gitRepositorySpecImplementors = []string{"GitRepositorySpec"} - -func (ec *executionContext) _GitRepositorySpec(ctx context.Context, sel ast.SelectionSet, obj *v1alpha11.GitRepositorySpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, gitRepositorySpecImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("GitRepositorySpec") - case "url": - out.Values[i] = ec._GitRepositorySpec_url(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "auth": - out.Values[i] = ec._GitRepositorySpec_auth(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var limitRangeImplementors = []string{"LimitRange"} - -func (ec *executionContext) _LimitRange(ctx context.Context, sel ast.SelectionSet, obj *v11.LimitRange) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, limitRangeImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LimitRange") - case "name": - out.Values[i] = ec._LimitRange_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "spec": - out.Values[i] = ec._LimitRange_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "json": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._LimitRange_json(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var limitRangeItemImplementors = []string{"LimitRangeItem"} - -func (ec *executionContext) _LimitRangeItem(ctx context.Context, sel ast.SelectionSet, obj *v11.LimitRangeItem) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, limitRangeItemImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LimitRangeItem") - case "type": - out.Values[i] = ec._LimitRangeItem_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "max": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._LimitRangeItem_max(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "default": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._LimitRangeItem_default(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "defaultRequest": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._LimitRangeItem_defaultRequest(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var limitRangeSpecImplementors = []string{"LimitRangeSpec"} - -func (ec *executionContext) _LimitRangeSpec(ctx context.Context, sel ast.SelectionSet, obj *v11.LimitRangeSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, limitRangeSpecImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LimitRangeSpec") - case "limits": - out.Values[i] = ec._LimitRangeSpec_limits(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var loadBalancerIngressImplementors = []string{"LoadBalancerIngress"} - -func (ec *executionContext) _LoadBalancerIngress(ctx context.Context, sel ast.SelectionSet, obj *LoadBalancerIngress) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, loadBalancerIngressImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LoadBalancerIngress") - case "ip": - out.Values[i] = ec._LoadBalancerIngress_ip(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "hostName": - out.Values[i] = ec._LoadBalancerIngress_hostName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var loadBalancerStatusImplementors = []string{"LoadBalancerStatus"} - -func (ec *executionContext) _LoadBalancerStatus(ctx context.Context, sel ast.SelectionSet, obj *LoadBalancerStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, loadBalancerStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LoadBalancerStatus") - case "ingress": - out.Values[i] = ec._LoadBalancerStatus_ingress(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var localObjectReferenceImplementors = []string{"LocalObjectReference"} - -func (ec *executionContext) _LocalObjectReference(ctx context.Context, sel ast.SelectionSet, obj *LocalObjectReference) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, localObjectReferenceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LocalObjectReference") - case "kind": - out.Values[i] = ec._LocalObjectReference_kind(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "name": - out.Values[i] = ec._LocalObjectReference_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var microFrontendImplementors = []string{"MicroFrontend"} - -func (ec *executionContext) _MicroFrontend(ctx context.Context, sel ast.SelectionSet, obj *MicroFrontend) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, microFrontendImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("MicroFrontend") - case "name": - out.Values[i] = ec._MicroFrontend_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "version": - out.Values[i] = ec._MicroFrontend_version(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "category": - out.Values[i] = ec._MicroFrontend_category(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "viewBaseUrl": - out.Values[i] = ec._MicroFrontend_viewBaseUrl(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "navigationNodes": - out.Values[i] = ec._MicroFrontend_navigationNodes(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var mutationImplementors = []string{"Mutation"} - -func (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors) - - ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ - Object: "Mutation", - }) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Mutation") - case "createResource": - out.Values[i] = ec._Mutation_createResource(ctx, field) - case "createServiceInstance": - out.Values[i] = ec._Mutation_createServiceInstance(ctx, field) - case "deleteServiceInstance": - out.Values[i] = ec._Mutation_deleteServiceInstance(ctx, field) - case "createServiceBinding": - out.Values[i] = ec._Mutation_createServiceBinding(ctx, field) - case "deleteServiceBinding": - out.Values[i] = ec._Mutation_deleteServiceBinding(ctx, field) - case "createServiceBindingUsage": - out.Values[i] = ec._Mutation_createServiceBindingUsage(ctx, field) - case "deleteServiceBindingUsage": - out.Values[i] = ec._Mutation_deleteServiceBindingUsage(ctx, field) - case "deleteServiceBindingUsages": - out.Values[i] = ec._Mutation_deleteServiceBindingUsages(ctx, field) - case "createClusterAddonsConfiguration": - out.Values[i] = ec._Mutation_createClusterAddonsConfiguration(ctx, field) - case "updateClusterAddonsConfiguration": - out.Values[i] = ec._Mutation_updateClusterAddonsConfiguration(ctx, field) - case "deleteClusterAddonsConfiguration": - out.Values[i] = ec._Mutation_deleteClusterAddonsConfiguration(ctx, field) - case "addClusterAddonsConfigurationURLs": - out.Values[i] = ec._Mutation_addClusterAddonsConfigurationURLs(ctx, field) - case "removeClusterAddonsConfigurationURLs": - out.Values[i] = ec._Mutation_removeClusterAddonsConfigurationURLs(ctx, field) - case "addClusterAddonsConfigurationRepository": - out.Values[i] = ec._Mutation_addClusterAddonsConfigurationRepository(ctx, field) - case "removeClusterAddonsConfigurationRepository": - out.Values[i] = ec._Mutation_removeClusterAddonsConfigurationRepository(ctx, field) - case "resyncClusterAddonsConfiguration": - out.Values[i] = ec._Mutation_resyncClusterAddonsConfiguration(ctx, field) - case "createAddonsConfiguration": - out.Values[i] = ec._Mutation_createAddonsConfiguration(ctx, field) - case "updateAddonsConfiguration": - out.Values[i] = ec._Mutation_updateAddonsConfiguration(ctx, field) - case "deleteAddonsConfiguration": - out.Values[i] = ec._Mutation_deleteAddonsConfiguration(ctx, field) - case "addAddonsConfigurationURLs": - out.Values[i] = ec._Mutation_addAddonsConfigurationURLs(ctx, field) - case "removeAddonsConfigurationURLs": - out.Values[i] = ec._Mutation_removeAddonsConfigurationURLs(ctx, field) - case "addAddonsConfigurationRepository": - out.Values[i] = ec._Mutation_addAddonsConfigurationRepository(ctx, field) - case "removeAddonsConfigurationRepository": - out.Values[i] = ec._Mutation_removeAddonsConfigurationRepository(ctx, field) - case "resyncAddonsConfiguration": - out.Values[i] = ec._Mutation_resyncAddonsConfiguration(ctx, field) - case "createApplication": - out.Values[i] = ec._Mutation_createApplication(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "updateApplication": - out.Values[i] = ec._Mutation_updateApplication(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "deleteApplication": - out.Values[i] = ec._Mutation_deleteApplication(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "enableApplication": - out.Values[i] = ec._Mutation_enableApplication(ctx, field) - case "overloadApplication": - out.Values[i] = ec._Mutation_overloadApplication(ctx, field) - case "disableApplication": - out.Values[i] = ec._Mutation_disableApplication(ctx, field) - case "updatePod": - out.Values[i] = ec._Mutation_updatePod(ctx, field) - case "deletePod": - out.Values[i] = ec._Mutation_deletePod(ctx, field) - case "updateSecret": - out.Values[i] = ec._Mutation_updateSecret(ctx, field) - case "deleteSecret": - out.Values[i] = ec._Mutation_deleteSecret(ctx, field) - case "updateReplicaSet": - out.Values[i] = ec._Mutation_updateReplicaSet(ctx, field) - case "deleteReplicaSet": - out.Values[i] = ec._Mutation_deleteReplicaSet(ctx, field) - case "updateConfigMap": - out.Values[i] = ec._Mutation_updateConfigMap(ctx, field) - case "deleteConfigMap": - out.Values[i] = ec._Mutation_deleteConfigMap(ctx, field) - case "updateService": - out.Values[i] = ec._Mutation_updateService(ctx, field) - case "deleteService": - out.Values[i] = ec._Mutation_deleteService(ctx, field) - case "createNamespace": - out.Values[i] = ec._Mutation_createNamespace(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "updateNamespace": - out.Values[i] = ec._Mutation_updateNamespace(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "deleteNamespace": - out.Values[i] = ec._Mutation_deleteNamespace(ctx, field) - case "createFunction": - out.Values[i] = ec._Mutation_createFunction(ctx, field) - case "updateFunction": - out.Values[i] = ec._Mutation_updateFunction(ctx, field) - case "deleteFunction": - out.Values[i] = ec._Mutation_deleteFunction(ctx, field) - case "deleteManyFunctions": - out.Values[i] = ec._Mutation_deleteManyFunctions(ctx, field) - case "createAPIRule": - out.Values[i] = ec._Mutation_createAPIRule(ctx, field) - case "updateAPIRule": - out.Values[i] = ec._Mutation_updateAPIRule(ctx, field) - case "deleteAPIRule": - out.Values[i] = ec._Mutation_deleteAPIRule(ctx, field) - case "createSubscription": - out.Values[i] = ec._Mutation_createSubscription(ctx, field) - case "updateSubscription": - out.Values[i] = ec._Mutation_updateSubscription(ctx, field) - case "deleteSubscription": - out.Values[i] = ec._Mutation_deleteSubscription(ctx, field) - case "createTrigger": - out.Values[i] = ec._Mutation_createTrigger(ctx, field) - case "createManyTriggers": - out.Values[i] = ec._Mutation_createManyTriggers(ctx, field) - case "deleteTrigger": - out.Values[i] = ec._Mutation_deleteTrigger(ctx, field) - case "deleteManyTriggers": - out.Values[i] = ec._Mutation_deleteManyTriggers(ctx, field) - case "createLimitRange": - out.Values[i] = ec._Mutation_createLimitRange(ctx, field) - case "updateLimitRange": - out.Values[i] = ec._Mutation_updateLimitRange(ctx, field) - case "createResourceQuota": - out.Values[i] = ec._Mutation_createResourceQuota(ctx, field) - case "updateResourceQuota": - out.Values[i] = ec._Mutation_updateResourceQuota(ctx, field) - case "createOAuth2Client": - out.Values[i] = ec._Mutation_createOAuth2Client(ctx, field) - case "updateOAuth2Client": - out.Values[i] = ec._Mutation_updateOAuth2Client(ctx, field) - case "deleteOAuth2Client": - out.Values[i] = ec._Mutation_deleteOAuth2Client(ctx, field) - case "createRoleBinding": - out.Values[i] = ec._Mutation_createRoleBinding(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "deleteRoleBinding": - out.Values[i] = ec._Mutation_deleteRoleBinding(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "createClusterRoleBinding": - out.Values[i] = ec._Mutation_createClusterRoleBinding(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "deleteClusterRoleBinding": - out.Values[i] = ec._Mutation_deleteClusterRoleBinding(ctx, field) - if out.Values[i] == graphql.Null { - invalids++ - } - case "createGitRepository": - out.Values[i] = ec._Mutation_createGitRepository(ctx, field) - case "updateGitRepository": - out.Values[i] = ec._Mutation_updateGitRepository(ctx, field) - case "deleteGitRepository": - out.Values[i] = ec._Mutation_deleteGitRepository(ctx, field) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var namespaceImplementors = []string{"Namespace"} - -func (ec *executionContext) _Namespace(ctx context.Context, sel ast.SelectionSet, obj *Namespace) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, namespaceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Namespace") - case "name": - out.Values[i] = ec._Namespace_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "labels": - out.Values[i] = ec._Namespace_labels(ctx, field, obj) - case "status": - out.Values[i] = ec._Namespace_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "isSystemNamespace": - out.Values[i] = ec._Namespace_isSystemNamespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "pods": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Namespace_pods(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "deployments": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Namespace_deployments(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "applications": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Namespace_applications(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var namespaceEventImplementors = []string{"NamespaceEvent"} - -func (ec *executionContext) _NamespaceEvent(ctx context.Context, sel ast.SelectionSet, obj *NamespaceEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, namespaceEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("NamespaceEvent") - case "type": - out.Values[i] = ec._NamespaceEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._NamespaceEvent_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var namespaceListItemImplementors = []string{"NamespaceListItem"} - -func (ec *executionContext) _NamespaceListItem(ctx context.Context, sel ast.SelectionSet, obj *NamespaceListItem) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, namespaceListItemImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("NamespaceListItem") - case "name": - out.Values[i] = ec._NamespaceListItem_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "labels": - out.Values[i] = ec._NamespaceListItem_labels(ctx, field, obj) - case "status": - out.Values[i] = ec._NamespaceListItem_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "isSystemNamespace": - out.Values[i] = ec._NamespaceListItem_isSystemNamespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "podsCount": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._NamespaceListItem_podsCount(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "healthyPodsCount": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._NamespaceListItem_healthyPodsCount(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "applicationsCount": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._NamespaceListItem_applicationsCount(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var namespaceMutationOutputImplementors = []string{"NamespaceMutationOutput"} - -func (ec *executionContext) _NamespaceMutationOutput(ctx context.Context, sel ast.SelectionSet, obj *NamespaceMutationOutput) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, namespaceMutationOutputImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("NamespaceMutationOutput") - case "name": - out.Values[i] = ec._NamespaceMutationOutput_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._NamespaceMutationOutput_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var navigationNodeImplementors = []string{"NavigationNode"} - -func (ec *executionContext) _NavigationNode(ctx context.Context, sel ast.SelectionSet, obj *NavigationNode) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, navigationNodeImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("NavigationNode") - case "label": - out.Values[i] = ec._NavigationNode_label(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "navigationPath": - out.Values[i] = ec._NavigationNode_navigationPath(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "viewUrl": - out.Values[i] = ec._NavigationNode_viewUrl(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "showInNavigation": - out.Values[i] = ec._NavigationNode_showInNavigation(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "order": - out.Values[i] = ec._NavigationNode_order(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "settings": - out.Values[i] = ec._NavigationNode_settings(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "externalLink": - out.Values[i] = ec._NavigationNode_externalLink(ctx, field, obj) - case "requiredPermissions": - out.Values[i] = ec._NavigationNode_requiredPermissions(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var oAuth2ClientImplementors = []string{"OAuth2Client"} - -func (ec *executionContext) _OAuth2Client(ctx context.Context, sel ast.SelectionSet, obj *v1alpha12.OAuth2Client) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, oAuth2ClientImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("OAuth2Client") - case "namespace": - out.Values[i] = ec._OAuth2Client_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "name": - out.Values[i] = ec._OAuth2Client_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "generation": - out.Values[i] = ec._OAuth2Client_generation(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "error": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._OAuth2Client_error(ctx, field, obj) - return res - }) - case "spec": - out.Values[i] = ec._OAuth2Client_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var oAuth2ClientErrorImplementors = []string{"OAuth2ClientError"} - -func (ec *executionContext) _OAuth2ClientError(ctx context.Context, sel ast.SelectionSet, obj *v1alpha12.ReconciliationError) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, oAuth2ClientErrorImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("OAuth2ClientError") - case "code": - out.Values[i] = ec._OAuth2ClientError_code(ctx, field, obj) - case "description": - out.Values[i] = ec._OAuth2ClientError_description(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var oAuth2ClientEventImplementors = []string{"OAuth2ClientEvent"} - -func (ec *executionContext) _OAuth2ClientEvent(ctx context.Context, sel ast.SelectionSet, obj *OAuth2ClientEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, oAuth2ClientEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("OAuth2ClientEvent") - case "type": - out.Values[i] = ec._OAuth2ClientEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "client": - out.Values[i] = ec._OAuth2ClientEvent_client(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var oAuth2ClientSpecImplementors = []string{"OAuth2ClientSpec"} - -func (ec *executionContext) _OAuth2ClientSpec(ctx context.Context, sel ast.SelectionSet, obj *v1alpha12.OAuth2ClientSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, oAuth2ClientSpecImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("OAuth2ClientSpec") - case "grantTypes": - out.Values[i] = ec._OAuth2ClientSpec_grantTypes(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "responseTypes": - out.Values[i] = ec._OAuth2ClientSpec_responseTypes(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "scope": - out.Values[i] = ec._OAuth2ClientSpec_scope(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "secretName": - out.Values[i] = ec._OAuth2ClientSpec_secretName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var ownerReferenceImplementors = []string{"OwnerReference"} - -func (ec *executionContext) _OwnerReference(ctx context.Context, sel ast.SelectionSet, obj *v1.OwnerReference) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, ownerReferenceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("OwnerReference") - case "apiVersion": - out.Values[i] = ec._OwnerReference_apiVersion(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "blockOwnerDeletion": - out.Values[i] = ec._OwnerReference_blockOwnerDeletion(ctx, field, obj) - case "controller": - out.Values[i] = ec._OwnerReference_controller(ctx, field, obj) - case "kind": - out.Values[i] = ec._OwnerReference_kind(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "name": - out.Values[i] = ec._OwnerReference_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "UID": - out.Values[i] = ec._OwnerReference_UID(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var podImplementors = []string{"Pod"} - -func (ec *executionContext) _Pod(ctx context.Context, sel ast.SelectionSet, obj *Pod) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, podImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Pod") - case "name": - out.Values[i] = ec._Pod_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "nodeName": - out.Values[i] = ec._Pod_nodeName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._Pod_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "restartCount": - out.Values[i] = ec._Pod_restartCount(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "creationTimestamp": - out.Values[i] = ec._Pod_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._Pod_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._Pod_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "containerStates": - out.Values[i] = ec._Pod_containerStates(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "json": - out.Values[i] = ec._Pod_json(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var podEventImplementors = []string{"PodEvent"} - -func (ec *executionContext) _PodEvent(ctx context.Context, sel ast.SelectionSet, obj *PodEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, podEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("PodEvent") - case "type": - out.Values[i] = ec._PodEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "pod": - out.Values[i] = ec._PodEvent_pod(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var policyRuleImplementors = []string{"PolicyRule"} - -func (ec *executionContext) _PolicyRule(ctx context.Context, sel ast.SelectionSet, obj *v12.PolicyRule) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, policyRuleImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("PolicyRule") - case "apiGroups": - out.Values[i] = ec._PolicyRule_apiGroups(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "resources": - out.Values[i] = ec._PolicyRule_resources(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "verbs": - out.Values[i] = ec._PolicyRule_verbs(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var protocolSettingsImplementors = []string{"ProtocolSettings"} - -func (ec *executionContext) _ProtocolSettings(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.ProtocolSettings) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, protocolSettingsImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ProtocolSettings") - case "contentMode": - out.Values[i] = ec._ProtocolSettings_contentMode(ctx, field, obj) - case "exemptHandshake": - out.Values[i] = ec._ProtocolSettings_exemptHandshake(ctx, field, obj) - case "qos": - out.Values[i] = ec._ProtocolSettings_qos(ctx, field, obj) - case "webhookAuth": - out.Values[i] = ec._ProtocolSettings_webhookAuth(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var queryImplementors = []string{"Query"} - -func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors) - - ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ - Object: "Query", - }) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Query") - case "serviceInstance": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceInstance(ctx, field) - return res - }) - case "serviceInstances": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceInstances(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterServiceClasses": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterServiceClasses(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterServiceClass": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterServiceClass(ctx, field) - return res - }) - case "serviceClasses": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceClasses(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "serviceClass": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceClass(ctx, field) - return res - }) - case "clusterServiceBrokers": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterServiceBrokers(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterServiceBroker": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterServiceBroker(ctx, field) - return res - }) - case "serviceBrokers": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceBrokers(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "serviceBroker": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceBroker(ctx, field) - return res - }) - case "serviceBindingUsage": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceBindingUsage(ctx, field) - return res - }) - case "serviceBindingUsages": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceBindingUsages(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "serviceBinding": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_serviceBinding(ctx, field) - return res - }) - case "usageKinds": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_usageKinds(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterAddonsConfigurations": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterAddonsConfigurations(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "addonsConfigurations": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_addonsConfigurations(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "bindableResources": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_bindableResources(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "application": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_application(ctx, field) - return res - }) - case "applications": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_applications(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "connectorService": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_connectorService(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "namespaces": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_namespaces(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "namespace": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_namespace(ctx, field) - return res - }) - case "deployments": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_deployments(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "versionInfo": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_versionInfo(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "pod": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_pod(ctx, field) - return res - }) - case "pods": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_pods(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "service": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_service(ctx, field) - return res - }) - case "services": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_services(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "configMap": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_configMap(ctx, field) - return res - }) - case "configMaps": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_configMaps(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "replicaSet": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_replicaSet(ctx, field) - return res - }) - case "replicaSets": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_replicaSets(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "eventActivations": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_eventActivations(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "backendModules": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_backendModules(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "secret": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_secret(ctx, field) - return res - }) - case "secrets": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_secrets(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "microFrontends": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_microFrontends(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterMicroFrontends": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterMicroFrontends(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "selfSubjectRules": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_selfSubjectRules(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "function": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_function(ctx, field) - return res - }) - case "functions": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_functions(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "APIRules": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_APIRules(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "APIRule": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_APIRule(ctx, field) - return res - }) - case "eventSubscriptions": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_eventSubscriptions(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "triggers": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_triggers(ctx, field) - return res - }) - case "limitRanges": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_limitRanges(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "resourceQuotas": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_resourceQuotas(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "oAuth2Clients": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_oAuth2Clients(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "oAuth2Client": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_oAuth2Client(ctx, field) - return res - }) - case "roles": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_roles(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "role": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_role(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterRoles": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterRoles(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterRole": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterRole(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "roleBindings": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_roleBindings(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterRoleBindings": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_clusterRoleBindings(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "gitRepositories": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_gitRepositories(ctx, field) - return res - }) - case "gitRepository": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_gitRepository(ctx, field) - return res - }) - case "__type": - out.Values[i] = ec._Query___type(ctx, field) - case "__schema": - out.Values[i] = ec._Query___schema(ctx, field) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var replicaSetImplementors = []string{"ReplicaSet"} - -func (ec *executionContext) _ReplicaSet(ctx context.Context, sel ast.SelectionSet, obj *ReplicaSet) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, replicaSetImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ReplicaSet") - case "name": - out.Values[i] = ec._ReplicaSet_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "pods": - out.Values[i] = ec._ReplicaSet_pods(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._ReplicaSet_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "images": - out.Values[i] = ec._ReplicaSet_images(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "creationTimestamp": - out.Values[i] = ec._ReplicaSet_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._ReplicaSet_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "json": - out.Values[i] = ec._ReplicaSet_json(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var repositoryAuthImplementors = []string{"RepositoryAuth"} - -func (ec *executionContext) _RepositoryAuth(ctx context.Context, sel ast.SelectionSet, obj *v1alpha11.RepositoryAuth) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, repositoryAuthImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("RepositoryAuth") - case "type": - out.Values[i] = ec._RepositoryAuth_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "secretName": - out.Values[i] = ec._RepositoryAuth_secretName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var requiredPermissionImplementors = []string{"RequiredPermission"} - -func (ec *executionContext) _RequiredPermission(ctx context.Context, sel ast.SelectionSet, obj *RequiredPermission) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, requiredPermissionImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("RequiredPermission") - case "verbs": - out.Values[i] = ec._RequiredPermission_verbs(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "apiGroup": - out.Values[i] = ec._RequiredPermission_apiGroup(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "resource": - out.Values[i] = ec._RequiredPermission_resource(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceLimitsImplementors = []string{"ResourceLimits"} - -func (ec *executionContext) _ResourceLimits(ctx context.Context, sel ast.SelectionSet, obj *ResourceLimits) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceLimitsImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceLimits") - case "memory": - out.Values[i] = ec._ResourceLimits_memory(ctx, field, obj) - case "cpu": - out.Values[i] = ec._ResourceLimits_cpu(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceQuotaImplementors = []string{"ResourceQuota"} - -func (ec *executionContext) _ResourceQuota(ctx context.Context, sel ast.SelectionSet, obj *v11.ResourceQuota) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceQuotaImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceQuota") - case "name": - out.Values[i] = ec._ResourceQuota_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "spec": - out.Values[i] = ec._ResourceQuota_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "json": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ResourceQuota_json(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceQuotaHardImplementors = []string{"ResourceQuotaHard"} - -func (ec *executionContext) _ResourceQuotaHard(ctx context.Context, sel ast.SelectionSet, obj *ResourceQuotaHard) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceQuotaHardImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceQuotaHard") - case "limits": - out.Values[i] = ec._ResourceQuotaHard_limits(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "requests": - out.Values[i] = ec._ResourceQuotaHard_requests(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "pods": - out.Values[i] = ec._ResourceQuotaHard_pods(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceQuotaSpecImplementors = []string{"ResourceQuotaSpec"} - -func (ec *executionContext) _ResourceQuotaSpec(ctx context.Context, sel ast.SelectionSet, obj *v11.ResourceQuotaSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceQuotaSpecImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceQuotaSpec") - case "hard": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ResourceQuotaSpec_hard(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceRefImplementors = []string{"ResourceRef"} - -func (ec *executionContext) _ResourceRef(ctx context.Context, sel ast.SelectionSet, obj *ResourceRef) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceRefImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceRef") - case "name": - out.Values[i] = ec._ResourceRef_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._ResourceRef_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceRuleImplementors = []string{"ResourceRule"} - -func (ec *executionContext) _ResourceRule(ctx context.Context, sel ast.SelectionSet, obj *ResourceRule) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceRuleImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceRule") - case "verbs": - out.Values[i] = ec._ResourceRule_verbs(ctx, field, obj) - case "apiGroups": - out.Values[i] = ec._ResourceRule_apiGroups(ctx, field, obj) - case "resources": - out.Values[i] = ec._ResourceRule_resources(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceTypeImplementors = []string{"ResourceType"} - -func (ec *executionContext) _ResourceType(ctx context.Context, sel ast.SelectionSet, obj *ResourceType) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceTypeImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceType") - case "memory": - out.Values[i] = ec._ResourceType_memory(ctx, field, obj) - case "cpu": - out.Values[i] = ec._ResourceType_cpu(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var resourceValuesImplementors = []string{"ResourceValues"} - -func (ec *executionContext) _ResourceValues(ctx context.Context, sel ast.SelectionSet, obj *ResourceValues) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, resourceValuesImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ResourceValues") - case "memory": - out.Values[i] = ec._ResourceValues_memory(ctx, field, obj) - case "cpu": - out.Values[i] = ec._ResourceValues_cpu(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var roleImplementors = []string{"Role"} - -func (ec *executionContext) _Role(ctx context.Context, sel ast.SelectionSet, obj *v12.Role) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, roleImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Role") - case "name": - out.Values[i] = ec._Role_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._Role_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "rules": - out.Values[i] = ec._Role_rules(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var roleBindingImplementors = []string{"RoleBinding"} - -func (ec *executionContext) _RoleBinding(ctx context.Context, sel ast.SelectionSet, obj *v12.RoleBinding) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, roleBindingImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("RoleBinding") - case "name": - out.Values[i] = ec._RoleBinding_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._RoleBinding_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "roleRef": - out.Values[i] = ec._RoleBinding_roleRef(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var roleBindingEventImplementors = []string{"RoleBindingEvent"} - -func (ec *executionContext) _RoleBindingEvent(ctx context.Context, sel ast.SelectionSet, obj *RoleBindingEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, roleBindingEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("RoleBindingEvent") - case "type": - out.Values[i] = ec._RoleBindingEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "roleBinding": - out.Values[i] = ec._RoleBindingEvent_roleBinding(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var roleRefImplementors = []string{"RoleRef"} - -func (ec *executionContext) _RoleRef(ctx context.Context, sel ast.SelectionSet, obj *v12.RoleRef) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, roleRefImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("RoleRef") - case "name": - out.Values[i] = ec._RoleRef_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "kind": - out.Values[i] = ec._RoleRef_kind(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var ruleImplementors = []string{"Rule"} - -func (ec *executionContext) _Rule(ctx context.Context, sel ast.SelectionSet, obj *v1alpha1.Rule) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, ruleImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Rule") - case "path": - out.Values[i] = ec._Rule_path(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "methods": - out.Values[i] = ec._Rule_methods(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "accessStrategies": - out.Values[i] = ec._Rule_accessStrategies(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var secretImplementors = []string{"Secret"} - -func (ec *executionContext) _Secret(ctx context.Context, sel ast.SelectionSet, obj *Secret) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, secretImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Secret") - case "name": - out.Values[i] = ec._Secret_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._Secret_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "data": - out.Values[i] = ec._Secret_data(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "type": - out.Values[i] = ec._Secret_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "creationTime": - out.Values[i] = ec._Secret_creationTime(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._Secret_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "annotations": - out.Values[i] = ec._Secret_annotations(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "json": - out.Values[i] = ec._Secret_json(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var secretEventImplementors = []string{"SecretEvent"} - -func (ec *executionContext) _SecretEvent(ctx context.Context, sel ast.SelectionSet, obj *SecretEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, secretEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("SecretEvent") - case "type": - out.Values[i] = ec._SecretEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "secret": - out.Values[i] = ec._SecretEvent_secret(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceImplementors = []string{"Service"} - -func (ec *executionContext) _Service(ctx context.Context, sel ast.SelectionSet, obj *Service) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Service") - case "name": - out.Values[i] = ec._Service_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "clusterIP": - out.Values[i] = ec._Service_clusterIP(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "creationTimestamp": - out.Values[i] = ec._Service_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._Service_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "ports": - out.Values[i] = ec._Service_ports(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._Service_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "json": - out.Values[i] = ec._Service_json(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "UID": - out.Values[i] = ec._Service_UID(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingImplementors = []string{"ServiceBinding"} - -func (ec *executionContext) _ServiceBinding(ctx context.Context, sel ast.SelectionSet, obj *ServiceBinding) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBinding") - case "name": - out.Values[i] = ec._ServiceBinding_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "serviceInstanceName": - out.Values[i] = ec._ServiceBinding_serviceInstanceName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._ServiceBinding_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "secret": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceBinding_secret(ctx, field, obj) - return res - }) - case "status": - out.Values[i] = ec._ServiceBinding_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "parameters": - out.Values[i] = ec._ServiceBinding_parameters(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingEventImplementors = []string{"ServiceBindingEvent"} - -func (ec *executionContext) _ServiceBindingEvent(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindingEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindingEvent") - case "type": - out.Values[i] = ec._ServiceBindingEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "serviceBinding": - out.Values[i] = ec._ServiceBindingEvent_serviceBinding(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingStatusImplementors = []string{"ServiceBindingStatus"} - -func (ec *executionContext) _ServiceBindingStatus(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindingStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindingStatus") - case "type": - out.Values[i] = ec._ServiceBindingStatus_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._ServiceBindingStatus_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._ServiceBindingStatus_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingUsageImplementors = []string{"ServiceBindingUsage"} - -func (ec *executionContext) _ServiceBindingUsage(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindingUsage) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingUsageImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindingUsage") - case "name": - out.Values[i] = ec._ServiceBindingUsage_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._ServiceBindingUsage_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "serviceBinding": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceBindingUsage_serviceBinding(ctx, field, obj) - return res - }) - case "usedBy": - out.Values[i] = ec._ServiceBindingUsage_usedBy(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "parameters": - out.Values[i] = ec._ServiceBindingUsage_parameters(ctx, field, obj) - case "status": - out.Values[i] = ec._ServiceBindingUsage_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingUsageEventImplementors = []string{"ServiceBindingUsageEvent"} - -func (ec *executionContext) _ServiceBindingUsageEvent(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindingUsageEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingUsageEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindingUsageEvent") - case "type": - out.Values[i] = ec._ServiceBindingUsageEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "serviceBindingUsage": - out.Values[i] = ec._ServiceBindingUsageEvent_serviceBindingUsage(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingUsageParametersImplementors = []string{"ServiceBindingUsageParameters"} - -func (ec *executionContext) _ServiceBindingUsageParameters(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindingUsageParameters) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingUsageParametersImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindingUsageParameters") - case "envPrefix": - out.Values[i] = ec._ServiceBindingUsageParameters_envPrefix(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingUsageStatusImplementors = []string{"ServiceBindingUsageStatus"} - -func (ec *executionContext) _ServiceBindingUsageStatus(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindingUsageStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingUsageStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindingUsageStatus") - case "type": - out.Values[i] = ec._ServiceBindingUsageStatus_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._ServiceBindingUsageStatus_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._ServiceBindingUsageStatus_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingsImplementors = []string{"ServiceBindings"} - -func (ec *executionContext) _ServiceBindings(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindings) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingsImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindings") - case "items": - out.Values[i] = ec._ServiceBindings_items(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "stats": - out.Values[i] = ec._ServiceBindings_stats(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBindingsStatsImplementors = []string{"ServiceBindingsStats"} - -func (ec *executionContext) _ServiceBindingsStats(ctx context.Context, sel ast.SelectionSet, obj *ServiceBindingsStats) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBindingsStatsImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBindingsStats") - case "ready": - out.Values[i] = ec._ServiceBindingsStats_ready(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "failed": - out.Values[i] = ec._ServiceBindingsStats_failed(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "pending": - out.Values[i] = ec._ServiceBindingsStats_pending(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "unknown": - out.Values[i] = ec._ServiceBindingsStats_unknown(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBrokerImplementors = []string{"ServiceBroker"} - -func (ec *executionContext) _ServiceBroker(ctx context.Context, sel ast.SelectionSet, obj *ServiceBroker) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBrokerImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBroker") - case "name": - out.Values[i] = ec._ServiceBroker_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._ServiceBroker_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "status": - out.Values[i] = ec._ServiceBroker_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "creationTimestamp": - out.Values[i] = ec._ServiceBroker_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "url": - out.Values[i] = ec._ServiceBroker_url(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "labels": - out.Values[i] = ec._ServiceBroker_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBrokerEventImplementors = []string{"ServiceBrokerEvent"} - -func (ec *executionContext) _ServiceBrokerEvent(ctx context.Context, sel ast.SelectionSet, obj *ServiceBrokerEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBrokerEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBrokerEvent") - case "type": - out.Values[i] = ec._ServiceBrokerEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "serviceBroker": - out.Values[i] = ec._ServiceBrokerEvent_serviceBroker(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceBrokerStatusImplementors = []string{"ServiceBrokerStatus"} - -func (ec *executionContext) _ServiceBrokerStatus(ctx context.Context, sel ast.SelectionSet, obj *ServiceBrokerStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceBrokerStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceBrokerStatus") - case "ready": - out.Values[i] = ec._ServiceBrokerStatus_ready(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._ServiceBrokerStatus_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._ServiceBrokerStatus_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceClassImplementors = []string{"ServiceClass"} - -func (ec *executionContext) _ServiceClass(ctx context.Context, sel ast.SelectionSet, obj *ServiceClass) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceClassImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceClass") - case "name": - out.Values[i] = ec._ServiceClass_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._ServiceClass_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "externalName": - out.Values[i] = ec._ServiceClass_externalName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "displayName": - out.Values[i] = ec._ServiceClass_displayName(ctx, field, obj) - case "creationTimestamp": - out.Values[i] = ec._ServiceClass_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "description": - out.Values[i] = ec._ServiceClass_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "longDescription": - out.Values[i] = ec._ServiceClass_longDescription(ctx, field, obj) - case "imageUrl": - out.Values[i] = ec._ServiceClass_imageUrl(ctx, field, obj) - case "documentationUrl": - out.Values[i] = ec._ServiceClass_documentationUrl(ctx, field, obj) - case "supportUrl": - out.Values[i] = ec._ServiceClass_supportUrl(ctx, field, obj) - case "providerDisplayName": - out.Values[i] = ec._ServiceClass_providerDisplayName(ctx, field, obj) - case "tags": - out.Values[i] = ec._ServiceClass_tags(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "labels": - out.Values[i] = ec._ServiceClass_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "plans": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceClass_plans(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "activated": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceClass_activated(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "instances": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceClass_instances(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "clusterAssetGroup": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceClass_clusterAssetGroup(ctx, field, obj) - return res - }) - case "assetGroup": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceClass_assetGroup(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceEventImplementors = []string{"ServiceEvent"} - -func (ec *executionContext) _ServiceEvent(ctx context.Context, sel ast.SelectionSet, obj *ServiceEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceEvent") - case "type": - out.Values[i] = ec._ServiceEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "service": - out.Values[i] = ec._ServiceEvent_service(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceInstanceImplementors = []string{"ServiceInstance"} - -func (ec *executionContext) _ServiceInstance(ctx context.Context, sel ast.SelectionSet, obj *ServiceInstance) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceInstanceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceInstance") - case "name": - out.Values[i] = ec._ServiceInstance_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._ServiceInstance_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "planSpec": - out.Values[i] = ec._ServiceInstance_planSpec(ctx, field, obj) - case "creationTimestamp": - out.Values[i] = ec._ServiceInstance_creationTimestamp(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "labels": - out.Values[i] = ec._ServiceInstance_labels(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "status": - out.Values[i] = ec._ServiceInstance_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "classReference": - out.Values[i] = ec._ServiceInstance_classReference(ctx, field, obj) - case "planReference": - out.Values[i] = ec._ServiceInstance_planReference(ctx, field, obj) - case "serviceClass": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceInstance_serviceClass(ctx, field, obj) - return res - }) - case "clusterServiceClass": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceInstance_clusterServiceClass(ctx, field, obj) - return res - }) - case "servicePlan": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceInstance_servicePlan(ctx, field, obj) - return res - }) - case "clusterServicePlan": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceInstance_clusterServicePlan(ctx, field, obj) - return res - }) - case "bindable": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceInstance_bindable(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "serviceBindings": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceInstance_serviceBindings(ctx, field, obj) - return res - }) - case "serviceBindingUsages": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServiceInstance_serviceBindingUsages(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceInstanceEventImplementors = []string{"ServiceInstanceEvent"} - -func (ec *executionContext) _ServiceInstanceEvent(ctx context.Context, sel ast.SelectionSet, obj *ServiceInstanceEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceInstanceEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceInstanceEvent") - case "type": - out.Values[i] = ec._ServiceInstanceEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "serviceInstance": - out.Values[i] = ec._ServiceInstanceEvent_serviceInstance(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceInstanceResourceRefImplementors = []string{"ServiceInstanceResourceRef"} - -func (ec *executionContext) _ServiceInstanceResourceRef(ctx context.Context, sel ast.SelectionSet, obj *ServiceInstanceResourceRef) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceInstanceResourceRefImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceInstanceResourceRef") - case "name": - out.Values[i] = ec._ServiceInstanceResourceRef_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "displayName": - out.Values[i] = ec._ServiceInstanceResourceRef_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "clusterWide": - out.Values[i] = ec._ServiceInstanceResourceRef_clusterWide(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceInstanceStatusImplementors = []string{"ServiceInstanceStatus"} - -func (ec *executionContext) _ServiceInstanceStatus(ctx context.Context, sel ast.SelectionSet, obj *ServiceInstanceStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceInstanceStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceInstanceStatus") - case "type": - out.Values[i] = ec._ServiceInstanceStatus_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "reason": - out.Values[i] = ec._ServiceInstanceStatus_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "message": - out.Values[i] = ec._ServiceInstanceStatus_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var servicePlanImplementors = []string{"ServicePlan"} - -func (ec *executionContext) _ServicePlan(ctx context.Context, sel ast.SelectionSet, obj *ServicePlan) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, servicePlanImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServicePlan") - case "name": - out.Values[i] = ec._ServicePlan_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._ServicePlan_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "displayName": - out.Values[i] = ec._ServicePlan_displayName(ctx, field, obj) - case "externalName": - out.Values[i] = ec._ServicePlan_externalName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "description": - out.Values[i] = ec._ServicePlan_description(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "relatedServiceClassName": - out.Values[i] = ec._ServicePlan_relatedServiceClassName(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "instanceCreateParameterSchema": - out.Values[i] = ec._ServicePlan_instanceCreateParameterSchema(ctx, field, obj) - case "bindingCreateParameterSchema": - out.Values[i] = ec._ServicePlan_bindingCreateParameterSchema(ctx, field, obj) - case "clusterAssetGroup": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServicePlan_clusterAssetGroup(ctx, field, obj) - return res - }) - case "assetGroup": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._ServicePlan_assetGroup(ctx, field, obj) - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var servicePortImplementors = []string{"ServicePort"} - -func (ec *executionContext) _ServicePort(ctx context.Context, sel ast.SelectionSet, obj *ServicePort) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, servicePortImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServicePort") - case "name": - out.Values[i] = ec._ServicePort_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "serviceProtocol": - out.Values[i] = ec._ServicePort_serviceProtocol(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "port": - out.Values[i] = ec._ServicePort_port(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "nodePort": - out.Values[i] = ec._ServicePort_nodePort(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "targetPort": - out.Values[i] = ec._ServicePort_targetPort(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var serviceStatusImplementors = []string{"ServiceStatus"} - -func (ec *executionContext) _ServiceStatus(ctx context.Context, sel ast.SelectionSet, obj *ServiceStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, serviceStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("ServiceStatus") - case "loadBalancer": - out.Values[i] = ec._ServiceStatus_loadBalancer(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var subscriberImplementors = []string{"Subscriber"} - -func (ec *executionContext) _Subscriber(ctx context.Context, sel ast.SelectionSet, obj *v13.Destination) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, subscriberImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Subscriber") - case "ref": - out.Values[i] = ec._Subscriber_ref(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var subscriberRefImplementors = []string{"SubscriberRef"} - -func (ec *executionContext) _SubscriberRef(ctx context.Context, sel ast.SelectionSet, obj *v13.KReference) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, subscriberRefImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("SubscriberRef") - case "apiVersion": - out.Values[i] = ec._SubscriberRef_apiVersion(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "kind": - out.Values[i] = ec._SubscriberRef_kind(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "name": - out.Values[i] = ec._SubscriberRef_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._SubscriberRef_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var subscriptionImplementors = []string{"Subscription"} - -func (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func() graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors) - ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ - Object: "Subscription", - }) - if len(fields) != 1 { - ec.Errorf(ctx, "must subscribe to exactly one stream") - return nil - } - - switch fields[0].Name { - case "clusterAssetEvent": - return ec._Subscription_clusterAssetEvent(ctx, fields[0]) - case "assetEvent": - return ec._Subscription_assetEvent(ctx, fields[0]) - case "clusterAssetGroupEvent": - return ec._Subscription_clusterAssetGroupEvent(ctx, fields[0]) - case "assetGroupEvent": - return ec._Subscription_assetGroupEvent(ctx, fields[0]) - case "serviceInstanceEvent": - return ec._Subscription_serviceInstanceEvent(ctx, fields[0]) - case "serviceBindingEvent": - return ec._Subscription_serviceBindingEvent(ctx, fields[0]) - case "serviceBindingUsageEvent": - return ec._Subscription_serviceBindingUsageEvent(ctx, fields[0]) - case "serviceBrokerEvent": - return ec._Subscription_serviceBrokerEvent(ctx, fields[0]) - case "clusterServiceBrokerEvent": - return ec._Subscription_clusterServiceBrokerEvent(ctx, fields[0]) - case "applicationEvent": - return ec._Subscription_applicationEvent(ctx, fields[0]) - case "podEvent": - return ec._Subscription_podEvent(ctx, fields[0]) - case "deploymentEvent": - return ec._Subscription_deploymentEvent(ctx, fields[0]) - case "serviceEvent": - return ec._Subscription_serviceEvent(ctx, fields[0]) - case "configMapEvent": - return ec._Subscription_configMapEvent(ctx, fields[0]) - case "secretEvent": - return ec._Subscription_secretEvent(ctx, fields[0]) - case "clusterAddonsConfigurationEvent": - return ec._Subscription_clusterAddonsConfigurationEvent(ctx, fields[0]) - case "addonsConfigurationEvent": - return ec._Subscription_addonsConfigurationEvent(ctx, fields[0]) - case "namespaceEvent": - return ec._Subscription_namespaceEvent(ctx, fields[0]) - case "functionEvent": - return ec._Subscription_functionEvent(ctx, fields[0]) - case "apiRuleEvent": - return ec._Subscription_apiRuleEvent(ctx, fields[0]) - case "subscriptionSubscription": - return ec._Subscription_subscriptionSubscription(ctx, fields[0]) - case "triggerEvent": - return ec._Subscription_triggerEvent(ctx, fields[0]) - case "oAuth2ClientEvent": - return ec._Subscription_oAuth2ClientEvent(ctx, fields[0]) - case "roleBindingEvent": - return ec._Subscription_roleBindingEvent(ctx, fields[0]) - case "clusterRoleBindingEvent": - return ec._Subscription_clusterRoleBindingEvent(ctx, fields[0]) - default: - panic("unknown field " + strconv.Quote(fields[0].Name)) - } -} - -var subscriptionEventImplementors = []string{"SubscriptionEvent"} - -func (ec *executionContext) _SubscriptionEvent(ctx context.Context, sel ast.SelectionSet, obj *SubscriptionEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, subscriptionEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("SubscriptionEvent") - case "type": - out.Values[i] = ec._SubscriptionEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "subscription": - out.Values[i] = ec._SubscriptionEvent_subscription(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var triggerImplementors = []string{"Trigger"} - -func (ec *executionContext) _Trigger(ctx context.Context, sel ast.SelectionSet, obj *v1alpha14.Trigger) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, triggerImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Trigger") - case "name": - out.Values[i] = ec._Trigger_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "namespace": - out.Values[i] = ec._Trigger_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "spec": - out.Values[i] = ec._Trigger_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "status": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Trigger_status(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var triggerEventImplementors = []string{"TriggerEvent"} - -func (ec *executionContext) _TriggerEvent(ctx context.Context, sel ast.SelectionSet, obj *TriggerEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, triggerEventImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("TriggerEvent") - case "type": - out.Values[i] = ec._TriggerEvent_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "trigger": - out.Values[i] = ec._TriggerEvent_trigger(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var triggerSpecImplementors = []string{"TriggerSpec"} - -func (ec *executionContext) _TriggerSpec(ctx context.Context, sel ast.SelectionSet, obj *v1alpha14.TriggerSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, triggerSpecImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("TriggerSpec") - case "broker": - out.Values[i] = ec._TriggerSpec_broker(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - case "filter": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._TriggerSpec_filter(ctx, field, obj) - return res - }) - case "port": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._TriggerSpec_port(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "path": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._TriggerSpec_path(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - return res - }) - case "subscriber": - out.Values[i] = ec._TriggerSpec_subscriber(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var triggerStatusImplementors = []string{"TriggerStatus"} - -func (ec *executionContext) _TriggerStatus(ctx context.Context, sel ast.SelectionSet, obj *TriggerStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, triggerStatusImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("TriggerStatus") - case "reason": - out.Values[i] = ec._TriggerStatus_reason(ctx, field, obj) - case "status": - out.Values[i] = ec._TriggerStatus_status(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var usageKindImplementors = []string{"UsageKind"} - -func (ec *executionContext) _UsageKind(ctx context.Context, sel ast.SelectionSet, obj *UsageKind) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, usageKindImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("UsageKind") - case "name": - out.Values[i] = ec._UsageKind_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "group": - out.Values[i] = ec._UsageKind_group(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "kind": - out.Values[i] = ec._UsageKind_kind(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "version": - out.Values[i] = ec._UsageKind_version(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "displayName": - out.Values[i] = ec._UsageKind_displayName(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var usageKindResourceImplementors = []string{"UsageKindResource"} - -func (ec *executionContext) _UsageKindResource(ctx context.Context, sel ast.SelectionSet, obj *UsageKindResource) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, usageKindResourceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("UsageKindResource") - case "name": - out.Values[i] = ec._UsageKindResource_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "namespace": - out.Values[i] = ec._UsageKindResource_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var versionInfoImplementors = []string{"VersionInfo"} - -func (ec *executionContext) _VersionInfo(ctx context.Context, sel ast.SelectionSet, obj *VersionInfo) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, versionInfoImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("VersionInfo") - case "kymaVersion": - out.Values[i] = ec._VersionInfo_kymaVersion(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var webhookAuthImplementors = []string{"WebhookAuth"} - -func (ec *executionContext) _WebhookAuth(ctx context.Context, sel ast.SelectionSet, obj *v1alpha13.WebhookAuth) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, webhookAuthImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("WebhookAuth") - case "clientId": - out.Values[i] = ec._WebhookAuth_clientId(ctx, field, obj) - case "clientSecret": - out.Values[i] = ec._WebhookAuth_clientSecret(ctx, field, obj) - case "grantType": - out.Values[i] = ec._WebhookAuth_grantType(ctx, field, obj) - case "scope": - out.Values[i] = ec._WebhookAuth_scope(ctx, field, obj) - case "tokenUrl": - out.Values[i] = ec._WebhookAuth_tokenUrl(ctx, field, obj) - case "type": - out.Values[i] = ec._WebhookAuth_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var __DirectiveImplementors = []string{"__Directive"} - -func (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Directive") - case "name": - out.Values[i] = ec.___Directive_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "description": - out.Values[i] = ec.___Directive_description(ctx, field, obj) - case "locations": - out.Values[i] = ec.___Directive_locations(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "args": - out.Values[i] = ec.___Directive_args(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var __EnumValueImplementors = []string{"__EnumValue"} - -func (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__EnumValue") - case "name": - out.Values[i] = ec.___EnumValue_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "description": - out.Values[i] = ec.___EnumValue_description(ctx, field, obj) - case "isDeprecated": - out.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "deprecationReason": - out.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var __FieldImplementors = []string{"__Field"} - -func (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Field") - case "name": - out.Values[i] = ec.___Field_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "description": - out.Values[i] = ec.___Field_description(ctx, field, obj) - case "args": - out.Values[i] = ec.___Field_args(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "type": - out.Values[i] = ec.___Field_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "isDeprecated": - out.Values[i] = ec.___Field_isDeprecated(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "deprecationReason": - out.Values[i] = ec.___Field_deprecationReason(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var __InputValueImplementors = []string{"__InputValue"} - -func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__InputValue") - case "name": - out.Values[i] = ec.___InputValue_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "description": - out.Values[i] = ec.___InputValue_description(ctx, field, obj) - case "type": - out.Values[i] = ec.___InputValue_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "defaultValue": - out.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var __SchemaImplementors = []string{"__Schema"} - -func (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Schema") - case "types": - out.Values[i] = ec.___Schema_types(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "queryType": - out.Values[i] = ec.___Schema_queryType(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "mutationType": - out.Values[i] = ec.___Schema_mutationType(ctx, field, obj) - case "subscriptionType": - out.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj) - case "directives": - out.Values[i] = ec.___Schema_directives(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var __TypeImplementors = []string{"__Type"} - -func (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Type") - case "kind": - out.Values[i] = ec.___Type_kind(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "name": - out.Values[i] = ec.___Type_name(ctx, field, obj) - case "description": - out.Values[i] = ec.___Type_description(ctx, field, obj) - case "fields": - out.Values[i] = ec.___Type_fields(ctx, field, obj) - case "interfaces": - out.Values[i] = ec.___Type_interfaces(ctx, field, obj) - case "possibleTypes": - out.Values[i] = ec.___Type_possibleTypes(ctx, field, obj) - case "enumValues": - out.Values[i] = ec.___Type_enumValues(ctx, field, obj) - case "inputFields": - out.Values[i] = ec.___Type_inputFields(ctx, field, obj) - case "ofType": - out.Values[i] = ec.___Type_ofType(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var compassMetadataImplementors = []string{"compassMetadata"} - -func (ec *executionContext) _compassMetadata(ctx context.Context, sel ast.SelectionSet, obj *CompassMetadata) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, compassMetadataImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("compassMetadata") - case "applicationId": - out.Values[i] = ec._compassMetadata_applicationId(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -var enabledMappingServiceImplementors = []string{"enabledMappingService"} - -func (ec *executionContext) _enabledMappingService(ctx context.Context, sel ast.SelectionSet, obj *EnabledMappingService) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, enabledMappingServiceImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("enabledMappingService") - case "namespace": - out.Values[i] = ec._enabledMappingService_namespace(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "allServices": - out.Values[i] = ec._enabledMappingService_allServices(ctx, field, obj) - if out.Values[i] == graphql.Null { - invalids++ - } - case "services": - out.Values[i] = ec._enabledMappingService_services(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - -// endregion **************************** object.gotpl **************************** - -// region ***************************** type.gotpl ***************************** - -func (ec *executionContext) marshalNAPIRule2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx context.Context, sel ast.SelectionSet, v v1alpha1.APIRule) graphql.Marshaler { - return ec._APIRule(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAPIRule2ᚕᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha1.APIRule) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx context.Context, sel ast.SelectionSet, v *v1alpha1.APIRule) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._APIRule(ctx, sel, v) -} - -func (ec *executionContext) marshalNAPIRuleAccessStrategy2githubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx context.Context, sel ast.SelectionSet, v v1alpha15.Authenticator) graphql.Marshaler { - return ec._APIRuleAccessStrategy(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAPIRuleAccessStrategy2ᚕᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticatorᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha15.Authenticator) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNAPIRuleAccessStrategy2ᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNAPIRuleAccessStrategy2ᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx context.Context, sel ast.SelectionSet, v *v1alpha15.Authenticator) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._APIRuleAccessStrategy(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNAPIRuleAccessStrategyInput2githubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx context.Context, v interface{}) (v1alpha15.Authenticator, error) { - return UnmarshalAPIRuleAccessStrategyInput(v) -} - -func (ec *executionContext) marshalNAPIRuleAccessStrategyInput2githubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx context.Context, sel ast.SelectionSet, v v1alpha15.Authenticator) graphql.Marshaler { - res := MarshalAPIRuleAccessStrategyInput(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalNAPIRuleAccessStrategyInput2ᚕᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticatorᚄ(ctx context.Context, v interface{}) ([]*v1alpha15.Authenticator, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*v1alpha15.Authenticator, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNAPIRuleAccessStrategyInput2ᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalNAPIRuleAccessStrategyInput2ᚕᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticatorᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha15.Authenticator) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - for i := range v { - ret[i] = ec.marshalNAPIRuleAccessStrategyInput2ᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx, sel, v[i]) - } - - return ret -} - -func (ec *executionContext) unmarshalNAPIRuleAccessStrategyInput2ᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx context.Context, v interface{}) (*v1alpha15.Authenticator, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNAPIRuleAccessStrategyInput2githubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNAPIRuleAccessStrategyInput2ᚖgithubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx context.Context, sel ast.SelectionSet, v *v1alpha15.Authenticator) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec.marshalNAPIRuleAccessStrategyInput2githubᚗcomᚋoryᚋoathkeeperᚑmaesterᚋapiᚋv1alpha1ᚐAuthenticator(ctx, sel, *v) -} - -func (ec *executionContext) marshalNAPIRuleService2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐService(ctx context.Context, sel ast.SelectionSet, v v1alpha1.Service) graphql.Marshaler { - return ec._APIRuleService(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAPIRuleService2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐService(ctx context.Context, sel ast.SelectionSet, v *v1alpha1.Service) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._APIRuleService(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNAPIRuleServiceInput2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐService(ctx context.Context, v interface{}) (v1alpha1.Service, error) { - return ec.unmarshalInputAPIRuleServiceInput(ctx, v) -} - -func (ec *executionContext) unmarshalNAPIRuleServiceInput2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐService(ctx context.Context, v interface{}) (*v1alpha1.Service, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNAPIRuleServiceInput2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐService(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNAPIRuleSpec2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleSpec(ctx context.Context, sel ast.SelectionSet, v v1alpha1.APIRuleSpec) graphql.Marshaler { - return ec._APIRuleSpec(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNAPIRuleSpecInput2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleSpec(ctx context.Context, v interface{}) (v1alpha1.APIRuleSpec, error) { - return ec.unmarshalInputAPIRuleSpecInput(ctx, v) -} - -func (ec *executionContext) unmarshalNAPIRuleStatusCode2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐStatusCode(ctx context.Context, v interface{}) (v1alpha1.StatusCode, error) { - tmp, err := graphql.UnmarshalString(v) - return v1alpha1.StatusCode(tmp), err -} - -func (ec *executionContext) marshalNAPIRuleStatusCode2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐStatusCode(ctx context.Context, sel ast.SelectionSet, v v1alpha1.StatusCode) graphql.Marshaler { - res := graphql.MarshalString(string(v)) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalNAPIRuleStatuses2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleStatus(ctx context.Context, sel ast.SelectionSet, v v1alpha1.APIRuleStatus) graphql.Marshaler { - return ec._APIRuleStatuses(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAddonsConfiguration2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx context.Context, sel ast.SelectionSet, v AddonsConfiguration) graphql.Marshaler { - return ec._AddonsConfiguration(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAddonsConfiguration2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationᚄ(ctx context.Context, sel ast.SelectionSet, v []*AddonsConfiguration) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx context.Context, sel ast.SelectionSet, v *AddonsConfiguration) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AddonsConfiguration(ctx, sel, v) -} - -func (ec *executionContext) marshalNAddonsConfigurationEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationEvent(ctx context.Context, sel ast.SelectionSet, v AddonsConfigurationEvent) graphql.Marshaler { - return ec._AddonsConfigurationEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAddonsConfigurationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationEvent(ctx context.Context, sel ast.SelectionSet, v *AddonsConfigurationEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AddonsConfigurationEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNAddonsConfigurationRepository2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepository(ctx context.Context, sel ast.SelectionSet, v AddonsConfigurationRepository) graphql.Marshaler { - return ec._AddonsConfigurationRepository(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAddonsConfigurationRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepository(ctx context.Context, sel ast.SelectionSet, v *AddonsConfigurationRepository) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AddonsConfigurationRepository(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNAddonsConfigurationRepositoryInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInput(ctx context.Context, v interface{}) (AddonsConfigurationRepositoryInput, error) { - return ec.unmarshalInputAddonsConfigurationRepositoryInput(ctx, v) -} - -func (ec *executionContext) unmarshalNAddonsConfigurationRepositoryInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInput(ctx context.Context, v interface{}) (*AddonsConfigurationRepositoryInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNAddonsConfigurationRepositoryInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNAddonsConfigurationStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatus(ctx context.Context, sel ast.SelectionSet, v AddonsConfigurationStatus) graphql.Marshaler { - return ec._AddonsConfigurationStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAddonsConfigurationStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatus(ctx context.Context, sel ast.SelectionSet, v *AddonsConfigurationStatus) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AddonsConfigurationStatus(ctx, sel, v) -} - -func (ec *executionContext) marshalNAddonsConfigurationStatusAddons2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusAddons(ctx context.Context, sel ast.SelectionSet, v AddonsConfigurationStatusAddons) graphql.Marshaler { - return ec._AddonsConfigurationStatusAddons(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAddonsConfigurationStatusAddons2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusAddons(ctx context.Context, sel ast.SelectionSet, v *AddonsConfigurationStatusAddons) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AddonsConfigurationStatusAddons(ctx, sel, v) -} - -func (ec *executionContext) marshalNAddonsConfigurationStatusRepository2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusRepository(ctx context.Context, sel ast.SelectionSet, v AddonsConfigurationStatusRepository) graphql.Marshaler { - return ec._AddonsConfigurationStatusRepository(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAddonsConfigurationStatusRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusRepository(ctx context.Context, sel ast.SelectionSet, v *AddonsConfigurationStatusRepository) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AddonsConfigurationStatusRepository(ctx, sel, v) -} - -func (ec *executionContext) marshalNApiRuleEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAPIRuleEvent(ctx context.Context, sel ast.SelectionSet, v APIRuleEvent) graphql.Marshaler { - return ec._ApiRuleEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNApiRuleEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAPIRuleEvent(ctx context.Context, sel ast.SelectionSet, v *APIRuleEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ApiRuleEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNApplication2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplication(ctx context.Context, sel ast.SelectionSet, v Application) graphql.Marshaler { - return ec._Application(ctx, sel, &v) -} - -func (ec *executionContext) marshalNApplication2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationᚄ(ctx context.Context, sel ast.SelectionSet, v []*Application) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNApplication2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplication(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNApplication2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplication(ctx context.Context, sel ast.SelectionSet, v *Application) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Application(ctx, sel, v) -} - -func (ec *executionContext) marshalNApplicationEntry2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEntry(ctx context.Context, sel ast.SelectionSet, v ApplicationEntry) graphql.Marshaler { - return ec._ApplicationEntry(ctx, sel, &v) -} - -func (ec *executionContext) marshalNApplicationEntry2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEntryᚄ(ctx context.Context, sel ast.SelectionSet, v []*ApplicationEntry) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNApplicationEntry2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEntry(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNApplicationEntry2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEntry(ctx context.Context, sel ast.SelectionSet, v *ApplicationEntry) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ApplicationEntry(ctx, sel, v) -} - -func (ec *executionContext) marshalNApplicationEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEvent(ctx context.Context, sel ast.SelectionSet, v ApplicationEvent) graphql.Marshaler { - return ec._ApplicationEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNApplicationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationEvent(ctx context.Context, sel ast.SelectionSet, v *ApplicationEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ApplicationEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNApplicationMutationOutput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMutationOutput(ctx context.Context, sel ast.SelectionSet, v ApplicationMutationOutput) graphql.Marshaler { - return ec._ApplicationMutationOutput(ctx, sel, &v) -} - -func (ec *executionContext) marshalNApplicationMutationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMutationOutput(ctx context.Context, sel ast.SelectionSet, v *ApplicationMutationOutput) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ApplicationMutationOutput(ctx, sel, v) -} - -func (ec *executionContext) marshalNApplicationService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationService(ctx context.Context, sel ast.SelectionSet, v ApplicationService) graphql.Marshaler { - return ec._ApplicationService(ctx, sel, &v) -} - -func (ec *executionContext) marshalNApplicationService2ᚕgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationServiceᚄ(ctx context.Context, sel ast.SelectionSet, v []ApplicationService) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNApplicationService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationService(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) unmarshalNApplicationStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationStatus(ctx context.Context, v interface{}) (ApplicationStatus, error) { - var res ApplicationStatus - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNApplicationStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationStatus(ctx context.Context, sel ast.SelectionSet, v ApplicationStatus) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNAsset2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAsset(ctx context.Context, sel ast.SelectionSet, v Asset) graphql.Marshaler { - return ec._Asset(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAsset2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetᚄ(ctx context.Context, sel ast.SelectionSet, v []*Asset) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNAsset2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAsset(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNAsset2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAsset(ctx context.Context, sel ast.SelectionSet, v *Asset) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Asset(ctx, sel, v) -} - -func (ec *executionContext) marshalNAssetEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetEvent(ctx context.Context, sel ast.SelectionSet, v AssetEvent) graphql.Marshaler { - return ec._AssetEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAssetEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetEvent(ctx context.Context, sel ast.SelectionSet, v *AssetEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AssetEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNAssetGroup2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroup(ctx context.Context, sel ast.SelectionSet, v AssetGroup) graphql.Marshaler { - return ec._AssetGroup(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroup(ctx context.Context, sel ast.SelectionSet, v *AssetGroup) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AssetGroup(ctx, sel, v) -} - -func (ec *executionContext) marshalNAssetGroupEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupEvent(ctx context.Context, sel ast.SelectionSet, v AssetGroupEvent) graphql.Marshaler { - return ec._AssetGroupEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNAssetGroupEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupEvent(ctx context.Context, sel ast.SelectionSet, v *AssetGroupEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._AssetGroupEvent(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNAssetGroupPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupPhaseType(ctx context.Context, v interface{}) (AssetGroupPhaseType, error) { - var res AssetGroupPhaseType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNAssetGroupPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupPhaseType(ctx context.Context, sel ast.SelectionSet, v AssetGroupPhaseType) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNAssetGroupStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroupStatus(ctx context.Context, sel ast.SelectionSet, v AssetGroupStatus) graphql.Marshaler { - return ec._AssetGroupStatus(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNAssetPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetPhaseType(ctx context.Context, v interface{}) (AssetPhaseType, error) { - var res AssetPhaseType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNAssetPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetPhaseType(ctx context.Context, sel ast.SelectionSet, v AssetPhaseType) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNAssetStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetStatus(ctx context.Context, sel ast.SelectionSet, v AssetStatus) graphql.Marshaler { - return ec._AssetStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNBackendModule2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBackendModule(ctx context.Context, sel ast.SelectionSet, v BackendModule) graphql.Marshaler { - return ec._BackendModule(ctx, sel, &v) -} - -func (ec *executionContext) marshalNBackendModule2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBackendModuleᚄ(ctx context.Context, sel ast.SelectionSet, v []*BackendModule) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNBackendModule2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBackendModule(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNBackendModule2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBackendModule(ctx context.Context, sel ast.SelectionSet, v *BackendModule) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._BackendModule(ctx, sel, v) -} - -func (ec *executionContext) marshalNBebFilter2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilter(ctx context.Context, sel ast.SelectionSet, v v1alpha13.BebFilter) graphql.Marshaler { - return ec._BebFilter(ctx, sel, &v) -} - -func (ec *executionContext) marshalNBebFilter2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilterᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha13.BebFilter) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNBebFilter2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilter(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNBebFilter2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilter(ctx context.Context, sel ast.SelectionSet, v *v1alpha13.BebFilter) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._BebFilter(ctx, sel, v) -} - -func (ec *executionContext) marshalNBebFilters2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilters(ctx context.Context, sel ast.SelectionSet, v v1alpha13.BebFilters) graphql.Marshaler { - return ec._BebFilters(ctx, sel, &v) -} - -func (ec *executionContext) marshalNBebFilters2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐBebFilters(ctx context.Context, sel ast.SelectionSet, v *v1alpha13.BebFilters) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._BebFilters(ctx, sel, v) -} - -func (ec *executionContext) marshalNBindableResourcesOutputItem2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBindableResourcesOutputItem(ctx context.Context, sel ast.SelectionSet, v BindableResourcesOutputItem) graphql.Marshaler { - return ec._BindableResourcesOutputItem(ctx, sel, &v) -} - -func (ec *executionContext) marshalNBindableResourcesOutputItem2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBindableResourcesOutputItemᚄ(ctx context.Context, sel ast.SelectionSet, v []*BindableResourcesOutputItem) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNBindableResourcesOutputItem2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBindableResourcesOutputItem(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNBindableResourcesOutputItem2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐBindableResourcesOutputItem(ctx context.Context, sel ast.SelectionSet, v *BindableResourcesOutputItem) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._BindableResourcesOutputItem(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v interface{}) (bool, error) { - return graphql.UnmarshalBoolean(v) -} - -func (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler { - res := graphql.MarshalBoolean(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalNClusterAddonsConfigurationEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAddonsConfigurationEvent(ctx context.Context, sel ast.SelectionSet, v ClusterAddonsConfigurationEvent) graphql.Marshaler { - return ec._ClusterAddonsConfigurationEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterAddonsConfigurationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAddonsConfigurationEvent(ctx context.Context, sel ast.SelectionSet, v *ClusterAddonsConfigurationEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterAddonsConfigurationEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterAsset2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAsset(ctx context.Context, sel ast.SelectionSet, v ClusterAsset) graphql.Marshaler { - return ec._ClusterAsset(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterAsset2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetᚄ(ctx context.Context, sel ast.SelectionSet, v []*ClusterAsset) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNClusterAsset2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAsset(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNClusterAsset2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAsset(ctx context.Context, sel ast.SelectionSet, v *ClusterAsset) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterAsset(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterAssetEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetEvent(ctx context.Context, sel ast.SelectionSet, v ClusterAssetEvent) graphql.Marshaler { - return ec._ClusterAssetEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterAssetEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetEvent(ctx context.Context, sel ast.SelectionSet, v *ClusterAssetEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterAssetEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterAssetGroup2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx context.Context, sel ast.SelectionSet, v ClusterAssetGroup) graphql.Marshaler { - return ec._ClusterAssetGroup(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx context.Context, sel ast.SelectionSet, v *ClusterAssetGroup) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterAssetGroup(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterAssetGroupEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroupEvent(ctx context.Context, sel ast.SelectionSet, v ClusterAssetGroupEvent) graphql.Marshaler { - return ec._ClusterAssetGroupEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterAssetGroupEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroupEvent(ctx context.Context, sel ast.SelectionSet, v *ClusterAssetGroupEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterAssetGroupEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterMicroFrontend2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterMicroFrontend(ctx context.Context, sel ast.SelectionSet, v ClusterMicroFrontend) graphql.Marshaler { - return ec._ClusterMicroFrontend(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterMicroFrontend2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterMicroFrontendᚄ(ctx context.Context, sel ast.SelectionSet, v []*ClusterMicroFrontend) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNClusterMicroFrontend2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterMicroFrontend(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNClusterMicroFrontend2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterMicroFrontend(ctx context.Context, sel ast.SelectionSet, v *ClusterMicroFrontend) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterMicroFrontend(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterRole2k8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRole(ctx context.Context, sel ast.SelectionSet, v v12.ClusterRole) graphql.Marshaler { - return ec._ClusterRole(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterRole2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleᚄ(ctx context.Context, sel ast.SelectionSet, v []*v12.ClusterRole) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNClusterRole2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRole(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNClusterRole2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRole(ctx context.Context, sel ast.SelectionSet, v *v12.ClusterRole) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterRole(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterRoleBinding2k8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBinding(ctx context.Context, sel ast.SelectionSet, v v12.ClusterRoleBinding) graphql.Marshaler { - return ec._ClusterRoleBinding(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterRoleBinding2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBindingᚄ(ctx context.Context, sel ast.SelectionSet, v []*v12.ClusterRoleBinding) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNClusterRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBinding(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNClusterRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐClusterRoleBinding(ctx context.Context, sel ast.SelectionSet, v *v12.ClusterRoleBinding) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterRoleBinding(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterRoleBindingEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterRoleBindingEvent(ctx context.Context, sel ast.SelectionSet, v ClusterRoleBindingEvent) graphql.Marshaler { - return ec._ClusterRoleBindingEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterRoleBindingEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterRoleBindingEvent(ctx context.Context, sel ast.SelectionSet, v *ClusterRoleBindingEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterRoleBindingEvent(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNClusterRoleBindingInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterRoleBindingInput(ctx context.Context, v interface{}) (ClusterRoleBindingInput, error) { - return ec.unmarshalInputClusterRoleBindingInput(ctx, v) -} - -func (ec *executionContext) marshalNClusterServiceBroker2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBroker(ctx context.Context, sel ast.SelectionSet, v ClusterServiceBroker) graphql.Marshaler { - return ec._ClusterServiceBroker(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterServiceBroker2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBrokerᚄ(ctx context.Context, sel ast.SelectionSet, v []*ClusterServiceBroker) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNClusterServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBroker(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNClusterServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBroker(ctx context.Context, sel ast.SelectionSet, v *ClusterServiceBroker) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterServiceBroker(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterServiceBrokerEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBrokerEvent(ctx context.Context, sel ast.SelectionSet, v ClusterServiceBrokerEvent) graphql.Marshaler { - return ec._ClusterServiceBrokerEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterServiceBrokerEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBrokerEvent(ctx context.Context, sel ast.SelectionSet, v *ClusterServiceBrokerEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterServiceBrokerEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterServiceClass2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClass(ctx context.Context, sel ast.SelectionSet, v ClusterServiceClass) graphql.Marshaler { - return ec._ClusterServiceClass(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterServiceClass2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClassᚄ(ctx context.Context, sel ast.SelectionSet, v []*ClusterServiceClass) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNClusterServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClass(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNClusterServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClass(ctx context.Context, sel ast.SelectionSet, v *ClusterServiceClass) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterServiceClass(ctx, sel, v) -} - -func (ec *executionContext) marshalNClusterServicePlan2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlan(ctx context.Context, sel ast.SelectionSet, v ClusterServicePlan) graphql.Marshaler { - return ec._ClusterServicePlan(ctx, sel, &v) -} - -func (ec *executionContext) marshalNClusterServicePlan2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlanᚄ(ctx context.Context, sel ast.SelectionSet, v []*ClusterServicePlan) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNClusterServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlan(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNClusterServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlan(ctx context.Context, sel ast.SelectionSet, v *ClusterServicePlan) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ClusterServicePlan(ctx, sel, v) -} - -func (ec *executionContext) marshalNConfigMap2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx context.Context, sel ast.SelectionSet, v ConfigMap) graphql.Marshaler { - return ec._ConfigMap(ctx, sel, &v) -} - -func (ec *executionContext) marshalNConfigMap2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMapᚄ(ctx context.Context, sel ast.SelectionSet, v []*ConfigMap) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNConfigMap2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNConfigMap2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx context.Context, sel ast.SelectionSet, v *ConfigMap) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ConfigMap(ctx, sel, v) -} - -func (ec *executionContext) marshalNConfigMapEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMapEvent(ctx context.Context, sel ast.SelectionSet, v ConfigMapEvent) graphql.Marshaler { - return ec._ConfigMapEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNConfigMapEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMapEvent(ctx context.Context, sel ast.SelectionSet, v *ConfigMapEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ConfigMapEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNConnectorService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConnectorService(ctx context.Context, sel ast.SelectionSet, v ConnectorService) graphql.Marshaler { - return ec._ConnectorService(ctx, sel, &v) -} - -func (ec *executionContext) marshalNConnectorService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConnectorService(ctx context.Context, sel ast.SelectionSet, v *ConnectorService) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ConnectorService(ctx, sel, v) -} - -func (ec *executionContext) marshalNContainer2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainer(ctx context.Context, sel ast.SelectionSet, v Container) graphql.Marshaler { - return ec._Container(ctx, sel, &v) -} - -func (ec *executionContext) marshalNContainer2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerᚄ(ctx context.Context, sel ast.SelectionSet, v []*Container) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNContainer2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainer(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNContainer2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainer(ctx context.Context, sel ast.SelectionSet, v *Container) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Container(ctx, sel, v) -} - -func (ec *executionContext) marshalNContainerState2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerState(ctx context.Context, sel ast.SelectionSet, v ContainerState) graphql.Marshaler { - return ec._ContainerState(ctx, sel, &v) -} - -func (ec *executionContext) marshalNContainerState2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerStateᚄ(ctx context.Context, sel ast.SelectionSet, v []*ContainerState) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNContainerState2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerState(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNContainerState2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerState(ctx context.Context, sel ast.SelectionSet, v *ContainerState) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ContainerState(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNContainerStateType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerStateType(ctx context.Context, v interface{}) (ContainerStateType, error) { - var res ContainerStateType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNContainerStateType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐContainerStateType(ctx context.Context, sel ast.SelectionSet, v ContainerStateType) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalNCoreStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx context.Context, v interface{}) (v11.ConditionStatus, error) { - tmp, err := graphql.UnmarshalString(v) - return v11.ConditionStatus(tmp), err -} - -func (ec *executionContext) marshalNCoreStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx context.Context, sel ast.SelectionSet, v v11.ConditionStatus) graphql.Marshaler { - res := graphql.MarshalString(string(v)) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalNDeleteApplicationOutput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteApplicationOutput(ctx context.Context, sel ast.SelectionSet, v DeleteApplicationOutput) graphql.Marshaler { - return ec._DeleteApplicationOutput(ctx, sel, &v) -} - -func (ec *executionContext) marshalNDeleteApplicationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteApplicationOutput(ctx context.Context, sel ast.SelectionSet, v *DeleteApplicationOutput) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._DeleteApplicationOutput(ctx, sel, v) -} - -func (ec *executionContext) marshalNDeployment2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeployment(ctx context.Context, sel ast.SelectionSet, v Deployment) graphql.Marshaler { - return ec._Deployment(ctx, sel, &v) -} - -func (ec *executionContext) marshalNDeployment2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentᚄ(ctx context.Context, sel ast.SelectionSet, v []*Deployment) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNDeployment2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeployment(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNDeployment2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeployment(ctx context.Context, sel ast.SelectionSet, v *Deployment) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Deployment(ctx, sel, v) -} - -func (ec *executionContext) marshalNDeploymentCondition2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentCondition(ctx context.Context, sel ast.SelectionSet, v DeploymentCondition) graphql.Marshaler { - return ec._DeploymentCondition(ctx, sel, &v) -} - -func (ec *executionContext) marshalNDeploymentCondition2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentConditionᚄ(ctx context.Context, sel ast.SelectionSet, v []*DeploymentCondition) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNDeploymentCondition2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentCondition(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNDeploymentCondition2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentCondition(ctx context.Context, sel ast.SelectionSet, v *DeploymentCondition) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._DeploymentCondition(ctx, sel, v) -} - -func (ec *executionContext) marshalNDeploymentEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentEvent(ctx context.Context, sel ast.SelectionSet, v DeploymentEvent) graphql.Marshaler { - return ec._DeploymentEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNDeploymentEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentEvent(ctx context.Context, sel ast.SelectionSet, v *DeploymentEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._DeploymentEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNDeploymentStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentStatus(ctx context.Context, sel ast.SelectionSet, v DeploymentStatus) graphql.Marshaler { - return ec._DeploymentStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNDeploymentStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeploymentStatus(ctx context.Context, sel ast.SelectionSet, v *DeploymentStatus) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._DeploymentStatus(ctx, sel, v) -} - -func (ec *executionContext) marshalNEventActivation2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivation(ctx context.Context, sel ast.SelectionSet, v EventActivation) graphql.Marshaler { - return ec._EventActivation(ctx, sel, &v) -} - -func (ec *executionContext) marshalNEventActivation2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivationᚄ(ctx context.Context, sel ast.SelectionSet, v []*EventActivation) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNEventActivation2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivation(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNEventActivation2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivation(ctx context.Context, sel ast.SelectionSet, v *EventActivation) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._EventActivation(ctx, sel, v) -} - -func (ec *executionContext) marshalNEventActivationEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivationEvent(ctx context.Context, sel ast.SelectionSet, v EventActivationEvent) graphql.Marshaler { - return ec._EventActivationEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNEventActivationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivationEvent(ctx context.Context, sel ast.SelectionSet, v *EventActivationEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._EventActivationEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNEventSubscription2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx context.Context, sel ast.SelectionSet, v v1alpha13.Subscription) graphql.Marshaler { - return ec._EventSubscription(ctx, sel, &v) -} - -func (ec *executionContext) marshalNEventSubscription2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscriptionᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha13.Subscription) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNEventSubscription2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNEventSubscription2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx context.Context, sel ast.SelectionSet, v *v1alpha13.Subscription) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._EventSubscription(ctx, sel, v) -} - -func (ec *executionContext) marshalNEventSubscriptionSpec2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscriptionSpec(ctx context.Context, sel ast.SelectionSet, v v1alpha13.SubscriptionSpec) graphql.Marshaler { - return ec._EventSubscriptionSpec(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNEventSubscriptionSpecInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventSubscriptionSpecInput(ctx context.Context, v interface{}) (EventSubscriptionSpecInput, error) { - return ec.unmarshalInputEventSubscriptionSpecInput(ctx, v) -} - -func (ec *executionContext) marshalNEventSubscriptionStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscriptionStatus(ctx context.Context, sel ast.SelectionSet, v v1alpha13.SubscriptionStatus) graphql.Marshaler { - return ec._EventSubscriptionStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFile2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFile(ctx context.Context, sel ast.SelectionSet, v File) graphql.Marshaler { - return ec._File(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFile2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFileᚄ(ctx context.Context, sel ast.SelectionSet, v []*File) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNFile2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFile(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNFile2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFile(ctx context.Context, sel ast.SelectionSet, v *File) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._File(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNFiltersInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFiltersInput(ctx context.Context, v interface{}) (FiltersInput, error) { - return ec.unmarshalInputFiltersInput(ctx, v) -} - -func (ec *executionContext) unmarshalNFiltersInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFiltersInputᚄ(ctx context.Context, v interface{}) ([]*FiltersInput, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*FiltersInput, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNFiltersInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFiltersInput(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) unmarshalNFiltersInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFiltersInput(ctx context.Context, v interface{}) (*FiltersInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNFiltersInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFiltersInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNFunction2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx context.Context, sel ast.SelectionSet, v Function) graphql.Marshaler { - return ec._Function(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFunction2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionᚄ(ctx context.Context, sel ast.SelectionSet, v []*Function) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNFunction2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNFunction2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx context.Context, sel ast.SelectionSet, v *Function) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Function(ctx, sel, v) -} - -func (ec *executionContext) marshalNFunctionEnv2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnv(ctx context.Context, sel ast.SelectionSet, v FunctionEnv) graphql.Marshaler { - return ec._FunctionEnv(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFunctionEnv2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvᚄ(ctx context.Context, sel ast.SelectionSet, v []*FunctionEnv) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNFunctionEnv2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnv(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNFunctionEnv2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnv(ctx context.Context, sel ast.SelectionSet, v *FunctionEnv) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._FunctionEnv(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNFunctionEnvInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvInput(ctx context.Context, v interface{}) (FunctionEnvInput, error) { - return ec.unmarshalInputFunctionEnvInput(ctx, v) -} - -func (ec *executionContext) unmarshalNFunctionEnvInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvInputᚄ(ctx context.Context, v interface{}) ([]*FunctionEnvInput, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*FunctionEnvInput, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNFunctionEnvInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvInput(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) unmarshalNFunctionEnvInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvInput(ctx context.Context, v interface{}) (*FunctionEnvInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNFunctionEnvInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvInput(ctx, v) - return &res, err -} - -func (ec *executionContext) unmarshalNFunctionEnvValueFromType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromType(ctx context.Context, v interface{}) (FunctionEnvValueFromType, error) { - var res FunctionEnvValueFromType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNFunctionEnvValueFromType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromType(ctx context.Context, sel ast.SelectionSet, v FunctionEnvValueFromType) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNFunctionEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEvent(ctx context.Context, sel ast.SelectionSet, v FunctionEvent) graphql.Marshaler { - return ec._FunctionEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFunctionEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEvent(ctx context.Context, sel ast.SelectionSet, v *FunctionEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._FunctionEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNFunctionMetadata2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadata(ctx context.Context, sel ast.SelectionSet, v FunctionMetadata) graphql.Marshaler { - return ec._FunctionMetadata(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFunctionMetadata2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadata(ctx context.Context, sel ast.SelectionSet, v *FunctionMetadata) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._FunctionMetadata(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNFunctionMetadataInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataInput(ctx context.Context, v interface{}) (FunctionMetadataInput, error) { - return ec.unmarshalInputFunctionMetadataInput(ctx, v) -} - -func (ec *executionContext) unmarshalNFunctionMetadataInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataInputᚄ(ctx context.Context, v interface{}) ([]*FunctionMetadataInput, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*FunctionMetadataInput, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNFunctionMetadataInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataInput(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) unmarshalNFunctionMetadataInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataInput(ctx context.Context, v interface{}) (*FunctionMetadataInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNFunctionMetadataInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataInput(ctx, v) - return &res, err -} - -func (ec *executionContext) unmarshalNFunctionMutationInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMutationInput(ctx context.Context, v interface{}) (FunctionMutationInput, error) { - return ec.unmarshalInputFunctionMutationInput(ctx, v) -} - -func (ec *executionContext) unmarshalNFunctionPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionPhaseType(ctx context.Context, v interface{}) (FunctionPhaseType, error) { - var res FunctionPhaseType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNFunctionPhaseType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionPhaseType(ctx context.Context, sel ast.SelectionSet, v FunctionPhaseType) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNFunctionReplicas2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReplicas(ctx context.Context, sel ast.SelectionSet, v FunctionReplicas) graphql.Marshaler { - return ec._FunctionReplicas(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFunctionReplicas2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReplicas(ctx context.Context, sel ast.SelectionSet, v *FunctionReplicas) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._FunctionReplicas(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNFunctionReplicasInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReplicasInput(ctx context.Context, v interface{}) (FunctionReplicasInput, error) { - return ec.unmarshalInputFunctionReplicasInput(ctx, v) -} - -func (ec *executionContext) unmarshalNFunctionReplicasInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReplicasInput(ctx context.Context, v interface{}) (*FunctionReplicasInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNFunctionReplicasInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReplicasInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNFunctionResources2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResources(ctx context.Context, sel ast.SelectionSet, v FunctionResources) graphql.Marshaler { - return ec._FunctionResources(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFunctionResources2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResources(ctx context.Context, sel ast.SelectionSet, v *FunctionResources) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._FunctionResources(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNFunctionResourcesInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResourcesInput(ctx context.Context, v interface{}) (FunctionResourcesInput, error) { - return ec.unmarshalInputFunctionResourcesInput(ctx, v) -} - -func (ec *executionContext) unmarshalNFunctionResourcesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResourcesInput(ctx context.Context, v interface{}) (*FunctionResourcesInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNFunctionResourcesInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionResourcesInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNFunctionStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionStatus(ctx context.Context, sel ast.SelectionSet, v FunctionStatus) graphql.Marshaler { - return ec._FunctionStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNFunctionStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionStatus(ctx context.Context, sel ast.SelectionSet, v *FunctionStatus) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._FunctionStatus(ctx, sel, v) -} - -func (ec *executionContext) marshalNGitRepository2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx context.Context, sel ast.SelectionSet, v v1alpha11.GitRepository) graphql.Marshaler { - return ec._GitRepository(ctx, sel, &v) -} - -func (ec *executionContext) marshalNGitRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx context.Context, sel ast.SelectionSet, v *v1alpha11.GitRepository) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._GitRepository(ctx, sel, v) -} - -func (ec *executionContext) marshalNGitRepositorySpec2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepositorySpec(ctx context.Context, sel ast.SelectionSet, v v1alpha11.GitRepositorySpec) graphql.Marshaler { - return ec._GitRepositorySpec(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNGitRepositorySpecInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepositorySpec(ctx context.Context, v interface{}) (v1alpha11.GitRepositorySpec, error) { - return ec.unmarshalInputGitRepositorySpecInput(ctx, v) -} - -func (ec *executionContext) unmarshalNGrantType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantType(ctx context.Context, v interface{}) (v1alpha12.GrantType, error) { - tmp, err := graphql.UnmarshalString(v) - return v1alpha12.GrantType(tmp), err -} - -func (ec *executionContext) marshalNGrantType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantType(ctx context.Context, sel ast.SelectionSet, v v1alpha12.GrantType) graphql.Marshaler { - res := graphql.MarshalString(string(v)) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalNGrantType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantTypeᚄ(ctx context.Context, v interface{}) ([]v1alpha12.GrantType, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]v1alpha12.GrantType, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNGrantType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantType(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalNGrantType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []v1alpha12.GrantType) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - for i := range v { - ret[i] = ec.marshalNGrantType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐGrantType(ctx, sel, v[i]) - } - - return ret -} - -func (ec *executionContext) unmarshalNInstanceStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx context.Context, v interface{}) (InstanceStatusType, error) { - var res InstanceStatusType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNInstanceStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx context.Context, sel ast.SelectionSet, v InstanceStatusType) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalNInt2int(ctx context.Context, v interface{}) (int, error) { - return graphql.UnmarshalInt(v) -} - -func (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler { - res := graphql.MarshalInt(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalNInt2int64(ctx context.Context, v interface{}) (int64, error) { - return graphql.UnmarshalInt64(v) -} - -func (ec *executionContext) marshalNInt2int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler { - res := graphql.MarshalInt64(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx context.Context, v interface{}) (JSON, error) { - if v == nil { - return nil, nil - } - var res JSON - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx context.Context, sel ast.SelectionSet, v JSON) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return v -} - -func (ec *executionContext) unmarshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx context.Context, v interface{}) (Labels, error) { - if v == nil { - return nil, nil - } - var res Labels - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx context.Context, sel ast.SelectionSet, v Labels) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return v -} - -func (ec *executionContext) marshalNLimitRange2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRange(ctx context.Context, sel ast.SelectionSet, v v11.LimitRange) graphql.Marshaler { - return ec._LimitRange(ctx, sel, &v) -} - -func (ec *executionContext) marshalNLimitRange2ᚕᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeᚄ(ctx context.Context, sel ast.SelectionSet, v []*v11.LimitRange) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNLimitRange2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRange(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNLimitRange2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRange(ctx context.Context, sel ast.SelectionSet, v *v11.LimitRange) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._LimitRange(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNLimitRangeInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLimitRangeInput(ctx context.Context, v interface{}) (LimitRangeInput, error) { - return ec.unmarshalInputLimitRangeInput(ctx, v) -} - -func (ec *executionContext) marshalNLimitRangeItem2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeItem(ctx context.Context, sel ast.SelectionSet, v v11.LimitRangeItem) graphql.Marshaler { - return ec._LimitRangeItem(ctx, sel, &v) -} - -func (ec *executionContext) marshalNLimitRangeItem2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeItemᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.LimitRangeItem) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNLimitRangeItem2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeItem(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNLimitRangeSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRangeSpec(ctx context.Context, sel ast.SelectionSet, v v11.LimitRangeSpec) graphql.Marshaler { - return ec._LimitRangeSpec(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNLimitRangeType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLimitRangeType(ctx context.Context, v interface{}) (LimitRangeType, error) { - var res LimitRangeType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNLimitRangeType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLimitRangeType(ctx context.Context, sel ast.SelectionSet, v LimitRangeType) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalNLimitType2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitType(ctx context.Context, v interface{}) (v11.LimitType, error) { - tmp, err := graphql.UnmarshalString(v) - return v11.LimitType(tmp), err -} - -func (ec *executionContext) marshalNLimitType2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitType(ctx context.Context, sel ast.SelectionSet, v v11.LimitType) graphql.Marshaler { - res := graphql.MarshalString(string(v)) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalNLoadBalancerIngress2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerIngress(ctx context.Context, sel ast.SelectionSet, v LoadBalancerIngress) graphql.Marshaler { - return ec._LoadBalancerIngress(ctx, sel, &v) -} - -func (ec *executionContext) marshalNLoadBalancerIngress2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerIngressᚄ(ctx context.Context, sel ast.SelectionSet, v []*LoadBalancerIngress) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNLoadBalancerIngress2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerIngress(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNLoadBalancerIngress2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerIngress(ctx context.Context, sel ast.SelectionSet, v *LoadBalancerIngress) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._LoadBalancerIngress(ctx, sel, v) -} - -func (ec *executionContext) marshalNLoadBalancerStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerStatus(ctx context.Context, sel ast.SelectionSet, v LoadBalancerStatus) graphql.Marshaler { - return ec._LoadBalancerStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNLoadBalancerStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLoadBalancerStatus(ctx context.Context, sel ast.SelectionSet, v *LoadBalancerStatus) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._LoadBalancerStatus(ctx, sel, v) -} - -func (ec *executionContext) marshalNLocalObjectReference2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLocalObjectReference(ctx context.Context, sel ast.SelectionSet, v LocalObjectReference) graphql.Marshaler { - return ec._LocalObjectReference(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNLocalObjectReferenceInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLocalObjectReferenceInput(ctx context.Context, v interface{}) (LocalObjectReferenceInput, error) { - return ec.unmarshalInputLocalObjectReferenceInput(ctx, v) -} - -func (ec *executionContext) unmarshalNLocalObjectReferenceInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLocalObjectReferenceInput(ctx context.Context, v interface{}) (*LocalObjectReferenceInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNLocalObjectReferenceInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLocalObjectReferenceInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNMicroFrontend2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐMicroFrontend(ctx context.Context, sel ast.SelectionSet, v MicroFrontend) graphql.Marshaler { - return ec._MicroFrontend(ctx, sel, &v) -} - -func (ec *executionContext) marshalNMicroFrontend2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐMicroFrontendᚄ(ctx context.Context, sel ast.SelectionSet, v []*MicroFrontend) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNMicroFrontend2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐMicroFrontend(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNMicroFrontend2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐMicroFrontend(ctx context.Context, sel ast.SelectionSet, v *MicroFrontend) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._MicroFrontend(ctx, sel, v) -} - -func (ec *executionContext) marshalNNamespaceEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceEvent(ctx context.Context, sel ast.SelectionSet, v NamespaceEvent) graphql.Marshaler { - return ec._NamespaceEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNNamespaceEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceEvent(ctx context.Context, sel ast.SelectionSet, v *NamespaceEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._NamespaceEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNNamespaceListItem2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceListItem(ctx context.Context, sel ast.SelectionSet, v NamespaceListItem) graphql.Marshaler { - return ec._NamespaceListItem(ctx, sel, &v) -} - -func (ec *executionContext) marshalNNamespaceListItem2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceListItemᚄ(ctx context.Context, sel ast.SelectionSet, v []*NamespaceListItem) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNNamespaceListItem2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceListItem(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNNamespaceListItem2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceListItem(ctx context.Context, sel ast.SelectionSet, v *NamespaceListItem) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._NamespaceListItem(ctx, sel, v) -} - -func (ec *executionContext) marshalNNamespaceMutationOutput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceMutationOutput(ctx context.Context, sel ast.SelectionSet, v NamespaceMutationOutput) graphql.Marshaler { - return ec._NamespaceMutationOutput(ctx, sel, &v) -} - -func (ec *executionContext) marshalNNamespaceMutationOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespaceMutationOutput(ctx context.Context, sel ast.SelectionSet, v *NamespaceMutationOutput) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._NamespaceMutationOutput(ctx, sel, v) -} - -func (ec *executionContext) marshalNNavigationNode2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNavigationNode(ctx context.Context, sel ast.SelectionSet, v NavigationNode) graphql.Marshaler { - return ec._NavigationNode(ctx, sel, &v) -} - -func (ec *executionContext) marshalNNavigationNode2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNavigationNodeᚄ(ctx context.Context, sel ast.SelectionSet, v []*NavigationNode) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNNavigationNode2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNavigationNode(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNNavigationNode2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNavigationNode(ctx context.Context, sel ast.SelectionSet, v *NavigationNode) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._NavigationNode(ctx, sel, v) -} - -func (ec *executionContext) marshalNOAuth2Client2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx context.Context, sel ast.SelectionSet, v v1alpha12.OAuth2Client) graphql.Marshaler { - return ec._OAuth2Client(ctx, sel, &v) -} - -func (ec *executionContext) marshalNOAuth2Client2ᚕᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Clientᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha12.OAuth2Client) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx context.Context, sel ast.SelectionSet, v *v1alpha12.OAuth2Client) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._OAuth2Client(ctx, sel, v) -} - -func (ec *executionContext) marshalNOAuth2ClientEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐOAuth2ClientEvent(ctx context.Context, sel ast.SelectionSet, v OAuth2ClientEvent) graphql.Marshaler { - return ec._OAuth2ClientEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNOAuth2ClientEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐOAuth2ClientEvent(ctx context.Context, sel ast.SelectionSet, v *OAuth2ClientEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._OAuth2ClientEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNOAuth2ClientSpec2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2ClientSpec(ctx context.Context, sel ast.SelectionSet, v v1alpha12.OAuth2ClientSpec) graphql.Marshaler { - return ec._OAuth2ClientSpec(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNOAuth2ClientSpecInput2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2ClientSpec(ctx context.Context, v interface{}) (v1alpha12.OAuth2ClientSpec, error) { - return ec.unmarshalInputOAuth2ClientSpecInput(ctx, v) -} - -func (ec *executionContext) unmarshalNOwnerReferenceInput2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx context.Context, v interface{}) (v1.OwnerReference, error) { - return ec.unmarshalInputOwnerReferenceInput(ctx, v) -} - -func (ec *executionContext) unmarshalNOwnerReferenceInput2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx context.Context, v interface{}) (*v1.OwnerReference, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNOwnerReferenceInput2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNPod2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx context.Context, sel ast.SelectionSet, v Pod) graphql.Marshaler { - return ec._Pod(ctx, sel, &v) -} - -func (ec *executionContext) marshalNPod2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodᚄ(ctx context.Context, sel ast.SelectionSet, v []*Pod) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNPod2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNPod2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx context.Context, sel ast.SelectionSet, v *Pod) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Pod(ctx, sel, v) -} - -func (ec *executionContext) marshalNPodEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodEvent(ctx context.Context, sel ast.SelectionSet, v PodEvent) graphql.Marshaler { - return ec._PodEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNPodEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodEvent(ctx context.Context, sel ast.SelectionSet, v *PodEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._PodEvent(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNPodStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodStatusType(ctx context.Context, v interface{}) (PodStatusType, error) { - var res PodStatusType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNPodStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPodStatusType(ctx context.Context, sel ast.SelectionSet, v PodStatusType) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNPolicyRule2k8sᚗioᚋapiᚋrbacᚋv1ᚐPolicyRule(ctx context.Context, sel ast.SelectionSet, v v12.PolicyRule) graphql.Marshaler { - return ec._PolicyRule(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNPort2uint32(ctx context.Context, v interface{}) (uint32, error) { - return UnmarshalPort(v) -} - -func (ec *executionContext) marshalNPort2uint32(ctx context.Context, sel ast.SelectionSet, v uint32) graphql.Marshaler { - res := MarshalPort(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalNPort2ᚖuint32(ctx context.Context, v interface{}) (*uint32, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNPort2uint32(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNPort2ᚖuint32(ctx context.Context, sel ast.SelectionSet, v *uint32) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec.marshalNPort2uint32(ctx, sel, *v) -} - -func (ec *executionContext) marshalNReplicaSet2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v ReplicaSet) graphql.Marshaler { - return ec._ReplicaSet(ctx, sel, &v) -} - -func (ec *executionContext) marshalNReplicaSet2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSetᚄ(ctx context.Context, sel ast.SelectionSet, v []*ReplicaSet) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNReplicaSet2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNReplicaSet2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v *ReplicaSet) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ReplicaSet(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNRepositoryAuthType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuthType(ctx context.Context, v interface{}) (v1alpha11.RepositoryAuthType, error) { - tmp, err := graphql.UnmarshalString(v) - return v1alpha11.RepositoryAuthType(tmp), err -} - -func (ec *executionContext) marshalNRepositoryAuthType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuthType(ctx context.Context, sel ast.SelectionSet, v v1alpha11.RepositoryAuthType) graphql.Marshaler { - res := graphql.MarshalString(string(v)) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalNRequiredPermission2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRequiredPermission(ctx context.Context, sel ast.SelectionSet, v RequiredPermission) graphql.Marshaler { - return ec._RequiredPermission(ctx, sel, &v) -} - -func (ec *executionContext) marshalNRequiredPermission2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRequiredPermissionᚄ(ctx context.Context, sel ast.SelectionSet, v []*RequiredPermission) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNRequiredPermission2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRequiredPermission(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNRequiredPermission2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRequiredPermission(ctx context.Context, sel ast.SelectionSet, v *RequiredPermission) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._RequiredPermission(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNResourceAttributes2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceAttributes(ctx context.Context, v interface{}) (ResourceAttributes, error) { - return ec.unmarshalInputResourceAttributes(ctx, v) -} - -func (ec *executionContext) marshalNResourceLimits2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceLimits(ctx context.Context, sel ast.SelectionSet, v ResourceLimits) graphql.Marshaler { - return ec._ResourceLimits(ctx, sel, &v) -} - -func (ec *executionContext) marshalNResourceLimits2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceLimits(ctx context.Context, sel ast.SelectionSet, v *ResourceLimits) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ResourceLimits(ctx, sel, v) -} - -func (ec *executionContext) marshalNResourceQuota2k8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuota(ctx context.Context, sel ast.SelectionSet, v v11.ResourceQuota) graphql.Marshaler { - return ec._ResourceQuota(ctx, sel, &v) -} - -func (ec *executionContext) marshalNResourceQuota2ᚕᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuotaᚄ(ctx context.Context, sel ast.SelectionSet, v []*v11.ResourceQuota) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNResourceQuota2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuota(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNResourceQuota2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuota(ctx context.Context, sel ast.SelectionSet, v *v11.ResourceQuota) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ResourceQuota(ctx, sel, v) -} - -func (ec *executionContext) marshalNResourceQuotaHard2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceQuotaHard(ctx context.Context, sel ast.SelectionSet, v ResourceQuotaHard) graphql.Marshaler { - return ec._ResourceQuotaHard(ctx, sel, &v) -} - -func (ec *executionContext) marshalNResourceQuotaHard2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceQuotaHard(ctx context.Context, sel ast.SelectionSet, v *ResourceQuotaHard) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ResourceQuotaHard(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNResourceQuotaInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceQuotaInput(ctx context.Context, v interface{}) (ResourceQuotaInput, error) { - return ec.unmarshalInputResourceQuotaInput(ctx, v) -} - -func (ec *executionContext) marshalNResourceQuotaSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuotaSpec(ctx context.Context, sel ast.SelectionSet, v v11.ResourceQuotaSpec) graphql.Marshaler { - return ec._ResourceQuotaSpec(ctx, sel, &v) -} - -func (ec *executionContext) marshalNResourceRule2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRule(ctx context.Context, sel ast.SelectionSet, v ResourceRule) graphql.Marshaler { - return ec._ResourceRule(ctx, sel, &v) -} - -func (ec *executionContext) marshalNResourceRule2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRuleᚄ(ctx context.Context, sel ast.SelectionSet, v []*ResourceRule) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNResourceRule2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRule(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNResourceRule2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRule(ctx context.Context, sel ast.SelectionSet, v *ResourceRule) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ResourceRule(ctx, sel, v) -} - -func (ec *executionContext) marshalNResourceValues2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValues(ctx context.Context, sel ast.SelectionSet, v ResourceValues) graphql.Marshaler { - return ec._ResourceValues(ctx, sel, &v) -} - -func (ec *executionContext) marshalNResourceValues2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValues(ctx context.Context, sel ast.SelectionSet, v *ResourceValues) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ResourceValues(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNResourceValuesInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx context.Context, v interface{}) (ResourceValuesInput, error) { - return ec.unmarshalInputResourceValuesInput(ctx, v) -} - -func (ec *executionContext) unmarshalNResourceValuesInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx context.Context, v interface{}) (*ResourceValuesInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNResourceValuesInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceValuesInput(ctx, v) - return &res, err -} - -func (ec *executionContext) unmarshalNResponseType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseType(ctx context.Context, v interface{}) (v1alpha12.ResponseType, error) { - tmp, err := graphql.UnmarshalString(v) - return v1alpha12.ResponseType(tmp), err -} - -func (ec *executionContext) marshalNResponseType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseType(ctx context.Context, sel ast.SelectionSet, v v1alpha12.ResponseType) graphql.Marshaler { - res := graphql.MarshalString(string(v)) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalNResponseType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseTypeᚄ(ctx context.Context, v interface{}) ([]v1alpha12.ResponseType, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]v1alpha12.ResponseType, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNResponseType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseType(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalNResponseType2ᚕgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []v1alpha12.ResponseType) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - for i := range v { - ret[i] = ec.marshalNResponseType2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐResponseType(ctx, sel, v[i]) - } - - return ret -} - -func (ec *executionContext) marshalNRole2k8sᚗioᚋapiᚋrbacᚋv1ᚐRole(ctx context.Context, sel ast.SelectionSet, v v12.Role) graphql.Marshaler { - return ec._Role(ctx, sel, &v) -} - -func (ec *executionContext) marshalNRole2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleᚄ(ctx context.Context, sel ast.SelectionSet, v []*v12.Role) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNRole2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRole(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNRole2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRole(ctx context.Context, sel ast.SelectionSet, v *v12.Role) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Role(ctx, sel, v) -} - -func (ec *executionContext) marshalNRoleBinding2k8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBinding(ctx context.Context, sel ast.SelectionSet, v v12.RoleBinding) graphql.Marshaler { - return ec._RoleBinding(ctx, sel, &v) -} - -func (ec *executionContext) marshalNRoleBinding2ᚕᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBindingᚄ(ctx context.Context, sel ast.SelectionSet, v []*v12.RoleBinding) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBinding(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNRoleBinding2ᚖk8sᚗioᚋapiᚋrbacᚋv1ᚐRoleBinding(ctx context.Context, sel ast.SelectionSet, v *v12.RoleBinding) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._RoleBinding(ctx, sel, v) -} - -func (ec *executionContext) marshalNRoleBindingEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingEvent(ctx context.Context, sel ast.SelectionSet, v RoleBindingEvent) graphql.Marshaler { - return ec._RoleBindingEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNRoleBindingEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingEvent(ctx context.Context, sel ast.SelectionSet, v *RoleBindingEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._RoleBindingEvent(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNRoleBindingInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingInput(ctx context.Context, v interface{}) (RoleBindingInput, error) { - return ec.unmarshalInputRoleBindingInput(ctx, v) -} - -func (ec *executionContext) unmarshalNRoleBindingSubject2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingSubject(ctx context.Context, v interface{}) (RoleBindingSubject, error) { - return ec.unmarshalInputRoleBindingSubject(ctx, v) -} - -func (ec *executionContext) unmarshalNRoleBindingSubject2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingSubjectᚄ(ctx context.Context, v interface{}) ([]*RoleBindingSubject, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*RoleBindingSubject, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNRoleBindingSubject2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingSubject(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) unmarshalNRoleBindingSubject2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingSubject(ctx context.Context, v interface{}) (*RoleBindingSubject, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNRoleBindingSubject2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleBindingSubject(ctx, v) - return &res, err -} - -func (ec *executionContext) unmarshalNRoleKind2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleKind(ctx context.Context, v interface{}) (RoleKind, error) { - var res RoleKind - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNRoleKind2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐRoleKind(ctx context.Context, sel ast.SelectionSet, v RoleKind) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNRoleRef2k8sᚗioᚋapiᚋrbacᚋv1ᚐRoleRef(ctx context.Context, sel ast.SelectionSet, v v12.RoleRef) graphql.Marshaler { - return ec._RoleRef(ctx, sel, &v) -} - -func (ec *executionContext) marshalNRule2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRule(ctx context.Context, sel ast.SelectionSet, v v1alpha1.Rule) graphql.Marshaler { - return ec._Rule(ctx, sel, &v) -} - -func (ec *executionContext) marshalNRule2ᚕgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRuleᚄ(ctx context.Context, sel ast.SelectionSet, v []v1alpha1.Rule) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNRule2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRule(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) unmarshalNRuleInput2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRule(ctx context.Context, v interface{}) (v1alpha1.Rule, error) { - return ec.unmarshalInputRuleInput(ctx, v) -} - -func (ec *executionContext) unmarshalNRuleInput2ᚕgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRuleᚄ(ctx context.Context, v interface{}) ([]v1alpha1.Rule, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]v1alpha1.Rule, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNRuleInput2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐRule(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalNSecret2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx context.Context, sel ast.SelectionSet, v Secret) graphql.Marshaler { - return ec._Secret(ctx, sel, &v) -} - -func (ec *executionContext) marshalNSecret2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecretᚄ(ctx context.Context, sel ast.SelectionSet, v []*Secret) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx context.Context, sel ast.SelectionSet, v *Secret) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Secret(ctx, sel, v) -} - -func (ec *executionContext) marshalNSecretEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecretEvent(ctx context.Context, sel ast.SelectionSet, v SecretEvent) graphql.Marshaler { - return ec._SecretEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNSecretEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecretEvent(ctx context.Context, sel ast.SelectionSet, v *SecretEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._SecretEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx context.Context, sel ast.SelectionSet, v Service) graphql.Marshaler { - return ec._Service(ctx, sel, &v) -} - -func (ec *executionContext) marshalNService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceᚄ(ctx context.Context, sel ast.SelectionSet, v []*Service) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx context.Context, sel ast.SelectionSet, v *Service) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Service(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceBinding2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx context.Context, sel ast.SelectionSet, v ServiceBinding) graphql.Marshaler { - return ec._ServiceBinding(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBinding2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServiceBinding) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServiceBinding2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNServiceBinding2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx context.Context, sel ast.SelectionSet, v *ServiceBinding) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBinding(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceBindingEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingEvent(ctx context.Context, sel ast.SelectionSet, v ServiceBindingEvent) graphql.Marshaler { - return ec._ServiceBindingEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBindingEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingEvent(ctx context.Context, sel ast.SelectionSet, v *ServiceBindingEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBindingEvent(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNServiceBindingRefInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingRefInput(ctx context.Context, v interface{}) (ServiceBindingRefInput, error) { - return ec.unmarshalInputServiceBindingRefInput(ctx, v) -} - -func (ec *executionContext) unmarshalNServiceBindingRefInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingRefInput(ctx context.Context, v interface{}) (*ServiceBindingRefInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNServiceBindingRefInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingRefInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNServiceBindingStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingStatus(ctx context.Context, sel ast.SelectionSet, v ServiceBindingStatus) graphql.Marshaler { - return ec._ServiceBindingStatus(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNServiceBindingStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingStatusType(ctx context.Context, v interface{}) (ServiceBindingStatusType, error) { - var res ServiceBindingStatusType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNServiceBindingStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingStatusType(ctx context.Context, sel ast.SelectionSet, v ServiceBindingStatusType) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNServiceBindingUsage2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx context.Context, sel ast.SelectionSet, v ServiceBindingUsage) graphql.Marshaler { - return ec._ServiceBindingUsage(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBindingUsage2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServiceBindingUsage) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServiceBindingUsage2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNServiceBindingUsage2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx context.Context, sel ast.SelectionSet, v *ServiceBindingUsage) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBindingUsage(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceBindingUsageEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageEvent(ctx context.Context, sel ast.SelectionSet, v ServiceBindingUsageEvent) graphql.Marshaler { - return ec._ServiceBindingUsageEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBindingUsageEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageEvent(ctx context.Context, sel ast.SelectionSet, v *ServiceBindingUsageEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBindingUsageEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceBindingUsageStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageStatus(ctx context.Context, sel ast.SelectionSet, v ServiceBindingUsageStatus) graphql.Marshaler { - return ec._ServiceBindingUsageStatus(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNServiceBindingUsageStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageStatusType(ctx context.Context, v interface{}) (ServiceBindingUsageStatusType, error) { - var res ServiceBindingUsageStatusType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNServiceBindingUsageStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageStatusType(ctx context.Context, sel ast.SelectionSet, v ServiceBindingUsageStatusType) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNServiceBindingsStats2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingsStats(ctx context.Context, sel ast.SelectionSet, v ServiceBindingsStats) graphql.Marshaler { - return ec._ServiceBindingsStats(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBindingsStats2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingsStats(ctx context.Context, sel ast.SelectionSet, v *ServiceBindingsStats) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBindingsStats(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceBroker2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBroker(ctx context.Context, sel ast.SelectionSet, v ServiceBroker) graphql.Marshaler { - return ec._ServiceBroker(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBroker2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServiceBroker) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBroker(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBroker(ctx context.Context, sel ast.SelectionSet, v *ServiceBroker) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBroker(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceBrokerEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerEvent(ctx context.Context, sel ast.SelectionSet, v ServiceBrokerEvent) graphql.Marshaler { - return ec._ServiceBrokerEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBrokerEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerEvent(ctx context.Context, sel ast.SelectionSet, v *ServiceBrokerEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBrokerEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceBrokerStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerStatus(ctx context.Context, sel ast.SelectionSet, v ServiceBrokerStatus) graphql.Marshaler { - return ec._ServiceBrokerStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceBrokerStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBrokerStatus(ctx context.Context, sel ast.SelectionSet, v *ServiceBrokerStatus) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceBrokerStatus(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceClass2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClass(ctx context.Context, sel ast.SelectionSet, v ServiceClass) graphql.Marshaler { - return ec._ServiceClass(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceClass2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClassᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServiceClass) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClass(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClass(ctx context.Context, sel ast.SelectionSet, v *ServiceClass) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceClass(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceEvent(ctx context.Context, sel ast.SelectionSet, v ServiceEvent) graphql.Marshaler { - return ec._ServiceEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceEvent(ctx context.Context, sel ast.SelectionSet, v *ServiceEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceInstance2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx context.Context, sel ast.SelectionSet, v ServiceInstance) graphql.Marshaler { - return ec._ServiceInstance(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceInstance2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServiceInstance) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServiceInstance2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNServiceInstance2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx context.Context, sel ast.SelectionSet, v *ServiceInstance) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceInstance(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNServiceInstanceCreateInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceCreateInput(ctx context.Context, v interface{}) (ServiceInstanceCreateInput, error) { - return ec.unmarshalInputServiceInstanceCreateInput(ctx, v) -} - -func (ec *executionContext) unmarshalNServiceInstanceCreateInputResourceRef2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceCreateInputResourceRef(ctx context.Context, v interface{}) (ServiceInstanceCreateInputResourceRef, error) { - return ec.unmarshalInputServiceInstanceCreateInputResourceRef(ctx, v) -} - -func (ec *executionContext) unmarshalNServiceInstanceCreateInputResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceCreateInputResourceRef(ctx context.Context, v interface{}) (*ServiceInstanceCreateInputResourceRef, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNServiceInstanceCreateInputResourceRef2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceCreateInputResourceRef(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNServiceInstanceEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceEvent(ctx context.Context, sel ast.SelectionSet, v ServiceInstanceEvent) graphql.Marshaler { - return ec._ServiceInstanceEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceInstanceEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceEvent(ctx context.Context, sel ast.SelectionSet, v *ServiceInstanceEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceInstanceEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNServiceInstanceStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceStatus(ctx context.Context, sel ast.SelectionSet, v ServiceInstanceStatus) graphql.Marshaler { - return ec._ServiceInstanceStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServicePlan2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlan(ctx context.Context, sel ast.SelectionSet, v ServicePlan) graphql.Marshaler { - return ec._ServicePlan(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServicePlan2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlanᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServicePlan) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlan(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlan(ctx context.Context, sel ast.SelectionSet, v *ServicePlan) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServicePlan(ctx, sel, v) -} - -func (ec *executionContext) marshalNServicePort2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePort(ctx context.Context, sel ast.SelectionSet, v ServicePort) graphql.Marshaler { - return ec._ServicePort(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServicePort2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePortᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServicePort) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServicePort2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePort(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNServicePort2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePort(ctx context.Context, sel ast.SelectionSet, v *ServicePort) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServicePort(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNServiceProtocol2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceProtocol(ctx context.Context, v interface{}) (ServiceProtocol, error) { - var res ServiceProtocol - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNServiceProtocol2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceProtocol(ctx context.Context, sel ast.SelectionSet, v ServiceProtocol) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNServiceStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceStatus(ctx context.Context, sel ast.SelectionSet, v ServiceStatus) graphql.Marshaler { - return ec._ServiceStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNServiceStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceStatus(ctx context.Context, sel ast.SelectionSet, v *ServiceStatus) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._ServiceStatus(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNSettings2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSettings(ctx context.Context, v interface{}) (Settings, error) { - if v == nil { - return nil, nil - } - var res Settings - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNSettings2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSettings(ctx context.Context, sel ast.SelectionSet, v Settings) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return v -} - -func (ec *executionContext) unmarshalNString2string(ctx context.Context, v interface{}) (string, error) { - return graphql.UnmarshalString(v) -} - -func (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { - res := graphql.MarshalString(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalNString2ᚕstringᚄ(ctx context.Context, v interface{}) ([]string, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]string, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNString2string(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalNString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - for i := range v { - ret[i] = ec.marshalNString2string(ctx, sel, v[i]) - } - - return ret -} - -func (ec *executionContext) unmarshalNString2ᚖstring(ctx context.Context, v interface{}) (*string, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNString2string(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec.marshalNString2string(ctx, sel, *v) -} - -func (ec *executionContext) unmarshalNSubjectKind2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubjectKind(ctx context.Context, v interface{}) (SubjectKind, error) { - var res SubjectKind - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNSubjectKind2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubjectKind(ctx context.Context, sel ast.SelectionSet, v SubjectKind) graphql.Marshaler { - return v -} - -func (ec *executionContext) marshalNSubscriber2knativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐDestination(ctx context.Context, sel ast.SelectionSet, v v13.Destination) graphql.Marshaler { - return ec._Subscriber(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNSubscriberInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriberInput(ctx context.Context, v interface{}) (SubscriberInput, error) { - return ec.unmarshalInputSubscriberInput(ctx, v) -} - -func (ec *executionContext) unmarshalNSubscriberInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriberInput(ctx context.Context, v interface{}) (*SubscriberInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNSubscriberInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriberInput(ctx, v) - return &res, err -} - -func (ec *executionContext) unmarshalNSubscriberRefInput2knativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐKReference(ctx context.Context, v interface{}) (v13.KReference, error) { - return ec.unmarshalInputSubscriberRefInput(ctx, v) -} - -func (ec *executionContext) unmarshalNSubscriberRefInput2ᚖknativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐKReference(ctx context.Context, v interface{}) (*v13.KReference, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNSubscriberRefInput2knativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐKReference(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNSubscriptionEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEvent(ctx context.Context, sel ast.SelectionSet, v SubscriptionEvent) graphql.Marshaler { - return ec._SubscriptionEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNSubscriptionEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEvent(ctx context.Context, sel ast.SelectionSet, v *SubscriptionEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._SubscriptionEvent(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx context.Context, v interface{}) (SubscriptionEventType, error) { - var res SubscriptionEventType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNSubscriptionEventType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSubscriptionEventType(ctx context.Context, sel ast.SelectionSet, v SubscriptionEventType) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalNTimestamp2timeᚐTime(ctx context.Context, v interface{}) (time.Time, error) { - return UnmarshalTimestamp(v) -} - -func (ec *executionContext) marshalNTimestamp2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler { - res := MarshalTimestamp(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalNTrigger2knativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx context.Context, sel ast.SelectionSet, v v1alpha14.Trigger) graphql.Marshaler { - return ec._Trigger(ctx, sel, &v) -} - -func (ec *executionContext) marshalNTrigger2ᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx context.Context, sel ast.SelectionSet, v *v1alpha14.Trigger) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Trigger(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNTriggerCreateInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerCreateInput(ctx context.Context, v interface{}) (TriggerCreateInput, error) { - return ec.unmarshalInputTriggerCreateInput(ctx, v) -} - -func (ec *executionContext) unmarshalNTriggerCreateInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerCreateInputᚄ(ctx context.Context, v interface{}) ([]*TriggerCreateInput, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*TriggerCreateInput, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNTriggerCreateInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerCreateInput(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) unmarshalNTriggerCreateInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerCreateInput(ctx context.Context, v interface{}) (*TriggerCreateInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalNTriggerCreateInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerCreateInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalNTriggerEvent2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerEvent(ctx context.Context, sel ast.SelectionSet, v TriggerEvent) graphql.Marshaler { - return ec._TriggerEvent(ctx, sel, &v) -} - -func (ec *executionContext) marshalNTriggerEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerEvent(ctx context.Context, sel ast.SelectionSet, v *TriggerEvent) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._TriggerEvent(ctx, sel, v) -} - -func (ec *executionContext) marshalNTriggerSpec2knativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTriggerSpec(ctx context.Context, sel ast.SelectionSet, v v1alpha14.TriggerSpec) graphql.Marshaler { - return ec._TriggerSpec(ctx, sel, &v) -} - -func (ec *executionContext) marshalNTriggerStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerStatus(ctx context.Context, sel ast.SelectionSet, v TriggerStatus) graphql.Marshaler { - return ec._TriggerStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNTriggerStatus2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerStatus(ctx context.Context, sel ast.SelectionSet, v *TriggerStatus) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._TriggerStatus(ctx, sel, v) -} - -func (ec *executionContext) unmarshalNTriggerStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerStatusType(ctx context.Context, v interface{}) (TriggerStatusType, error) { - var res TriggerStatusType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalNTriggerStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐTriggerStatusType(ctx context.Context, sel ast.SelectionSet, v TriggerStatusType) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalNUID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx context.Context, v interface{}) (types.UID, error) { - return UnmarshalUID(v) -} - -func (ec *executionContext) marshalNUID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx context.Context, sel ast.SelectionSet, v types.UID) graphql.Marshaler { - res := MarshalUID(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalNUsageKind2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKind(ctx context.Context, sel ast.SelectionSet, v UsageKind) graphql.Marshaler { - return ec._UsageKind(ctx, sel, &v) -} - -func (ec *executionContext) marshalNUsageKind2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKindᚄ(ctx context.Context, sel ast.SelectionSet, v []*UsageKind) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNUsageKind2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKind(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNUsageKind2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKind(ctx context.Context, sel ast.SelectionSet, v *UsageKind) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._UsageKind(ctx, sel, v) -} - -func (ec *executionContext) marshalNUsageKindResource2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKindResource(ctx context.Context, sel ast.SelectionSet, v UsageKindResource) graphql.Marshaler { - return ec._UsageKindResource(ctx, sel, &v) -} - -func (ec *executionContext) marshalNUsageKindResource2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKindResourceᚄ(ctx context.Context, sel ast.SelectionSet, v []*UsageKindResource) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNUsageKindResource2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKindResource(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalNUsageKindResource2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐUsageKindResource(ctx context.Context, sel ast.SelectionSet, v *UsageKindResource) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._UsageKindResource(ctx, sel, v) -} - -func (ec *executionContext) marshalNVersionInfo2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐVersionInfo(ctx context.Context, sel ast.SelectionSet, v VersionInfo) graphql.Marshaler { - return ec._VersionInfo(ctx, sel, &v) -} - -func (ec *executionContext) marshalNVersionInfo2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐVersionInfo(ctx context.Context, sel ast.SelectionSet, v *VersionInfo) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._VersionInfo(ctx, sel, v) -} - -func (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler { - return ec.___Directive(ctx, sel, &v) -} - -func (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v interface{}) (string, error) { - return graphql.UnmarshalString(v) -} - -func (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { - res := graphql.MarshalString(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v interface{}) ([]string, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]string, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler { - return ec.___EnumValue(ctx, sel, &v) -} - -func (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler { - return ec.___Field(ctx, sel, &v) -} - -func (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler { - return ec.___InputValue(ctx, sel, &v) -} - -func (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler { - return ec.___Type(ctx, sel, &v) -} - -func (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler { - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec.___Type(ctx, sel, v) -} - -func (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v interface{}) (string, error) { - return graphql.UnmarshalString(v) -} - -func (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { - res := graphql.MarshalString(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - } - return res -} - -func (ec *executionContext) marshalOAPIRule2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx context.Context, sel ast.SelectionSet, v v1alpha1.APIRule) graphql.Marshaler { - return ec._APIRule(ctx, sel, &v) -} - -func (ec *executionContext) marshalOAPIRule2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRule(ctx context.Context, sel ast.SelectionSet, v *v1alpha1.APIRule) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._APIRule(ctx, sel, v) -} - -func (ec *executionContext) marshalOAPIRuleStatus2githubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleResourceStatus(ctx context.Context, sel ast.SelectionSet, v v1alpha1.APIRuleResourceStatus) graphql.Marshaler { - return ec._APIRuleStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalOAPIRuleStatus2ᚖgithubᚗcomᚋkymaᚑincubatorᚋapiᚑgatewayᚋapiᚋv1alpha1ᚐAPIRuleResourceStatus(ctx context.Context, sel ast.SelectionSet, v *v1alpha1.APIRuleResourceStatus) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._APIRuleStatus(ctx, sel, v) -} - -func (ec *executionContext) marshalOAddonsConfiguration2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx context.Context, sel ast.SelectionSet, v AddonsConfiguration) graphql.Marshaler { - return ec._AddonsConfiguration(ctx, sel, &v) -} - -func (ec *executionContext) marshalOAddonsConfiguration2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfiguration(ctx context.Context, sel ast.SelectionSet, v *AddonsConfiguration) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._AddonsConfiguration(ctx, sel, v) -} - -func (ec *executionContext) marshalOAddonsConfigurationRepository2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryᚄ(ctx context.Context, sel ast.SelectionSet, v []*AddonsConfigurationRepository) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNAddonsConfigurationRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepository(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) unmarshalOAddonsConfigurationRepositoryInput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInputᚄ(ctx context.Context, v interface{}) ([]*AddonsConfigurationRepositoryInput, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*AddonsConfigurationRepositoryInput, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNAddonsConfigurationRepositoryInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationRepositoryInput(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalOAddonsConfigurationStatusAddons2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusAddonsᚄ(ctx context.Context, sel ast.SelectionSet, v []*AddonsConfigurationStatusAddons) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNAddonsConfigurationStatusAddons2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusAddons(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOAddonsConfigurationStatusRepository2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusRepositoryᚄ(ctx context.Context, sel ast.SelectionSet, v []*AddonsConfigurationStatusRepository) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNAddonsConfigurationStatusRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAddonsConfigurationStatusRepository(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOApplication2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplication(ctx context.Context, sel ast.SelectionSet, v Application) graphql.Marshaler { - return ec._Application(ctx, sel, &v) -} - -func (ec *executionContext) marshalOApplication2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplication(ctx context.Context, sel ast.SelectionSet, v *Application) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Application(ctx, sel, v) -} - -func (ec *executionContext) marshalOApplicationMapping2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMapping(ctx context.Context, sel ast.SelectionSet, v ApplicationMapping) graphql.Marshaler { - return ec._ApplicationMapping(ctx, sel, &v) -} - -func (ec *executionContext) marshalOApplicationMapping2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMapping(ctx context.Context, sel ast.SelectionSet, v *ApplicationMapping) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ApplicationMapping(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOApplicationMappingService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx context.Context, v interface{}) (ApplicationMappingService, error) { - var res ApplicationMappingService - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalOApplicationMappingService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx context.Context, sel ast.SelectionSet, v ApplicationMappingService) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalOApplicationMappingService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx context.Context, v interface{}) ([]*ApplicationMappingService, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*ApplicationMappingService, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalOApplicationMappingService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalOApplicationMappingService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx context.Context, sel ast.SelectionSet, v []*ApplicationMappingService) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - for i := range v { - ret[i] = ec.marshalOApplicationMappingService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx, sel, v[i]) - } - - return ret -} - -func (ec *executionContext) unmarshalOApplicationMappingService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx context.Context, v interface{}) (*ApplicationMappingService, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOApplicationMappingService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOApplicationMappingService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐApplicationMappingService(ctx context.Context, sel ast.SelectionSet, v *ApplicationMappingService) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return v -} - -func (ec *executionContext) marshalOAssetGroup2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroup(ctx context.Context, sel ast.SelectionSet, v AssetGroup) graphql.Marshaler { - return ec._AssetGroup(ctx, sel, &v) -} - -func (ec *executionContext) marshalOAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐAssetGroup(ctx context.Context, sel ast.SelectionSet, v *AssetGroup) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._AssetGroup(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v interface{}) (bool, error) { - return graphql.UnmarshalBoolean(v) -} - -func (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler { - return graphql.MarshalBoolean(v) -} - -func (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v interface{}) (*bool, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOBoolean2bool(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec.marshalOBoolean2bool(ctx, sel, *v) -} - -func (ec *executionContext) marshalOClusterAssetGroup2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx context.Context, sel ast.SelectionSet, v ClusterAssetGroup) graphql.Marshaler { - return ec._ClusterAssetGroup(ctx, sel, &v) -} - -func (ec *executionContext) marshalOClusterAssetGroup2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterAssetGroup(ctx context.Context, sel ast.SelectionSet, v *ClusterAssetGroup) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ClusterAssetGroup(ctx, sel, v) -} - -func (ec *executionContext) marshalOClusterServiceBroker2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBroker(ctx context.Context, sel ast.SelectionSet, v ClusterServiceBroker) graphql.Marshaler { - return ec._ClusterServiceBroker(ctx, sel, &v) -} - -func (ec *executionContext) marshalOClusterServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceBroker(ctx context.Context, sel ast.SelectionSet, v *ClusterServiceBroker) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ClusterServiceBroker(ctx, sel, v) -} - -func (ec *executionContext) marshalOClusterServiceClass2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClass(ctx context.Context, sel ast.SelectionSet, v ClusterServiceClass) graphql.Marshaler { - return ec._ClusterServiceClass(ctx, sel, &v) -} - -func (ec *executionContext) marshalOClusterServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServiceClass(ctx context.Context, sel ast.SelectionSet, v *ClusterServiceClass) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ClusterServiceClass(ctx, sel, v) -} - -func (ec *executionContext) marshalOClusterServicePlan2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlan(ctx context.Context, sel ast.SelectionSet, v ClusterServicePlan) graphql.Marshaler { - return ec._ClusterServicePlan(ctx, sel, &v) -} - -func (ec *executionContext) marshalOClusterServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐClusterServicePlan(ctx context.Context, sel ast.SelectionSet, v *ClusterServicePlan) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ClusterServicePlan(ctx, sel, v) -} - -func (ec *executionContext) marshalOCondition2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐCondition(ctx context.Context, sel ast.SelectionSet, v v1alpha13.Condition) graphql.Marshaler { - return ec._Condition(ctx, sel, &v) -} - -func (ec *executionContext) marshalOCondition2ᚕgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐCondition(ctx context.Context, sel ast.SelectionSet, v []v1alpha13.Condition) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalOCondition2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐCondition(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) unmarshalOConditionReason2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐConditionReason(ctx context.Context, v interface{}) (v1alpha13.ConditionReason, error) { - tmp, err := graphql.UnmarshalString(v) - return v1alpha13.ConditionReason(tmp), err -} - -func (ec *executionContext) marshalOConditionReason2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐConditionReason(ctx context.Context, sel ast.SelectionSet, v v1alpha13.ConditionReason) graphql.Marshaler { - return graphql.MarshalString(string(v)) -} - -func (ec *executionContext) unmarshalOConditionType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐConditionType(ctx context.Context, v interface{}) (v1alpha13.ConditionType, error) { - tmp, err := graphql.UnmarshalString(v) - return v1alpha13.ConditionType(tmp), err -} - -func (ec *executionContext) marshalOConditionType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐConditionType(ctx context.Context, sel ast.SelectionSet, v v1alpha13.ConditionType) graphql.Marshaler { - return graphql.MarshalString(string(v)) -} - -func (ec *executionContext) marshalOConfigMap2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx context.Context, sel ast.SelectionSet, v ConfigMap) graphql.Marshaler { - return ec._ConfigMap(ctx, sel, &v) -} - -func (ec *executionContext) marshalOConfigMap2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐConfigMap(ctx context.Context, sel ast.SelectionSet, v *ConfigMap) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ConfigMap(ctx, sel, v) -} - -func (ec *executionContext) marshalOCreateServiceBindingOutput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCreateServiceBindingOutput(ctx context.Context, sel ast.SelectionSet, v CreateServiceBindingOutput) graphql.Marshaler { - return ec._CreateServiceBindingOutput(ctx, sel, &v) -} - -func (ec *executionContext) marshalOCreateServiceBindingOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCreateServiceBindingOutput(ctx context.Context, sel ast.SelectionSet, v *CreateServiceBindingOutput) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._CreateServiceBindingOutput(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOCreateServiceBindingUsageInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCreateServiceBindingUsageInput(ctx context.Context, v interface{}) (CreateServiceBindingUsageInput, error) { - return ec.unmarshalInputCreateServiceBindingUsageInput(ctx, v) -} - -func (ec *executionContext) unmarshalOCreateServiceBindingUsageInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCreateServiceBindingUsageInput(ctx context.Context, v interface{}) (*CreateServiceBindingUsageInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOCreateServiceBindingUsageInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCreateServiceBindingUsageInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalODeleteServiceBindingOutput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingOutput(ctx context.Context, sel ast.SelectionSet, v DeleteServiceBindingOutput) graphql.Marshaler { - return ec._DeleteServiceBindingOutput(ctx, sel, &v) -} - -func (ec *executionContext) marshalODeleteServiceBindingOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingOutput(ctx context.Context, sel ast.SelectionSet, v *DeleteServiceBindingOutput) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._DeleteServiceBindingOutput(ctx, sel, v) -} - -func (ec *executionContext) marshalODeleteServiceBindingUsageOutput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingUsageOutput(ctx context.Context, sel ast.SelectionSet, v DeleteServiceBindingUsageOutput) graphql.Marshaler { - return ec._DeleteServiceBindingUsageOutput(ctx, sel, &v) -} - -func (ec *executionContext) marshalODeleteServiceBindingUsageOutput2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingUsageOutput(ctx context.Context, sel ast.SelectionSet, v []*DeleteServiceBindingUsageOutput) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalODeleteServiceBindingUsageOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingUsageOutput(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalODeleteServiceBindingUsageOutput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐDeleteServiceBindingUsageOutput(ctx context.Context, sel ast.SelectionSet, v *DeleteServiceBindingUsageOutput) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._DeleteServiceBindingUsageOutput(ctx, sel, v) -} - -func (ec *executionContext) marshalOEmsSubscriptionStatus2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐEmsSubscriptionStatus(ctx context.Context, sel ast.SelectionSet, v v1alpha13.EmsSubscriptionStatus) graphql.Marshaler { - return ec._EmsSubscriptionStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalOEnabledApplicationService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledApplicationService(ctx context.Context, sel ast.SelectionSet, v EnabledApplicationService) graphql.Marshaler { - return ec._EnabledApplicationService(ctx, sel, &v) -} - -func (ec *executionContext) marshalOEnabledApplicationService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledApplicationService(ctx context.Context, sel ast.SelectionSet, v []*EnabledApplicationService) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalOEnabledApplicationService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledApplicationService(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOEnabledApplicationService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledApplicationService(ctx context.Context, sel ast.SelectionSet, v *EnabledApplicationService) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._EnabledApplicationService(ctx, sel, v) -} - -func (ec *executionContext) marshalOEnvPrefix2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnvPrefix(ctx context.Context, sel ast.SelectionSet, v EnvPrefix) graphql.Marshaler { - return ec._EnvPrefix(ctx, sel, &v) -} - -func (ec *executionContext) marshalOEnvPrefix2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnvPrefix(ctx context.Context, sel ast.SelectionSet, v *EnvPrefix) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._EnvPrefix(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOEnvPrefixInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnvPrefixInput(ctx context.Context, v interface{}) (EnvPrefixInput, error) { - return ec.unmarshalInputEnvPrefixInput(ctx, v) -} - -func (ec *executionContext) unmarshalOEnvPrefixInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnvPrefixInput(ctx context.Context, v interface{}) (*EnvPrefixInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOEnvPrefixInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnvPrefixInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOEventActivationEvent2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivationEventᚄ(ctx context.Context, sel ast.SelectionSet, v []*EventActivationEvent) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNEventActivationEvent2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEventActivationEvent(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOEventSubscription2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx context.Context, sel ast.SelectionSet, v v1alpha13.Subscription) graphql.Marshaler { - return ec._EventSubscription(ctx, sel, &v) -} - -func (ec *executionContext) marshalOEventSubscription2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐSubscription(ctx context.Context, sel ast.SelectionSet, v *v1alpha13.Subscription) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._EventSubscription(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOExtension2k8sᚗioᚋapimachineryᚋpkgᚋruntimeᚐRawExtension(ctx context.Context, v interface{}) (runtime.RawExtension, error) { - return UnmarshalRawExtension(v) -} - -func (ec *executionContext) marshalOExtension2k8sᚗioᚋapimachineryᚋpkgᚋruntimeᚐRawExtension(ctx context.Context, sel ast.SelectionSet, v runtime.RawExtension) graphql.Marshaler { - return MarshalRawExtension(v) -} - -func (ec *executionContext) unmarshalOExtension2ᚖk8sᚗioᚋapimachineryᚋpkgᚋruntimeᚐRawExtension(ctx context.Context, v interface{}) (*runtime.RawExtension, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOExtension2k8sᚗioᚋapimachineryᚋpkgᚋruntimeᚐRawExtension(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOExtension2ᚖk8sᚗioᚋapimachineryᚋpkgᚋruntimeᚐRawExtension(ctx context.Context, sel ast.SelectionSet, v *runtime.RawExtension) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec.marshalOExtension2k8sᚗioᚋapimachineryᚋpkgᚋruntimeᚐRawExtension(ctx, sel, *v) -} - -func (ec *executionContext) marshalOFilter2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐFilter(ctx context.Context, sel ast.SelectionSet, v v1alpha13.Filter) graphql.Marshaler { - return ec._Filter(ctx, sel, &v) -} - -func (ec *executionContext) marshalOFilter2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐFilter(ctx context.Context, sel ast.SelectionSet, v *v1alpha13.Filter) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Filter(ctx, sel, v) -} - -func (ec *executionContext) marshalOFunction2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx context.Context, sel ast.SelectionSet, v Function) graphql.Marshaler { - return ec._Function(ctx, sel, &v) -} - -func (ec *executionContext) marshalOFunction2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunction(ctx context.Context, sel ast.SelectionSet, v *Function) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Function(ctx, sel, v) -} - -func (ec *executionContext) marshalOFunctionEnvValueFrom2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFrom(ctx context.Context, sel ast.SelectionSet, v FunctionEnvValueFrom) graphql.Marshaler { - return ec._FunctionEnvValueFrom(ctx, sel, &v) -} - -func (ec *executionContext) marshalOFunctionEnvValueFrom2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFrom(ctx context.Context, sel ast.SelectionSet, v *FunctionEnvValueFrom) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._FunctionEnvValueFrom(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOFunctionEnvValueFromInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromInput(ctx context.Context, v interface{}) (FunctionEnvValueFromInput, error) { - return ec.unmarshalInputFunctionEnvValueFromInput(ctx, v) -} - -func (ec *executionContext) unmarshalOFunctionEnvValueFromInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromInput(ctx context.Context, v interface{}) (*FunctionEnvValueFromInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOFunctionEnvValueFromInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionEnvValueFromInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOFunctionMetadata2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadata(ctx context.Context, sel ast.SelectionSet, v FunctionMetadata) graphql.Marshaler { - return ec._FunctionMetadata(ctx, sel, &v) -} - -func (ec *executionContext) marshalOFunctionMetadata2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadataᚄ(ctx context.Context, sel ast.SelectionSet, v []*FunctionMetadata) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNFunctionMetadata2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadata(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOFunctionMetadata2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionMetadata(ctx context.Context, sel ast.SelectionSet, v *FunctionMetadata) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._FunctionMetadata(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOFunctionReasonType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReasonType(ctx context.Context, v interface{}) (FunctionReasonType, error) { - var res FunctionReasonType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalOFunctionReasonType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReasonType(ctx context.Context, sel ast.SelectionSet, v FunctionReasonType) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalOFunctionReasonType2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReasonType(ctx context.Context, v interface{}) (*FunctionReasonType, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOFunctionReasonType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReasonType(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOFunctionReasonType2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐFunctionReasonType(ctx context.Context, sel ast.SelectionSet, v *FunctionReasonType) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return v -} - -func (ec *executionContext) marshalOGitRepository2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx context.Context, sel ast.SelectionSet, v v1alpha11.GitRepository) graphql.Marshaler { - return ec._GitRepository(ctx, sel, &v) -} - -func (ec *executionContext) marshalOGitRepository2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepositoryᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha11.GitRepository) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNGitRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOGitRepository2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐGitRepository(ctx context.Context, sel ast.SelectionSet, v *v1alpha11.GitRepository) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._GitRepository(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOInstanceStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx context.Context, v interface{}) (InstanceStatusType, error) { - var res InstanceStatusType - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalOInstanceStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx context.Context, sel ast.SelectionSet, v InstanceStatusType) graphql.Marshaler { - return v -} - -func (ec *executionContext) unmarshalOInstanceStatusType2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx context.Context, v interface{}) (*InstanceStatusType, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOInstanceStatusType2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOInstanceStatusType2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐInstanceStatusType(ctx context.Context, sel ast.SelectionSet, v *InstanceStatusType) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return v -} - -func (ec *executionContext) unmarshalOInt2int(ctx context.Context, v interface{}) (int, error) { - return graphql.UnmarshalInt(v) -} - -func (ec *executionContext) marshalOInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler { - return graphql.MarshalInt(v) -} - -func (ec *executionContext) unmarshalOInt2int64(ctx context.Context, v interface{}) (int64, error) { - return graphql.UnmarshalInt64(v) -} - -func (ec *executionContext) marshalOInt2int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler { - return graphql.MarshalInt64(v) -} - -func (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v interface{}) (*int, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOInt2int(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec.marshalOInt2int(ctx, sel, *v) -} - -func (ec *executionContext) unmarshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx context.Context, v interface{}) (JSON, error) { - if v == nil { - return nil, nil - } - var res JSON - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx context.Context, sel ast.SelectionSet, v JSON) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return v -} - -func (ec *executionContext) unmarshalOJSON2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx context.Context, v interface{}) (*JSON, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOJSON2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOJSON2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐJSON(ctx context.Context, sel ast.SelectionSet, v *JSON) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return v -} - -func (ec *executionContext) unmarshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx context.Context, v interface{}) (Labels, error) { - if v == nil { - return nil, nil - } - var res Labels - return res, res.UnmarshalGQL(v) -} - -func (ec *executionContext) marshalOLabels2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐLabels(ctx context.Context, sel ast.SelectionSet, v Labels) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return v -} - -func (ec *executionContext) marshalOLimitRange2k8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRange(ctx context.Context, sel ast.SelectionSet, v v11.LimitRange) graphql.Marshaler { - return ec._LimitRange(ctx, sel, &v) -} - -func (ec *executionContext) marshalOLimitRange2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐLimitRange(ctx context.Context, sel ast.SelectionSet, v *v11.LimitRange) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._LimitRange(ctx, sel, v) -} - -func (ec *executionContext) marshalONamespace2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespace(ctx context.Context, sel ast.SelectionSet, v Namespace) graphql.Marshaler { - return ec._Namespace(ctx, sel, &v) -} - -func (ec *executionContext) marshalONamespace2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐNamespace(ctx context.Context, sel ast.SelectionSet, v *Namespace) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Namespace(ctx, sel, v) -} - -func (ec *executionContext) marshalOOAuth2Client2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx context.Context, sel ast.SelectionSet, v v1alpha12.OAuth2Client) graphql.Marshaler { - return ec._OAuth2Client(ctx, sel, &v) -} - -func (ec *executionContext) marshalOOAuth2Client2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐOAuth2Client(ctx context.Context, sel ast.SelectionSet, v *v1alpha12.OAuth2Client) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._OAuth2Client(ctx, sel, v) -} - -func (ec *executionContext) marshalOOAuth2ClientError2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐReconciliationError(ctx context.Context, sel ast.SelectionSet, v v1alpha12.ReconciliationError) graphql.Marshaler { - return ec._OAuth2ClientError(ctx, sel, &v) -} - -func (ec *executionContext) marshalOOAuth2ClientError2ᚖgithubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐReconciliationError(ctx context.Context, sel ast.SelectionSet, v *v1alpha12.ReconciliationError) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._OAuth2ClientError(ctx, sel, v) -} - -func (ec *executionContext) marshalOOwnerReference2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx context.Context, sel ast.SelectionSet, v v1.OwnerReference) graphql.Marshaler { - return ec._OwnerReference(ctx, sel, &v) -} - -func (ec *executionContext) marshalOOwnerReference2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx context.Context, sel ast.SelectionSet, v *v1.OwnerReference) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._OwnerReference(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOOwnerReferenceInput2ᚕᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReferenceᚄ(ctx context.Context, v interface{}) ([]*v1.OwnerReference, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]*v1.OwnerReference, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNOwnerReferenceInput2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReference(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalOPod2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx context.Context, sel ast.SelectionSet, v Pod) graphql.Marshaler { - return ec._Pod(ctx, sel, &v) -} - -func (ec *executionContext) marshalOPod2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐPod(ctx context.Context, sel ast.SelectionSet, v *Pod) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Pod(ctx, sel, v) -} - -func (ec *executionContext) marshalOPolicyRule2ᚕk8sᚗioᚋapiᚋrbacᚋv1ᚐPolicyRuleᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.PolicyRule) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNPolicyRule2k8sᚗioᚋapiᚋrbacᚋv1ᚐPolicyRule(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) unmarshalOPort2uint32(ctx context.Context, v interface{}) (uint32, error) { - return UnmarshalPort(v) -} - -func (ec *executionContext) marshalOPort2uint32(ctx context.Context, sel ast.SelectionSet, v uint32) graphql.Marshaler { - return MarshalPort(v) -} - -func (ec *executionContext) unmarshalOPort2ᚖuint32(ctx context.Context, v interface{}) (*uint32, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOPort2uint32(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOPort2ᚖuint32(ctx context.Context, sel ast.SelectionSet, v *uint32) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec.marshalOPort2uint32(ctx, sel, *v) -} - -func (ec *executionContext) marshalOProtocolSettings2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐProtocolSettings(ctx context.Context, sel ast.SelectionSet, v v1alpha13.ProtocolSettings) graphql.Marshaler { - return ec._ProtocolSettings(ctx, sel, &v) -} - -func (ec *executionContext) marshalOProtocolSettings2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐProtocolSettings(ctx context.Context, sel ast.SelectionSet, v *v1alpha13.ProtocolSettings) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ProtocolSettings(ctx, sel, v) -} - -func (ec *executionContext) marshalOReplicaSet2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v ReplicaSet) graphql.Marshaler { - return ec._ReplicaSet(ctx, sel, &v) -} - -func (ec *executionContext) marshalOReplicaSet2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v *ReplicaSet) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ReplicaSet(ctx, sel, v) -} - -func (ec *executionContext) marshalORepositoryAuth2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuth(ctx context.Context, sel ast.SelectionSet, v v1alpha11.RepositoryAuth) graphql.Marshaler { - return ec._RepositoryAuth(ctx, sel, &v) -} - -func (ec *executionContext) marshalORepositoryAuth2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuth(ctx context.Context, sel ast.SelectionSet, v *v1alpha11.RepositoryAuth) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._RepositoryAuth(ctx, sel, v) -} - -func (ec *executionContext) unmarshalORepositoryAuthInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuth(ctx context.Context, v interface{}) (v1alpha11.RepositoryAuth, error) { - return ec.unmarshalInputRepositoryAuthInput(ctx, v) -} - -func (ec *executionContext) unmarshalORepositoryAuthInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuth(ctx context.Context, v interface{}) (*v1alpha11.RepositoryAuth, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalORepositoryAuthInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋfunctionᚑcontrollerᚋpkgᚋapisᚋserverlessᚋv1alpha1ᚐRepositoryAuth(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOResourceQuota2k8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuota(ctx context.Context, sel ast.SelectionSet, v v11.ResourceQuota) graphql.Marshaler { - return ec._ResourceQuota(ctx, sel, &v) -} - -func (ec *executionContext) marshalOResourceQuota2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐResourceQuota(ctx context.Context, sel ast.SelectionSet, v *v11.ResourceQuota) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ResourceQuota(ctx, sel, v) -} - -func (ec *executionContext) marshalOResourceRef2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRef(ctx context.Context, sel ast.SelectionSet, v ResourceRef) graphql.Marshaler { - return ec._ResourceRef(ctx, sel, &v) -} - -func (ec *executionContext) marshalOResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRef(ctx context.Context, sel ast.SelectionSet, v *ResourceRef) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ResourceRef(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOResourceRefInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRefInput(ctx context.Context, v interface{}) (ResourceRefInput, error) { - return ec.unmarshalInputResourceRefInput(ctx, v) -} - -func (ec *executionContext) unmarshalOResourceRefInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRefInput(ctx context.Context, v interface{}) (*ResourceRefInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOResourceRefInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐResourceRefInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOSecret2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx context.Context, sel ast.SelectionSet, v Secret) graphql.Marshaler { - return ec._Secret(ctx, sel, &v) -} - -func (ec *executionContext) marshalOSecret2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐSecret(ctx context.Context, sel ast.SelectionSet, v *Secret) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Secret(ctx, sel, v) -} - -func (ec *executionContext) marshalOService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx context.Context, sel ast.SelectionSet, v Service) graphql.Marshaler { - return ec._Service(ctx, sel, &v) -} - -func (ec *executionContext) marshalOService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐService(ctx context.Context, sel ast.SelectionSet, v *Service) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Service(ctx, sel, v) -} - -func (ec *executionContext) marshalOServiceBinding2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx context.Context, sel ast.SelectionSet, v ServiceBinding) graphql.Marshaler { - return ec._ServiceBinding(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceBinding2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBinding(ctx context.Context, sel ast.SelectionSet, v *ServiceBinding) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceBinding(ctx, sel, v) -} - -func (ec *executionContext) marshalOServiceBindingUsage2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx context.Context, sel ast.SelectionSet, v ServiceBindingUsage) graphql.Marshaler { - return ec._ServiceBindingUsage(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceBindingUsage2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageᚄ(ctx context.Context, sel ast.SelectionSet, v []*ServiceBindingUsage) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNServiceBindingUsage2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOServiceBindingUsage2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsage(ctx context.Context, sel ast.SelectionSet, v *ServiceBindingUsage) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceBindingUsage(ctx, sel, v) -} - -func (ec *executionContext) marshalOServiceBindingUsageParameters2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageParameters(ctx context.Context, sel ast.SelectionSet, v ServiceBindingUsageParameters) graphql.Marshaler { - return ec._ServiceBindingUsageParameters(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceBindingUsageParameters2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageParameters(ctx context.Context, sel ast.SelectionSet, v *ServiceBindingUsageParameters) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceBindingUsageParameters(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOServiceBindingUsageParametersInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageParametersInput(ctx context.Context, v interface{}) (ServiceBindingUsageParametersInput, error) { - return ec.unmarshalInputServiceBindingUsageParametersInput(ctx, v) -} - -func (ec *executionContext) unmarshalOServiceBindingUsageParametersInput2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageParametersInput(ctx context.Context, v interface{}) (*ServiceBindingUsageParametersInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOServiceBindingUsageParametersInput2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindingUsageParametersInput(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOServiceBindings2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindings(ctx context.Context, sel ast.SelectionSet, v ServiceBindings) graphql.Marshaler { - return ec._ServiceBindings(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceBindings2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBindings(ctx context.Context, sel ast.SelectionSet, v *ServiceBindings) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceBindings(ctx, sel, v) -} - -func (ec *executionContext) marshalOServiceBroker2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBroker(ctx context.Context, sel ast.SelectionSet, v ServiceBroker) graphql.Marshaler { - return ec._ServiceBroker(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceBroker2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceBroker(ctx context.Context, sel ast.SelectionSet, v *ServiceBroker) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceBroker(ctx, sel, v) -} - -func (ec *executionContext) marshalOServiceClass2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClass(ctx context.Context, sel ast.SelectionSet, v ServiceClass) graphql.Marshaler { - return ec._ServiceClass(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceClass2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceClass(ctx context.Context, sel ast.SelectionSet, v *ServiceClass) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceClass(ctx, sel, v) -} - -func (ec *executionContext) marshalOServiceInstance2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx context.Context, sel ast.SelectionSet, v ServiceInstance) graphql.Marshaler { - return ec._ServiceInstance(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceInstance2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstance(ctx context.Context, sel ast.SelectionSet, v *ServiceInstance) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceInstance(ctx, sel, v) -} - -func (ec *executionContext) marshalOServiceInstanceResourceRef2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceResourceRef(ctx context.Context, sel ast.SelectionSet, v ServiceInstanceResourceRef) graphql.Marshaler { - return ec._ServiceInstanceResourceRef(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServiceInstanceResourceRef2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServiceInstanceResourceRef(ctx context.Context, sel ast.SelectionSet, v *ServiceInstanceResourceRef) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServiceInstanceResourceRef(ctx, sel, v) -} - -func (ec *executionContext) marshalOServicePlan2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlan(ctx context.Context, sel ast.SelectionSet, v ServicePlan) graphql.Marshaler { - return ec._ServicePlan(ctx, sel, &v) -} - -func (ec *executionContext) marshalOServicePlan2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐServicePlan(ctx context.Context, sel ast.SelectionSet, v *ServicePlan) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._ServicePlan(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOStatusCode2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐStatusCode(ctx context.Context, v interface{}) (v1alpha12.StatusCode, error) { - tmp, err := graphql.UnmarshalString(v) - return v1alpha12.StatusCode(tmp), err -} - -func (ec *executionContext) marshalOStatusCode2githubᚗcomᚋoryᚋhydraᚑmaesterᚋapiᚋv1alpha1ᚐStatusCode(ctx context.Context, sel ast.SelectionSet, v v1alpha12.StatusCode) graphql.Marshaler { - return graphql.MarshalString(string(v)) -} - -func (ec *executionContext) unmarshalOString2string(ctx context.Context, v interface{}) (string, error) { - return graphql.UnmarshalString(v) -} - -func (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { - return graphql.MarshalString(v) -} - -func (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v interface{}) ([]string, error) { - var vSlice []interface{} - if v != nil { - if tmp1, ok := v.([]interface{}); ok { - vSlice = tmp1 - } else { - vSlice = []interface{}{v} - } - } - var err error - res := make([]string, len(vSlice)) - for i := range vSlice { - res[i], err = ec.unmarshalNString2string(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - for i := range v { - ret[i] = ec.marshalNString2string(ctx, sel, v[i]) - } - - return ret -} - -func (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v interface{}) (*string, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalOString2string(ctx, v) - return &res, err -} - -func (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec.marshalOString2string(ctx, sel, *v) -} - -func (ec *executionContext) marshalOSubscriberRef2knativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐKReference(ctx context.Context, sel ast.SelectionSet, v v13.KReference) graphql.Marshaler { - return ec._SubscriberRef(ctx, sel, &v) -} - -func (ec *executionContext) marshalOSubscriberRef2ᚖknativeᚗdevᚋpkgᚋapisᚋduckᚋv1ᚐKReference(ctx context.Context, sel ast.SelectionSet, v *v13.KReference) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._SubscriberRef(ctx, sel, v) -} - -func (ec *executionContext) marshalOTrigger2knativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx context.Context, sel ast.SelectionSet, v v1alpha14.Trigger) graphql.Marshaler { - return ec._Trigger(ctx, sel, &v) -} - -func (ec *executionContext) marshalOTrigger2ᚕᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTriggerᚄ(ctx context.Context, sel ast.SelectionSet, v []*v1alpha14.Trigger) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNTrigger2ᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOTrigger2ᚖknativeᚗdevᚋeventingᚋpkgᚋapisᚋeventingᚋv1alpha1ᚐTrigger(ctx context.Context, sel ast.SelectionSet, v *v1alpha14.Trigger) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._Trigger(ctx, sel, v) -} - -func (ec *executionContext) marshalOWebhookAuth2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐWebhookAuth(ctx context.Context, sel ast.SelectionSet, v v1alpha13.WebhookAuth) graphql.Marshaler { - return ec._WebhookAuth(ctx, sel, &v) -} - -func (ec *executionContext) marshalOWebhookAuth2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋeventingᚑcontrollerᚋapiᚋv1alpha1ᚐWebhookAuth(ctx context.Context, sel ast.SelectionSet, v *v1alpha13.WebhookAuth) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._WebhookAuth(ctx, sel, v) -} - -func (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalO__Schema2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v introspection.Schema) graphql.Marshaler { - return ec.___Schema(ctx, sel, &v) -} - -func (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec.___Schema(ctx, sel, v) -} - -func (ec *executionContext) marshalO__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler { - return ec.___Type(ctx, sel, &v) -} - -func (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec.___Type(ctx, sel, v) -} - -func (ec *executionContext) marshalOcompassMetadata2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCompassMetadata(ctx context.Context, sel ast.SelectionSet, v CompassMetadata) graphql.Marshaler { - return ec._compassMetadata(ctx, sel, &v) -} - -func (ec *executionContext) marshalOcompassMetadata2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐCompassMetadata(ctx context.Context, sel ast.SelectionSet, v *CompassMetadata) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._compassMetadata(ctx, sel, v) -} - -func (ec *executionContext) marshalOenabledMappingService2githubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledMappingService(ctx context.Context, sel ast.SelectionSet, v EnabledMappingService) graphql.Marshaler { - return ec._enabledMappingService(ctx, sel, &v) -} - -func (ec *executionContext) marshalOenabledMappingService2ᚕᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledMappingService(ctx context.Context, sel ast.SelectionSet, v []*EnabledMappingService) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalOenabledMappingService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledMappingService(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - -func (ec *executionContext) marshalOenabledMappingService2ᚖgithubᚗcomᚋkymaᚑprojectᚋkymaᚋcomponentsᚋconsoleᚑbackendᚑserviceᚋinternalᚋgqlschemaᚐEnabledMappingService(ctx context.Context, sel ast.SelectionSet, v *EnabledMappingService) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._enabledMappingService(ctx, sel, v) -} - -// endregion ***************************** type.gotpl ***************************** diff --git a/components/console-backend-service/internal/gqlschema/serverless.graphql b/components/console-backend-service/internal/gqlschema/serverless.graphql deleted file mode 100644 index 63ab380f1652..000000000000 --- a/components/console-backend-service/internal/gqlschema/serverless.graphql +++ /dev/null @@ -1,41 +0,0 @@ -type GitRepository @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepository") { - name: String! - namespace: String! - spec: GitRepositorySpec! -} - -type GitRepositorySpec @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepositorySpec") { - url: String! - auth: RepositoryAuth -} - -input GitRepositorySpecInput @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.GitRepositorySpec") { - url: String! - auth: RepositoryAuthInput -} - -type RepositoryAuth @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.RepositoryAuth") { - type: RepositoryAuthType! - secretName: String! -} - -input RepositoryAuthInput @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.RepositoryAuth") { - type: RepositoryAuthType! - secretName: String! -} - -enum RepositoryAuthType @goModel(model: "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1.RepositoryAuthType") { - BASIC - KEY -} - -extend type Query { - gitRepositories(namespace: String!): [GitRepository!] @HasAccess(attributes: {resource: "gitrepositories", verb: "list", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - gitRepository(namespace: String!, name: String!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "list", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} - -extend type Mutation { - createGitRepository(namespace: String!, name: String!, spec: GitRepositorySpecInput!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "create", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - updateGitRepository(namespace: String!, name: String!, spec: GitRepositorySpecInput!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "update", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) - deleteGitRepository(namespace: String!, name: String!): GitRepository @HasAccess(attributes: {resource: "gitrepositories", verb: "delete", apiGroup: "serverless.kyma-project.io", apiVersion: "v1alpha1", namespaceArg: "namespace"}) -} diff --git a/components/console-backend-service/internal/gqlschema/servicebinding.go b/components/console-backend-service/internal/gqlschema/servicebinding.go deleted file mode 100644 index a3bbe5ec56f6..000000000000 --- a/components/console-backend-service/internal/gqlschema/servicebinding.go +++ /dev/null @@ -1,10 +0,0 @@ -package gqlschema - -type ServiceBinding struct { - Name string - ServiceInstanceName string - Namespace string - SecretName string - Status ServiceBindingStatus - Parameters JSON -} diff --git a/components/console-backend-service/internal/gqlschema/servicebindingusage.go b/components/console-backend-service/internal/gqlschema/servicebindingusage.go deleted file mode 100644 index 10dbc67608d7..000000000000 --- a/components/console-backend-service/internal/gqlschema/servicebindingusage.go +++ /dev/null @@ -1,10 +0,0 @@ -package gqlschema - -type ServiceBindingUsage struct { - Name string - Namespace string - ServiceBindingName string - UsedBy LocalObjectReference - Status ServiceBindingUsageStatus - Parameters *ServiceBindingUsageParameters -} diff --git a/components/console-backend-service/internal/gqlschema/serviceclass.go b/components/console-backend-service/internal/gqlschema/serviceclass.go deleted file mode 100644 index 16a118d3d6ef..000000000000 --- a/components/console-backend-service/internal/gqlschema/serviceclass.go +++ /dev/null @@ -1,19 +0,0 @@ -package gqlschema - -import "time" - -type ServiceClass struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - ExternalName string `json:"externalName"` - DisplayName *string `json:"displayName"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Description string `json:"description"` - LongDescription *string `json:"longDescription"` - ImageURL *string `json:"imageUrl"` - DocumentationURL *string `json:"documentationUrl"` - SupportURL *string `json:"supportUrl"` - ProviderDisplayName *string `json:"providerDisplayName"` - Tags []string `json:"tags"` - Labels Labels `json:"labels"` -} diff --git a/components/console-backend-service/internal/gqlschema/serviceinstance.go b/components/console-backend-service/internal/gqlschema/serviceinstance.go deleted file mode 100644 index 74762741b5e1..000000000000 --- a/components/console-backend-service/internal/gqlschema/serviceinstance.go +++ /dev/null @@ -1,14 +0,0 @@ -package gqlschema - -import "time" - -type ServiceInstance struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - ClassReference *ServiceInstanceResourceRef `json:"classReference"` - PlanReference *ServiceInstanceResourceRef `json:"planReference"` - PlanSpec *JSON `json:"planSpec"` - CreationTimestamp time.Time `json:"creationTimestamp"` - Labels []string `json:"labels"` - Status ServiceInstanceStatus `json:"status"` -} diff --git a/components/console-backend-service/internal/gqlschema/serviceplan.go b/components/console-backend-service/internal/gqlschema/serviceplan.go deleted file mode 100644 index 27cd12cdac57..000000000000 --- a/components/console-backend-service/internal/gqlschema/serviceplan.go +++ /dev/null @@ -1,12 +0,0 @@ -package gqlschema - -type ServicePlan struct { - Name string `json:"name"` - Namespace string `json:"namespace"` - DisplayName *string `json:"displayName"` - ExternalName string `json:"externalName"` - Description string `json:"description"` - RelatedServiceClassName string `json:"relatedServiceClassName"` - InstanceCreateParameterSchema *JSON `json:"instanceCreateParameterSchema"` - BindingCreateParameterSchema *JSON `json:"bindingCreateParameterSchema"` -} diff --git a/components/console-backend-service/internal/gqlschema/settings.go b/components/console-backend-service/internal/gqlschema/settings.go deleted file mode 100644 index 6051e2182676..000000000000 --- a/components/console-backend-service/internal/gqlschema/settings.go +++ /dev/null @@ -1,43 +0,0 @@ -package gqlschema - -import ( - "encoding/json" - "io" - - "github.com/golang/glog" - "github.com/pkg/errors" -) - -type Settings map[string]interface{} - -func (y *Settings) UnmarshalGQL(v interface{}) error { - if in, ok := v.(string); ok { - var jsonMap map[string]interface{} - err := json.Unmarshal([]byte(in), &jsonMap) - if err != nil { - return errors.Wrapf(err, "while unmarshalling %+v scalar object", y) - } - v = jsonMap - } - - value, ok := v.(map[string]interface{}) - if !ok { - return errors.Errorf("Unable to convert interface %T to map[string]interface{}", v) - } - *y = value - return nil -} - -// MarshalGQL implements the graphql.Marshaler interface -func (y Settings) MarshalGQL(w io.Writer) { - bytes, err := json.Marshal(y) - if err != nil { - glog.Error(errors.Wrapf(err, "while marshalling %+v scalar object", y)) - return - } - _, err = w.Write(bytes) - if err != nil { - glog.Error(errors.Wrapf(err, "while writing marshalled %+v object", y)) - return - } -} diff --git a/components/console-backend-service/internal/gqlschema/timestamp.go b/components/console-backend-service/internal/gqlschema/timestamp.go deleted file mode 100644 index 1023852280a6..000000000000 --- a/components/console-backend-service/internal/gqlschema/timestamp.go +++ /dev/null @@ -1,29 +0,0 @@ -package gqlschema - -import ( - "io" - "strconv" - "time" - - "github.com/golang/glog" - - "github.com/99designs/gqlgen/graphql" - "github.com/pkg/errors" -) - -func MarshalTimestamp(t time.Time) graphql.Marshaler { - return graphql.WriterFunc(func(w io.Writer) { - _, err := io.WriteString(w, strconv.FormatInt(t.Unix(), 10)) - if err != nil { - glog.Error(errors.Wrap(err, "while writing marshalled timestamp")) - return - } - }) -} - -func UnmarshalTimestamp(v interface{}) (time.Time, error) { - if tmpStr, ok := v.(int); ok { - return time.Unix(int64(tmpStr), 0), nil - } - return time.Time{}, errors.New("Time should be an unix timestamp") -} diff --git a/components/console-backend-service/internal/module/automock/pluggable_module.go b/components/console-backend-service/internal/module/automock/pluggable_module.go deleted file mode 100644 index b98009c25f0f..000000000000 --- a/components/console-backend-service/internal/module/automock/pluggable_module.go +++ /dev/null @@ -1,66 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import mock "github.com/stretchr/testify/mock" - -// PluggableModule is an autogenerated mock type for the PluggableModule type -type PluggableModule struct { - mock.Mock -} - -// Disable provides a mock function with given fields: -func (_m *PluggableModule) Disable() error { - ret := _m.Called() - - var r0 error - if rf, ok := ret.Get(0).(func() error); ok { - r0 = rf() - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Enable provides a mock function with given fields: -func (_m *PluggableModule) Enable() error { - ret := _m.Called() - - var r0 error - if rf, ok := ret.Get(0).(func() error); ok { - r0 = rf() - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// IsEnabled provides a mock function with given fields: -func (_m *PluggableModule) IsEnabled() bool { - ret := _m.Called() - - var r0 bool - if rf, ok := ret.Get(0).(func() bool); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// Name provides a mock function with given fields: -func (_m *PluggableModule) Name() string { - ret := _m.Called() - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} diff --git a/components/console-backend-service/internal/module/error.go b/components/console-backend-service/internal/module/error.go deleted file mode 100644 index a17d4397ffd2..000000000000 --- a/components/console-backend-service/internal/module/error.go +++ /dev/null @@ -1,23 +0,0 @@ -package module - -import "fmt" - -type DisabledModuleError struct { - ModuleName string -} - -func NewDisabledModuleError(moduleName string) *DisabledModuleError { - return &DisabledModuleError{ - ModuleName: moduleName, - } -} - -func (e *DisabledModuleError) Error() string { - errMessage := fmt.Sprintf("MODULE_DISABLED: The %s module is disabled.", e.ModuleName) - return errMessage -} - -func IsDisabledModuleError(err error) bool { - _, ok := err.(*DisabledModuleError) - return ok -} diff --git a/components/console-backend-service/internal/module/eventhandler.go b/components/console-backend-service/internal/module/eventhandler.go deleted file mode 100644 index d39507ae80ae..000000000000 --- a/components/console-backend-service/internal/module/eventhandler.go +++ /dev/null @@ -1,104 +0,0 @@ -package module - -import ( - "github.com/golang/glog" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" -) - -type eventHandler struct { - module PluggableModule -} - -func newEventHandler(module PluggableModule) *eventHandler { - return &eventHandler{module: module} -} - -func (h *eventHandler) OnAdd(obj interface{}) { - resource, ok := obj.(*v1alpha1.BackendModule) - h.printIncorrectTypeErrorIfShould(ok, obj) - - if !h.isAddOrDeleteEventRelatedToTheModule(resource) { - return - } - - h.enableModuleIfShould() -} - -func (h *eventHandler) OnUpdate(oldObj, newObj interface{}) { - oldResource, ok := oldObj.(*v1alpha1.BackendModule) - h.printIncorrectTypeErrorIfShould(ok, oldObj) - - newResource, ok := newObj.(*v1alpha1.BackendModule) - h.printIncorrectTypeErrorIfShould(ok, newObj) - - if !h.isUpdateEventRelatedToTheModule(oldResource, newResource) { - return - } - - moduleName := h.module.Name() - if oldResource.Name == moduleName { - h.disableModuleIfShould() - } else if newResource.Name == moduleName { - h.enableModuleIfShould() - } -} - -func (h *eventHandler) OnDelete(obj interface{}) { - resource, ok := obj.(*v1alpha1.BackendModule) - h.printIncorrectTypeErrorIfShould(ok, obj) - - if !h.isAddOrDeleteEventRelatedToTheModule(resource) { - return - } - - h.disableModuleIfShould() -} - -func (h *eventHandler) enableModuleIfShould() { - if h.module.IsEnabled() { - return - } - - glog.Infof("Enabling module %s...", h.module.Name()) - err := h.module.Enable() - printModuleErrorIfShould(err, h.module, "enabling") -} - -func (h *eventHandler) disableModuleIfShould() { - if !h.module.IsEnabled() { - return - } - - glog.Infof("Disabling module %s...", h.module.Name()) - err := h.module.Disable() - printModuleErrorIfShould(err, h.module, "disabling") -} - -func (h *eventHandler) isAddOrDeleteEventRelatedToTheModule(resource *v1alpha1.BackendModule) bool { - if resource == nil || resource.Name != h.module.Name() { - return false - } - - return true -} - -func (h *eventHandler) isUpdateEventRelatedToTheModule(oldResource, newResource *v1alpha1.BackendModule) bool { - if oldResource == nil || newResource == nil || oldResource.Name == newResource.Name { - return false - } - - moduleName := h.module.Name() - if oldResource.Name != moduleName && newResource.Name != moduleName { - return false - } - - return true -} - -func (h *eventHandler) printIncorrectTypeErrorIfShould(ok bool, obj interface{}) { - if ok { - return - } - - glog.Errorf("Incorrect item type: %T, should be: *BackendModule", obj) -} diff --git a/components/console-backend-service/internal/module/eventhandler_test.go b/components/console-backend-service/internal/module/eventhandler_test.go deleted file mode 100644 index e8c6ab1bdf48..000000000000 --- a/components/console-backend-service/internal/module/eventhandler_test.go +++ /dev/null @@ -1,200 +0,0 @@ -package module - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/module/automock" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestEventHandler_OnAdd(t *testing.T) { - t.Run("NoModuleWithGivenName", func(t *testing.T) { - obj := fixBackendModuleCR("foo") - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("bar") - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnAdd(obj) - }) - - t.Run("DisabledModule", func(t *testing.T) { - name := "foo" - obj := fixBackendModuleCR(name) - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return(name) - moduleMock.On("IsEnabled").Return(false).Once() - moduleMock.On("Enable").Return(nil).Once() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnAdd(obj) - }) - - t.Run("AlreadyEnabledModule", func(t *testing.T) { - name := "foo" - obj := fixBackendModuleCR(name) - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return(name) - moduleMock.On("IsEnabled").Return(true).Once() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnAdd(obj) - }) - - t.Run("Nil", func(t *testing.T) { - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("bar").Maybe() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - - require.NotPanics(t, func() { - eventHandler.OnAdd(nil) - }) - }) -} - -func TestEventHandler_OnUpdate(t *testing.T) { - t.Run("NoModuleWithGivenName", func(t *testing.T) { - oldObj := fixBackendModuleCR("foo") - newObj := fixBackendModuleCR("foo2") - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("bar") - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnUpdate(oldObj, newObj) - }) - - t.Run("NothingToUpdate", func(t *testing.T) { - oldObj := fixBackendModuleCR("foo") - newObj := fixBackendModuleCR("foo") - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("foo").Maybe() - moduleMock.On("IsEnabled").Return(true).Maybe() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnUpdate(oldObj, newObj) - }) - - t.Run("EnableModule", func(t *testing.T) { - oldObj := fixBackendModuleCR("foo") - newObj := fixBackendModuleCR("bar") - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("bar") - moduleMock.On("IsEnabled").Return(false).Once() - moduleMock.On("Enable").Return(nil).Once() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnUpdate(oldObj, newObj) - }) - - t.Run("DisableModule", func(t *testing.T) { - oldObj := fixBackendModuleCR("foo") - newObj := fixBackendModuleCR("bar") - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("foo") - moduleMock.On("IsEnabled").Return(true).Once() - moduleMock.On("Disable").Return(nil).Once() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnUpdate(oldObj, newObj) - }) - - t.Run("Nil", func(t *testing.T) { - obj := fixBackendModuleCR("foo") - for _, tC := range []struct { - old interface{} - new interface{} - }{ - {nil, nil}, - {obj, nil}, - {nil, obj}, - } { - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("bar").Maybe() - - eventHandler := newEventHandler(moduleMock) - - require.NotPanics(t, func() { - eventHandler.OnUpdate(tC.old, tC.new) - }) - - moduleMock.AssertExpectations(t) - } - }) -} - -func TestEventHandler_OnDelete(t *testing.T) { - t.Run("NoModuleWithGivenName", func(t *testing.T) { - obj := fixBackendModuleCR("foo") - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("bar") - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnDelete(obj) - }) - - t.Run("AlreadyDisabledModule", func(t *testing.T) { - name := "foo" - obj := fixBackendModuleCR(name) - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return(name) - moduleMock.On("IsEnabled").Return(false) - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnDelete(obj) - }) - - t.Run("EnabledModule", func(t *testing.T) { - name := "foo" - obj := fixBackendModuleCR(name) - - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return(name) - moduleMock.On("IsEnabled").Return(true) - moduleMock.On("Disable").Return(nil).Once() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - eventHandler.OnDelete(obj) - }) - - t.Run("Nil", func(t *testing.T) { - moduleMock := new(automock.PluggableModule) - moduleMock.On("Name").Return("bar").Maybe() - defer moduleMock.AssertExpectations(t) - - eventHandler := newEventHandler(moduleMock) - - require.NotPanics(t, func() { - eventHandler.OnDelete(nil) - }) - }) -} - -func fixBackendModuleCR(name string) *v1alpha1.BackendModule { - return &v1alpha1.BackendModule{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } -} diff --git a/components/console-backend-service/internal/module/module.go b/components/console-backend-service/internal/module/module.go deleted file mode 100644 index a5081d3da0be..000000000000 --- a/components/console-backend-service/internal/module/module.go +++ /dev/null @@ -1,30 +0,0 @@ -package module - -import ( - "github.com/golang/glog" - "github.com/pkg/errors" - "k8s.io/client-go/tools/cache" -) - -//go:generate mockery -name=PluggableModule -output=automock -outpkg=automock -case=underscore -type PluggableModule interface { - Enable() error - Disable() error - IsEnabled() bool - Name() string -} - -func MakePluggableFunc(informer cache.SharedIndexInformer) func(PluggableModule) { - return func(module PluggableModule) { - glog.Infof("Making the '%s' module pluggable...", module.Name()) - eventHandler := newEventHandler(module) - informer.AddEventHandler(eventHandler) - } -} - -func printModuleErrorIfShould(err error, module PluggableModule, operationType string) { - if err == nil { - return - } - glog.Error(errors.Wrapf(err, "while %s module %s", operationType, module.Name())) -} diff --git a/components/console-backend-service/internal/module/module_test.go b/components/console-backend-service/internal/module/module_test.go deleted file mode 100644 index d2064bab4a1f..000000000000 --- a/components/console-backend-service/internal/module/module_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package module_test - -import ( - "testing" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "github.com/kyma-project/kyma/components/console-backend-service/internal/module/automock" - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/fake" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestMakePluggableFunc_Pluggability(t *testing.T) { - foo := "foo" - bar := "bar" - obj := fixBackendModuleCR(foo) - - client := fake.NewSimpleClientset(obj) - informerFactory := externalversions.NewSharedInformerFactory(client, 0) - informer := informerFactory.Ui().V1alpha1().BackendModules().Informer() - - makePluggable := module.MakePluggableFunc(informer) - - fooModule := new(automock.PluggableModule) - fooModule.On("Name").Return(foo) - fooModule.On("IsEnabled").Return(false).Once() - fooModule.On("Enable").Return(nil).Once() - defer fooModule.AssertExpectations(t) - makePluggable(fooModule) - - barModule := new(automock.PluggableModule) - barModule.On("Name").Return(bar) - defer barModule.AssertExpectations(t) - makePluggable(barModule) - - testingUtils.WaitForInformerStartAtMost(t, time.Second, informer) -} - -func fixBackendModuleCR(name string) *v1alpha1.BackendModule { - return &v1alpha1.BackendModule{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } -} diff --git a/components/console-backend-service/internal/module/pluggable.go b/components/console-backend-service/internal/module/pluggable.go deleted file mode 100644 index 12353af390a8..000000000000 --- a/components/console-backend-service/internal/module/pluggable.go +++ /dev/null @@ -1,113 +0,0 @@ -package module - -import ( - "reflect" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/informers" -) - -type Pluggable struct { - name string - isEnabled bool - SyncCh chan bool - stopCh chan struct{} -} - -func NewPluggable(name string) *Pluggable { - return &Pluggable{name: name} -} - -func (p *Pluggable) Name() string { - return p.name -} - -func (p *Pluggable) IsEnabled() bool { - return p.isEnabled -} - -func (p *Pluggable) Enable() { - p.isEnabled = true - p.stopCh = make(chan struct{}) - p.SyncCh = make(chan bool) -} - -func (p *Pluggable) EnableAndSyncCache(sync func(stopCh chan struct{})) { - p.Enable() - - go func(stopCh chan struct{}, syncCh chan bool) { - sync(stopCh) - syncCh <- true - }(p.stopCh, p.SyncCh) -} - -func (p *Pluggable) EnableAndSyncInformerFactories(onSync func(), informerFactories ...SharedInformerFactory) { - p.Enable() - - go func(onSyncFn func(), syncCh chan bool, informerFactories ...SharedInformerFactory) { - for _, i := range informerFactories { - i.Start(p.stopCh) - } - for _, i := range informerFactories { - i.WaitForCacheSync(p.stopCh) - } - - onSyncFn() - syncCh <- true - }(onSync, p.SyncCh, informerFactories...) -} - -func (p *Pluggable) EnableAndSyncInformerFactory(informerFactory SharedInformerFactory, onSync func()) { - p.Enable() - - go func(informerFactory SharedInformerFactory, onSyncFn func(), syncCh chan bool) { - informerFactory.Start(p.stopCh) - informerFactory.WaitForCacheSync(p.stopCh) - onSyncFn() - syncCh <- true - }(informerFactory, onSync, p.SyncCh) -} - -func (p *Pluggable) EnableAndSyncDynamicInformerFactory(informerFactory DynamicSharedInformerFactory, onSync func()) { - p.Enable() - - go func(informerFactory DynamicSharedInformerFactory, onSyncFn func(), syncCh chan bool) { - informerFactory.Start(p.stopCh) - informerFactory.WaitForCacheSync(p.stopCh) - onSyncFn() - syncCh <- true - }(informerFactory, onSync, p.SyncCh) -} - -func (p *Pluggable) Disable(disableModule func(disabledErr error)) { - p.isEnabled = false - - if p.stopCh != nil { - close(p.stopCh) - } - - disabledErr := NewDisabledModuleError(p.name) - disableModule(disabledErr) -} - -func (p *Pluggable) StopCacheSyncOnClose(stopCh <-chan struct{}) { - go func() { - <-stopCh - - if p.stopCh == nil { - return - } - close(p.stopCh) - }() -} - -type SharedInformerFactory interface { - Start(stopCh <-chan struct{}) - WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool -} - -type DynamicSharedInformerFactory interface { - Start(stopCh <-chan struct{}) - ForResource(gvr schema.GroupVersionResource) informers.GenericInformer - WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool -} diff --git a/components/console-backend-service/internal/name/generate.go b/components/console-backend-service/internal/name/generate.go deleted file mode 100644 index 0bb0711acf54..000000000000 --- a/components/console-backend-service/internal/name/generate.go +++ /dev/null @@ -1,12 +0,0 @@ -package name - -import ( - "strings" - - "github.com/moby/moby/pkg/namesgenerator" -) - -func Generate() string { - n := namesgenerator.GetRandomName(0) - return strings.Replace(n, "_", "-", -1) -} diff --git a/components/console-backend-service/internal/name/util.go b/components/console-backend-service/internal/name/util.go deleted file mode 100644 index 5994bea212c4..000000000000 --- a/components/console-backend-service/internal/name/util.go +++ /dev/null @@ -1,8 +0,0 @@ -package name - -func EmptyIfNil(input *string) string { - if input == nil { - return "" - } - return *input -} diff --git a/components/console-backend-service/internal/pager/automock/pageable_indexer.go b/components/console-backend-service/internal/pager/automock/pageable_indexer.go deleted file mode 100644 index d0dcf5417ada..000000000000 --- a/components/console-backend-service/internal/pager/automock/pageable_indexer.go +++ /dev/null @@ -1,86 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import mock "github.com/stretchr/testify/mock" - -// PageableIndexer is an autogenerated mock type for the PageableIndexer type -type PageableIndexer struct { - mock.Mock -} - -// ByIndex provides a mock function with given fields: indexName, indexKey -func (_m *PageableIndexer) ByIndex(indexName string, indexKey string) ([]interface{}, error) { - ret := _m.Called(indexName, indexKey) - - var r0 []interface{} - if rf, ok := ret.Get(0).(func(string, string) []interface{}); ok { - r0 = rf(indexName, indexKey) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]interface{}) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(indexName, indexKey) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// GetByKey provides a mock function with given fields: key -func (_m *PageableIndexer) GetByKey(key string) (interface{}, bool, error) { - ret := _m.Called(key) - - var r0 interface{} - if rf, ok := ret.Get(0).(func(string) interface{}); ok { - r0 = rf(key) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(interface{}) - } - } - - var r1 bool - if rf, ok := ret.Get(1).(func(string) bool); ok { - r1 = rf(key) - } else { - r1 = ret.Get(1).(bool) - } - - var r2 error - if rf, ok := ret.Get(2).(func(string) error); ok { - r2 = rf(key) - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// IndexKeys provides a mock function with given fields: indexName, indexKey -func (_m *PageableIndexer) IndexKeys(indexName string, indexKey string) ([]string, error) { - ret := _m.Called(indexName, indexKey) - - var r0 []string - if rf, ok := ret.Get(0).(func(string, string) []string); ok { - r0 = rf(indexName, indexKey) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(indexName, indexKey) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/components/console-backend-service/internal/pager/automock/pageable_store.go b/components/console-backend-service/internal/pager/automock/pageable_store.go deleted file mode 100644 index ab60bf9bed77..000000000000 --- a/components/console-backend-service/internal/pager/automock/pageable_store.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import mock "github.com/stretchr/testify/mock" - -// PageableStore is an autogenerated mock type for the PageableStore type -type PageableStore struct { - mock.Mock -} - -// GetByKey provides a mock function with given fields: key -func (_m *PageableStore) GetByKey(key string) (interface{}, bool, error) { - ret := _m.Called(key) - - var r0 interface{} - if rf, ok := ret.Get(0).(func(string) interface{}); ok { - r0 = rf(key) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(interface{}) - } - } - - var r1 bool - if rf, ok := ret.Get(1).(func(string) bool); ok { - r1 = rf(key) - } else { - r1 = ret.Get(1).(bool) - } - - var r2 error - if rf, ok := ret.Get(2).(func(string) error); ok { - r2 = rf(key) - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// List provides a mock function with given fields: -func (_m *PageableStore) List() []interface{} { - ret := _m.Called() - - var r0 []interface{} - if rf, ok := ret.Get(0).(func() []interface{}); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]interface{}) - } - } - - return r0 -} - -// ListKeys provides a mock function with given fields: -func (_m *PageableStore) ListKeys() []string { - ret := _m.Called() - - var r0 []string - if rf, ok := ret.Get(0).(func() []string); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - return r0 -} diff --git a/components/console-backend-service/internal/pager/indexpager.go b/components/console-backend-service/internal/pager/indexpager.go deleted file mode 100644 index ff811e2c3466..000000000000 --- a/components/console-backend-service/internal/pager/indexpager.go +++ /dev/null @@ -1,41 +0,0 @@ -package pager - -import ( - "github.com/pkg/errors" -) - -type IndexPager struct { - *Pager - indexer PageableIndexer - indexName string - indexKey string -} - -//go:generate mockery -name=PageableIndexer -output=automock -outpkg=automock -case=underscore -type PageableIndexer interface { - ByIndex(indexName, indexKey string) ([]interface{}, error) - IndexKeys(indexName, indexKey string) ([]string, error) - GetByKey(key string) (item interface{}, exists bool, err error) -} - -func FromIndexer(indexer PageableIndexer, indexName, indexKey string) *IndexPager { - return &IndexPager{ - indexer: indexer, - indexName: indexName, - indexKey: indexKey, - } -} - -func (p *IndexPager) Limit(params PagingParams) ([]interface{}, error) { - items, err := p.indexer.ByIndex(p.indexName, p.indexKey) - if err != nil { - return nil, errors.Wrap(err, "while getting items by index from indexer") - } - keys, err := p.indexer.IndexKeys(p.indexName, p.indexKey) - if err != nil { - return nil, errors.Wrap(err, "while getting index keys for indexer") - } - - internalParams := p.readParams(params) - return p.limitList(internalParams, items, keys, p.indexer) -} diff --git a/components/console-backend-service/internal/pager/indexpager_test.go b/components/console-backend-service/internal/pager/indexpager_test.go deleted file mode 100644 index 10fca0470a46..000000000000 --- a/components/console-backend-service/internal/pager/indexpager_test.go +++ /dev/null @@ -1,149 +0,0 @@ -package pager - -import ( - "errors" - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager/automock" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestLimitList(t *testing.T) { - indexName := "environment" - indexKey := "test" - keys := []string{ - "Test1", - "Test2", - "Test3", - } - values := []interface{}{ - 1, - 2, - 3, - } - - t.Run("Empty list", func(t *testing.T) { - first := 30 - offset := 0 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := []interface{}{} - indexer := new(automock.PageableIndexer) - indexer.On("IndexKeys", indexName, indexKey).Return(nil, nil) - indexer.On("ByIndex", indexName, indexKey).Return(nil, nil) - pager := FromIndexer(indexer, indexName, indexKey) - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("No paging parameters given", func(t *testing.T) { - indexer := fixIndexer(keys, values, indexName, indexKey) - pager := FromIndexer(indexer, indexName, indexKey) - first := 0 - offset := 0 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := values - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("Less items than given 'first' parameter, no offset", func(t *testing.T) { - indexer := fixIndexer(keys, values, indexName, indexKey) - pager := FromIndexer(indexer, indexName, indexKey) - first := 5 - offset := 0 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := values - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("Less items than given 'first' parameter, offset included", func(t *testing.T) { - indexer := fixIndexer(keys, values, indexName, indexKey) - pager := FromIndexer(indexer, indexName, indexKey) - first := 5 - offset := 1 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := []interface{}{ - 2, - 3, - } - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("More items, 'first' and 'offset' parameters given", func(t *testing.T) { - indexer := fixIndexer(keys, values, indexName, indexKey) - pager := FromIndexer(indexer, indexName, indexKey) - first := 1 - offset := 1 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := []interface{}{ - 2, - } - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("Error thrown", func(t *testing.T) { - err := errors.New("New error") - first := 30 - offset := 0 - params := PagingParams{ - First: &first, - Offset: &offset, - } - - indexer := new(automock.PageableIndexer) - indexer.On("IndexKeys", indexName, indexKey).Return(nil, nil) - indexer.On("ByIndex", indexName, indexKey).Return(nil, err) - pager := FromIndexer(indexer, indexName, indexKey) - - _, err = pager.Limit(params) - - require.Error(t, err, "while getting items by index from indexer: New error") - }) - -} - -func fixIndexer(keys []string, values []interface{}, indexName, indexKey string) *automock.PageableIndexer { - indexer := new(automock.PageableIndexer) - indexer.On("IndexKeys", indexName, indexKey).Return(keys, nil) - indexer.On("ByIndex", indexName, indexKey).Return(values, nil) - - for index, key := range keys { - indexer.On("GetByKey", key).Return(values[index], true, nil) - } - - return indexer -} diff --git a/components/console-backend-service/internal/pager/pager.go b/components/console-backend-service/internal/pager/pager.go deleted file mode 100644 index 81982e4b19b6..000000000000 --- a/components/console-backend-service/internal/pager/pager.go +++ /dev/null @@ -1,123 +0,0 @@ -package pager - -import ( - "fmt" - "sort" - "strings" - - "github.com/pkg/errors" -) - -type PagingParams struct { - First *int - Offset *int -} - -type Pager struct { - store PageableStore -} - -//go:generate mockery -name=PageableStore -output=automock -outpkg=automock -case=underscore -type PageableStore interface { - GetByKey(key string) (item interface{}, exists bool, err error) - List() []interface{} - ListKeys() []string -} - -func From(store PageableStore) *Pager { - return &Pager{ - store: store, - } -} - -func (p *Pager) Limit(params PagingParams) ([]interface{}, error) { - items := p.store.List() - keys := p.store.ListKeys() - internalParams := p.readParams(params) - return p.limitList(internalParams, items, keys, p.store) -} - -type itemGetter interface { - GetByKey(key string) (item interface{}, exists bool, err error) -} - -func (p *Pager) readParams(params PagingParams) PagingParams { - var f, o int - if params.First != nil { - f = *params.First - } - if params.Offset != nil { - o = *params.Offset - } - - return PagingParams{ - First: &f, - Offset: &o, - } -} - -func (p *Pager) limitList(params PagingParams, items []interface{}, keys []string, getter itemGetter) ([]interface{}, error) { - if len(items) == 0 { - return []interface{}{}, nil - } - - keysCount := len(keys) - - first := *params.First - offset := *params.Offset - - if first < 0 { - return nil, errors.New("'First' parameter cannot be below 0") - } - - if offset < 0 { - return nil, errors.New("'Offset' parameter cannot be below 0") - } - - sliceStart := offset - sliceEnd := sliceStart + first - - if sliceStart >= keysCount { - return nil, fmt.Errorf("Offset %d is out of range; maximum value: %d", sliceStart, keysCount-1) - } - - if sliceEnd >= keysCount { - sliceEnd = keysCount - } - - sortedList, err := p.sortByKey(keys, getter) - if err != nil { - return nil, errors.Wrap(err, "while sorting store") - } - - if offset == 0 && (first == 0 || first >= keysCount) { - return sortedList, nil - } - - return sortedList[sliceStart:sliceEnd], nil -} - -func (p *Pager) sortByKey(keys []string, store itemGetter) ([]interface{}, error) { - var sortedKeys []string - sortedKeys = append(sortedKeys, keys...) - - sort.SliceStable(sortedKeys, func(i, j int) bool { - result := strings.Compare(sortedKeys[i], sortedKeys[j]) - return result != 1 - }) - - var sortedList []interface{} - for _, key := range sortedKeys { - item, exists, err := store.GetByKey(key) - if !exists { - return nil, fmt.Errorf("Item with key %s doesn't exist", key) - } - if err != nil { - return nil, errors.Wrapf(err, "While getting item with key %s", key) - } - - sortedList = append(sortedList, item) - } - - return sortedList, nil -} diff --git a/components/console-backend-service/internal/pager/pager_test.go b/components/console-backend-service/internal/pager/pager_test.go deleted file mode 100644 index 5741c2703f4f..000000000000 --- a/components/console-backend-service/internal/pager/pager_test.go +++ /dev/null @@ -1,127 +0,0 @@ -package pager - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/pager/automock" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestPager_Limit(t *testing.T) { - keys := []string{ - "Test1", - "Test2", - "Test3", - } - values := []interface{}{ - 1, - 2, - 3, - } - - t.Run("Empty list", func(t *testing.T) { - first := 30 - offset := 0 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := []interface{}{} - store := new(automock.PageableStore) - store.On("ListKeys").Return(keys) - store.On("List").Return([]interface{}{}) - pager := From(store) - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("No paging parameters given", func(t *testing.T) { - store := fixStore(keys, values) - pager := From(store) - first := 0 - offset := 0 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := values - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("Less items than given 'first' parameter, no offset", func(t *testing.T) { - store := fixStore(keys, values) - pager := From(store) - first := 5 - offset := 0 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := values - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("Less items than given 'first' parameter, offset included", func(t *testing.T) { - store := fixStore(keys, values) - pager := From(store) - first := 5 - offset := 1 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := []interface{}{ - 2, - 3, - } - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - - t.Run("More items, 'first' and 'offset' parameters given", func(t *testing.T) { - store := fixStore(keys, values) - pager := From(store) - first := 1 - offset := 1 - params := PagingParams{ - First: &first, - Offset: &offset, - } - expectedItems := []interface{}{ - 2, - } - - items, err := pager.Limit(params) - - require.NoError(t, err) - assert.Equal(t, expectedItems, items) - }) - -} - -func fixStore(keys []string, values []interface{}) *automock.PageableStore { - store := new(automock.PageableStore) - store.On("ListKeys").Return(keys) - store.On("List").Return(values) - - for index, key := range keys { - store.On("GetByKey", key).Return(values[index], true, nil) - } - - return store -} diff --git a/components/console-backend-service/internal/resource/converter.go b/components/console-backend-service/internal/resource/converter.go deleted file mode 100644 index b4839e047cc7..000000000000 --- a/components/console-backend-service/internal/resource/converter.go +++ /dev/null @@ -1,5 +0,0 @@ -package resource - -type Converter interface { - NewK8s() interface{} -} diff --git a/components/console-backend-service/internal/resource/extractdata.go b/components/console-backend-service/internal/resource/extractdata.go deleted file mode 100644 index 28128e0eb720..000000000000 --- a/components/console-backend-service/internal/resource/extractdata.go +++ /dev/null @@ -1,32 +0,0 @@ -package resource - -import ( - "encoding/json" - - "github.com/pkg/errors" -) - -func ExtractRawToMap(fieldName string, raw []byte) (map[string]interface{}, error) { - extracted := make(map[string]interface{}) - err := json.Unmarshal(raw, &extracted) - if err != nil { - return nil, errors.Wrapf(err, "while extracting raw value of field %s", fieldName) - } - - return extracted, nil -} - -func ToStringPtr(val interface{}) *string { - var result string - - if val != nil { - valStr, ok := val.(string) - if !ok { - return nil - } - - result = valStr - } - - return &result -} diff --git a/components/console-backend-service/internal/resource/fake/service.go b/components/console-backend-service/internal/resource/fake/service.go deleted file mode 100644 index 018274c30dd7..000000000000 --- a/components/console-backend-service/internal/resource/fake/service.go +++ /dev/null @@ -1,52 +0,0 @@ -package fake - -import ( - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - "k8s.io/apimachinery/pkg/runtime" - dynamicFake "k8s.io/client-go/dynamic/fake" -) - -func NewSimpleFakeServiceFactory(informerResyncPeriod time.Duration) *resource.ServiceFactory { - client := dynamicFake.NewSimpleDynamicClient(runtime.NewScheme()) - informerFactory := dynamicinformer.NewDynamicSharedInformerFactory(client, informerResyncPeriod) - return resource.NewServiceFactory(client, informerFactory) -} - -func NewFakeServiceFactory(addToScheme func(*runtime.Scheme) error, objects ...runtime.Object) (*resource.ServiceFactory, error) { - scheme := runtime.NewScheme() - err := addToScheme(scheme) - if err != nil { - return nil, err - } - result := make([]runtime.Object, len(objects)) - for i, obj := range objects { - result[i], err = resource.ToUnstructured(obj) - if err != nil { - return nil, err - } - } - client := dynamicFake.NewSimpleDynamicClient(scheme, result...) - informerFactory := dynamicinformer.NewDynamicSharedInformerFactory(client, 10) - return resource.NewServiceFactory(client, informerFactory), nil -} - -func NewFakeGenericServiceFactory(addToScheme func(*runtime.Scheme) error, objects ...runtime.Object) (*resource.GenericServiceFactory, error) { - scheme := runtime.NewScheme() - err := addToScheme(scheme) - if err != nil { - return nil, err - } - result := make([]runtime.Object, len(objects)) - for i, obj := range objects { - result[i], err = resource.ToUnstructured(obj) - if err != nil { - return nil, err - } - } - client := dynamicFake.NewSimpleDynamicClient(scheme, result...) - informerFactory := dynamicinformer.NewDynamicSharedInformerFactory(client, time.Second) - return resource.NewGenericServiceFactory(client, informerFactory), nil -} diff --git a/components/console-backend-service/internal/resource/generic_service.go b/components/console-backend-service/internal/resource/generic_service.go deleted file mode 100644 index 1d9e92a7607b..000000000000 --- a/components/console-backend-service/internal/resource/generic_service.go +++ /dev/null @@ -1,69 +0,0 @@ -package resource - -import ( - "fmt" - - apiErrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -type GenericService struct { - ServiceBase -} - -func (s *GenericService) ListInNamespace(namespace string, result Appendable) error { - return s.ListByIndex(cache.NamespaceIndex, namespace, result) -} - -func (s *GenericService) List(result Appendable) error { - return s.ListInNamespace("", result) -} - -func (s *GenericService) GetInNamespace(name, namespace string, result interface{}) error { - key := fmt.Sprintf("%s/%s", namespace, name) - return s.GetByKey(key, result) -} - -func (s *GenericService) Get(name string, result interface{}) error { - return s.GetByKey(name, result) -} - -func (s *GenericService) UpdateInNamespace(name, namespace string, result interface{}, update func() error) error { - err := s.GetInNamespace(name, namespace, result) - if err != nil { - return err - } - if result == nil { - return apiErrors.NewNotFound(s.GVR().GroupResource(), name) - } - - err = update() - if err != nil { - return err - } - - return s.Apply(result, result) -} - -func (s *GenericService) DeleteInNamespace(namespace, name string, res runtime.Object) error { - err := s.GetInNamespace(name, namespace, res) - if err != nil { - return err - } - - res = res.DeepCopyObject() - err = s.ServiceBase.DeleteInNamespace(name, namespace) - return err -} - -func (s *GenericService) Delete(name string, res runtime.Object) error { - err := s.Get(name, res) - if err != nil { - return err - } - - res = res.DeepCopyObject() - err = s.ServiceBase.Delete(name) - return err -} diff --git a/components/console-backend-service/internal/resource/listener.go b/components/console-backend-service/internal/resource/listener.go deleted file mode 100644 index 347b97e6fcfd..000000000000 --- a/components/console-backend-service/internal/resource/listener.go +++ /dev/null @@ -1,59 +0,0 @@ -package resource - -import ( - "fmt" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - - "github.com/golang/glog" -) - -type EventHandlerProvider func() EventHandler - -type EventHandler interface { - K8sResource() interface{} - ShouldNotify() bool - Notify(gqlschema.SubscriptionEventType) -} - -type Listener struct { - handler EventHandlerProvider -} - -func NewListener(handler EventHandlerProvider) *Listener { - return &Listener{ - handler: handler, - } -} - -func (l *Listener) OnAdd(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeAdd, object) -} - -func (l *Listener) OnUpdate(oldObject, newObject interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeUpdate, newObject) -} - -func (l *Listener) OnDelete(object interface{}) { - l.onEvent(gqlschema.SubscriptionEventTypeDelete, object) -} - -func (l *Listener) onEvent(eventType gqlschema.SubscriptionEventType, object interface{}) { - u, ok := object.(*unstructured.Unstructured) - if !ok { - glog.Error(fmt.Errorf("incorrect object type: %T, should be: *unstructured.Unstructured", object)) - return - } - - eventHandler := l.handler() - err := FromUnstructured(u, eventHandler.K8sResource()) - if err != nil { - glog.Error(fmt.Errorf("cannot convert from unstructured: %v", object)) - return - } - - if eventHandler.ShouldNotify() { - eventHandler.Notify(eventType) - } -} diff --git a/components/console-backend-service/internal/resource/module.go b/components/console-backend-service/internal/resource/module.go deleted file mode 100644 index e26531a534b8..000000000000 --- a/components/console-backend-service/internal/resource/module.go +++ /dev/null @@ -1,60 +0,0 @@ -package resource - -import ( - "github.com/kyma-project/kyma/components/console-backend-service/internal/module" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -type ServiceCreator func(factory *GenericServiceFactory) (*GenericService, error) -type ServiceCreators map[schema.GroupVersionResource]ServiceCreator - -type Module struct { - *module.Pluggable - serviceCreators ServiceCreators - services map[schema.GroupVersionResource]*GenericService - - // Module should receive ServiceFactory in Enable, as it is needed (and should be needed) only there, - // but I don't want to touch module.PluggableModule interface right now - factory *GenericServiceFactory -} - -func NewModule(name string, factory *GenericServiceFactory, serviceCreators ServiceCreators) *Module { - return &Module{ - Pluggable: module.NewPluggable(name), - serviceCreators: serviceCreators, - services: make(map[schema.GroupVersionResource]*GenericService), - factory: factory, - } -} - -func (m *Module) Enable() error { - newServices := make(map[schema.GroupVersionResource]*GenericService) - for resource, creator := range m.serviceCreators { - var err error - newServices[resource], err = creator(m.factory) - if err != nil { - return err - } - } - - m.Pluggable.Enable() - m.factory.InformerFactory.Start(make(chan struct{})) - m.factory.InformerFactory.WaitForCacheSync(make(chan struct{})) - m.services = newServices - return nil -} - -func (m *Module) Disable() error { - m.Pluggable.Disable(func(err error) { - newServices := make(map[schema.GroupVersionResource]*GenericService) - for resource := range m.serviceCreators { - newServices[resource] = &GenericService{ServiceBase: disabledServiceBase{gvr: resource, err: err}} - } - m.services = newServices - }) - return nil -} - -func (m *Module) Service(gvr schema.GroupVersionResource) *GenericService { - return m.services[gvr] -} diff --git a/components/console-backend-service/internal/resource/notifier.go b/components/console-backend-service/internal/resource/notifier.go deleted file mode 100644 index 6953b202cf33..000000000000 --- a/components/console-backend-service/internal/resource/notifier.go +++ /dev/null @@ -1,73 +0,0 @@ -package resource - -import ( - "sync" -) - -//go:generate mockery -name=Listener -output=automock -outpkg=automock -case=underscore - -type Notifier struct { - sync.RWMutex - // TODO: change to map for better performance - listeners []*Listener -} - -func NewNotifier() *Notifier { - return &Notifier{} -} - -func (n *Notifier) AddListener(listener *Listener) { - if listener == nil { - return - } - - n.Lock() - defer n.Unlock() - - n.listeners = append(n.listeners, listener) -} - -func (n *Notifier) DeleteListener(listener *Listener) { - if listener == nil { - return - } - - n.Lock() - defer n.Unlock() - - filtered := n.listeners[:0] - for _, l := range n.listeners { - if l != listener { - filtered = append(filtered, l) - } - } - - n.listeners = filtered -} - -func (n *Notifier) OnAdd(obj interface{}) { - n.RLock() - defer n.RUnlock() - - for _, listener := range n.listeners { - listener.OnAdd(obj) - } -} - -func (n *Notifier) OnUpdate(oldObj, newObj interface{}) { - n.RLock() - defer n.RUnlock() - - for _, listener := range n.listeners { - listener.OnUpdate(oldObj, newObj) - } -} - -func (n *Notifier) OnDelete(obj interface{}) { - n.RLock() - defer n.RUnlock() - - for _, listener := range n.listeners { - listener.OnDelete(obj) - } -} diff --git a/components/console-backend-service/internal/resource/notifier_test.go b/components/console-backend-service/internal/resource/notifier_test.go deleted file mode 100644 index cf3f38328942..000000000000 --- a/components/console-backend-service/internal/resource/notifier_test.go +++ /dev/null @@ -1,287 +0,0 @@ -package resource - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource/automock" -) - -func TestNotifier_AddListener(t *testing.T) { - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - }) - - t.Run("Nil listener", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.AddListener(nil) - }) -} - -func TestNotifier_DeleteListener(t *testing.T) { - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.DeleteListener(listener) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.DeleteListener(listener) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerA) - }) - - t.Run("Not existing", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.DeleteListener(listener) - }) - - t.Run("Nil listener", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.DeleteListener(nil) - }) -} - -func TestNotifier_OnAdd(t *testing.T) { - expected := new(struct{}) - - t.Run("No listeners", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.OnAdd(expected) - }) - - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnAdd", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.OnAdd(expected) - - listener.AssertCalled(t, "OnAdd", expected) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnAdd", expected).Twice() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.OnAdd(expected) - - listener.AssertNumberOfCalls(t, "OnAdd", 2) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnAdd", expected).Once() - listenerB.On("OnAdd", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.OnAdd(expected) - - listenerA.AssertCalled(t, "OnAdd", expected) - listenerB.AssertCalled(t, "OnAdd", expected) - }) - - t.Run("Deleted listener", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnAdd", expected).Once() - listenerB.On("OnAdd", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerB) - notifier.OnAdd(expected) - - listenerA.AssertCalled(t, "OnAdd", expected) - listenerB.AssertNotCalled(t, "OnAdd", expected) - }) -} - -func TestNotifier_OnDelete(t *testing.T) { - expected := new(struct{}) - - t.Run("No listeners", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.OnDelete(expected) - }) - - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnDelete", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.OnDelete(expected) - - listener.AssertCalled(t, "OnDelete", expected) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnDelete", expected).Twice() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.OnDelete(expected) - - listener.AssertNumberOfCalls(t, "OnDelete", 2) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnDelete", expected).Once() - listenerB.On("OnDelete", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.OnDelete(expected) - - listenerA.AssertCalled(t, "OnDelete", expected) - listenerB.AssertCalled(t, "OnDelete", expected) - }) - - t.Run("Deleted listener", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnDelete", expected).Once() - listenerB.On("OnDelete", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerB) - notifier.OnDelete(expected) - - listenerA.AssertCalled(t, "OnDelete", expected) - listenerB.AssertNotCalled(t, "OnDelete", expected) - }) -} - -func TestNotifier_OnUpdate(t *testing.T) { - expectedNew := new(struct{}) - expectedOld := new(struct{}) - - t.Run("No listeners", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.OnUpdate(expectedOld, expectedNew) - }) - - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnUpdate", expectedOld, expectedNew).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.OnUpdate(expectedOld, expectedNew) - - listener.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnUpdate", expectedOld, expectedNew).Twice() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.OnUpdate(expectedOld, expectedNew) - - listener.AssertNumberOfCalls(t, "OnUpdate", 2) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnUpdate", expectedOld, expectedNew).Once() - listenerB.On("OnUpdate", expectedOld, expectedNew).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.OnUpdate(expectedOld, expectedNew) - - listenerA.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - listenerB.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - }) - - t.Run("Deleted listener", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnUpdate", expectedOld, expectedNew).Once() - listenerB.On("OnUpdate", expectedOld, expectedNew).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerB) - notifier.OnUpdate(expectedOld, expectedNew) - - listenerA.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - listenerB.AssertNotCalled(t, "OnUpdate", expectedOld, expectedNew) - }) -} diff --git a/components/console-backend-service/internal/resource/service.go b/components/console-backend-service/internal/resource/service.go deleted file mode 100644 index 0de5c81b4a0e..000000000000 --- a/components/console-backend-service/internal/resource/service.go +++ /dev/null @@ -1,120 +0,0 @@ -package resource - -import ( - "fmt" - "reflect" - "time" - - "github.com/pkg/errors" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamicinformer" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/cache" -) - -type ServiceFactory struct { - Client dynamic.Interface - InformerFactory dynamicinformer.DynamicSharedInformerFactory -} - -func NewServiceFactoryForConfig(config *rest.Config, informerResyncPeriod time.Duration) (*ServiceFactory, error) { - dynamicClient, err := dynamic.NewForConfig(config) - if err != nil { - return nil, err - } - - informerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamicClient, informerResyncPeriod) - return NewServiceFactory(dynamicClient, informerFactory), nil -} - -func NewServiceFactory(client dynamic.Interface, informerFactory dynamicinformer.DynamicSharedInformerFactory) *ServiceFactory { - return &ServiceFactory{ - Client: client, - InformerFactory: informerFactory, - } -} - -type Service struct { - Client dynamic.NamespaceableResourceInterface - Informer cache.SharedIndexInformer - new func() interface{} -} - -func (f *ServiceFactory) ForResource(gvr schema.GroupVersionResource) *Service { - return &Service{ - Client: f.Client.Resource(gvr), - Informer: f.InformerFactory.ForResource(gvr).Informer(), - } -} - -func (s *Service) ListInIndex(index, key string, results interface{}) error { - resultsVal := reflect.ValueOf(results) - if resultsVal.Kind() != reflect.Ptr { - return errors.New("results argument must be a pointer to a slice") - } - - sliceVal := resultsVal.Elem() - elementType := sliceVal.Type().Elem() - - items, err := s.Informer.GetIndexer().ByIndex(index, key) - if err != nil { - return err - } - - sliceVal, err = s.addItems(sliceVal, elementType, items) - if err != nil { - return err - } - - resultsVal.Elem().Set(sliceVal) - return nil -} - -func (s *Service) FindInNamespace(name, namespace string, result interface{}) error { - key := fmt.Sprintf("%s/%s", namespace, name) - item, exists, err := s.Informer.GetStore().GetByKey(key) - - if err != nil { - return err - } - if !exists { - return nil - } - - err = FromUnstructured(item.(*unstructured.Unstructured), result) - if err != nil { - return err - } - - return nil -} - -func (s *Service) AddIndexers(indexers cache.Indexers) error { - err := s.Informer.AddIndexers(indexers) - if err != nil && err.Error() == "informer has already started" { - return nil - } - return err -} - -func (s *Service) addItems(sliceVal reflect.Value, elemType reflect.Type, items []interface{}) (reflect.Value, error) { - for index, item := range items { - if sliceVal.Len() == index { - // slice is full - newElem := reflect.New(elemType) - sliceVal = reflect.Append(sliceVal, newElem.Elem()) - sliceVal = sliceVal.Slice(0, sliceVal.Cap()) - } - - currElem := sliceVal.Index(index).Addr().Interface() - err := FromUnstructured(item.(*unstructured.Unstructured), currElem) - if err != nil { - return sliceVal, err - } - } - - return sliceVal, nil -} diff --git a/components/console-backend-service/internal/resource/service_base.go b/components/console-backend-service/internal/resource/service_base.go deleted file mode 100644 index b76fcf601bc1..000000000000 --- a/components/console-backend-service/internal/resource/service_base.go +++ /dev/null @@ -1,185 +0,0 @@ -package resource - -import ( - "context" - "fmt" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/tools/cache" -) - -var NotFound = fmt.Errorf("resource not found") - -type Appendable interface { - Append() interface{} -} - -type Unsubscribe func() - -type ServiceBase interface { - ListByIndex(index, key string, result Appendable) error - GetByKey(key string, result interface{}) error - AddIndexers(indexers cache.Indexers) error - Create(obj interface{}, result interface{}) error - Apply(obj interface{}, result interface{}) error - GVR() schema.GroupVersionResource - DeleteInNamespace(name, namespace string) error - Delete(name string) error - Subscribe(handler EventHandlerProvider) (Unsubscribe, error) -} - -type enabledServiceBase struct { - Client dynamic.NamespaceableResourceInterface - Informer cache.SharedIndexInformer - notifier *Notifier - gvr schema.GroupVersionResource -} - -func (s *enabledServiceBase) ListByIndex(index, key string, result Appendable) error { - items, err := s.Informer.GetIndexer().ByIndex(index, key) - - if err != nil { - return err - } - - for _, item := range items { - converted := result.Append() - err := FromUnstructured(item.(*unstructured.Unstructured), converted) - if err != nil { - return err - } - } - - return nil -} - -func (s *enabledServiceBase) GetByKey(key string, result interface{}) error { - item, exists, err := s.Informer.GetStore().GetByKey(key) - if err != nil { - return err - } - if !exists { - return NotFound - } - - err = FromUnstructured(item.(*unstructured.Unstructured), result) - if err != nil { - return err - } - - return nil -} - -func (s *enabledServiceBase) AddIndexers(indexers cache.Indexers) error { - err := s.Informer.AddIndexers(indexers) - if err != nil && err.Error() == "informer has already started" { - return nil - } - return err -} - -func (s *enabledServiceBase) Create(obj interface{}, result interface{}) error { - u, err := ToUnstructured(obj) - if err != nil { - return err - } - - var created *unstructured.Unstructured - if u.GetNamespace() == "" { - created, err = s.Client.Create(context.Background(), u, v1.CreateOptions{}) - } else { - created, err = s.Client.Namespace(u.GetNamespace()).Create(context.Background(), u, v1.CreateOptions{}) - } - if err != nil { - return err - } - - return FromUnstructured(created, result) -} - -func (s *enabledServiceBase) Apply(obj interface{}, result interface{}) error { - u, err := ToUnstructured(obj) - if err != nil { - return err - } - - var updated *unstructured.Unstructured - if u.GetNamespace() == "" { - updated, err = s.Client.Update(context.Background(), u, v1.UpdateOptions{}) - } else { - updated, err = s.Client.Namespace(u.GetNamespace()).Update(context.Background(), u, v1.UpdateOptions{}) - } - if err != nil { - return err - } - - return FromUnstructured(updated, result) -} - -func (s *enabledServiceBase) Subscribe(handler EventHandlerProvider) (Unsubscribe, error) { - listener := NewListener(handler) - s.notifier.AddListener(listener) - return func() { - s.deleteListener(listener) - }, nil -} - -func (s *enabledServiceBase) deleteListener(listener *Listener) { - s.notifier.DeleteListener(listener) -} - -func (s *enabledServiceBase) DeleteInNamespace(name, namespace string) error { - return s.Client.Namespace(namespace).Delete(context.Background(), name, v1.DeleteOptions{}) -} - -func (s *enabledServiceBase) Delete(name string) error { - return s.Client.Delete(context.Background(), name, v1.DeleteOptions{}) -} - -func (s *enabledServiceBase) GVR() schema.GroupVersionResource { - return s.gvr -} - -type disabledServiceBase struct { - gvr schema.GroupVersionResource - err error -} - -func (s disabledServiceBase) ListByIndex(_, _ string, _ Appendable) error { - return s.err -} - -func (s disabledServiceBase) GetByKey(_ string, _ interface{}) error { - return s.err -} - -func (s disabledServiceBase) AddIndexers(_ cache.Indexers) error { - return s.err -} - -func (s disabledServiceBase) Create(_ interface{}, _ interface{}) error { - return s.err -} - -func (s disabledServiceBase) Apply(_ interface{}, _ interface{}) error { - return s.err -} - -func (s disabledServiceBase) GVR() schema.GroupVersionResource { - return s.gvr -} - -func (s disabledServiceBase) DeleteInNamespace(_, _ string) error { - return s.err -} - -func (s disabledServiceBase) Delete(_ string) error { - return s.err -} - -func (s disabledServiceBase) Subscribe(_ EventHandlerProvider) (Unsubscribe, error) { - return func() {}, s.err -} diff --git a/components/console-backend-service/internal/resource/service_factory.go b/components/console-backend-service/internal/resource/service_factory.go deleted file mode 100644 index c42d5f760485..000000000000 --- a/components/console-backend-service/internal/resource/service_factory.go +++ /dev/null @@ -1,49 +0,0 @@ -package resource - -import ( - "time" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/dynamic/dynamicinformer" - "k8s.io/client-go/rest" -) - -type GenericServiceFactory struct { - Client dynamic.Interface - InformerFactory dynamicinformer.DynamicSharedInformerFactory -} - -func NewGenericServiceFactoryForConfig(config *rest.Config, informerResyncPeriod time.Duration) (*GenericServiceFactory, error) { - dynamicClient, err := dynamic.NewForConfig(config) - if err != nil { - return nil, err - } - - informerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamicClient, informerResyncPeriod) - return NewGenericServiceFactory(dynamicClient, informerFactory), nil -} - -func NewGenericServiceFactory(client dynamic.Interface, informerFactory dynamicinformer.DynamicSharedInformerFactory) *GenericServiceFactory { - return &GenericServiceFactory{ - Client: client, - InformerFactory: informerFactory, - } -} - -func (f *GenericServiceFactory) ForResource(gvr schema.GroupVersionResource) *GenericService { - notifier := NewNotifier() - informer := f. - InformerFactory. - ForResource(gvr). - Informer() - informer.AddEventHandler(notifier) - return &GenericService{ - ServiceBase: &enabledServiceBase{ - Client: f.Client.Resource(gvr), - Informer: informer, - notifier: notifier, - gvr: gvr, - }, - } -} diff --git a/components/console-backend-service/internal/resource/toJson.go b/components/console-backend-service/internal/resource/toJson.go deleted file mode 100644 index 6ab0ad640247..000000000000 --- a/components/console-backend-service/internal/resource/toJson.go +++ /dev/null @@ -1,34 +0,0 @@ -package resource - -import ( - "encoding/json" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/runtime" -) - -func ToJson(obj runtime.Object) (gqlschema.JSON, error) { - if obj == nil { - return nil, nil - } - - jsonByte, err := json.Marshal(obj) - if err != nil { - return nil, errors.Wrapf(err, "while marshalling %T", obj) - } - - var jsonMap map[string]interface{} - err = json.Unmarshal(jsonByte, &jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling %T to map", obj) - } - - result := gqlschema.JSON{} - err = result.UnmarshalGQL(jsonMap) - if err != nil { - return nil, errors.Wrapf(err, "while unmarshalling `%T` to GQL JSON", obj) - } - - return result, nil -} diff --git a/components/console-backend-service/internal/resource/unstructured.go b/components/console-backend-service/internal/resource/unstructured.go deleted file mode 100644 index ae240d96c5bc..000000000000 --- a/components/console-backend-service/internal/resource/unstructured.go +++ /dev/null @@ -1,36 +0,0 @@ -package resource - -import ( - "github.com/pkg/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" -) - -func ToUnstructured(v interface{}) (*unstructured.Unstructured, error) { - if v == nil { - return nil, nil - } - - u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(v) - if err != nil { - return nil, errors.Wrapf(err, "while converting resource %T to unstructured", v) - } - if len(u) == 0 { - return nil, nil - } - - return &unstructured.Unstructured{Object: u}, nil -} - -func FromUnstructured(obj *unstructured.Unstructured, v interface{}) error { - if obj == nil { - return nil - } - - err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, v) - if err != nil { - return errors.Wrapf(err, "while converting unstructured to resource %T %s", v, obj.Object) - } - - return nil -} diff --git a/components/console-backend-service/internal/resource/unstructured_test.go b/components/console-backend-service/internal/resource/unstructured_test.go deleted file mode 100644 index 6a7c4efa263f..000000000000 --- a/components/console-backend-service/internal/resource/unstructured_test.go +++ /dev/null @@ -1,81 +0,0 @@ -package resource_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/resource" - - "github.com/kyma-project/kyma/components/function-controller/pkg/apis/serverless/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - testingUtils "github.com/kyma-project/kyma/components/console-backend-service/internal/testing" -) - -func TestFromUnstructured(t *testing.T) { - t.Run("Success", func(t *testing.T) { - apiVersion := "serverless.kyma-project.io" - obj := testingUtils.NewUnstructured(apiVersion, "Function", map[string]interface{}{ - "name": "ExampleName", - }, nil, nil) - expected := &v1alpha1.Function{ - TypeMeta: metav1.TypeMeta{ - Kind: "Function", - APIVersion: apiVersion, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - - result := &v1alpha1.Function{} - err := resource.FromUnstructured(obj, result) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - var result *v1alpha1.Function - err := resource.FromUnstructured(nil, result) - require.NoError(t, err) - assert.Nil(t, result) - }) -} - -func TestToUnstructured(t *testing.T) { - t.Run("Success", func(t *testing.T) { - apiVersion := "serverless.kyma-project.io" - obj := &v1alpha1.Function{ - TypeMeta: metav1.TypeMeta{ - Kind: "Function", - APIVersion: apiVersion, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "ExampleName", - }, - } - expected := testingUtils.NewUnstructured(apiVersion, "Function", - map[string]interface{}{ - "name": "ExampleName", - "creationTimestamp": nil, - }, - map[string]interface{}{ - "source": "", - "resources": map[string]interface{}{}, - "buildResources": map[string]interface{}{}, - }, - map[string]interface{}{}, - ) - - result, err := resource.ToUnstructured(obj) - require.NoError(t, err) - assert.Equal(t, expected, result) - }) - - t.Run("Nil", func(t *testing.T) { - result, err := resource.ToUnstructured(nil) - require.NoError(t, err) - assert.Nil(t, result) - }) -} diff --git a/components/console-backend-service/internal/testing/unstructured.go b/components/console-backend-service/internal/testing/unstructured.go deleted file mode 100644 index 28fb7898a397..000000000000 --- a/components/console-backend-service/internal/testing/unstructured.go +++ /dev/null @@ -1,15 +0,0 @@ -package testing - -import "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - -func NewUnstructured(apiVersion, kind string, metadata, spec, status map[string]interface{}) *unstructured.Unstructured { - return &unstructured.Unstructured{ - Object: map[string]interface{}{ - "apiVersion": apiVersion, - "kind": kind, - "metadata": metadata, - "spec": spec, - "status": status, - }, - } -} diff --git a/components/console-backend-service/internal/testing/waitforinformer.go b/components/console-backend-service/internal/testing/waitforinformer.go deleted file mode 100644 index 3f02169e60d3..000000000000 --- a/components/console-backend-service/internal/testing/waitforinformer.go +++ /dev/null @@ -1,28 +0,0 @@ -package testing - -import ( - "testing" - "time" - - "k8s.io/client-go/tools/cache" -) - -func WaitForInformerStartAtMost(t *testing.T, timeout time.Duration, informer cache.SharedIndexInformer) { - stop := make(chan struct{}) - syncedDone := make(chan struct{}) - - go func() { - if !cache.WaitForCacheSync(stop, informer.HasSynced) { - t.Fatalf("timeout occurred when waiting to sync informer") - } - close(syncedDone) - }() - - go informer.Run(stop) - - select { - case <-time.After(timeout): - close(stop) - case <-syncedDone: - } -} diff --git a/components/console-backend-service/main.go b/components/console-backend-service/main.go deleted file mode 100644 index 1c4230c51b04..000000000000 --- a/components/console-backend-service/main.go +++ /dev/null @@ -1,222 +0,0 @@ -package main - -import ( - "context" - "flag" - "fmt" - "net/http" - "strings" - "time" - - "github.com/99designs/gqlgen/graphql/handler/extension" - - "github.com/99designs/gqlgen/graphql/handler/lru" - "github.com/99designs/gqlgen/graphql/handler/transport" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/serverless" - - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/rafter" - - "github.com/99designs/gqlgen/graphql" - "github.com/99designs/gqlgen/graphql/handler" - "github.com/99designs/gqlgen/graphql/playground" - "github.com/golang/glog" - "github.com/gorilla/mux" - "github.com/gorilla/websocket" - "github.com/kyma-project/kyma/components/console-backend-service/internal/authn" - "github.com/kyma-project/kyma/components/console-backend-service/internal/authz" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain" - "github.com/kyma-project/kyma/components/console-backend-service/internal/domain/application" - "github.com/kyma-project/kyma/components/console-backend-service/internal/experimental" - "github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/origin" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/signal" - "github.com/pkg/errors" - "github.com/rs/cors" - "github.com/vrischmann/envconfig" - authenticatorpkg "k8s.io/apiserver/pkg/authentication/authenticator" - "k8s.io/client-go/kubernetes" - _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" -) - -type config struct { - Host string `envconfig:"default=127.0.0.1"` - Port int `envconfig:"default=3000"` - AllowedOrigins []string `envconfig:"optional"` - Verbose bool `envconfig:"default=false"` - KubeconfigPath string `envconfig:"optional"` - SystemNamespaces []string `envconfig:"default=istio-system;knative-eventing;kube-public;kube-system;kyma-installer;kyma-integration;kyma-system;natss;compass-system"` - InformerResyncPeriod time.Duration `envconfig:"default=10m"` - ServerTimeout time.Duration `envconfig:"default=10s"` - Burst int `envconfig:"default=2"` - Application application.Config - Rafter rafter.Config - Serverless serverless.Config - OIDC authn.OIDCConfig - SARCacheConfig authz.SARCacheConfig - FeatureToggles experimental.FeatureToggles - DebugDomain string `envconfig:"optional"` - EventSubscription bool `envconfig:"optional"` -} - -func main() { - cfg, _, err := loadConfig("APP") - exitOnError(err, "Error while loading app config") - parseFlags(cfg) - - k8sConfig, err := newRestClientConfig(cfg.KubeconfigPath, cfg.Burst) - exitOnError(err, "Error while initializing REST client config") - - kubeClient, err := kubernetes.NewForConfig(k8sConfig) - exitOnError(err, "Failed to instantiate Kubernetes client") - - resolvers, err := domain.New(kubeClient, k8sConfig, cfg.Application, cfg.Rafter, cfg.Serverless, cfg.InformerResyncPeriod, cfg.FeatureToggles, cfg.SystemNamespaces, cfg.EventSubscription) - exitOnError(err, "Error while creating resolvers") - - gqlCfg := gqlschema.Config{Resolvers: resolvers} - - var authenticator authenticatorpkg.Request - - authenticator, err = authn.NewOIDCAuthenticator(&cfg.OIDC) - exitOnError(err, "Error while creating OIDC authenticator") - sarClient := kubeClient.AuthorizationV1().SubjectAccessReviews() - authorizer, err := authz.NewAuthorizer(sarClient, cfg.SARCacheConfig) - exitOnError(err, "Failed to create authorizer") - - gqlCfg.Directives.HasAccess = authz.NewRBACDirective(authorizer, kubeClient.Discovery()) - - stopCh := signal.SetupChannel() - resolvers.WaitForCacheSync(stopCh) - - executableSchema := gqlschema.NewExecutableSchema(gqlCfg) - - runServer(stopCh, cfg, executableSchema, authenticator) -} - -func loadConfig(prefix string) (config, bool, error) { - cfg := config{} - - err := envconfig.InitWithPrefix(&cfg, prefix) - if err != nil { - return cfg, false, err - } - - if cfg.DebugDomain != "" { - //debug mode - cfg.Rafter.Address = strings.Join([]string{"https://storage", cfg.DebugDomain}, ".") - cfg.Verbose = true - cfg.Rafter.VerifySSL = true - cfg.Application.Gateway.IntegrationNamespace = "kyma-integration" - cfg.OIDC.IssuerURL = strings.Join([]string{"https://dex", cfg.DebugDomain}, ".") - cfg.OIDC.ClientID = "kyma-client" - } - - developmentMode := cfg.KubeconfigPath != "" - return cfg, developmentMode, nil -} - -func exitOnError(err error, context string) { - if err != nil { - wrappedError := errors.Wrap(err, context) - glog.Fatal(wrappedError) - } -} - -func parseFlags(cfg config) { - if cfg.Verbose { - err := flag.Set("stderrthreshold", "INFO") - if err != nil { - glog.Error(errors.Wrap(err, "while parsing flags")) - } - } - flag.Parse() -} - -func newRestClientConfig(kubeconfigPath string, burst int) (*restclient.Config, error) { - var config *restclient.Config - var err error - if kubeconfigPath != "" { - config, err = clientcmd.BuildConfigFromFlags("", kubeconfigPath) - } else { - config, err = restclient.InClusterConfig() - } - - if err != nil { - return nil, err - } - - config.Burst = burst - config.UserAgent = "console-backend-service" - return config, nil -} - -func runServer(stop <-chan struct{}, cfg config, schema graphql.ExecutableSchema, authenticator authenticatorpkg.Request) { - var allowedOrigins []string - if len(cfg.AllowedOrigins) == 0 { - allowedOrigins = []string{"*"} - } else { - allowedOrigins = cfg.AllowedOrigins - } - - router := mux.NewRouter() - - if authenticator != nil { - router.Use(authn.AuthMiddleware(authenticator)) - } - - router.Handle("/", playground.Handler("Kyma GQL", "/graphql")) - graphQLHandler := newGqlServer(schema, allowedOrigins) - router.Handle("/graphql", graphQLHandler) - serverHandler := cors.New(cors.Options{ - AllowedOrigins: allowedOrigins, - AllowedMethods: []string{ - "POST", "GET", "OPTIONS", - }, - AllowCredentials: true, - AllowedHeaders: []string{"*"}, - OptionsPassthrough: false, - }).Handler(router) - - addr := fmt.Sprintf("%s:%d", cfg.Host, cfg.Port) - srv := &http.Server{Addr: addr, Handler: serverHandler} - - glog.Infof("Listening on %s", addr) - - go func() { - <-stop - // Interrupt signal received - shut down the server - if err := srv.Shutdown(context.Background()); err != nil { - glog.Errorf("HTTP server Shutdown: %v", err) - } - }() - - if err := srv.ListenAndServe(); err != http.ErrServerClosed { - glog.Errorf("HTTP server ListenAndServe: %v", err) - } -} - -func newGqlServer(es graphql.ExecutableSchema, allowedOrigins []string) *handler.Server { - srv := handler.New(es) - - srv.AddTransport(transport.Websocket{ - KeepAlivePingInterval: 10 * time.Second, - Upgrader: websocket.Upgrader{ - CheckOrigin: origin.CheckFn(allowedOrigins), - }, - }) - srv.AddTransport(transport.Options{}) - srv.AddTransport(transport.GET{}) - srv.AddTransport(transport.POST{}) - srv.AddTransport(transport.MultipartForm{}) - - srv.SetQueryCache(lru.New(1000)) - - srv.Use(extension.Introspection{}) - srv.Use(extension.AutomaticPersistedQuery{ - Cache: lru.New(100), - }) - - return srv -} diff --git a/components/console-backend-service/pkg/apis/ui/register.go b/components/console-backend-service/pkg/apis/ui/register.go deleted file mode 100644 index 997defde4f08..000000000000 --- a/components/console-backend-service/pkg/apis/ui/register.go +++ /dev/null @@ -1,5 +0,0 @@ -package ui - -const ( - GroupName = "ui.kyma-project.io" -) diff --git a/components/console-backend-service/pkg/apis/ui/v1alpha1/doc.go b/components/console-backend-service/pkg/apis/ui/v1alpha1/doc.go deleted file mode 100644 index 2685a47c9004..000000000000 --- a/components/console-backend-service/pkg/apis/ui/v1alpha1/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package v1 is the v1 version of the API. -// +groupName=ui.kyma-project.io -package v1alpha1 diff --git a/components/console-backend-service/pkg/apis/ui/v1alpha1/register.go b/components/console-backend-service/pkg/apis/ui/v1alpha1/register.go deleted file mode 100644 index 577a22bfd4fb..000000000000 --- a/components/console-backend-service/pkg/apis/ui/v1alpha1/register.go +++ /dev/null @@ -1,40 +0,0 @@ -package v1alpha1 - -import ( - ui "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = schema.GroupVersion{Group: ui.GroupName, Version: "v1alpha1"} - -// Resource takes an unqualified resource and returns a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - -var ( - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. - SchemeBuilder runtime.SchemeBuilder - localSchemeBuilder = &SchemeBuilder - AddToScheme = localSchemeBuilder.AddToScheme -) - -func init() { - // We only register manually written functions here. The registration of the - // generated functions takes place in the generated files. The separation - // makes the code compile even when the generated files are missing. - localSchemeBuilder.Register(addKnownTypes) -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &BackendModule{}, - &BackendModuleList{}, - ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil -} diff --git a/components/console-backend-service/pkg/apis/ui/v1alpha1/types.go b/components/console-backend-service/pkg/apis/ui/v1alpha1/types.go deleted file mode 100644 index d953750a7317..000000000000 --- a/components/console-backend-service/pkg/apis/ui/v1alpha1/types.go +++ /dev/null @@ -1,25 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BackendModule describes a module. -type BackendModule struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BackendModuleList is a list of BackendModule resources -type BackendModuleList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []BackendModule `json:"items"` -} diff --git a/components/console-backend-service/pkg/apis/ui/v1alpha1/zz_generated.deepcopy.go b/components/console-backend-service/pkg/apis/ui/v1alpha1/zz_generated.deepcopy.go deleted file mode 100644 index 29468fa61734..000000000000 --- a/components/console-backend-service/pkg/apis/ui/v1alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,68 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BackendModule) DeepCopyInto(out *BackendModule) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendModule. -func (in *BackendModule) DeepCopy() *BackendModule { - if in == nil { - return nil - } - out := new(BackendModule) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BackendModule) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BackendModuleList) DeepCopyInto(out *BackendModuleList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]BackendModule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendModuleList. -func (in *BackendModuleList) DeepCopy() *BackendModuleList { - if in == nil { - return nil - } - out := new(BackendModuleList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BackendModuleList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/clientset.go b/components/console-backend-service/pkg/client/clientset/versioned/clientset.go deleted file mode 100644 index 7b4c8ef4214e..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/clientset.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - uiv1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1" - discovery "k8s.io/client-go/discovery" - rest "k8s.io/client-go/rest" - flowcontrol "k8s.io/client-go/util/flowcontrol" -) - -type Interface interface { - Discovery() discovery.DiscoveryInterface - UiV1alpha1() uiv1alpha1.UiV1alpha1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - uiV1alpha1 *uiv1alpha1.UiV1alpha1Client -} - -// UiV1alpha1 retrieves the UiV1alpha1Client -func (c *Clientset) UiV1alpha1() uiv1alpha1.UiV1alpha1Interface { - return c.uiV1alpha1 -} - -// Discovery retrieves the DiscoveryClient -func (c *Clientset) Discovery() discovery.DiscoveryInterface { - if c == nil { - return nil - } - return c.DiscoveryClient -} - -// NewForConfig creates a new Clientset for the given config. -func NewForConfig(c *rest.Config) (*Clientset, error) { - configShallowCopy := *c - if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { - configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) - } - var cs Clientset - var err error - cs.uiV1alpha1, err = uiv1alpha1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } - - cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) - if err != nil { - return nil, err - } - return &cs, nil -} - -// NewForConfigOrDie creates a new Clientset for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *Clientset { - var cs Clientset - cs.uiV1alpha1 = uiv1alpha1.NewForConfigOrDie(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) - return &cs -} - -// New creates a new Clientset for the given RESTClient. -func New(c rest.Interface) *Clientset { - var cs Clientset - cs.uiV1alpha1 = uiv1alpha1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/doc.go b/components/console-backend-service/pkg/client/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/components/console-backend-service/pkg/client/clientset/versioned/fake/clientset_generated.go b/components/console-backend-service/pkg/client/clientset/versioned/fake/clientset_generated.go deleted file mode 100644 index cfcbcb2c7c63..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/fake/clientset_generated.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - clientset "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned" - uiv1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1" - fakeuiv1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/discovery" - fakediscovery "k8s.io/client-go/discovery/fake" - "k8s.io/client-go/testing" -) - -// NewSimpleClientset returns a clientset that will respond with the provided objects. -// It's backed by a very simple object tracker that processes creates, updates and deletions as-is, -// without applying any validations and/or defaults. It shouldn't be considered a replacement -// for a real clientset and is mostly useful in simple unit tests. -func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder()) - for _, obj := range objects { - if err := o.Add(obj); err != nil { - panic(err) - } - } - - cs := &Clientset{} - cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake} - cs.AddReactor("*", "*", testing.ObjectReaction(o)) - cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { - gvr := action.GetResource() - ns := action.GetNamespace() - watch, err := o.Watch(gvr, ns) - if err != nil { - return false, nil, err - } - return true, watch, nil - }) - - return cs -} - -// Clientset implements clientset.Interface. Meant to be embedded into a -// struct to get a default implementation. This makes faking out just the method -// you want to test easier. -type Clientset struct { - testing.Fake - discovery *fakediscovery.FakeDiscovery -} - -func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return c.discovery -} - -var _ clientset.Interface = &Clientset{} - -// UiV1alpha1 retrieves the UiV1alpha1Client -func (c *Clientset) UiV1alpha1() uiv1alpha1.UiV1alpha1Interface { - return &fakeuiv1alpha1.FakeUiV1alpha1{Fake: &c.Fake} -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/fake/doc.go b/components/console-backend-service/pkg/client/clientset/versioned/fake/doc.go deleted file mode 100644 index 3630ed1cd17d..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated fake clientset. -package fake diff --git a/components/console-backend-service/pkg/client/clientset/versioned/fake/register.go b/components/console-backend-service/pkg/client/clientset/versioned/fake/register.go deleted file mode 100644 index 1c29c4e2fb43..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/fake/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - uiv1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - schema "k8s.io/apimachinery/pkg/runtime/schema" - serializer "k8s.io/apimachinery/pkg/runtime/serializer" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" -) - -var scheme = runtime.NewScheme() -var codecs = serializer.NewCodecFactory(scheme) -var parameterCodec = runtime.NewParameterCodec(scheme) -var localSchemeBuilder = runtime.SchemeBuilder{ - uiv1alpha1.AddToScheme, -} - -// AddToScheme adds all types of this clientset into the given scheme. This allows composition -// of clientsets, like in: -// -// import ( -// "k8s.io/client-go/kubernetes" -// clientsetscheme "k8s.io/client-go/kubernetes/scheme" -// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" -// ) -// -// kclientset, _ := kubernetes.NewForConfig(c) -// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) -// -// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types -// correctly. -var AddToScheme = localSchemeBuilder.AddToScheme - -func init() { - v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) - utilruntime.Must(AddToScheme(scheme)) -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/scheme/doc.go b/components/console-backend-service/pkg/client/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/components/console-backend-service/pkg/client/clientset/versioned/scheme/register.go b/components/console-backend-service/pkg/client/clientset/versioned/scheme/register.go deleted file mode 100644 index 680c3ce54838..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - uiv1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - schema "k8s.io/apimachinery/pkg/runtime/schema" - serializer "k8s.io/apimachinery/pkg/runtime/serializer" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" -) - -var Scheme = runtime.NewScheme() -var Codecs = serializer.NewCodecFactory(Scheme) -var ParameterCodec = runtime.NewParameterCodec(Scheme) -var localSchemeBuilder = runtime.SchemeBuilder{ - uiv1alpha1.AddToScheme, -} - -// AddToScheme adds all types of this clientset into the given scheme. This allows composition -// of clientsets, like in: -// -// import ( -// "k8s.io/client-go/kubernetes" -// clientsetscheme "k8s.io/client-go/kubernetes/scheme" -// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" -// ) -// -// kclientset, _ := kubernetes.NewForConfig(c) -// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) -// -// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types -// correctly. -var AddToScheme = localSchemeBuilder.AddToScheme - -func init() { - v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) - utilruntime.Must(AddToScheme(Scheme)) -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/backendmodule.go b/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/backendmodule.go deleted file mode 100644 index 118bb388855f..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/backendmodule.go +++ /dev/null @@ -1,149 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - "time" - - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - scheme "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/scheme" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" -) - -// BackendModulesGetter has a method to return a BackendModuleInterface. -// A group's client should implement this interface. -type BackendModulesGetter interface { - BackendModules() BackendModuleInterface -} - -// BackendModuleInterface has methods to work with BackendModule resources. -type BackendModuleInterface interface { - Create(*v1alpha1.BackendModule) (*v1alpha1.BackendModule, error) - Update(*v1alpha1.BackendModule) (*v1alpha1.BackendModule, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1alpha1.BackendModule, error) - List(opts v1.ListOptions) (*v1alpha1.BackendModuleList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.BackendModule, err error) - BackendModuleExpansion -} - -// backendModules implements BackendModuleInterface -type backendModules struct { - client rest.Interface -} - -// newBackendModules returns a BackendModules -func newBackendModules(c *UiV1alpha1Client) *backendModules { - return &backendModules{ - client: c.RESTClient(), - } -} - -// Get takes name of the backendModule, and returns the corresponding backendModule object, and an error if there is any. -func (c *backendModules) Get(name string, options v1.GetOptions) (result *v1alpha1.BackendModule, err error) { - result = &v1alpha1.BackendModule{} - err = c.client.Get(). - Resource("backendmodules"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(context.Background()). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of BackendModules that match those selectors. -func (c *backendModules) List(opts v1.ListOptions) (result *v1alpha1.BackendModuleList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1alpha1.BackendModuleList{} - err = c.client.Get(). - Resource("backendmodules"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(context.Background()). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested backendModules. -func (c *backendModules) Watch(opts v1.ListOptions) (watch.Interface, error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - opts.Watch = true - return c.client.Get(). - Resource("backendmodules"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(context.Background()) -} - -// Create takes the representation of a backendModule and creates it. Returns the server's representation of the backendModule, and an error, if there is any. -func (c *backendModules) Create(backendModule *v1alpha1.BackendModule) (result *v1alpha1.BackendModule, err error) { - result = &v1alpha1.BackendModule{} - err = c.client.Post(). - Resource("backendmodules"). - Body(backendModule). - Do(context.Background()). - Into(result) - return -} - -// Update takes the representation of a backendModule and updates it. Returns the server's representation of the backendModule, and an error, if there is any. -func (c *backendModules) Update(backendModule *v1alpha1.BackendModule) (result *v1alpha1.BackendModule, err error) { - result = &v1alpha1.BackendModule{} - err = c.client.Put(). - Resource("backendmodules"). - Name(backendModule.Name). - Body(backendModule). - Do(context.Background()). - Into(result) - return -} - -// Delete takes name of the backendModule and deletes it. Returns an error if one occurs. -func (c *backendModules) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("backendmodules"). - Name(name). - Body(options). - Do(context.Background()). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *backendModules) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - var timeout time.Duration - if listOptions.TimeoutSeconds != nil { - timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("backendmodules"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Timeout(timeout). - Body(options). - Do(context.Background()). - Error() -} - -// Patch applies the patch and returns the patched backendModule. -func (c *backendModules) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.BackendModule, err error) { - result = &v1alpha1.BackendModule{} - err = c.client.Patch(pt). - Resource("backendmodules"). - SubResource(subresources...). - Name(name). - Body(data). - Do(context.Background()). - Into(result) - return -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/doc.go b/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/doc.go deleted file mode 100644 index 93a7ca4e0e2b..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1alpha1 diff --git a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/doc.go b/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/doc.go deleted file mode 100644 index 2b5ba4c8e442..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// Package fake has the automatically generated clients. -package fake diff --git a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/fake_backendmodule.go b/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/fake_backendmodule.go deleted file mode 100644 index 6909ca0d6ebd..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/fake_backendmodule.go +++ /dev/null @@ -1,104 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeBackendModules implements BackendModuleInterface -type FakeBackendModules struct { - Fake *FakeUiV1alpha1 -} - -var backendmodulesResource = schema.GroupVersionResource{Group: "ui.kyma-project.io", Version: "v1alpha1", Resource: "backendmodules"} - -var backendmodulesKind = schema.GroupVersionKind{Group: "ui.kyma-project.io", Version: "v1alpha1", Kind: "BackendModule"} - -// Get takes name of the backendModule, and returns the corresponding backendModule object, and an error if there is any. -func (c *FakeBackendModules) Get(name string, options v1.GetOptions) (result *v1alpha1.BackendModule, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(backendmodulesResource, name), &v1alpha1.BackendModule{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.BackendModule), err -} - -// List takes label and field selectors, and returns the list of BackendModules that match those selectors. -func (c *FakeBackendModules) List(opts v1.ListOptions) (result *v1alpha1.BackendModuleList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(backendmodulesResource, backendmodulesKind, opts), &v1alpha1.BackendModuleList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.BackendModuleList{ListMeta: obj.(*v1alpha1.BackendModuleList).ListMeta} - for _, item := range obj.(*v1alpha1.BackendModuleList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested backendModules. -func (c *FakeBackendModules) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(backendmodulesResource, opts)) -} - -// Create takes the representation of a backendModule and creates it. Returns the server's representation of the backendModule, and an error, if there is any. -func (c *FakeBackendModules) Create(backendModule *v1alpha1.BackendModule) (result *v1alpha1.BackendModule, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(backendmodulesResource, backendModule), &v1alpha1.BackendModule{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.BackendModule), err -} - -// Update takes the representation of a backendModule and updates it. Returns the server's representation of the backendModule, and an error, if there is any. -func (c *FakeBackendModules) Update(backendModule *v1alpha1.BackendModule) (result *v1alpha1.BackendModule, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(backendmodulesResource, backendModule), &v1alpha1.BackendModule{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.BackendModule), err -} - -// Delete takes name of the backendModule and deletes it. Returns an error if one occurs. -func (c *FakeBackendModules) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(backendmodulesResource, name), &v1alpha1.BackendModule{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeBackendModules) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(backendmodulesResource, listOptions) - - _, err := c.Fake.Invokes(action, &v1alpha1.BackendModuleList{}) - return err -} - -// Patch applies the patch and returns the patched backendModule. -func (c *FakeBackendModules) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.BackendModule, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(backendmodulesResource, name, pt, data, subresources...), &v1alpha1.BackendModule{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.BackendModule), err -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/fake_ui_client.go b/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/fake_ui_client.go deleted file mode 100644 index dc1943feaaab..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake/fake_ui_client.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeUiV1alpha1 struct { - *testing.Fake -} - -func (c *FakeUiV1alpha1) BackendModules() v1alpha1.BackendModuleInterface { - return &FakeBackendModules{c} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeUiV1alpha1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/generated_expansion.go b/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/generated_expansion.go deleted file mode 100644 index 83a2bdde88a8..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/generated_expansion.go +++ /dev/null @@ -1,5 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -type BackendModuleExpansion interface{} diff --git a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/ui_client.go b/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/ui_client.go deleted file mode 100644 index a8750759ea84..000000000000 --- a/components/console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/ui_client.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned/scheme" - serializer "k8s.io/apimachinery/pkg/runtime/serializer" - rest "k8s.io/client-go/rest" -) - -type UiV1alpha1Interface interface { - RESTClient() rest.Interface - BackendModulesGetter -} - -// UiV1alpha1Client is used to interact with features provided by the ui.kyma-project.io group. -type UiV1alpha1Client struct { - restClient rest.Interface -} - -func (c *UiV1alpha1Client) BackendModules() BackendModuleInterface { - return newBackendModules(c) -} - -// NewForConfig creates a new UiV1alpha1Client for the given config. -func NewForConfig(c *rest.Config) (*UiV1alpha1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &UiV1alpha1Client{client}, nil -} - -// NewForConfigOrDie creates a new UiV1alpha1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *UiV1alpha1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new UiV1alpha1Client for the given RESTClient. -func New(c rest.Interface) *UiV1alpha1Client { - return &UiV1alpha1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1alpha1.SchemeGroupVersion - config.GroupVersion = &gv - config.APIPath = "/apis" - config.NegotiatedSerializer = serializer.WithoutConversionCodecFactory{CodecFactory: scheme.Codecs} - - if config.UserAgent == "" { - config.UserAgent = rest.DefaultKubernetesUserAgent() - } - - return nil -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *UiV1alpha1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/components/console-backend-service/pkg/client/informers/externalversions/factory.go b/components/console-backend-service/pkg/client/informers/externalversions/factory.go deleted file mode 100644 index 66ab557007b3..000000000000 --- a/components/console-backend-service/pkg/client/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned" - internalinterfaces "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions/internalinterfaces" - ui "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions/ui" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - schema "k8s.io/apimachinery/pkg/runtime/schema" - cache "k8s.io/client-go/tools/cache" -) - -// SharedInformerOption defines the functional option type for SharedInformerFactory. -type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory - -type sharedInformerFactory struct { - client versioned.Interface - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc - lock sync.Mutex - defaultResync time.Duration - customResync map[reflect.Type]time.Duration - - informers map[reflect.Type]cache.SharedIndexInformer - // startedInformers is used for tracking which informers have been started. - // This allows Start() to be called multiple times safely. - startedInformers map[reflect.Type]bool -} - -// WithCustomResyncConfig sets a custom resync period for the specified informer types. -func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { - return func(factory *sharedInformerFactory) *sharedInformerFactory { - for k, v := range resyncConfig { - factory.customResync[reflect.TypeOf(k)] = v - } - return factory - } -} - -// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. -func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { - return func(factory *sharedInformerFactory) *sharedInformerFactory { - factory.tweakListOptions = tweakListOptions - return factory - } -} - -// WithNamespace limits the SharedInformerFactory to the specified namespace. -func WithNamespace(namespace string) SharedInformerOption { - return func(factory *sharedInformerFactory) *sharedInformerFactory { - factory.namespace = namespace - return factory - } -} - -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. -func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewSharedInformerFactoryWithOptions(client, defaultResync) -} - -// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. -// Listers obtained via this SharedInformerFactory will be subject to the same filters -// as specified here. -// Deprecated: Please use NewSharedInformerFactoryWithOptions instead -func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { - return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) -} - -// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. -func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { - factory := &sharedInformerFactory{ - client: client, - namespace: v1.NamespaceAll, - defaultResync: defaultResync, - informers: make(map[reflect.Type]cache.SharedIndexInformer), - startedInformers: make(map[reflect.Type]bool), - customResync: make(map[reflect.Type]time.Duration), - } - - // Apply all options - for _, opt := range options { - factory = opt(factory) - } - - return factory -} - -// Start initializes all requested informers. -func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { - f.lock.Lock() - defer f.lock.Unlock() - - for informerType, informer := range f.informers { - if !f.startedInformers[informerType] { - go informer.Run(stopCh) - f.startedInformers[informerType] = true - } - } -} - -// WaitForCacheSync waits for all started informers' cache were synced. -func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { - informers := func() map[reflect.Type]cache.SharedIndexInformer { - f.lock.Lock() - defer f.lock.Unlock() - - informers := map[reflect.Type]cache.SharedIndexInformer{} - for informerType, informer := range f.informers { - if f.startedInformers[informerType] { - informers[informerType] = informer - } - } - return informers - }() - - res := map[reflect.Type]bool{} - for informType, informer := range informers { - res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) - } - return res -} - -// InternalInformerFor returns the SharedIndexInformer for obj using an internal -// client. -func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer { - f.lock.Lock() - defer f.lock.Unlock() - - informerType := reflect.TypeOf(obj) - informer, exists := f.informers[informerType] - if exists { - return informer - } - - resyncPeriod, exists := f.customResync[informerType] - if !exists { - resyncPeriod = f.defaultResync - } - - informer = newFunc(f.client, resyncPeriod) - f.informers[informerType] = informer - - return informer -} - -// SharedInformerFactory provides shared informers for resources in all known -// API group versions. -type SharedInformerFactory interface { - internalinterfaces.SharedInformerFactory - ForResource(resource schema.GroupVersionResource) (GenericInformer, error) - WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool - - Ui() ui.Interface -} - -func (f *sharedInformerFactory) Ui() ui.Interface { - return ui.New(f, f.namespace, f.tweakListOptions) -} diff --git a/components/console-backend-service/pkg/client/informers/externalversions/generic.go b/components/console-backend-service/pkg/client/informers/externalversions/generic.go deleted file mode 100644 index 49208fe40f05..000000000000 --- a/components/console-backend-service/pkg/client/informers/externalversions/generic.go +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - cache "k8s.io/client-go/tools/cache" -) - -// GenericInformer is type of SharedIndexInformer which will locate and delegate to other -// sharedInformers based on type -type GenericInformer interface { - Informer() cache.SharedIndexInformer - Lister() cache.GenericLister -} - -type genericInformer struct { - informer cache.SharedIndexInformer - resource schema.GroupResource -} - -// Informer returns the SharedIndexInformer. -func (f *genericInformer) Informer() cache.SharedIndexInformer { - return f.informer -} - -// Lister returns the GenericLister. -func (f *genericInformer) Lister() cache.GenericLister { - return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) -} - -// ForResource gives generic access to a shared informer of the matching type -// TODO extend this to unknown resources with a client pool -func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { - switch resource { - // Group=ui.kyma-project.io, Version=v1alpha1 - case v1alpha1.SchemeGroupVersion.WithResource("backendmodules"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Ui().V1alpha1().BackendModules().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/components/console-backend-service/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/components/console-backend-service/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 6197b16095c0..000000000000 --- a/components/console-backend-service/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer - -// SharedInformerFactory a small interface to allow for adding an informer without an import cycle -type SharedInformerFactory interface { - Start(stopCh <-chan struct{}) - InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer -} - -// TweakListOptionsFunc is a function that transforms a v1.ListOptions. -type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/components/console-backend-service/pkg/client/informers/externalversions/ui/interface.go b/components/console-backend-service/pkg/client/informers/externalversions/ui/interface.go deleted file mode 100644 index 44127ac95d72..000000000000 --- a/components/console-backend-service/pkg/client/informers/externalversions/ui/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package ui - -import ( - internalinterfaces "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions/internalinterfaces" - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions/ui/v1alpha1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1alpha1 provides access to shared informers for resources in V1alpha1. - V1alpha1() v1alpha1.Interface -} - -type group struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// V1alpha1 returns a new v1alpha1.Interface. -func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/components/console-backend-service/pkg/client/informers/externalversions/ui/v1alpha1/backendmodule.go b/components/console-backend-service/pkg/client/informers/externalversions/ui/v1alpha1/backendmodule.go deleted file mode 100644 index 6994f762ab94..000000000000 --- a/components/console-backend-service/pkg/client/informers/externalversions/ui/v1alpha1/backendmodule.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - time "time" - - uiv1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - versioned "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/clientset/versioned" - internalinterfaces "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions/internalinterfaces" - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/listers/ui/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" -) - -// BackendModuleInformer provides access to a shared informer and lister for -// BackendModules. -type BackendModuleInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1alpha1.BackendModuleLister -} - -type backendModuleInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewBackendModuleInformer constructs a new informer for BackendModule type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewBackendModuleInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredBackendModuleInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredBackendModuleInformer constructs a new informer for BackendModule type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredBackendModuleInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UiV1alpha1().BackendModules().List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UiV1alpha1().BackendModules().Watch(options) - }, - }, - &uiv1alpha1.BackendModule{}, - resyncPeriod, - indexers, - ) -} - -func (f *backendModuleInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredBackendModuleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *backendModuleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&uiv1alpha1.BackendModule{}, f.defaultInformer) -} - -func (f *backendModuleInformer) Lister() v1alpha1.BackendModuleLister { - return v1alpha1.NewBackendModuleLister(f.Informer().GetIndexer()) -} diff --git a/components/console-backend-service/pkg/client/informers/externalversions/ui/v1alpha1/interface.go b/components/console-backend-service/pkg/client/informers/externalversions/ui/v1alpha1/interface.go deleted file mode 100644 index b0f63238fed2..000000000000 --- a/components/console-backend-service/pkg/client/informers/externalversions/ui/v1alpha1/interface.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - internalinterfaces "github.com/kyma-project/kyma/components/console-backend-service/pkg/client/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // BackendModules returns a BackendModuleInformer. - BackendModules() BackendModuleInformer -} - -type version struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// BackendModules returns a BackendModuleInformer. -func (v *version) BackendModules() BackendModuleInformer { - return &backendModuleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/components/console-backend-service/pkg/client/listers/ui/v1alpha1/backendmodule.go b/components/console-backend-service/pkg/client/listers/ui/v1alpha1/backendmodule.go deleted file mode 100644 index fb7f3b525b5a..000000000000 --- a/components/console-backend-service/pkg/client/listers/ui/v1alpha1/backendmodule.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/kyma-project/kyma/components/console-backend-service/pkg/apis/ui/v1alpha1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// BackendModuleLister helps list BackendModules. -type BackendModuleLister interface { - // List lists all BackendModules in the indexer. - List(selector labels.Selector) (ret []*v1alpha1.BackendModule, err error) - // Get retrieves the BackendModule from the index for a given name. - Get(name string) (*v1alpha1.BackendModule, error) - BackendModuleListerExpansion -} - -// backendModuleLister implements the BackendModuleLister interface. -type backendModuleLister struct { - indexer cache.Indexer -} - -// NewBackendModuleLister returns a new BackendModuleLister. -func NewBackendModuleLister(indexer cache.Indexer) BackendModuleLister { - return &backendModuleLister{indexer: indexer} -} - -// List lists all BackendModules in the indexer. -func (s *backendModuleLister) List(selector labels.Selector) (ret []*v1alpha1.BackendModule, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.BackendModule)) - }) - return ret, err -} - -// Get retrieves the BackendModule from the index for a given name. -func (s *backendModuleLister) Get(name string) (*v1alpha1.BackendModule, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1alpha1.Resource("backendmodule"), name) - } - return obj.(*v1alpha1.BackendModule), nil -} diff --git a/components/console-backend-service/pkg/client/listers/ui/v1alpha1/expansion_generated.go b/components/console-backend-service/pkg/client/listers/ui/v1alpha1/expansion_generated.go deleted file mode 100644 index f02e88e1fd57..000000000000 --- a/components/console-backend-service/pkg/client/listers/ui/v1alpha1/expansion_generated.go +++ /dev/null @@ -1,7 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -// BackendModuleListerExpansion allows custom methods to be added to -// BackendModuleLister. -type BackendModuleListerExpansion interface{} diff --git a/components/console-backend-service/pkg/dynamic/doc.go b/components/console-backend-service/pkg/dynamic/doc.go deleted file mode 100644 index 59731a1165c8..000000000000 --- a/components/console-backend-service/pkg/dynamic/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -package dynamic - -// TODO: Remove this package after upgrade whole Kyma to Kubernetes 1.13.0 diff --git a/components/console-backend-service/pkg/dynamic/dynamicinformer/informer.go b/components/console-backend-service/pkg/dynamic/dynamicinformer/informer.go deleted file mode 100644 index 38264a8dcad2..000000000000 --- a/components/console-backend-service/pkg/dynamic/dynamicinformer/informer.go +++ /dev/null @@ -1,156 +0,0 @@ -/* -Copyright 2018 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 dynamicinformer - -import ( - "context" - "sync" - "time" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/dynamic/dynamiclister" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/informers" - "k8s.io/client-go/tools/cache" -) - -// NewDynamicSharedInformerFactory constructs a new instance of dynamicSharedInformerFactory for all namespaces. -func NewDynamicSharedInformerFactory(client dynamic.Interface, defaultResync time.Duration) DynamicSharedInformerFactory { - return NewFilteredDynamicSharedInformerFactory(client, defaultResync, metav1.NamespaceAll, nil) -} - -// NewFilteredDynamicSharedInformerFactory constructs a new instance of dynamicSharedInformerFactory. -// Listers obtained via this factory will be subject to the same filters as specified here. -func NewFilteredDynamicSharedInformerFactory(client dynamic.Interface, defaultResync time.Duration, namespace string, tweakListOptions TweakListOptionsFunc) DynamicSharedInformerFactory { - return &dynamicSharedInformerFactory{ - client: client, - defaultResync: defaultResync, - namespace: metav1.NamespaceAll, - informers: map[schema.GroupVersionResource]informers.GenericInformer{}, - startedInformers: make(map[schema.GroupVersionResource]bool), - } -} - -type dynamicSharedInformerFactory struct { - client dynamic.Interface - defaultResync time.Duration - namespace string - - lock sync.Mutex - informers map[schema.GroupVersionResource]informers.GenericInformer - // startedInformers is used for tracking which informers have been started. - // This allows Start() to be called multiple times safely. - startedInformers map[schema.GroupVersionResource]bool -} - -var _ DynamicSharedInformerFactory = &dynamicSharedInformerFactory{} - -func (f *dynamicSharedInformerFactory) ForResource(gvr schema.GroupVersionResource) informers.GenericInformer { - f.lock.Lock() - defer f.lock.Unlock() - - key := gvr - informer, exists := f.informers[key] - if exists { - return informer - } - - informer = NewFilteredDynamicInformer(f.client, gvr, f.namespace, f.defaultResync, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, nil) - f.informers[key] = informer - - return informer -} - -// Start initializes all requested informers. -func (f *dynamicSharedInformerFactory) Start(stopCh <-chan struct{}) { - f.lock.Lock() - defer f.lock.Unlock() - - for informerType, informer := range f.informers { - if !f.startedInformers[informerType] { - go informer.Informer().Run(stopCh) - f.startedInformers[informerType] = true - } - } -} - -// WaitForCacheSync waits for all started informers' cache were synced. -func (f *dynamicSharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool { - informers := func() map[schema.GroupVersionResource]cache.SharedIndexInformer { - f.lock.Lock() - defer f.lock.Unlock() - - informers := map[schema.GroupVersionResource]cache.SharedIndexInformer{} - for informerType, informer := range f.informers { - if f.startedInformers[informerType] { - informers[informerType] = informer.Informer() - } - } - return informers - }() - - res := map[schema.GroupVersionResource]bool{} - for informType, informer := range informers { - res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) - } - return res -} - -// NewFilteredDynamicInformer constructs a new informer for a dynamic type. -func NewFilteredDynamicInformer(client dynamic.Interface, gvr schema.GroupVersionResource, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions TweakListOptionsFunc) informers.GenericInformer { - return &dynamicInformer{ - gvr: gvr, - informer: cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.Resource(gvr).Namespace(namespace).List(context.Background(),options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.Resource(gvr).Namespace(namespace).Watch(context.Background(), options) - }, - }, - &unstructured.Unstructured{}, - resyncPeriod, - indexers, - ), - } -} - -type dynamicInformer struct { - informer cache.SharedIndexInformer - gvr schema.GroupVersionResource -} - -var _ informers.GenericInformer = &dynamicInformer{} - -func (d *dynamicInformer) Informer() cache.SharedIndexInformer { - return d.informer -} - -func (d *dynamicInformer) Lister() cache.GenericLister { - return dynamiclister.NewRuntimeObjectShim(dynamiclister.New(d.informer.GetIndexer(), d.gvr)) -} diff --git a/components/console-backend-service/pkg/dynamic/dynamicinformer/interface.go b/components/console-backend-service/pkg/dynamic/dynamicinformer/interface.go deleted file mode 100644 index c27fc1bfd602..000000000000 --- a/components/console-backend-service/pkg/dynamic/dynamicinformer/interface.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2018 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 dynamicinformer - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/informers" -) - -// DynamicSharedInformerFactory provides access to a shared informer and lister for dynamic client -type DynamicSharedInformerFactory interface { - Start(stopCh <-chan struct{}) - ForResource(gvr schema.GroupVersionResource) informers.GenericInformer - WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool -} - -// TweakListOptionsFunc defines the signature of a helper function -// that wants to provide more listing options to API -type TweakListOptionsFunc func(*metav1.ListOptions) diff --git a/components/console-backend-service/pkg/dynamic/dynamiclister/interface.go b/components/console-backend-service/pkg/dynamic/dynamiclister/interface.go deleted file mode 100644 index c39cbee925b6..000000000000 --- a/components/console-backend-service/pkg/dynamic/dynamiclister/interface.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2018 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 dynamiclister - -import ( - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/labels" -) - -// Lister helps list resources. -type Lister interface { - // List lists all resources in the indexer. - List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) - // Get retrieves a resource from the indexer with the given name - Get(name string) (*unstructured.Unstructured, error) - // Namespace returns an object that can list and get resources in a given namespace. - Namespace(namespace string) NamespaceLister -} - -// NamespaceLister helps list and get resources. -type NamespaceLister interface { - // List lists all resources in the indexer for a given namespace. - List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) - // Get retrieves a resource from the indexer for a given namespace and name. - Get(name string) (*unstructured.Unstructured, error) -} diff --git a/components/console-backend-service/pkg/dynamic/dynamiclister/lister.go b/components/console-backend-service/pkg/dynamic/dynamiclister/lister.go deleted file mode 100644 index a50fc471e900..000000000000 --- a/components/console-backend-service/pkg/dynamic/dynamiclister/lister.go +++ /dev/null @@ -1,91 +0,0 @@ -/* -Copyright 2018 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 dynamiclister - -import ( - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" -) - -var _ Lister = &dynamicLister{} -var _ NamespaceLister = &dynamicNamespaceLister{} - -// dynamicLister implements the Lister interface. -type dynamicLister struct { - indexer cache.Indexer - gvr schema.GroupVersionResource -} - -// New returns a new Lister. -func New(indexer cache.Indexer, gvr schema.GroupVersionResource) Lister { - return &dynamicLister{indexer: indexer, gvr: gvr} -} - -// List lists all resources in the indexer. -func (l *dynamicLister) List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) { - err = cache.ListAll(l.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*unstructured.Unstructured)) - }) - return ret, err -} - -// Get retrieves a resource from the indexer with the given name -func (l *dynamicLister) Get(name string) (*unstructured.Unstructured, error) { - obj, exists, err := l.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(l.gvr.GroupResource(), name) - } - return obj.(*unstructured.Unstructured), nil -} - -// Namespace returns an object that can list and get resources from a given namespace. -func (l *dynamicLister) Namespace(namespace string) NamespaceLister { - return &dynamicNamespaceLister{indexer: l.indexer, namespace: namespace, gvr: l.gvr} -} - -// dynamicNamespaceLister implements the NamespaceLister interface. -type dynamicNamespaceLister struct { - indexer cache.Indexer - namespace string - gvr schema.GroupVersionResource -} - -// List lists all resources in the indexer for a given namespace. -func (l *dynamicNamespaceLister) List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) { - err = cache.ListAllByNamespace(l.indexer, l.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*unstructured.Unstructured)) - }) - return ret, err -} - -// Get retrieves a resource from the indexer for a given namespace and name. -func (l *dynamicNamespaceLister) Get(name string) (*unstructured.Unstructured, error) { - obj, exists, err := l.indexer.GetByKey(l.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(l.gvr.GroupResource(), name) - } - return obj.(*unstructured.Unstructured), nil -} diff --git a/components/console-backend-service/pkg/dynamic/dynamiclister/shim.go b/components/console-backend-service/pkg/dynamic/dynamiclister/shim.go deleted file mode 100644 index 92a5f54af972..000000000000 --- a/components/console-backend-service/pkg/dynamic/dynamiclister/shim.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2018 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 dynamiclister - -import ( - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -var _ cache.GenericLister = &dynamicListerShim{} -var _ cache.GenericNamespaceLister = &dynamicNamespaceListerShim{} - -// dynamicListerShim implements the cache.GenericLister interface. -type dynamicListerShim struct { - lister Lister -} - -// NewRuntimeObjectShim returns a new shim for Lister. -// It wraps Lister so that it implements cache.GenericLister interface -func NewRuntimeObjectShim(lister Lister) cache.GenericLister { - return &dynamicListerShim{lister: lister} -} - -// List will return all objects across namespaces -func (s *dynamicListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) { - objs, err := s.lister.List(selector) - if err != nil { - return nil, err - } - - ret = make([]runtime.Object, len(objs)) - for index, obj := range objs { - ret[index] = obj - } - return ret, err -} - -// Get will attempt to retrieve assuming that name==key -func (s *dynamicListerShim) Get(name string) (runtime.Object, error) { - return s.lister.Get(name) -} - -func (s *dynamicListerShim) ByNamespace(namespace string) cache.GenericNamespaceLister { - return &dynamicNamespaceListerShim{ - namespaceLister: s.lister.Namespace(namespace), - } -} - -// dynamicNamespaceListerShim implements the NamespaceLister interface. -// It wraps NamespaceLister so that it implements cache.GenericNamespaceLister interface -type dynamicNamespaceListerShim struct { - namespaceLister NamespaceLister -} - -// List will return all objects in this namespace -func (ns *dynamicNamespaceListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) { - objs, err := ns.namespaceLister.List(selector) - if err != nil { - return nil, err - } - - ret = make([]runtime.Object, len(objs)) - for index, obj := range objs { - ret[index] = obj - } - return ret, err -} - -// Get will attempt to retrieve by namespace and name -func (ns *dynamicNamespaceListerShim) Get(name string) (runtime.Object, error) { - return ns.namespaceLister.Get(name) -} diff --git a/components/console-backend-service/pkg/executor/executor.go b/components/console-backend-service/pkg/executor/executor.go deleted file mode 100644 index 802d301f5a3c..000000000000 --- a/components/console-backend-service/pkg/executor/executor.go +++ /dev/null @@ -1,34 +0,0 @@ -package executor - -import ( - "time" -) - -type periodic struct { - refreshPeriod time.Duration - executionFunc func(stopCh <-chan struct{}) -} - -// NewPeriodic creates a periodic executor, which calls given executionFunc periodically. -func NewPeriodic(period time.Duration, executionFunc func(stopCh <-chan struct{})) *periodic { - return &periodic{ - refreshPeriod: period, - executionFunc: executionFunc, - } -} - -// Run starts the periodic work -func (e *periodic) Run(stopCh <-chan struct{}) { - go func() { - ticker := time.NewTicker(e.refreshPeriod) - for { - e.executionFunc(stopCh) - select { - case <-stopCh: - ticker.Stop() - return - case <-ticker.C: - } - } - }() -} diff --git a/components/console-backend-service/pkg/executor/executor_test.go b/components/console-backend-service/pkg/executor/executor_test.go deleted file mode 100644 index 61cc1aa64964..000000000000 --- a/components/console-backend-service/pkg/executor/executor_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package executor - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestPeriodic(t *testing.T) { - /* - This test is very simple - it has hardcoded time.Sleep. Running it at machine with high load may cause the test fail. - The best way is to modify executor_test (and adapt executor) to not rely on time.Sleep. - */ - - // GIVEN - called := 0 - worker := func(stopCh <-chan struct{}) { - called = called + 1 - } - stopCh := make(chan struct{}) - svc := NewPeriodic(50*time.Millisecond, worker) - - // WHEN - svc.Run(stopCh) - time.Sleep(120 * time.Millisecond) - close(stopCh) - - // THEN - // expecting 3 calls, first at after 0ms, second - after 10ms, third after 20ms - assert.Equal(t, 3, called) -} diff --git a/components/console-backend-service/pkg/iosafety/iosafety.go b/components/console-backend-service/pkg/iosafety/iosafety.go deleted file mode 100644 index fa2acfe017bb..000000000000 --- a/components/console-backend-service/pkg/iosafety/iosafety.go +++ /dev/null @@ -1,16 +0,0 @@ -package iosafety - -import ( - "io" - "io/ioutil" -) - -// DrainReader reads and discards the remaining part in reader (for example response body data) -// In case of HTTP this ensured that the http connection could be reused for another request if the keepalive http connection behavior is enabled. -func DrainReader(reader io.Reader) error { - if reader == nil { - return nil - } - _, drainError := io.Copy(ioutil.Discard, io.LimitReader(reader, 4096)) - return drainError -} diff --git a/components/console-backend-service/pkg/origin/origin.go b/components/console-backend-service/pkg/origin/origin.go deleted file mode 100644 index 454a3e55e23c..000000000000 --- a/components/console-backend-service/pkg/origin/origin.go +++ /dev/null @@ -1,46 +0,0 @@ -package origin - -import ( - "net/http" - "strings" -) - -func CheckFn(allowedOrigins []string) func(r *http.Request) bool { - return func(r *http.Request) bool { - if r == nil { - return false - } - - requestOrigin := r.Header.Get("Origin") - if requestOrigin == "" { - return true - } - - for _, allowed := range allowedOrigins { - if match(requestOrigin, allowed) { - return true - } - } - - return false - } -} - -func match(s, pattern string) bool { - left, right := split(pattern) - return strings.HasPrefix(s, left) && strings.HasSuffix(s, right) -} - -func split(pattern string) (string, string) { - spliced := strings.SplitN(pattern, "*", 2) - - if len(spliced) == 2 { - return spliced[0], spliced[1] - } - - if strings.HasPrefix(pattern, "*") { - return "", spliced[0] - } - - return spliced[0], "" -} diff --git a/components/console-backend-service/pkg/origin/origin_test.go b/components/console-backend-service/pkg/origin/origin_test.go deleted file mode 100644 index 31cdc90f5f5f..000000000000 --- a/components/console-backend-service/pkg/origin/origin_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package origin_test - -import ( - "fmt" - "net/http" - "testing" - - "github.com/stretchr/testify/require" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/origin" - "github.com/stretchr/testify/assert" -) - -func TestCheckFn(t *testing.T) { - var testCases = []struct { - allowedOrigins []string - origin string - expected bool - }{ - {[]string{"foo.bar.local", "test.foo.com", "*.test.com"}, "foo.bar.local", true}, - {[]string{"foo.bar.local", "test.foo.com", "*.test.com"}, "bar.bar.local", false}, - {[]string{"foo.bar.local", "https://*.test.com"}, "https://sample.test.com", true}, - {[]string{"foo.bar.local", "https://*.test.com"}, "http://sample.test.com", false}, - {[]string{"foo.bar.local", "*.test.com"}, "sample.test.com", true}, - {[]string{"*"}, "https://sample.test.com", true}, - } - - for testCaseNo, testCase := range testCases { - t.Run(fmt.Sprintf("TestCase%d", testCaseNo), func(t *testing.T) { - check := origin.CheckFn(testCase.allowedOrigins) - r, err := http.NewRequest("GET", "url", nil) - require.NoError(t, err) - r.Header.Add("Origin", testCase.origin) - - result := check(r) - - assert.Equal(t, testCase.expected, result) - }) - } -} diff --git a/components/console-backend-service/pkg/resource/automock/listener.go b/components/console-backend-service/pkg/resource/automock/listener.go deleted file mode 100644 index 5c07a93dec66..000000000000 --- a/components/console-backend-service/pkg/resource/automock/listener.go +++ /dev/null @@ -1,25 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -package automock - -import mock "github.com/stretchr/testify/mock" - -// Listener is an autogenerated mock type for the Listener type -type Listener struct { - mock.Mock -} - -// OnAdd provides a mock function with given fields: object -func (_m *Listener) OnAdd(object interface{}) { - _m.Called(object) -} - -// OnDelete provides a mock function with given fields: object -func (_m *Listener) OnDelete(object interface{}) { - _m.Called(object) -} - -// OnUpdate provides a mock function with given fields: newObject, oldObject -func (_m *Listener) OnUpdate(newObject interface{}, oldObject interface{}) { - _m.Called(newObject, oldObject) -} diff --git a/components/console-backend-service/pkg/resource/notifier.go b/components/console-backend-service/pkg/resource/notifier.go deleted file mode 100644 index 3e2eb88b07bb..000000000000 --- a/components/console-backend-service/pkg/resource/notifier.go +++ /dev/null @@ -1,86 +0,0 @@ -package resource - -import ( - "sync" -) - -//go:generate mockery -name=Listener -output=automock -outpkg=automock -case=underscore -type Listener interface { - OnAdd(object interface{}) - OnUpdate(newObject, oldObject interface{}) - OnDelete(object interface{}) -} - -type Notifier interface { - OnAdd(object interface{}) - OnUpdate(newObject, oldObject interface{}) - OnDelete(object interface{}) - AddListener(observer Listener) - DeleteListener(observer Listener) -} - -type notifier struct { - sync.RWMutex - // TODO: change to map for better performance - listeners []Listener -} - -func NewNotifier() Notifier { - return new(notifier) -} - -func (n *notifier) AddListener(listener Listener) { - if listener == nil { - return - } - - n.Lock() - defer n.Unlock() - - n.listeners = append(n.listeners, listener) -} - -func (n *notifier) DeleteListener(listener Listener) { - if listener == nil { - return - } - - n.Lock() - defer n.Unlock() - - filtered := n.listeners[:0] - for _, l := range n.listeners { - if l != listener { - filtered = append(filtered, l) - } - } - - n.listeners = filtered -} - -func (n *notifier) OnAdd(obj interface{}) { - n.RLock() - defer n.RUnlock() - - for _, listener := range n.listeners { - listener.OnAdd(obj) - } -} - -func (n *notifier) OnUpdate(oldObj, newObj interface{}) { - n.RLock() - defer n.RUnlock() - - for _, listener := range n.listeners { - listener.OnUpdate(oldObj, newObj) - } -} - -func (n *notifier) OnDelete(obj interface{}) { - n.RLock() - defer n.RUnlock() - - for _, listener := range n.listeners { - listener.OnDelete(obj) - } -} diff --git a/components/console-backend-service/pkg/resource/notifier_test.go b/components/console-backend-service/pkg/resource/notifier_test.go deleted file mode 100644 index c63daca7f91f..000000000000 --- a/components/console-backend-service/pkg/resource/notifier_test.go +++ /dev/null @@ -1,287 +0,0 @@ -package resource_test - -import ( - "testing" - - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource" - "github.com/kyma-project/kyma/components/console-backend-service/pkg/resource/automock" -) - -func TestNotifier_AddListener(t *testing.T) { - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - }) - - t.Run("Nil listener", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.AddListener(nil) - }) -} - -func TestNotifier_DeleteListener(t *testing.T) { - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.DeleteListener(listener) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.DeleteListener(listener) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerA) - }) - - t.Run("Not existing", func(t *testing.T) { - listener := new(automock.Listener) - notifier := resource.NewNotifier() - - notifier.DeleteListener(listener) - }) - - t.Run("Nil listener", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.DeleteListener(nil) - }) -} - -func TestNotifier_OnAdd(t *testing.T) { - expected := new(struct{}) - - t.Run("No listeners", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.OnAdd(expected) - }) - - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnAdd", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.OnAdd(expected) - - listener.AssertCalled(t, "OnAdd", expected) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnAdd", expected).Twice() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.OnAdd(expected) - - listener.AssertNumberOfCalls(t, "OnAdd", 2) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnAdd", expected).Once() - listenerB.On("OnAdd", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.OnAdd(expected) - - listenerA.AssertCalled(t, "OnAdd", expected) - listenerB.AssertCalled(t, "OnAdd", expected) - }) - - t.Run("Deleted listener", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnAdd", expected).Once() - listenerB.On("OnAdd", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerB) - notifier.OnAdd(expected) - - listenerA.AssertCalled(t, "OnAdd", expected) - listenerB.AssertNotCalled(t, "OnAdd", expected) - }) -} - -func TestNotifier_OnDelete(t *testing.T) { - expected := new(struct{}) - - t.Run("No listeners", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.OnDelete(expected) - }) - - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnDelete", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.OnDelete(expected) - - listener.AssertCalled(t, "OnDelete", expected) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnDelete", expected).Twice() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.OnDelete(expected) - - listener.AssertNumberOfCalls(t, "OnDelete", 2) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnDelete", expected).Once() - listenerB.On("OnDelete", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.OnDelete(expected) - - listenerA.AssertCalled(t, "OnDelete", expected) - listenerB.AssertCalled(t, "OnDelete", expected) - }) - - t.Run("Deleted listener", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnDelete", expected).Once() - listenerB.On("OnDelete", expected).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerB) - notifier.OnDelete(expected) - - listenerA.AssertCalled(t, "OnDelete", expected) - listenerB.AssertNotCalled(t, "OnDelete", expected) - }) -} - -func TestNotifier_OnUpdate(t *testing.T) { - expectedNew := new(struct{}) - expectedOld := new(struct{}) - - t.Run("No listeners", func(t *testing.T) { - notifier := resource.NewNotifier() - - notifier.OnUpdate(expectedOld, expectedNew) - }) - - t.Run("Single", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnUpdate", expectedOld, expectedNew).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.OnUpdate(expectedOld, expectedNew) - - listener.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - }) - - t.Run("Duplicated", func(t *testing.T) { - listener := new(automock.Listener) - listener.On("OnUpdate", expectedOld, expectedNew).Twice() - - notifier := resource.NewNotifier() - - notifier.AddListener(listener) - notifier.AddListener(listener) - notifier.OnUpdate(expectedOld, expectedNew) - - listener.AssertNumberOfCalls(t, "OnUpdate", 2) - }) - - t.Run("Multiple", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnUpdate", expectedOld, expectedNew).Once() - listenerB.On("OnUpdate", expectedOld, expectedNew).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.OnUpdate(expectedOld, expectedNew) - - listenerA.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - listenerB.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - }) - - t.Run("Deleted listener", func(t *testing.T) { - listenerA := new(automock.Listener) - listenerB := new(automock.Listener) - listenerA.On("OnUpdate", expectedOld, expectedNew).Once() - listenerB.On("OnUpdate", expectedOld, expectedNew).Once() - - notifier := resource.NewNotifier() - - notifier.AddListener(listenerA) - notifier.AddListener(listenerB) - notifier.DeleteListener(listenerB) - notifier.OnUpdate(expectedOld, expectedNew) - - listenerA.AssertCalled(t, "OnUpdate", expectedOld, expectedNew) - listenerB.AssertNotCalled(t, "OnUpdate", expectedOld, expectedNew) - }) -} diff --git a/components/console-backend-service/pkg/signal/signal.go b/components/console-backend-service/pkg/signal/signal.go deleted file mode 100644 index d90d49d621e0..000000000000 --- a/components/console-backend-service/pkg/signal/signal.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copied from github.com/kyma-project/kyma/components/service-binding-usage-controller/pkg/signal/signal.go - -package signal - -import ( - "os" - "os/signal" - "syscall" -) - -// SetupChannel registered for SIGTERM and Interrupt. A stop channel is returned -// which is closed on one of these signals. If a second signal is caught, the program -// is terminated with exit code 1. -func SetupChannel() (stopCh <-chan struct{}) { - stop := make(chan struct{}) - c := make(chan os.Signal, 2) - signal.Notify(c, os.Interrupt, syscall.SIGTERM) - go func() { - <-c - close(stop) - <-c - os.Exit(1) // second signal. Exit directly. - }() - - return stop -} diff --git a/components/console-backend-service/pkg/testing/prop/charset.go b/components/console-backend-service/pkg/testing/prop/charset.go deleted file mode 100644 index 6afaef894b70..000000000000 --- a/components/console-backend-service/pkg/testing/prop/charset.go +++ /dev/null @@ -1,5 +0,0 @@ -package prop - -type Charset string - -const Alphanumeric Charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" diff --git a/components/console-backend-service/pkg/testing/prop/properties.go b/components/console-backend-service/pkg/testing/prop/properties.go deleted file mode 100644 index 7dbfed0de16e..000000000000 --- a/components/console-backend-service/pkg/testing/prop/properties.go +++ /dev/null @@ -1,29 +0,0 @@ -package prop - -import ( - "math/rand" -) - -func String(length int) string { - return StringWithCharset(length, Alphanumeric) -} - -func StringWithCharset(length int, charset Charset) string { - b := make([]byte, length) - for i := range b { - b[i] = charset[rand.Intn(len(charset))] - } - return string(b) -} - -func Labels(n int) map[string]string { - result := make(map[string]string) - for i := 0; i < n; i++ { - result[String(4)] = String(4) - } - return result -} - -func OneOfString(vals ...string) string { - return vals[rand.Intn(len(vals))] -} diff --git a/components/service-binding-usage-controller/docs/proposals/usage-kind.md b/components/service-binding-usage-controller/docs/proposals/usage-kind.md index 6ab45386a835..cb904125d616 100644 --- a/components/service-binding-usage-controller/docs/proposals/usage-kind.md +++ b/components/service-binding-usage-controller/docs/proposals/usage-kind.md @@ -41,7 +41,7 @@ The Binding Usage Controller takes the value of the **spec.usedBy.kind** field o ## Security -The administrator who adds UsageKind must take care of RBAC settings. BUC and console-backend-service must be allowed to perform needed operations on resources with the kind defined in the UsageKind resource. +The administrator who adds UsageKind must take care of RBAC settings. BUC must be allowed to perform needed operations on resources with the kind defined in the UsageKind resource. ## Example @@ -197,4 +197,4 @@ The controller can store all information about the UsageKind used in the Service Proposed on 2018-07-20. -Updated on 2018-08-06. \ No newline at end of file +Updated on 2018-08-06. diff --git a/resources/application-connector/values.yaml b/resources/application-connector/values.yaml index 4c1f5d7d2048..9be95728c597 100644 --- a/resources/application-connector/values.yaml +++ b/resources/application-connector/values.yaml @@ -51,7 +51,7 @@ global: version: "PR-11558" application_operator: name: "application-operator" - version: "PR-12141" + version: "PR-12306" application_registry: name: "application-registry" version: "PR-12181" diff --git a/resources/service-catalog-addons/values.yaml b/resources/service-catalog-addons/values.yaml index 952299e8d79e..f9577dd39955 100644 --- a/resources/service-catalog-addons/values.yaml +++ b/resources/service-catalog-addons/values.yaml @@ -11,7 +11,7 @@ global: version: "c60a3c68" service_binding_usage_controller: name: "service-binding-usage-controller" - version: "ef49b0f6" + version: "PR-12306" istio: gateway: name: kyma-gateway diff --git a/tests/function-controller/README.md b/tests/function-controller/README.md index 21b6d161fbfe..290168e9aa4c 100644 --- a/tests/function-controller/README.md +++ b/tests/function-controller/README.md @@ -77,7 +77,6 @@ Use the following environment variables to configure the application: | **APP_TEST_VERBOSE** | No | `true` | The value that controls whether tests log resources that are subject to change | | **APP_TEST_MAX_POLLING_TIME** | No | `5m` | The maximum period of time in which the Function must reconfigure after an update | - ## Development ### Install dependencies