From d1311b07100d93a6ad2b23d548711dcce75d3af7 Mon Sep 17 00:00:00 2001 From: Alex Collins Date: Tue, 27 Apr 2021 16:26:23 -0700 Subject: [PATCH 01/71] feat: Support Argo Dataflow Signed-off-by: Alex Collins --- Makefile | 5 + api/jsonschema/schema.json | 541 +++ api/openapi-spec/swagger.json | 1230 +++++- cmd/argo/commands/server.go | 6 +- go.mod | 16 +- go.sum | 105 +- pkg/apiclient/argo-kube-client.go | 13 +- .../cluster-workflow-template.pb.go | 35 +- .../cronworkflow/cron-workflow.pb.go | 45 +- pkg/apiclient/event/event.pb.go | 15 +- pkg/apiclient/eventsource/eventsource.pb.go | 45 +- pkg/apiclient/info/info.pb.go | 25 +- pkg/apiclient/pipeline/forwarder_overwrite.go | 11 + pkg/apiclient/pipeline/pipeline.pb.go | 3356 +++++++++++++++++ pkg/apiclient/pipeline/pipeline.pb.gw.go | 843 +++++ pkg/apiclient/pipeline/pipeline.proto | 95 + pkg/apiclient/sensor/sensor.pb.go | 45 +- pkg/apiclient/workflow/workflow.pb.go | 95 +- .../workflowarchive/workflow-archive.pb.go | 20 +- .../workflowtemplate/workflow-template.pb.go | 35 +- pkg/apis/workflow/v1alpha1/generated.pb.go | 521 +-- server/apiserver/argoserver.go | 4 + server/auth/gatekeeper.go | 19 +- server/pipeline/pipeline_server.go | 179 + server/types/clients.go | 2 + test/e2e/argo_server_test.go | 14 + ui/package.json | 2 +- ui/src/app/app-router.tsx | 8 + .../components/pipeline-container.tsx | 11 + .../pipeline-details/pipeline-details.tsx | 165 + .../pipeline-details/pipeline-graph.ts | 133 + .../components/pipeline-details/pipeline.scss | 24 + .../pipeline-list/pipeline-list.scss | 1 + .../pipeline-list/pipeline-list.tsx | 102 + .../components/pipeline-logs-viewer.tsx | 66 + .../pipelines/components/step-side-panel.tsx | 87 + ui/src/app/pipelines/index.ts | 5 + ui/src/app/shared/components/icon.ts | 8 + ui/src/app/shared/components/icons.ts | 8 + .../object-editor/object-editor.tsx | 10 +- ui/src/app/shared/components/phase-icon.tsx | 3 +- ui/src/app/shared/components/phase.tsx | 3 +- .../resource-editor/resource-editor.tsx | 2 +- ui/src/app/shared/services/index.ts | 3 + .../app/shared/services/pipeline-service.ts | 48 + ui/src/models/pipeline.ts | 24 + ui/src/models/step.ts | 50 + ui/yarn.lock | 8 +- 48 files changed, 7277 insertions(+), 814 deletions(-) create mode 100644 pkg/apiclient/pipeline/forwarder_overwrite.go create mode 100644 pkg/apiclient/pipeline/pipeline.pb.go create mode 100644 pkg/apiclient/pipeline/pipeline.pb.gw.go create mode 100644 pkg/apiclient/pipeline/pipeline.proto create mode 100644 server/pipeline/pipeline_server.go create mode 100644 ui/src/app/pipelines/components/pipeline-container.tsx create mode 100644 ui/src/app/pipelines/components/pipeline-details/pipeline-details.tsx create mode 100644 ui/src/app/pipelines/components/pipeline-details/pipeline-graph.ts create mode 100644 ui/src/app/pipelines/components/pipeline-details/pipeline.scss create mode 100644 ui/src/app/pipelines/components/pipeline-list/pipeline-list.scss create mode 100644 ui/src/app/pipelines/components/pipeline-list/pipeline-list.tsx create mode 100644 ui/src/app/pipelines/components/pipeline-logs-viewer.tsx create mode 100644 ui/src/app/pipelines/components/step-side-panel.tsx create mode 100644 ui/src/app/pipelines/index.ts create mode 100644 ui/src/app/shared/services/pipeline-service.ts create mode 100644 ui/src/models/pipeline.ts create mode 100644 ui/src/models/step.ts diff --git a/Makefile b/Makefile index 652a948f9dbf..5da6704084f0 100644 --- a/Makefile +++ b/Makefile @@ -99,6 +99,7 @@ SWAGGER_FILES := pkg/apiclient/_.primary.swagger.json \ pkg/apiclient/event/event.swagger.json \ pkg/apiclient/eventsource/eventsource.swagger.json \ pkg/apiclient/info/info.swagger.json \ + pkg/apiclient/pipeline/pipeline.swagger.json \ pkg/apiclient/sensor/sensor.swagger.json \ pkg/apiclient/workflow/workflow.swagger.json \ pkg/apiclient/workflowarchive/workflow-archive.swagger.json \ @@ -251,6 +252,7 @@ swagger: \ pkg/apiclient/eventsource/eventsource.swagger.json \ pkg/apiclient/info/info.swagger.json \ pkg/apiclient/sensor/sensor.swagger.json \ + pkg/apiclient/pipeline/pipeline.swagger.json \ pkg/apiclient/workflow/workflow.swagger.json \ pkg/apiclient/workflowarchive/workflow-archive.swagger.json \ pkg/apiclient/workflowtemplate/workflow-template.swagger.json \ @@ -336,6 +338,9 @@ pkg/apiclient/info/info.swagger.json: $(PROTO_BINARIES) $(TYPES) pkg/apiclient/i pkg/apiclient/sensor/sensor.swagger.json: $(PROTO_BINARIES) $(TYPES) pkg/apiclient/sensor/sensor.proto $(call protoc,pkg/apiclient/sensor/sensor.proto) +pkg/apiclient/pipeline/pipeline.swagger.json: $(PROTO_BINARIES) $(TYPES) pkg/apiclient/pipeline/pipeline.proto + $(call protoc,pkg/apiclient/pipeline/pipeline.proto) + pkg/apiclient/workflow/workflow.swagger.json: $(PROTO_BINARIES) $(TYPES) pkg/apiclient/workflow/workflow.proto $(call protoc,pkg/apiclient/workflow/workflow.proto) diff --git a/api/jsonschema/schema.json b/api/jsonschema/schema.json index ac08c2b3cb9a..285e39998638 100644 --- a/api/jsonschema/schema.json +++ b/api/jsonschema/schema.json @@ -70,6 +70,467 @@ }, "type": "object" }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cat": { + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Container": { + "properties": { + "args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "env": { + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "type": "array" + }, + "image": { + "type": "string" + }, + "in": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Interface" + }, + "volumeMounts": { + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" + }, + "type": "array" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cron": { + "properties": { + "schedule": { + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Git": { + "properties": { + "branch": { + "title": "+kubebuilder:default=main", + "type": "string" + }, + "env": { + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "type": "array" + }, + "image": { + "type": "string" + }, + "path": { + "description": "+kubebuilder:default=.", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Group": { + "properties": { + "endOfGroup": { + "type": "string" + }, + "format": { + "type": "string" + }, + "key": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Storage" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.HTTP": { + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Handler": { + "properties": { + "code": { + "type": "string" + }, + "runtime": { + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Interface": { + "properties": { + "fifo": { + "type": "boolean" + }, + "http": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.HTTP" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Kafka": { + "properties": { + "brokers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "title": "+kubebuilder:default=default", + "type": "string" + }, + "net": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.KafkaNET" + }, + "topic": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.KafkaNET": { + "properties": { + "tls": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.TLS" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Log": { + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Message": { + "properties": { + "data": { + "type": "string" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Metrics": { + "properties": { + "errors": { + "format": "uint64", + "type": "string" + }, + "total": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline": { + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineSpec" + }, + "status": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineStatus" + } + }, + "title": "+kubebuilder:object:root=true\n+kubebuilder:resource:shortName=pl\n+kubebuilder:subresource:status\n+kubebuilder:printcolumn:name=\"Phase\",type=string,JSONPath=`.status.phase`\n+kubebuilder:printcolumn:name=\"Message\",type=string,JSONPath=`.status.message`", + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineList": { + "properties": { + "items": { + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline" + }, + "type": "array" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineSpec": { + "properties": { + "steps": { + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepSpec" + }, + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "type": "array" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineStatus": { + "properties": { + "conditions": { + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array" + }, + "message": { + "type": "string" + }, + "phase": { + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Replicas": { + "properties": { + "max": { + "title": "this is both the min, and the initial value", + "type": "integer" + }, + "min": { + "title": "+kubebuilder:default=1", + "type": "integer" + }, + "ratio": { + "title": "takes precedence over min", + "type": "integer" + } + }, + "title": "Used to calculate the number of replicas.\nmin(r.max, max(r.min, pending/ratio))\nExample:\nmin=1, max=4, ratio=100\npending=0, replicas=1\npending=100, replicas=1\npending=200, replicas=2\npending=300, replicas=3\npending=400, replicas=4\npending=500, replicas=4", + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.STAN": { + "properties": { + "clusterId": { + "type": "string" + }, + "name": { + "title": "+kubebuilder:default=default", + "type": "string" + }, + "natsUrl": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "subjectPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Sink": { + "properties": { + "kafka": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Kafka" + }, + "log": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Log" + }, + "name": { + "title": "+kubebuilder:default=default", + "type": "string" + }, + "stan": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.STAN" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SinkStatus": { + "properties": { + "lastMessage": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Message" + }, + "metrics": { + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Metrics" + }, + "type": "object" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Source": { + "properties": { + "cron": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cron" + }, + "kafka": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Kafka" + }, + "name": { + "title": "+kubebuilder:default=default", + "type": "string" + }, + "stan": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.STAN" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SourceStatus": { + "properties": { + "lastMessage": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Message" + }, + "metrics": { + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Metrics" + }, + "type": "object" + }, + "pending": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Step": { + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepSpec" + }, + "status": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepStatus" + } + }, + "title": "+kubebuilder:object:root=true\n+kubebuilder:subresource:status\n+kubebuilder:printcolumn:name=\"Phase\",type=string,JSONPath=`.status.phase`\n+kubebuilder:printcolumn:name=\"Message\",type=string,JSONPath=`.status.message`\n+kubebuilder:printcolumn:name=\"Replicas\",type=string,JSONPath=`.status.replicas`", + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepSpec": { + "properties": { + "cat": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cat" + }, + "container": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Container" + }, + "filter": { + "type": "string" + }, + "git": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Git" + }, + "group": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Group" + }, + "handler": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Handler" + }, + "map": { + "type": "string" + }, + "name": { + "title": "+kubebuilder:default=default", + "type": "string" + }, + "replicas": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Replicas" + }, + "restartPolicy": { + "title": "+kubebuilder:default=OnFailure", + "type": "string" + }, + "serviceAccountName": { + "title": "+kubebuilder:default=pipeline", + "type": "string" + }, + "sinks": { + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Sink" + }, + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "type": "array" + }, + "sources": { + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Source" + }, + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "type": "array" + }, + "terminator": { + "type": "boolean" + }, + "volumes": { + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Volume" + }, + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "type": "array" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepStatus": { + "properties": { + "lastScaledAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "replicas": { + "type": "integer" + }, + "sinkStatuses": { + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SinkStatus" + }, + "type": "object" + }, + "sourceStatuses": { + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SourceStatus" + }, + "type": "object" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Storage": { + "properties": { + "name": { + "type": "string" + }, + "subPath": { + "title": "volume name", + "type": "string" + } + }, + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.TLS": { + "type": "object" + }, "google.protobuf.Any": { "properties": { "type_url": { @@ -8582,6 +9043,37 @@ "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", "type": "string" }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Condition": { + "description": "// other fields\n}", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "title": "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:Type=string\n+kubebuilder:validation:Format=date-time" + }, + "message": { + "title": "message is a human readable message indicating details about the transition.\nThis may be an empty string.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:MaxLength=32768", + "type": "string" + }, + "observedGeneration": { + "title": "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.\n+optional\n+kubebuilder:validation:Minimum=0", + "type": "string" + }, + "reason": { + "title": "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:MaxLength=1024\n+kubebuilder:validation:MinLength=1\n+kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`", + "type": "string" + }, + "status": { + "title": "status of the condition, one of True, False, Unknown.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:Enum=True;False;Unknown", + "type": "string" + }, + "type": { + "title": "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n+kubebuilder:validation:MaxLength=316", + "type": "string" + } + }, + "title": "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\ntype FooStatus struct{\n // Represents the observations of a foo's current state.\n // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n // +patchMergeKey=type\n // +patchStrategy=merge\n // +listType=map\n // +listMapKey=type\n Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`", + "type": "object" + }, "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": { "description": "CreateOptions may be provided when creating an API object.", "properties": { @@ -8906,6 +9398,55 @@ "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { "type": "string" }, + "pipeline.DeletePipelineResponse": { + "type": "object" + }, + "pipeline.LogEntry": { + "properties": { + "msg": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "stepName": { + "type": "string" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + }, + "title": "structured log entry", + "type": "object" + }, + "pipeline.PipelineWatchEvent": { + "properties": { + "object": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "pipeline.RestartPipelineResponse": { + "type": "object" + }, + "pipeline.StepWatchEvent": { + "properties": { + "object": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Step" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, "sensor.CreateSensorRequest": { "properties": { "createOptions": { diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 342f0b0b9f54..be91a5595f6d 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -1190,6 +1190,245 @@ } } }, + "/api/v1/pipelines/{namespace}": { + "get": { + "tags": [ + "PipelineService" + ], + "operationId": "PipelineService_ListPipelines", + "parameters": [ + { + "type": "string", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels.\nDefaults to everything.\n+optional.", + "name": "listOptions.labelSelector", + "in": "query" + }, + { + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields.\nDefaults to everything.\n+optional.", + "name": "listOptions.fieldSelector", + "in": "query" + }, + { + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of\nadd, update, and remove notifications. Specify resourceVersion.\n+optional.", + "name": "listOptions.watch", + "in": "query" + }, + { + "type": "boolean", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\".\nServers that do not implement bookmarks may ignore this flag and\nbookmarks are sent at the server's discretion. Clients should not\nassume bookmarks are returned at any specific interval, nor may they\nassume the server will send any BOOKMARK event during a session.\nIf this is not a watch, this field is ignored.\nIf the feature gate WatchBookmarks is not enabled in apiserver,\nthis field is ignored.\n+optional.", + "name": "listOptions.allowWatchBookmarks", + "in": "query" + }, + { + "type": "string", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from.\nSee https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\ndetails.\n\nDefaults to unset\n+optional", + "name": "listOptions.resourceVersion", + "in": "query" + }, + { + "type": "string", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls.\nIt is highly recommended that resourceVersionMatch be set for list calls where\nresourceVersion is set\nSee https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\ndetails.\n\nDefaults to unset\n+optional", + "name": "listOptions.resourceVersionMatch", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "Timeout for the list/watch call.\nThis limits the duration of the call, regardless of any activity or inactivity.\n+optional.", + "name": "listOptions.timeoutSeconds", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the\nserver will set the `continue` field on the list metadata to a value that can be used with the\nsame initial query to retrieve the next set of results. Setting a limit may return fewer than\nthe requested amount of items (up to zero items) in the event all requested objects are\nfiltered out and clients should only use the presence of the continue field to determine whether\nmore results are available. Servers may choose not to support the limit argument and will return\nall of the available results. If limit is specified and the continue field is empty, clients may\nassume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing\na single list call without a limit - that is, no objects created, modified, or deleted after the\nfirst request is issued will be included in any subsequent continued requests. This is sometimes\nreferred to as a consistent snapshot, and ensures that a client that is using limit to receive\nsmaller chunks of a very large result can ensure they see all possible objects. If objects are\nupdated during a chunked list the version of the object that was present at the time the first list\nresult was calculated is returned.", + "name": "listOptions.limit", + "in": "query" + }, + { + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is\nserver defined, clients may only use the continue value from a previous query result with identical\nquery parameters (except for the value of continue) and the server may reject a continue value it\ndoes not recognize. If the specified continue value is no longer valid whether due to expiration\n(generally five to fifteen minutes) or a configuration change on the server, the server will\nrespond with a 410 ResourceExpired error together with a continue token. If the client needs a\nconsistent list, it must restart their list without the continue field. Otherwise, the client may\nsend another list request with the token received with the 410 error, the server will respond with\na list starting from the next key, but from the latest snapshot, which is inconsistent from the\nprevious list results - objects that are created, modified, or deleted after the first list request\nwill be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last\nresourceVersion value returned by the server and not miss any modifications.", + "name": "listOptions.continue", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + } + } + }, + "/api/v1/pipelines/{namespace}/{name}": { + "get": { + "tags": [ + "PipelineService" + ], + "operationId": "PipelineService_GetPipeline", + "parameters": [ + { + "type": "string", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "name": "name", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from.\nSee https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\ndetails.\n\nDefaults to unset\n+optional", + "name": "getOptions.resourceVersion", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + } + }, + "delete": { + "tags": [ + "PipelineService" + ], + "operationId": "PipelineService_DeletePipeline", + "parameters": [ + { + "type": "string", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "name": "name", + "in": "path", + "required": true + }, + { + "type": "string", + "format": "int64", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer.\nThe value zero indicates delete immediately. If this value is nil, the default grace period for the\nspecified type will be used.\nDefaults to a per object value if not specified. zero means delete immediately.\n+optional.", + "name": "deleteOptions.gracePeriodSeconds", + "in": "query" + }, + { + "type": "string", + "description": "Specifies the target UID.\n+optional.", + "name": "deleteOptions.preconditions.uid", + "in": "query" + }, + { + "type": "string", + "description": "Specifies the target ResourceVersion\n+optional.", + "name": "deleteOptions.preconditions.resourceVersion", + "in": "query" + }, + { + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.\nShould the dependent objects be orphaned. If true/false, the \"orphan\"\nfinalizer will be added to/removed from the object's finalizers list.\nEither this field or PropagationPolicy may be set, but not both.\n+optional.", + "name": "deleteOptions.orphanDependents", + "in": "query" + }, + { + "type": "string", + "description": "Whether and how garbage collection will be performed.\nEither this field or OrphanDependents may be set, but not both.\nThe default policy is decided by the existing finalizer set in the\nmetadata.finalizers and the resource-specific default policy.\nAcceptable values are: 'Orphan' - orphan the dependents; 'Background' -\nallow the garbage collector to delete the dependents in the background;\n'Foreground' - a cascading policy that deletes all dependents in the\nforeground.\n+optional.", + "name": "deleteOptions.propagationPolicy", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "When present, indicates that modifications should not be\npersisted. An invalid or unrecognized dryRun directive will\nresult in an error response and no further processing of the\nrequest. Valid values are:\n- All: all dry run stages will be processed\n+optional.", + "name": "deleteOptions.dryRun", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/pipeline.DeletePipelineResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + } + } + }, + "/api/v1/pipelines/{namespace}/{name}/restart": { + "post": { + "tags": [ + "PipelineService" + ], + "operationId": "PipelineService_RestartPipeline", + "parameters": [ + { + "type": "string", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/pipeline.RestartPipelineResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + } + } + }, "/api/v1/sensors/{namespace}": { "get": { "tags": [ @@ -1789,12 +2028,12 @@ } } }, - "/api/v1/stream/sensors/{namespace}": { + "/api/v1/stream/pipelines/{namespace}": { "get": { "tags": [ - "SensorService" + "PipelineService" ], - "operationId": "SensorService_WatchSensors", + "operationId": "PipelineService_WatchPipelines", "parameters": [ { "type": "string", @@ -1864,13 +2103,13 @@ "description": "A successful response.(streaming responses)", "schema": { "type": "object", - "title": "Stream result of sensor.SensorWatchEvent", + "title": "Stream result of pipeline.PipelineWatchEvent", "properties": { "error": { "$ref": "#/definitions/grpc.gateway.runtime.StreamError" }, "result": { - "$ref": "#/definitions/sensor.SensorWatchEvent" + "$ref": "#/definitions/pipeline.PipelineWatchEvent" } } } @@ -1884,12 +2123,12 @@ } } }, - "/api/v1/stream/sensors/{namespace}/logs": { + "/api/v1/stream/pipelines/{namespace}/logs": { "get": { "tags": [ - "SensorService" + "PipelineService" ], - "operationId": "SensorService_SensorsLogs", + "operationId": "PipelineService_PipelineLogs", "parameters": [ { "type": "string", @@ -1899,20 +2138,14 @@ }, { "type": "string", - "description": "optional - only return entries for this sensor name.", + "description": "optional - only return entries for this pipeline.", "name": "name", "in": "query" }, { "type": "string", - "description": "optional - only return entries for this trigger.", - "name": "triggerName", - "in": "query" - }, - { - "type": "string", - "description": "option - only return entries where `msg` contains this regular expressions.", - "name": "grep", + "description": "optional - only return entries for this step.", + "name": "stepName", "in": "query" }, { @@ -1934,50 +2167,362 @@ "in": "query" }, { - "type": "string", - "format": "int64", - "description": "A relative time in seconds before the current time from which to show logs. If this value\nprecedes the time a pod was started, only logs since the pod start will be returned.\nIf this value is in the future, no logs will be returned.\nOnly one of sinceSeconds or sinceTime may be specified.\n+optional.", - "name": "podLogOptions.sinceSeconds", + "type": "string", + "format": "int64", + "description": "A relative time in seconds before the current time from which to show logs. If this value\nprecedes the time a pod was started, only logs since the pod start will be returned.\nIf this value is in the future, no logs will be returned.\nOnly one of sinceSeconds or sinceTime may be specified.\n+optional.", + "name": "podLogOptions.sinceSeconds", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive.", + "name": "podLogOptions.sinceTime.seconds", + "in": "query" + }, + { + "type": "integer", + "format": "int32", + "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context.", + "name": "podLogOptions.sinceTime.nanos", + "in": "query" + }, + { + "type": "boolean", + "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line\nof log output. Defaults to false.\n+optional.", + "name": "podLogOptions.timestamps", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "If set, the number of lines from the end of the logs to show. If not specified,\nlogs are shown from the creation of the container or sinceSeconds or sinceTime\n+optional.", + "name": "podLogOptions.tailLines", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "If set, the number of bytes to read from the server before terminating the\nlog output. This may not display a complete final line of logging, and may return\nslightly more or slightly less than the specified limit.\n+optional.", + "name": "podLogOptions.limitBytes", + "in": "query" + }, + { + "type": "boolean", + "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the\nserving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver\nand the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real\nkubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the\nconnection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept\nthe actual log data coming from the real kubelet).\n+optional.", + "name": "podLogOptions.insecureSkipTLSVerifyBackend", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.(streaming responses)", + "schema": { + "type": "object", + "title": "Stream result of pipeline.LogEntry", + "properties": { + "error": { + "$ref": "#/definitions/grpc.gateway.runtime.StreamError" + }, + "result": { + "$ref": "#/definitions/pipeline.LogEntry" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + } + } + }, + "/api/v1/stream/sensors/{namespace}": { + "get": { + "tags": [ + "SensorService" + ], + "operationId": "SensorService_WatchSensors", + "parameters": [ + { + "type": "string", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels.\nDefaults to everything.\n+optional.", + "name": "listOptions.labelSelector", + "in": "query" + }, + { + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields.\nDefaults to everything.\n+optional.", + "name": "listOptions.fieldSelector", + "in": "query" + }, + { + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of\nadd, update, and remove notifications. Specify resourceVersion.\n+optional.", + "name": "listOptions.watch", + "in": "query" + }, + { + "type": "boolean", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\".\nServers that do not implement bookmarks may ignore this flag and\nbookmarks are sent at the server's discretion. Clients should not\nassume bookmarks are returned at any specific interval, nor may they\nassume the server will send any BOOKMARK event during a session.\nIf this is not a watch, this field is ignored.\nIf the feature gate WatchBookmarks is not enabled in apiserver,\nthis field is ignored.\n+optional.", + "name": "listOptions.allowWatchBookmarks", + "in": "query" + }, + { + "type": "string", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from.\nSee https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\ndetails.\n\nDefaults to unset\n+optional", + "name": "listOptions.resourceVersion", + "in": "query" + }, + { + "type": "string", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls.\nIt is highly recommended that resourceVersionMatch be set for list calls where\nresourceVersion is set\nSee https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\ndetails.\n\nDefaults to unset\n+optional", + "name": "listOptions.resourceVersionMatch", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "Timeout for the list/watch call.\nThis limits the duration of the call, regardless of any activity or inactivity.\n+optional.", + "name": "listOptions.timeoutSeconds", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the\nserver will set the `continue` field on the list metadata to a value that can be used with the\nsame initial query to retrieve the next set of results. Setting a limit may return fewer than\nthe requested amount of items (up to zero items) in the event all requested objects are\nfiltered out and clients should only use the presence of the continue field to determine whether\nmore results are available. Servers may choose not to support the limit argument and will return\nall of the available results. If limit is specified and the continue field is empty, clients may\nassume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing\na single list call without a limit - that is, no objects created, modified, or deleted after the\nfirst request is issued will be included in any subsequent continued requests. This is sometimes\nreferred to as a consistent snapshot, and ensures that a client that is using limit to receive\nsmaller chunks of a very large result can ensure they see all possible objects. If objects are\nupdated during a chunked list the version of the object that was present at the time the first list\nresult was calculated is returned.", + "name": "listOptions.limit", + "in": "query" + }, + { + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is\nserver defined, clients may only use the continue value from a previous query result with identical\nquery parameters (except for the value of continue) and the server may reject a continue value it\ndoes not recognize. If the specified continue value is no longer valid whether due to expiration\n(generally five to fifteen minutes) or a configuration change on the server, the server will\nrespond with a 410 ResourceExpired error together with a continue token. If the client needs a\nconsistent list, it must restart their list without the continue field. Otherwise, the client may\nsend another list request with the token received with the 410 error, the server will respond with\na list starting from the next key, but from the latest snapshot, which is inconsistent from the\nprevious list results - objects that are created, modified, or deleted after the first list request\nwill be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last\nresourceVersion value returned by the server and not miss any modifications.", + "name": "listOptions.continue", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.(streaming responses)", + "schema": { + "type": "object", + "title": "Stream result of sensor.SensorWatchEvent", + "properties": { + "error": { + "$ref": "#/definitions/grpc.gateway.runtime.StreamError" + }, + "result": { + "$ref": "#/definitions/sensor.SensorWatchEvent" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + } + } + }, + "/api/v1/stream/sensors/{namespace}/logs": { + "get": { + "tags": [ + "SensorService" + ], + "operationId": "SensorService_SensorsLogs", + "parameters": [ + { + "type": "string", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "optional - only return entries for this sensor name.", + "name": "name", + "in": "query" + }, + { + "type": "string", + "description": "optional - only return entries for this trigger.", + "name": "triggerName", + "in": "query" + }, + { + "type": "string", + "description": "option - only return entries where `msg` contains this regular expressions.", + "name": "grep", + "in": "query" + }, + { + "type": "string", + "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.\n+optional.", + "name": "podLogOptions.container", + "in": "query" + }, + { + "type": "boolean", + "description": "Follow the log stream of the pod. Defaults to false.\n+optional.", + "name": "podLogOptions.follow", + "in": "query" + }, + { + "type": "boolean", + "description": "Return previous terminated container logs. Defaults to false.\n+optional.", + "name": "podLogOptions.previous", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "A relative time in seconds before the current time from which to show logs. If this value\nprecedes the time a pod was started, only logs since the pod start will be returned.\nIf this value is in the future, no logs will be returned.\nOnly one of sinceSeconds or sinceTime may be specified.\n+optional.", + "name": "podLogOptions.sinceSeconds", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive.", + "name": "podLogOptions.sinceTime.seconds", + "in": "query" + }, + { + "type": "integer", + "format": "int32", + "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context.", + "name": "podLogOptions.sinceTime.nanos", + "in": "query" + }, + { + "type": "boolean", + "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line\nof log output. Defaults to false.\n+optional.", + "name": "podLogOptions.timestamps", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "If set, the number of lines from the end of the logs to show. If not specified,\nlogs are shown from the creation of the container or sinceSeconds or sinceTime\n+optional.", + "name": "podLogOptions.tailLines", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "If set, the number of bytes to read from the server before terminating the\nlog output. This may not display a complete final line of logging, and may return\nslightly more or slightly less than the specified limit.\n+optional.", + "name": "podLogOptions.limitBytes", + "in": "query" + }, + { + "type": "boolean", + "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the\nserving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver\nand the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real\nkubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the\nconnection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept\nthe actual log data coming from the real kubelet).\n+optional.", + "name": "podLogOptions.insecureSkipTLSVerifyBackend", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.(streaming responses)", + "schema": { + "type": "object", + "title": "Stream result of sensor.LogEntry", + "properties": { + "error": { + "$ref": "#/definitions/grpc.gateway.runtime.StreamError" + }, + "result": { + "$ref": "#/definitions/sensor.LogEntry" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + } + } + }, + "/api/v1/stream/steps/{namespace}": { + "get": { + "tags": [ + "PipelineService" + ], + "operationId": "PipelineService_WatchSteps", + "parameters": [ + { + "type": "string", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels.\nDefaults to everything.\n+optional.", + "name": "listOptions.labelSelector", + "in": "query" + }, + { + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields.\nDefaults to everything.\n+optional.", + "name": "listOptions.fieldSelector", + "in": "query" + }, + { + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of\nadd, update, and remove notifications. Specify resourceVersion.\n+optional.", + "name": "listOptions.watch", "in": "query" }, { - "type": "string", - "format": "int64", - "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive.", - "name": "podLogOptions.sinceTime.seconds", + "type": "boolean", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\".\nServers that do not implement bookmarks may ignore this flag and\nbookmarks are sent at the server's discretion. Clients should not\nassume bookmarks are returned at any specific interval, nor may they\nassume the server will send any BOOKMARK event during a session.\nIf this is not a watch, this field is ignored.\nIf the feature gate WatchBookmarks is not enabled in apiserver,\nthis field is ignored.\n+optional.", + "name": "listOptions.allowWatchBookmarks", "in": "query" }, { - "type": "integer", - "format": "int32", - "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context.", - "name": "podLogOptions.sinceTime.nanos", + "type": "string", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from.\nSee https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\ndetails.\n\nDefaults to unset\n+optional", + "name": "listOptions.resourceVersion", "in": "query" }, { - "type": "boolean", - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line\nof log output. Defaults to false.\n+optional.", - "name": "podLogOptions.timestamps", + "type": "string", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls.\nIt is highly recommended that resourceVersionMatch be set for list calls where\nresourceVersion is set\nSee https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\ndetails.\n\nDefaults to unset\n+optional", + "name": "listOptions.resourceVersionMatch", "in": "query" }, { "type": "string", "format": "int64", - "description": "If set, the number of lines from the end of the logs to show. If not specified,\nlogs are shown from the creation of the container or sinceSeconds or sinceTime\n+optional.", - "name": "podLogOptions.tailLines", + "description": "Timeout for the list/watch call.\nThis limits the duration of the call, regardless of any activity or inactivity.\n+optional.", + "name": "listOptions.timeoutSeconds", "in": "query" }, { "type": "string", "format": "int64", - "description": "If set, the number of bytes to read from the server before terminating the\nlog output. This may not display a complete final line of logging, and may return\nslightly more or slightly less than the specified limit.\n+optional.", - "name": "podLogOptions.limitBytes", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the\nserver will set the `continue` field on the list metadata to a value that can be used with the\nsame initial query to retrieve the next set of results. Setting a limit may return fewer than\nthe requested amount of items (up to zero items) in the event all requested objects are\nfiltered out and clients should only use the presence of the continue field to determine whether\nmore results are available. Servers may choose not to support the limit argument and will return\nall of the available results. If limit is specified and the continue field is empty, clients may\nassume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing\na single list call without a limit - that is, no objects created, modified, or deleted after the\nfirst request is issued will be included in any subsequent continued requests. This is sometimes\nreferred to as a consistent snapshot, and ensures that a client that is using limit to receive\nsmaller chunks of a very large result can ensure they see all possible objects. If objects are\nupdated during a chunked list the version of the object that was present at the time the first list\nresult was calculated is returned.", + "name": "listOptions.limit", "in": "query" }, { - "type": "boolean", - "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the\nserving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver\nand the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real\nkubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the\nconnection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept\nthe actual log data coming from the real kubelet).\n+optional.", - "name": "podLogOptions.insecureSkipTLSVerifyBackend", + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is\nserver defined, clients may only use the continue value from a previous query result with identical\nquery parameters (except for the value of continue) and the server may reject a continue value it\ndoes not recognize. If the specified continue value is no longer valid whether due to expiration\n(generally five to fifteen minutes) or a configuration change on the server, the server will\nrespond with a 410 ResourceExpired error together with a continue token. If the client needs a\nconsistent list, it must restart their list without the continue field. Otherwise, the client may\nsend another list request with the token received with the 410 error, the server will respond with\na list starting from the next key, but from the latest snapshot, which is inconsistent from the\nprevious list results - objects that are created, modified, or deleted after the first list request\nwill be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last\nresourceVersion value returned by the server and not miss any modifications.", + "name": "listOptions.continue", "in": "query" } ], @@ -1986,13 +2531,13 @@ "description": "A successful response.(streaming responses)", "schema": { "type": "object", - "title": "Stream result of sensor.LogEntry", + "title": "Stream result of pipeline.StepWatchEvent", "properties": { "error": { "$ref": "#/definitions/grpc.gateway.runtime.StreamError" }, "result": { - "$ref": "#/definitions/sensor.LogEntry" + "$ref": "#/definitions/pipeline.StepWatchEvent" } } } @@ -3417,77 +3962,538 @@ } } } - } - }, - "definitions": { - "eventsource.CreateEventSourceRequest": { + } + }, + "definitions": { + "eventsource.CreateEventSourceRequest": { + "type": "object", + "properties": { + "eventSource": { + "$ref": "#/definitions/io.argoproj.events.v1alpha1.EventSource" + }, + "namespace": { + "type": "string" + } + } + }, + "eventsource.EventSourceDeletedResponse": { + "type": "object" + }, + "eventsource.EventSourceWatchEvent": { + "type": "object", + "properties": { + "object": { + "$ref": "#/definitions/io.argoproj.events.v1alpha1.EventSource" + }, + "type": { + "type": "string" + } + } + }, + "eventsource.LogEntry": { + "type": "object", + "title": "structured log entry", + "properties": { + "eventName": { + "type": "string", + "title": "optional - the event name (e.g. `example`)" + }, + "eventSourceName": { + "type": "string" + }, + "eventSourceType": { + "type": "string", + "title": "optional - the event source type (e.g. `webhook`)" + }, + "level": { + "type": "string" + }, + "msg": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + } + }, + "eventsource.UpdateEventSourceRequest": { + "type": "object", + "properties": { + "eventSource": { + "$ref": "#/definitions/io.argoproj.events.v1alpha1.EventSource" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cat": { + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Container": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "string" + } + }, + "command": { + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + } + }, + "image": { + "type": "string" + }, + "in": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Interface" + }, + "volumeMounts": { + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" + } + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cron": { + "type": "object", + "properties": { + "schedule": { + "type": "string" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Git": { + "type": "object", + "properties": { + "branch": { + "type": "string", + "title": "+kubebuilder:default=main" + }, + "env": { + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + } + }, + "image": { + "type": "string" + }, + "path": { + "description": "+kubebuilder:default=.", + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Group": { + "type": "object", + "properties": { + "endOfGroup": { + "type": "string" + }, + "format": { + "type": "string" + }, + "key": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Storage" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.HTTP": { + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Handler": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "runtime": { + "type": "string" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Interface": { + "type": "object", + "properties": { + "fifo": { + "type": "boolean" + }, + "http": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.HTTP" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Kafka": { + "type": "object", + "properties": { + "brokers": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "title": "+kubebuilder:default=default" + }, + "net": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.KafkaNET" + }, + "topic": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.KafkaNET": { + "type": "object", + "properties": { + "tls": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.TLS" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Log": { + "type": "object" + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Message": { + "type": "object", + "properties": { + "data": { + "type": "string" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Metrics": { + "type": "object", + "properties": { + "errors": { + "type": "string", + "format": "uint64" + }, + "total": { + "type": "string", + "format": "uint64" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline": { + "type": "object", + "title": "+kubebuilder:object:root=true\n+kubebuilder:resource:shortName=pl\n+kubebuilder:subresource:status\n+kubebuilder:printcolumn:name=\"Phase\",type=string,JSONPath=`.status.phase`\n+kubebuilder:printcolumn:name=\"Message\",type=string,JSONPath=`.status.message`", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineSpec" + }, + "status": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineStatus" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineList": { "type": "object", "properties": { - "eventSource": { - "$ref": "#/definitions/io.argoproj.events.v1alpha1.EventSource" + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline" + } }, - "namespace": { - "type": "string" + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } } }, - "eventsource.EventSourceDeletedResponse": { - "type": "object" + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineSpec": { + "type": "object", + "properties": { + "steps": { + "type": "array", + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepSpec" + } + } + } }, - "eventsource.EventSourceWatchEvent": { + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineStatus": { "type": "object", "properties": { - "object": { - "$ref": "#/definitions/io.argoproj.events.v1alpha1.EventSource" + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + } }, - "type": { + "message": { + "type": "string" + }, + "phase": { "type": "string" } } }, - "eventsource.LogEntry": { + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Replicas": { "type": "object", - "title": "structured log entry", + "title": "Used to calculate the number of replicas.\nmin(r.max, max(r.min, pending/ratio))\nExample:\nmin=1, max=4, ratio=100\npending=0, replicas=1\npending=100, replicas=1\npending=200, replicas=2\npending=300, replicas=3\npending=400, replicas=4\npending=500, replicas=4", "properties": { - "eventName": { - "type": "string", - "title": "optional - the event name (e.g. `example`)" + "max": { + "type": "integer", + "title": "this is both the min, and the initial value" }, - "eventSourceName": { + "min": { + "type": "integer", + "title": "+kubebuilder:default=1" + }, + "ratio": { + "type": "integer", + "title": "takes precedence over min" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.STAN": { + "type": "object", + "properties": { + "clusterId": { "type": "string" }, - "eventSourceType": { + "name": { "type": "string", - "title": "optional - the event source type (e.g. `webhook`)" + "title": "+kubebuilder:default=default" }, - "level": { + "natsUrl": { "type": "string" }, - "msg": { + "subject": { "type": "string" }, - "namespace": { + "subjectPrefix": { "type": "string" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Sink": { + "type": "object", + "properties": { + "kafka": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Kafka" }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + "log": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Log" + }, + "name": { + "type": "string", + "title": "+kubebuilder:default=default" + }, + "stan": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.STAN" } } }, - "eventsource.UpdateEventSourceRequest": { + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SinkStatus": { "type": "object", "properties": { - "eventSource": { - "$ref": "#/definitions/io.argoproj.events.v1alpha1.EventSource" + "lastMessage": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Message" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Metrics" + } + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Source": { + "type": "object", + "properties": { + "cron": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cron" + }, + "kafka": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Kafka" + }, + "name": { + "type": "string", + "title": "+kubebuilder:default=default" + }, + "stan": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.STAN" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SourceStatus": { + "type": "object", + "properties": { + "lastMessage": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Message" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Metrics" + } + }, + "pending": { + "type": "string", + "format": "uint64" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Step": { + "type": "object", + "title": "+kubebuilder:object:root=true\n+kubebuilder:subresource:status\n+kubebuilder:printcolumn:name=\"Phase\",type=string,JSONPath=`.status.phase`\n+kubebuilder:printcolumn:name=\"Message\",type=string,JSONPath=`.status.message`\n+kubebuilder:printcolumn:name=\"Replicas\",type=string,JSONPath=`.status.replicas`", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepSpec" + }, + "status": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepStatus" + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepSpec": { + "type": "object", + "properties": { + "cat": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Cat" + }, + "container": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Container" + }, + "filter": { + "type": "string" + }, + "git": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Git" + }, + "group": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Group" + }, + "handler": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Handler" + }, + "map": { + "type": "string" }, "name": { + "type": "string", + "title": "+kubebuilder:default=default" + }, + "replicas": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Replicas" + }, + "restartPolicy": { + "type": "string", + "title": "+kubebuilder:default=OnFailure" + }, + "serviceAccountName": { + "type": "string", + "title": "+kubebuilder:default=pipeline" + }, + "sinks": { + "type": "array", + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Sink" + } + }, + "sources": { + "type": "array", + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "items": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Source" + } + }, + "terminator": { + "type": "boolean" + }, + "volumes": { + "type": "array", + "title": "+patchStrategy=merge\n+patchMergeKey=name", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Volume" + } + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.StepStatus": { + "type": "object", + "properties": { + "lastScaledAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { "type": "string" }, - "namespace": { + "phase": { + "type": "string" + }, + "replicas": { + "type": "integer" + }, + "sinkStatuses": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SinkStatus" + } + }, + "sourceStatuses": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.SourceStatus" + } + } + } + }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Storage": { + "type": "object", + "properties": { + "name": { "type": "string" + }, + "subPath": { + "type": "string", + "title": "volume name" } } }, + "github.com.argoproj_labs.argo_dataflow.api.v1alpha1.TLS": { + "type": "object" + }, "google.protobuf.Any": { "type": "object", "properties": { @@ -11990,6 +12996,37 @@ "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", "type": "string" }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Condition": { + "description": "// other fields\n}", + "type": "object", + "title": "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\ntype FooStatus struct{\n // Represents the observations of a foo's current state.\n // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n // +patchMergeKey=type\n // +patchStrategy=merge\n // +listType=map\n // +listMapKey=type\n Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`", + "properties": { + "lastTransitionTime": { + "title": "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:Type=string\n+kubebuilder:validation:Format=date-time", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "type": "string", + "title": "message is a human readable message indicating details about the transition.\nThis may be an empty string.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:MaxLength=32768" + }, + "observedGeneration": { + "type": "string", + "title": "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.\n+optional\n+kubebuilder:validation:Minimum=0" + }, + "reason": { + "type": "string", + "title": "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:MaxLength=1024\n+kubebuilder:validation:MinLength=1\n+kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`" + }, + "status": { + "type": "string", + "title": "status of the condition, one of True, False, Unknown.\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:Enum=True;False;Unknown" + }, + "type": { + "type": "string", + "title": "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n+required\n+kubebuilder:validation:Required\n+kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n+kubebuilder:validation:MaxLength=316" + } + } + }, "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": { "description": "CreateOptions may be provided when creating an API object.", "type": "object", @@ -12314,6 +13351,55 @@ "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { "type": "string" }, + "pipeline.DeletePipelineResponse": { + "type": "object" + }, + "pipeline.LogEntry": { + "type": "object", + "title": "structured log entry", + "properties": { + "msg": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "stepName": { + "type": "string" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + } + }, + "pipeline.PipelineWatchEvent": { + "type": "object", + "properties": { + "object": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline" + }, + "type": { + "type": "string" + } + } + }, + "pipeline.RestartPipelineResponse": { + "type": "object" + }, + "pipeline.StepWatchEvent": { + "type": "object", + "properties": { + "object": { + "$ref": "#/definitions/github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Step" + }, + "type": { + "type": "string" + } + } + }, "sensor.CreateSensorRequest": { "type": "object", "properties": { diff --git a/cmd/argo/commands/server.go b/cmd/argo/commands/server.go index cf38b2f2e423..7695435a0f28 100644 --- a/cmd/argo/commands/server.go +++ b/cmd/argo/commands/server.go @@ -14,6 +14,7 @@ import ( "github.com/skratchdot/open-golang/open" "github.com/spf13/cobra" "golang.org/x/net/context" + "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" _ "k8s.io/client-go/plugin/pkg/client/auth" restclient "k8s.io/client-go/rest" @@ -68,10 +69,11 @@ See %s`, help.ArgoSever), namespace := client.Namespace() clients := &types.Clients{ - Workflow: wfclientset.NewForConfigOrDie(config), + Dynamic: dynamic.NewForConfigOrDie(config), EventSource: eventsource.NewForConfigOrDie(config), - Sensor: sensor.NewForConfigOrDie(config), Kubernetes: kubernetes.NewForConfigOrDie(config), + Sensor: sensor.NewForConfigOrDie(config), + Workflow: wfclientset.NewForConfigOrDie(config), } ctx, cancel := context.WithCancel(context.Background()) defer cancel() diff --git a/go.mod b/go.mod index 67e7e2034055..75e9901c0146 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,8 @@ require ( github.com/Masterminds/sprig v2.22.0+incompatible github.com/TwinProduction/go-color v0.0.3 github.com/aliyun/aliyun-oss-go-sdk v2.1.5+incompatible - github.com/antonmedv/expr v1.8.8 + github.com/antonmedv/expr v1.8.9 + github.com/argoproj-labs/argo-dataflow v0.0.0-20210421163001-5357cde80aad github.com/argoproj/argo-events v1.2.0 github.com/argoproj/pkg v0.8.1 github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect @@ -29,7 +30,7 @@ require ( github.com/go-python/gpython v0.0.3 github.com/go-sql-driver/mysql v1.5.0 github.com/go-swagger/go-swagger v0.25.0 - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.4.3 github.com/gorilla/websocket v1.4.2 github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 @@ -56,12 +57,12 @@ require ( github.com/valyala/fasttemplate v1.1.0 github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonschema v1.2.0 - golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 + golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 golang.org/x/mod v0.4.0 // indirect - golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 + golang.org/x/net v0.0.0-20210326060303-6b1517762897 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d - golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 - golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6 + golang.org/x/sync v0.0.0-20201207232520-09787c993a3a + golang.org/x/tools v0.0.0-20210106214847-113979e3529a google.golang.org/api v0.20.0 google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98 google.golang.org/grpc v1.33.1 @@ -71,7 +72,6 @@ require ( gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/square/go-jose.v2 v2.5.1 gopkg.in/src-d/go-git.v4 v4.13.1 - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect k8s.io/api v0.19.6 k8s.io/apimachinery v0.19.6 k8s.io/client-go v0.19.6 @@ -84,3 +84,5 @@ require ( sigs.k8s.io/yaml v1.2.0 upper.io/db.v3 v3.6.3+incompatible ) + +exclude github.com/docker/spdystream v0.2.0 diff --git a/go.sum b/go.sum index 5529ae2bdabd..cfb1630a457f 100644 --- a/go.sum +++ b/go.sum @@ -78,12 +78,16 @@ github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= 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= @@ -94,6 +98,7 @@ github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdko github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/sarama v1.26.1/go.mod h1:NbSGBSSndYaIhRcBtY9V0U7AyH+x71bG668AuWys/yU= +github.com/Shopify/sarama v1.28.0/go.mod h1:j/2xTrU39dlzBmsxF1eQ2/DdWrxyBCl6pzz7a81o/ZY= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/TwinProduction/go-color v0.0.3 h1:2asEWaZo0Oh/FCib+KqHmEoideK8fMyX58JujC/dbDA= github.com/TwinProduction/go-color v0.0.3/go.mod h1:5hWpSyT+mmKPjCwPNEruBW5Dkbs/2PwOuU468ntEXNQ= @@ -116,12 +121,15 @@ github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/antonmedv/expr v1.8.8 h1:uVwIkIBNO2yn4vY2u2DQUqXTmv9jEEMCEcHa19G5weY= github.com/antonmedv/expr v1.8.8/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= +github.com/antonmedv/expr v1.8.9 h1:O9stiHmHHww9b4ozhPx7T6BK7fXfOCHJ8ybxf0833zw= +github.com/antonmedv/expr v1.8.9/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= github.com/apache/openwhisk-client-go v0.0.0-20190915054138-716c6f973eb2/go.mod h1:jLLKYP7+1+LFlIJW1n9U1gqeveLM1HIwa4ZHNOFxjPw= github.com/apache/pulsar-client-go v0.1.1/go.mod h1:mlxC65KL1BLhGO2bnT9zWMttVzR2czVPb27D477YpyU= github.com/ardielle/ardielle-go v1.5.2/go.mod h1:I4hy1n795cUhaVt/ojz83SNVCYIGsAFAONtv2Dr7HUI= github.com/ardielle/ardielle-tools v1.5.4/go.mod h1:oZN+JRMnqGiIhrzkRN9l26Cej9dEx4jeNG6A+AdkShk= +github.com/argoproj-labs/argo-dataflow v0.0.0-20210421163001-5357cde80aad h1:mV72As0PHSoUrxsg9I5XfYTaIO0L96J7L7S/qHOWahQ= +github.com/argoproj-labs/argo-dataflow v0.0.0-20210421163001-5357cde80aad/go.mod h1:85K86NqyK8WH+Efa8Iinh7jU8r1daKPtuTDJsZeX1KI= github.com/argoproj/argo-events v1.2.0 h1:CjF8hVUkeflhaOt9uWjJK6ai6b4pw0CCUUmOnmhWnNY= github.com/argoproj/argo-events v1.2.0/go.mod h1:eY+egQNBLXAz/AF4mqgHsMMa4Aur7frHjUfBg+RpX04= github.com/argoproj/pkg v0.8.1 h1:9h/sqAjUNyk0LaHkXR+2h94KNcSchvFX5aELNjXSOoc= @@ -259,6 +267,7 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTg github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= 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= @@ -275,6 +284,11 @@ github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= 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-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-billy/v5 v5.1.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.3.0/go.mod h1:xdX4bWJ48aOrdhnl2XqHYstHbbp6+LFS4r4X+lNVprw= 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= @@ -411,8 +425,9 @@ github.com/gobwas/glob v0.2.4-0.20181002190808-e7a84e9525fe/go.mod h1:d3Ez4x06l9 github.com/gogo/protobuf v1.1.1/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.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= 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/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= @@ -443,6 +458,7 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 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= @@ -450,8 +466,9 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw 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.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= 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/v31 v31.0.0/go.mod h1:NQPZol8/1sMoWYGN2yaALIBytu17gAWfhbweiEed3pM= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= @@ -490,6 +507,8 @@ github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51 github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg= github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.0.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= @@ -514,9 +533,11 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= 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-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v1.1.5/go.mod h1:gWVc3sv/wbDmR3rQsj1CAktEZzoz1YNK9NfGLXJ69/4= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= @@ -540,17 +561,20 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO 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/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= +github.com/hashicorp/raft v1.2.0/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= +github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/strcase v0.1.1/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10 h1:6q5mVkdH/vYmqngx7kZQTjJ5HRsx+ImorDIEQ+beJgc= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imkira/go-interpol v1.0.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N1Vk= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= @@ -560,11 +584,17 @@ github.com/jawher/mow.cli v1.0.4/go.mod h1:5hQj2V8g+qYmLUVWqu4Wuja1pI57M83EChYLV github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= +github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= github.com/jcmturner/gofork v0.0.0-20180107083740-2aebee971930/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= +github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= +github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= +github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= +github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= @@ -585,21 +615,25 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/juju/fslock v0.0.0-20160525022230-4d5c94c67b4b/go.mod h1:HMcgvsgd0Fjj4XXDkbjdmlbI505rUPBs6WBMYg2pXks= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck= +github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/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/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.8/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.8/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.9 h1:5OCMOdde1TCT2sookEuVeEZzA8bmRSFV3AwPDZAG8AA= github.com/klauspost/compress v1.11.9/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= @@ -615,8 +649,9 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= 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/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 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/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= @@ -625,8 +660,9 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/labstack/echo v3.2.1+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= github.com/labstack/gommon v0.2.7/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4= -github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8= +github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac/go.mod h1:Frd2bnT3w5FB5q49ENTfVlztJES+1k/7lyWX2+9gq/M= github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= @@ -652,6 +688,7 @@ github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope 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.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -672,8 +709,9 @@ github.com/minio/minio-go/v7 v7.0.2/go.mod h1:dJ80Mv2HeGkYLH1sqS/ksz07ON6csH3S6J github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.1.1 h1:Bp6x9R1Wn16SIz3OfeDr0b7RnCG2OB66Y7PQyC/cvq4= +github.com/mitchellh/copystructure v1.1.1/go.mod h1:EBArHfARyrSWO/+Wyr9zwEkc6XMFB9XyNgFNmRkZZU4= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -708,16 +746,20 @@ github.com/nats-io/gnatsd v1.4.1/go.mod h1:nqco77VO78hLCJpIcVfygDP2rPGfsEHkGTUk9 github.com/nats-io/go-nats v1.7.2/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0= 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/jwt v1.1.0/go.mod h1:n3cvmLfBfnpV4JJRN7lRYCyZnw48ksGsbThGXEk4w9M= github.com/nats-io/nats-server/v2 v2.1.4/go.mod h1:Jw1Z28soD/QasIA2uWjXyM9El1jly3YwyFOuR8tH1rg= +github.com/nats-io/nats-server/v2 v2.1.9/go.mod h1:9qVyoewoYXzG1ME9ox0HwkkzyYvnlBDugfR4Gg/8uHU= github.com/nats-io/nats-streaming-server v0.17.0/go.mod h1:ewPBEsmp62Znl3dcRsYtlcfwudxHEdYMtYqUQSt4fE0= +github.com/nats-io/nats-streaming-server v0.21.1/go.mod h1:2W8QfNVOtcFpmf0bRiwuLtRb0/hkX4NuOxPOFNOThVQ= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nats.go v1.10.0/go.mod h1:AjGArbfyR50+afOUotNX2Xs5SYHf+CoOa5HH1eEl2HE= 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/nkeys v0.1.4/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nats-io/stan.go v0.6.0/go.mod h1:eIcD5bi3pqbHT/xIIvXMwvzXYElgouBvaVRftaE+eac= +github.com/nats-io/stan.go v0.8.3/go.mod h1:Ejm8bbHnMTSptU6uNMAVuxeapMJYBB/Ml3ej6z4GoSY= github.com/nicksnyder/go-i18n v1.10.1-0.20190510212457-b280125b035a/go.mod h1:e4Di5xjP9oTVrC6y3C7C0HoSYXjSbhh/dU0eUV32nB4= -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/nsf/termbox-go v0.0.0-20190121233118-02980233997d/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= github.com/nsqio/go-nsq v1.0.8/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY= @@ -757,6 +799,7 @@ github.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.5.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.0+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/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -791,17 +834,20 @@ github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R 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.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/radovskyb/watcher v1.0.7/go.mod h1:78okwvY5wPdzcb1UYnip1pvrZNIVEIh/Cm+ZuvsUYIg= github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= github.com/rivo/tview v0.0.0-20200219210816-cd38d7432498/go.mod h1:6lkG1x+13OShEf0EaOCaTQYyB7d5nSbb181KtjlS+84= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ= github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= +github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -917,8 +963,9 @@ github.com/valyala/gozstd v1.7.0/go.mod h1:y5Ew47GLlP37EkTB+B4s7r6A5rdaeB7ftbl9z github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/xanzy/go-gitlab v0.33.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= -github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= +github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= +github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= @@ -944,6 +991,7 @@ github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZ 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= 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/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -999,8 +1047,11 @@ golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= +golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= 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= @@ -1078,10 +1129,13 @@ golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/ 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-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226101413-39120d07d75e/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210326060303-6b1517762897 h1:KrsHThm5nFk34YtATK1LsThyGhGbGe1olrte/HInHvs= +golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1098,8 +1152,9 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ 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 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= 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-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1133,8 +1188,10 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/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-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-20191008105621-543471e840be/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-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1157,8 +1214,11 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/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-20210225134936-a50acf3fe073 h1:8qxJSnu+7dRq6upnbntrmriWByIakBuct5OM/MdQC1M= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492 h1:Paq34FxTluEPvVyayQqMPgHm+vTOrIifmcYxFBx9TLg= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/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= @@ -1193,6 +1253,7 @@ golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190424220101-1e8e1cfdf96b/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 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-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -1231,8 +1292,10 @@ golang.org/x/tools v0.0.0-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWc golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200616195046-dc31b401abb5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6 h1:nULzSsKgihxFGLnQFv2T7lE5vIhOtg8ZPpJHapEt7o0= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +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= @@ -1318,8 +1381,9 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20161208181325-20d25e280405/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/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/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/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= @@ -1461,6 +1525,7 @@ 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/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= +sigs.k8s.io/controller-runtime v0.7.0 h1:bU20IBBEPccWz5+zXpLnpVsgBYxqclaHu1pVDl/gEt8= sigs.k8s.io/controller-runtime v0.7.0/go.mod h1:pJ3YBrJiAqMAZKi6UVGuE98ZrroV1p+pIhoHsMm9wdU= sigs.k8s.io/controller-tools v0.2.9/go.mod h1:ArP7w60JQKkZf7UU2oWTVnEhoNGA+sOMyuSuS+JFNDQ= sigs.k8s.io/controller-tools v0.4.1 h1:VkuV0MxlRPmRu5iTgBZU4UxUX2LiR99n3sdQGRxZF4w= diff --git a/pkg/apiclient/argo-kube-client.go b/pkg/apiclient/argo-kube-client.go index 911bc670dd9f..35b39cdca270 100644 --- a/pkg/apiclient/argo-kube-client.go +++ b/pkg/apiclient/argo-kube-client.go @@ -6,6 +6,7 @@ import ( eventsource "github.com/argoproj/argo-events/pkg/client/eventsource/clientset/versioned" sensor "github.com/argoproj/argo-events/pkg/client/sensor/clientset/versioned" + "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" @@ -43,6 +44,10 @@ func newArgoKubeClient(clientConfig clientcmd.ClientConfig, instanceIDService in if err != nil { return nil, nil, err } + dynamicClient, err := dynamic.NewForConfig(restConfig) + if err != nil { + return nil, nil, fmt.Errorf("failure to create dynamic client: %w", err) + } wfClient, err := workflow.NewForConfig(restConfig) if err != nil { return nil, nil, err @@ -59,7 +64,13 @@ func newArgoKubeClient(clientConfig clientcmd.ClientConfig, instanceIDService in if err != nil { return nil, nil, err } - clients := &types.Clients{Workflow: wfClient, EventSource: eventSourceInterface, Sensor: sensorInterface, Kubernetes: kubeClient} + clients := &types.Clients{ + Dynamic: dynamicClient, + EventSource: eventSourceInterface, + Kubernetes: kubeClient, + Sensor: sensorInterface, + Workflow: wfClient, + } gatekeeper, err := auth.NewGatekeeper(auth.Modes{auth.Server: true}, clients, restConfig, nil, auth.DefaultClientForAuthorization, "unused") if err != nil { return nil, nil, err diff --git a/pkg/apiclient/clusterworkflowtemplate/cluster-workflow-template.pb.go b/pkg/apiclient/clusterworkflowtemplate/cluster-workflow-template.pb.go index 3fa91505339b..aa9b1886a5d8 100644 --- a/pkg/apiclient/clusterworkflowtemplate/cluster-workflow-template.pb.go +++ b/pkg/apiclient/clusterworkflowtemplate/cluster-workflow-template.pb.go @@ -1274,10 +1274,7 @@ func (m *ClusterWorkflowTemplateCreateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthClusterWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthClusterWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1396,10 +1393,7 @@ func (m *ClusterWorkflowTemplateGetRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthClusterWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthClusterWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1486,10 +1480,7 @@ func (m *ClusterWorkflowTemplateListRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthClusterWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthClusterWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1608,10 +1599,7 @@ func (m *ClusterWorkflowTemplateUpdateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthClusterWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthClusterWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1730,10 +1718,7 @@ func (m *ClusterWorkflowTemplateDeleteRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthClusterWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthClusterWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1784,10 +1769,7 @@ func (m *ClusterWorkflowTemplateDeleteResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthClusterWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthClusterWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1910,10 +1892,7 @@ func (m *ClusterWorkflowTemplateLintRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthClusterWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthClusterWorkflowTemplate } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/cronworkflow/cron-workflow.pb.go b/pkg/apiclient/cronworkflow/cron-workflow.pb.go index 00e4cdac9582..99ca37a75dd4 100644 --- a/pkg/apiclient/cronworkflow/cron-workflow.pb.go +++ b/pkg/apiclient/cronworkflow/cron-workflow.pb.go @@ -1668,10 +1668,7 @@ func (m *LintCronWorkflowRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -1826,10 +1823,7 @@ func (m *CreateCronWorkflowRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -1948,10 +1942,7 @@ func (m *ListCronWorkflowsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -2102,10 +2093,7 @@ func (m *GetCronWorkflowRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -2256,10 +2244,7 @@ func (m *UpdateCronWorkflowRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -2410,10 +2395,7 @@ func (m *DeleteCronWorkflowRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -2464,10 +2446,7 @@ func (m *CronWorkflowDeletedResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -2582,10 +2561,7 @@ func (m *CronWorkflowSuspendRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { @@ -2700,10 +2676,7 @@ func (m *CronWorkflowResumeRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthCronWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthCronWorkflow } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/event/event.pb.go b/pkg/apiclient/event/event.pb.go index 60991103db4a..59b770386f1b 100644 --- a/pkg/apiclient/event/event.pb.go +++ b/pkg/apiclient/event/event.pb.go @@ -687,10 +687,7 @@ func (m *EventRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEvent - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEvent } if (iNdEx + skippy) > l { @@ -741,10 +738,7 @@ func (m *EventResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEvent - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEvent } if (iNdEx + skippy) > l { @@ -863,10 +857,7 @@ func (m *ListWorkflowEventBindingsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEvent - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEvent } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/eventsource/eventsource.pb.go b/pkg/apiclient/eventsource/eventsource.pb.go index 961bbd989ed6..7768031c36bc 100644 --- a/pkg/apiclient/eventsource/eventsource.pb.go +++ b/pkg/apiclient/eventsource/eventsource.pb.go @@ -1831,10 +1831,7 @@ func (m *CreateEventSourceRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -1949,10 +1946,7 @@ func (m *GetEventSourceRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -2071,10 +2065,7 @@ func (m *ListEventSourcesRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -2225,10 +2216,7 @@ func (m *DeleteEventSourceRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -2379,10 +2367,7 @@ func (m *UpdateEventSourceRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -2629,10 +2614,7 @@ func (m *EventSourcesLogsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -2911,10 +2893,7 @@ func (m *LogEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -3033,10 +3012,7 @@ func (m *EventSourceWatchEvent) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { @@ -3087,10 +3063,7 @@ func (m *EventSourceDeletedResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEventsource - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEventsource } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/info/info.pb.go b/pkg/apiclient/info/info.pb.go index 6627846f304d..f5cc78cdf970 100644 --- a/pkg/apiclient/info/info.pb.go +++ b/pkg/apiclient/info/info.pb.go @@ -835,10 +835,7 @@ func (m *GetInfoRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthInfo - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthInfo } if (iNdEx + skippy) > l { @@ -955,10 +952,7 @@ func (m *InfoResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthInfo - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthInfo } if (iNdEx + skippy) > l { @@ -1009,10 +1003,7 @@ func (m *GetVersionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthInfo - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthInfo } if (iNdEx + skippy) > l { @@ -1063,10 +1054,7 @@ func (m *GetUserInfoRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthInfo - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthInfo } if (iNdEx + skippy) > l { @@ -1297,10 +1285,7 @@ func (m *GetUserInfoResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthInfo - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthInfo } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/pipeline/forwarder_overwrite.go b/pkg/apiclient/pipeline/forwarder_overwrite.go new file mode 100644 index 000000000000..9dd891875d68 --- /dev/null +++ b/pkg/apiclient/pipeline/forwarder_overwrite.go @@ -0,0 +1,11 @@ +package pipeline + +import ( + "github.com/argoproj/pkg/grpc/http" +) + +func init() { + forward_PipelineService_WatchPipelines_0 = http.StreamForwarder + forward_PipelineService_PipelineLogs_0 = http.StreamForwarder + forward_PipelineService_WatchSteps_0 = http.StreamForwarder +} diff --git a/pkg/apiclient/pipeline/pipeline.pb.go b/pkg/apiclient/pipeline/pipeline.pb.go new file mode 100644 index 000000000000..979bfa776d57 --- /dev/null +++ b/pkg/apiclient/pipeline/pipeline.pb.go @@ -0,0 +1,3356 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: pkg/apiclient/pipeline/pipeline.proto + +package pipeline + +import ( + context "context" + fmt "fmt" + v1alpha1 "github.com/argoproj-labs/argo-dataflow/api/v1alpha1" + proto "github.com/gogo/protobuf/proto" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" + v11 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type ListPipelinesRequest struct { + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + ListOptions *v1.ListOptions `protobuf:"bytes,2,opt,name=listOptions,proto3" json:"listOptions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListPipelinesRequest) Reset() { *m = ListPipelinesRequest{} } +func (m *ListPipelinesRequest) String() string { return proto.CompactTextString(m) } +func (*ListPipelinesRequest) ProtoMessage() {} +func (*ListPipelinesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{0} +} +func (m *ListPipelinesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ListPipelinesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ListPipelinesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ListPipelinesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListPipelinesRequest.Merge(m, src) +} +func (m *ListPipelinesRequest) XXX_Size() int { + return m.Size() +} +func (m *ListPipelinesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListPipelinesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListPipelinesRequest proto.InternalMessageInfo + +func (m *ListPipelinesRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *ListPipelinesRequest) GetListOptions() *v1.ListOptions { + if m != nil { + return m.ListOptions + } + return nil +} + +type PipelineWatchEvent struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Object *v1alpha1.Pipeline `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PipelineWatchEvent) Reset() { *m = PipelineWatchEvent{} } +func (m *PipelineWatchEvent) String() string { return proto.CompactTextString(m) } +func (*PipelineWatchEvent) ProtoMessage() {} +func (*PipelineWatchEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{1} +} +func (m *PipelineWatchEvent) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PipelineWatchEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PipelineWatchEvent.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PipelineWatchEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_PipelineWatchEvent.Merge(m, src) +} +func (m *PipelineWatchEvent) XXX_Size() int { + return m.Size() +} +func (m *PipelineWatchEvent) XXX_DiscardUnknown() { + xxx_messageInfo_PipelineWatchEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_PipelineWatchEvent proto.InternalMessageInfo + +func (m *PipelineWatchEvent) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +func (m *PipelineWatchEvent) GetObject() *v1alpha1.Pipeline { + if m != nil { + return m.Object + } + return nil +} + +type GetPipelineRequest struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + GetOptions *v1.GetOptions `protobuf:"bytes,3,opt,name=getOptions,proto3" json:"getOptions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPipelineRequest) Reset() { *m = GetPipelineRequest{} } +func (m *GetPipelineRequest) String() string { return proto.CompactTextString(m) } +func (*GetPipelineRequest) ProtoMessage() {} +func (*GetPipelineRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{2} +} +func (m *GetPipelineRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetPipelineRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetPipelineRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetPipelineRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPipelineRequest.Merge(m, src) +} +func (m *GetPipelineRequest) XXX_Size() int { + return m.Size() +} +func (m *GetPipelineRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPipelineRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPipelineRequest proto.InternalMessageInfo + +func (m *GetPipelineRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetPipelineRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *GetPipelineRequest) GetGetOptions() *v1.GetOptions { + if m != nil { + return m.GetOptions + } + return nil +} + +type RestartPipelineRequest struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RestartPipelineRequest) Reset() { *m = RestartPipelineRequest{} } +func (m *RestartPipelineRequest) String() string { return proto.CompactTextString(m) } +func (*RestartPipelineRequest) ProtoMessage() {} +func (*RestartPipelineRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{3} +} +func (m *RestartPipelineRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RestartPipelineRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RestartPipelineRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RestartPipelineRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RestartPipelineRequest.Merge(m, src) +} +func (m *RestartPipelineRequest) XXX_Size() int { + return m.Size() +} +func (m *RestartPipelineRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RestartPipelineRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RestartPipelineRequest proto.InternalMessageInfo + +func (m *RestartPipelineRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *RestartPipelineRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +type RestartPipelineResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RestartPipelineResponse) Reset() { *m = RestartPipelineResponse{} } +func (m *RestartPipelineResponse) String() string { return proto.CompactTextString(m) } +func (*RestartPipelineResponse) ProtoMessage() {} +func (*RestartPipelineResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{4} +} +func (m *RestartPipelineResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RestartPipelineResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RestartPipelineResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RestartPipelineResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RestartPipelineResponse.Merge(m, src) +} +func (m *RestartPipelineResponse) XXX_Size() int { + return m.Size() +} +func (m *RestartPipelineResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RestartPipelineResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RestartPipelineResponse proto.InternalMessageInfo + +type DeletePipelineRequest struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + DeleteOptions *v1.DeleteOptions `protobuf:"bytes,3,opt,name=deleteOptions,proto3" json:"deleteOptions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeletePipelineRequest) Reset() { *m = DeletePipelineRequest{} } +func (m *DeletePipelineRequest) String() string { return proto.CompactTextString(m) } +func (*DeletePipelineRequest) ProtoMessage() {} +func (*DeletePipelineRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{5} +} +func (m *DeletePipelineRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DeletePipelineRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DeletePipelineRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DeletePipelineRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeletePipelineRequest.Merge(m, src) +} +func (m *DeletePipelineRequest) XXX_Size() int { + return m.Size() +} +func (m *DeletePipelineRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeletePipelineRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeletePipelineRequest proto.InternalMessageInfo + +func (m *DeletePipelineRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *DeletePipelineRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *DeletePipelineRequest) GetDeleteOptions() *v1.DeleteOptions { + if m != nil { + return m.DeleteOptions + } + return nil +} + +type DeletePipelineResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeletePipelineResponse) Reset() { *m = DeletePipelineResponse{} } +func (m *DeletePipelineResponse) String() string { return proto.CompactTextString(m) } +func (*DeletePipelineResponse) ProtoMessage() {} +func (*DeletePipelineResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{6} +} +func (m *DeletePipelineResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DeletePipelineResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DeletePipelineResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DeletePipelineResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeletePipelineResponse.Merge(m, src) +} +func (m *DeletePipelineResponse) XXX_Size() int { + return m.Size() +} +func (m *DeletePipelineResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeletePipelineResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeletePipelineResponse proto.InternalMessageInfo + +type WatchStepRequest struct { + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + ListOptions *v1.ListOptions `protobuf:"bytes,2,opt,name=listOptions,proto3" json:"listOptions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WatchStepRequest) Reset() { *m = WatchStepRequest{} } +func (m *WatchStepRequest) String() string { return proto.CompactTextString(m) } +func (*WatchStepRequest) ProtoMessage() {} +func (*WatchStepRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{7} +} +func (m *WatchStepRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WatchStepRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WatchStepRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WatchStepRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_WatchStepRequest.Merge(m, src) +} +func (m *WatchStepRequest) XXX_Size() int { + return m.Size() +} +func (m *WatchStepRequest) XXX_DiscardUnknown() { + xxx_messageInfo_WatchStepRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_WatchStepRequest proto.InternalMessageInfo + +func (m *WatchStepRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *WatchStepRequest) GetListOptions() *v1.ListOptions { + if m != nil { + return m.ListOptions + } + return nil +} + +type StepWatchEvent struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Object *v1alpha1.Step `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StepWatchEvent) Reset() { *m = StepWatchEvent{} } +func (m *StepWatchEvent) String() string { return proto.CompactTextString(m) } +func (*StepWatchEvent) ProtoMessage() {} +func (*StepWatchEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{8} +} +func (m *StepWatchEvent) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StepWatchEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StepWatchEvent.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StepWatchEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepWatchEvent.Merge(m, src) +} +func (m *StepWatchEvent) XXX_Size() int { + return m.Size() +} +func (m *StepWatchEvent) XXX_DiscardUnknown() { + xxx_messageInfo_StepWatchEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_StepWatchEvent proto.InternalMessageInfo + +func (m *StepWatchEvent) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +func (m *StepWatchEvent) GetObject() *v1alpha1.Step { + if m != nil { + return m.Object + } + return nil +} + +type PipelineLogsRequest struct { + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + // optional - only return entries for this pipeline + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // optional - only return entries for this step + StepName string `protobuf:"bytes,3,opt,name=stepName,proto3" json:"stepName,omitempty"` + PodLogOptions *v11.PodLogOptions `protobuf:"bytes,5,opt,name=podLogOptions,proto3" json:"podLogOptions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PipelineLogsRequest) Reset() { *m = PipelineLogsRequest{} } +func (m *PipelineLogsRequest) String() string { return proto.CompactTextString(m) } +func (*PipelineLogsRequest) ProtoMessage() {} +func (*PipelineLogsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{9} +} +func (m *PipelineLogsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PipelineLogsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PipelineLogsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PipelineLogsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_PipelineLogsRequest.Merge(m, src) +} +func (m *PipelineLogsRequest) XXX_Size() int { + return m.Size() +} +func (m *PipelineLogsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_PipelineLogsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_PipelineLogsRequest proto.InternalMessageInfo + +func (m *PipelineLogsRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *PipelineLogsRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *PipelineLogsRequest) GetStepName() string { + if m != nil { + return m.StepName + } + return "" +} + +func (m *PipelineLogsRequest) GetPodLogOptions() *v11.PodLogOptions { + if m != nil { + return m.PodLogOptions + } + return nil +} + +// structured log entry +type LogEntry struct { + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + PipelineName string `protobuf:"bytes,2,opt,name=pipelineName,proto3" json:"pipelineName,omitempty"` + StepName string `protobuf:"bytes,3,opt,name=stepName,proto3" json:"stepName,omitempty"` + Time *v1.Time `protobuf:"bytes,6,opt,name=time,proto3" json:"time,omitempty"` + Msg string `protobuf:"bytes,7,opt,name=msg,proto3" json:"msg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogEntry) Reset() { *m = LogEntry{} } +func (m *LogEntry) String() string { return proto.CompactTextString(m) } +func (*LogEntry) ProtoMessage() {} +func (*LogEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_71dfb1a81115c785, []int{10} +} +func (m *LogEntry) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *LogEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_LogEntry.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *LogEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogEntry.Merge(m, src) +} +func (m *LogEntry) XXX_Size() int { + return m.Size() +} +func (m *LogEntry) XXX_DiscardUnknown() { + xxx_messageInfo_LogEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_LogEntry proto.InternalMessageInfo + +func (m *LogEntry) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *LogEntry) GetPipelineName() string { + if m != nil { + return m.PipelineName + } + return "" +} + +func (m *LogEntry) GetStepName() string { + if m != nil { + return m.StepName + } + return "" +} + +func (m *LogEntry) GetTime() *v1.Time { + if m != nil { + return m.Time + } + return nil +} + +func (m *LogEntry) GetMsg() string { + if m != nil { + return m.Msg + } + return "" +} + +func init() { + proto.RegisterType((*ListPipelinesRequest)(nil), "pipeline.ListPipelinesRequest") + proto.RegisterType((*PipelineWatchEvent)(nil), "pipeline.PipelineWatchEvent") + proto.RegisterType((*GetPipelineRequest)(nil), "pipeline.GetPipelineRequest") + proto.RegisterType((*RestartPipelineRequest)(nil), "pipeline.RestartPipelineRequest") + proto.RegisterType((*RestartPipelineResponse)(nil), "pipeline.RestartPipelineResponse") + proto.RegisterType((*DeletePipelineRequest)(nil), "pipeline.DeletePipelineRequest") + proto.RegisterType((*DeletePipelineResponse)(nil), "pipeline.DeletePipelineResponse") + proto.RegisterType((*WatchStepRequest)(nil), "pipeline.WatchStepRequest") + proto.RegisterType((*StepWatchEvent)(nil), "pipeline.StepWatchEvent") + proto.RegisterType((*PipelineLogsRequest)(nil), "pipeline.PipelineLogsRequest") + proto.RegisterType((*LogEntry)(nil), "pipeline.LogEntry") +} + +func init() { + proto.RegisterFile("pkg/apiclient/pipeline/pipeline.proto", fileDescriptor_71dfb1a81115c785) +} + +var fileDescriptor_71dfb1a81115c785 = []byte{ + // 853 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x6f, 0xdc, 0x44, + 0x14, 0xd6, 0x24, 0x21, 0x4d, 0x5f, 0x9a, 0xb4, 0x1a, 0xa0, 0x2c, 0x56, 0xba, 0xdd, 0x8e, 0x28, + 0x0a, 0xa5, 0x1d, 0x67, 0xdb, 0x1e, 0xe8, 0x01, 0x24, 0xa0, 0xd5, 0x4a, 0x68, 0x55, 0x82, 0x03, + 0x42, 0x70, 0xa9, 0x66, 0xbd, 0x83, 0xd7, 0x5d, 0xdb, 0x63, 0x3c, 0xd3, 0x8d, 0x22, 0x54, 0x10, + 0x48, 0x1c, 0x90, 0xb8, 0x71, 0x29, 0x77, 0x8e, 0xfc, 0x05, 0x5c, 0xb9, 0x70, 0x44, 0xe2, 0x1f, + 0x40, 0x11, 0x7f, 0x08, 0x9a, 0x59, 0x8f, 0x7f, 0xec, 0x9a, 0xd6, 0x62, 0x0f, 0xbd, 0xcd, 0xaf, + 0xf7, 0xbd, 0xef, 0x7d, 0xf3, 0xfc, 0x79, 0xe0, 0x6a, 0x3a, 0x0d, 0x5c, 0x96, 0x86, 0x7e, 0x14, + 0xf2, 0x44, 0xb9, 0x69, 0x98, 0xf2, 0x28, 0x4c, 0x78, 0x31, 0xa0, 0x69, 0x26, 0x94, 0xc0, 0x5b, + 0x76, 0xee, 0xec, 0x05, 0x42, 0x04, 0x11, 0xd7, 0x31, 0x2e, 0x4b, 0x12, 0xa1, 0x98, 0x0a, 0x45, + 0x22, 0xe7, 0xe7, 0x9c, 0xdb, 0xd3, 0xb7, 0x24, 0x0d, 0x85, 0xde, 0x8d, 0x99, 0x3f, 0x09, 0x13, + 0x9e, 0x9d, 0xb8, 0x79, 0x0a, 0xe9, 0xc6, 0x5c, 0x31, 0x77, 0xd6, 0x77, 0x03, 0x9e, 0xf0, 0x8c, + 0x29, 0x3e, 0xce, 0xa3, 0x48, 0x19, 0xe5, 0xfa, 0x22, 0xe3, 0x4d, 0x67, 0xde, 0x0f, 0x42, 0x35, + 0x79, 0x34, 0xa2, 0xbe, 0x88, 0x5d, 0x96, 0x05, 0x22, 0xcd, 0xc4, 0xc3, 0x1b, 0x11, 0x1b, 0x49, + 0x33, 0xbb, 0x31, 0x66, 0x8a, 0x7d, 0x11, 0x89, 0x63, 0x83, 0x31, 0xeb, 0xb3, 0x28, 0x9d, 0xb0, + 0x25, 0x10, 0xf2, 0x03, 0x82, 0x97, 0x86, 0xa1, 0x54, 0x87, 0x79, 0x35, 0xd2, 0xe3, 0x5f, 0x3e, + 0xe2, 0x52, 0xe1, 0x3d, 0x38, 0x9b, 0xb0, 0x98, 0xcb, 0x94, 0xf9, 0xbc, 0x83, 0x7a, 0x68, 0xff, + 0xac, 0x57, 0x2e, 0xe0, 0x23, 0xd8, 0x8e, 0x42, 0xa9, 0x3e, 0x4c, 0x4d, 0xa9, 0x9d, 0xb5, 0x1e, + 0xda, 0xdf, 0xbe, 0xd9, 0xa7, 0x73, 0xd6, 0xb4, 0x5a, 0x2b, 0x4d, 0xa7, 0x81, 0x5e, 0x90, 0x54, + 0xd7, 0x4a, 0x67, 0x7d, 0x3a, 0x2c, 0x03, 0xbd, 0x2a, 0x0a, 0xf9, 0x06, 0xb0, 0xa5, 0xf1, 0x29, + 0x53, 0xfe, 0xe4, 0xde, 0x8c, 0x27, 0x0a, 0x63, 0xd8, 0x50, 0x27, 0xa9, 0xe5, 0x60, 0xc6, 0xf8, + 0x13, 0xd8, 0x14, 0xa3, 0x87, 0xdc, 0x57, 0x79, 0xe6, 0xb7, 0x69, 0xa9, 0x05, 0xb5, 0x5a, 0x3c, + 0xd0, 0x5a, 0x98, 0xd9, 0x03, 0xab, 0x85, 0x26, 0x42, 0xad, 0x16, 0xd4, 0x26, 0xf3, 0x72, 0x30, + 0xf2, 0x04, 0x01, 0x1e, 0xf0, 0x42, 0x0b, 0x2b, 0x05, 0x86, 0x0d, 0x5d, 0xb9, 0x65, 0xa0, 0xc7, + 0x75, 0x79, 0xd6, 0x16, 0xe5, 0x39, 0x04, 0x08, 0x78, 0xa1, 0xce, 0xba, 0xe1, 0x78, 0xd0, 0x4e, + 0x9d, 0x41, 0x11, 0xe7, 0x55, 0x30, 0xc8, 0x07, 0x70, 0xd1, 0xe3, 0x52, 0xb1, 0x6c, 0x75, 0x76, + 0xe4, 0x55, 0x78, 0x65, 0x09, 0x4b, 0xa6, 0x22, 0x91, 0x9c, 0xfc, 0x82, 0xe0, 0xe5, 0xbb, 0x3c, + 0xe2, 0x8a, 0xaf, 0x2e, 0xc2, 0x67, 0xb0, 0x33, 0x36, 0x50, 0x75, 0x1d, 0x6e, 0xb5, 0xd3, 0xe1, + 0x6e, 0x35, 0xd4, 0xab, 0x23, 0x91, 0x0e, 0x5c, 0x5c, 0x64, 0x99, 0x17, 0xf0, 0x3d, 0x82, 0x0b, + 0xa6, 0x79, 0x8e, 0x14, 0x4f, 0x9f, 0x63, 0x2f, 0x1f, 0xc3, 0xae, 0x66, 0xf0, 0x8c, 0x3e, 0xfe, + 0x68, 0xa1, 0x8f, 0xef, 0xfc, 0xaf, 0x3e, 0x36, 0xa5, 0xda, 0x1e, 0xfe, 0x15, 0xc1, 0x8b, 0x56, + 0x95, 0xa1, 0x08, 0x5a, 0x7e, 0xcf, 0xf6, 0x76, 0xd7, 0x2a, 0xb7, 0xeb, 0xc0, 0x96, 0x54, 0x3c, + 0xbd, 0xaf, 0xd7, 0xd7, 0xcd, 0x7a, 0x31, 0xc7, 0x03, 0xd8, 0x49, 0xc5, 0x78, 0x28, 0x02, 0xab, + 0xda, 0x0b, 0x86, 0xff, 0x95, 0x8a, 0x6a, 0x54, 0xfb, 0x96, 0xd6, 0xe8, 0xb0, 0x7a, 0xd0, 0xab, + 0xc7, 0x91, 0xdf, 0x10, 0x6c, 0x0d, 0x45, 0x70, 0x2f, 0x51, 0xd9, 0xc9, 0x33, 0x38, 0x12, 0x38, + 0x67, 0x3d, 0xf7, 0x7e, 0xc9, 0xb5, 0xb6, 0xf6, 0x54, 0xce, 0xef, 0xc0, 0x86, 0x0a, 0x63, 0xde, + 0xd9, 0x34, 0x54, 0xaf, 0xb5, 0xbb, 0xe0, 0x8f, 0xc3, 0x98, 0x7b, 0x26, 0x0e, 0x5f, 0x80, 0xf5, + 0x58, 0x06, 0x9d, 0x33, 0x06, 0x56, 0x0f, 0x6f, 0xfe, 0x7e, 0x06, 0xce, 0x5b, 0xad, 0x8f, 0x78, + 0x36, 0x0b, 0x7d, 0x8e, 0x7f, 0x46, 0xb0, 0x53, 0x33, 0x54, 0xdc, 0xa5, 0xc5, 0xaf, 0xa3, 0xc9, + 0x69, 0x9d, 0x77, 0x57, 0x32, 0x2f, 0x0d, 0x49, 0xae, 0x7e, 0xf7, 0xd7, 0x3f, 0x3f, 0xad, 0x5d, + 0xc6, 0x97, 0x72, 0xb3, 0x2f, 0x7e, 0x56, 0xd2, 0xfd, 0xaa, 0x10, 0xf0, 0x31, 0xfe, 0x1a, 0x76, + 0x4d, 0x43, 0xb6, 0xe7, 0xb6, 0x57, 0xee, 0x2f, 0x5b, 0x33, 0xb9, 0x6e, 0xd2, 0xbe, 0x8e, 0x5f, + 0xb3, 0x69, 0xa5, 0xca, 0x38, 0x8b, 0x9b, 0xb3, 0x1f, 0x20, 0xfc, 0x04, 0xc1, 0x76, 0xc5, 0x5f, + 0x71, 0x05, 0x7d, 0xd9, 0x76, 0x9d, 0xd5, 0x4c, 0x7d, 0x99, 0x5c, 0x23, 0xab, 0xf9, 0xf8, 0x31, + 0xfe, 0x11, 0xc1, 0xf9, 0x05, 0x53, 0xc4, 0xbd, 0x92, 0x5e, 0xb3, 0xf7, 0x3a, 0x57, 0x9e, 0x72, + 0x22, 0x37, 0xa4, 0xdb, 0x86, 0x06, 0x25, 0xd7, 0xdb, 0xd0, 0x70, 0xb3, 0x39, 0x0a, 0xfe, 0x16, + 0xc1, 0x6e, 0xdd, 0xe1, 0xf0, 0xe5, 0x32, 0x57, 0xa3, 0x43, 0x3b, 0xbd, 0xff, 0x3e, 0x90, 0x73, + 0xc9, 0x25, 0xb9, 0xd6, 0x4e, 0x92, 0x19, 0x9c, 0xab, 0x1a, 0x09, 0xbe, 0xb4, 0xdc, 0x0b, 0x15, + 0x83, 0x71, 0x70, 0xa5, 0x95, 0xf2, 0x0f, 0x9a, 0xf4, 0x4d, 0xc2, 0x37, 0xf1, 0x1b, 0x6d, 0x1a, + 0xc4, 0x8d, 0x44, 0x20, 0x0f, 0x10, 0x4e, 0x00, 0x0a, 0x07, 0x97, 0xd8, 0x29, 0x61, 0x17, 0x7d, + 0xdd, 0xe9, 0x94, 0x7b, 0x75, 0xb3, 0x25, 0xfb, 0x26, 0x31, 0xc1, 0xbd, 0x85, 0xc4, 0xda, 0x0c, + 0x16, 0xba, 0xf2, 0xbd, 0xc1, 0x1f, 0xa7, 0x5d, 0xf4, 0xe7, 0x69, 0x17, 0xfd, 0x7d, 0xda, 0x45, + 0x9f, 0xdf, 0x69, 0x78, 0x55, 0xcd, 0x1f, 0x54, 0xc7, 0x22, 0x9b, 0xea, 0x7e, 0x93, 0x6e, 0xf3, + 0x0b, 0x71, 0xb4, 0x69, 0x9e, 0x54, 0xb7, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x94, 0x6b, 0xb8, + 0xfd, 0x42, 0x0a, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// PipelineServiceClient is the client API for PipelineService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type PipelineServiceClient interface { + ListPipelines(ctx context.Context, in *ListPipelinesRequest, opts ...grpc.CallOption) (*v1alpha1.PipelineList, error) + WatchPipelines(ctx context.Context, in *ListPipelinesRequest, opts ...grpc.CallOption) (PipelineService_WatchPipelinesClient, error) + GetPipeline(ctx context.Context, in *GetPipelineRequest, opts ...grpc.CallOption) (*v1alpha1.Pipeline, error) + RestartPipeline(ctx context.Context, in *RestartPipelineRequest, opts ...grpc.CallOption) (*RestartPipelineResponse, error) + DeletePipeline(ctx context.Context, in *DeletePipelineRequest, opts ...grpc.CallOption) (*DeletePipelineResponse, error) + PipelineLogs(ctx context.Context, in *PipelineLogsRequest, opts ...grpc.CallOption) (PipelineService_PipelineLogsClient, error) + WatchSteps(ctx context.Context, in *WatchStepRequest, opts ...grpc.CallOption) (PipelineService_WatchStepsClient, error) +} + +type pipelineServiceClient struct { + cc *grpc.ClientConn +} + +func NewPipelineServiceClient(cc *grpc.ClientConn) PipelineServiceClient { + return &pipelineServiceClient{cc} +} + +func (c *pipelineServiceClient) ListPipelines(ctx context.Context, in *ListPipelinesRequest, opts ...grpc.CallOption) (*v1alpha1.PipelineList, error) { + out := new(v1alpha1.PipelineList) + err := c.cc.Invoke(ctx, "/pipeline.PipelineService/ListPipelines", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineServiceClient) WatchPipelines(ctx context.Context, in *ListPipelinesRequest, opts ...grpc.CallOption) (PipelineService_WatchPipelinesClient, error) { + stream, err := c.cc.NewStream(ctx, &_PipelineService_serviceDesc.Streams[0], "/pipeline.PipelineService/WatchPipelines", opts...) + if err != nil { + return nil, err + } + x := &pipelineServiceWatchPipelinesClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type PipelineService_WatchPipelinesClient interface { + Recv() (*PipelineWatchEvent, error) + grpc.ClientStream +} + +type pipelineServiceWatchPipelinesClient struct { + grpc.ClientStream +} + +func (x *pipelineServiceWatchPipelinesClient) Recv() (*PipelineWatchEvent, error) { + m := new(PipelineWatchEvent) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *pipelineServiceClient) GetPipeline(ctx context.Context, in *GetPipelineRequest, opts ...grpc.CallOption) (*v1alpha1.Pipeline, error) { + out := new(v1alpha1.Pipeline) + err := c.cc.Invoke(ctx, "/pipeline.PipelineService/GetPipeline", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineServiceClient) RestartPipeline(ctx context.Context, in *RestartPipelineRequest, opts ...grpc.CallOption) (*RestartPipelineResponse, error) { + out := new(RestartPipelineResponse) + err := c.cc.Invoke(ctx, "/pipeline.PipelineService/RestartPipeline", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineServiceClient) DeletePipeline(ctx context.Context, in *DeletePipelineRequest, opts ...grpc.CallOption) (*DeletePipelineResponse, error) { + out := new(DeletePipelineResponse) + err := c.cc.Invoke(ctx, "/pipeline.PipelineService/DeletePipeline", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineServiceClient) PipelineLogs(ctx context.Context, in *PipelineLogsRequest, opts ...grpc.CallOption) (PipelineService_PipelineLogsClient, error) { + stream, err := c.cc.NewStream(ctx, &_PipelineService_serviceDesc.Streams[1], "/pipeline.PipelineService/PipelineLogs", opts...) + if err != nil { + return nil, err + } + x := &pipelineServicePipelineLogsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type PipelineService_PipelineLogsClient interface { + Recv() (*LogEntry, error) + grpc.ClientStream +} + +type pipelineServicePipelineLogsClient struct { + grpc.ClientStream +} + +func (x *pipelineServicePipelineLogsClient) Recv() (*LogEntry, error) { + m := new(LogEntry) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *pipelineServiceClient) WatchSteps(ctx context.Context, in *WatchStepRequest, opts ...grpc.CallOption) (PipelineService_WatchStepsClient, error) { + stream, err := c.cc.NewStream(ctx, &_PipelineService_serviceDesc.Streams[2], "/pipeline.PipelineService/WatchSteps", opts...) + if err != nil { + return nil, err + } + x := &pipelineServiceWatchStepsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type PipelineService_WatchStepsClient interface { + Recv() (*StepWatchEvent, error) + grpc.ClientStream +} + +type pipelineServiceWatchStepsClient struct { + grpc.ClientStream +} + +func (x *pipelineServiceWatchStepsClient) Recv() (*StepWatchEvent, error) { + m := new(StepWatchEvent) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// PipelineServiceServer is the server API for PipelineService service. +type PipelineServiceServer interface { + ListPipelines(context.Context, *ListPipelinesRequest) (*v1alpha1.PipelineList, error) + WatchPipelines(*ListPipelinesRequest, PipelineService_WatchPipelinesServer) error + GetPipeline(context.Context, *GetPipelineRequest) (*v1alpha1.Pipeline, error) + RestartPipeline(context.Context, *RestartPipelineRequest) (*RestartPipelineResponse, error) + DeletePipeline(context.Context, *DeletePipelineRequest) (*DeletePipelineResponse, error) + PipelineLogs(*PipelineLogsRequest, PipelineService_PipelineLogsServer) error + WatchSteps(*WatchStepRequest, PipelineService_WatchStepsServer) error +} + +// UnimplementedPipelineServiceServer can be embedded to have forward compatible implementations. +type UnimplementedPipelineServiceServer struct { +} + +func (*UnimplementedPipelineServiceServer) ListPipelines(ctx context.Context, req *ListPipelinesRequest) (*v1alpha1.PipelineList, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPipelines not implemented") +} +func (*UnimplementedPipelineServiceServer) WatchPipelines(req *ListPipelinesRequest, srv PipelineService_WatchPipelinesServer) error { + return status.Errorf(codes.Unimplemented, "method WatchPipelines not implemented") +} +func (*UnimplementedPipelineServiceServer) GetPipeline(ctx context.Context, req *GetPipelineRequest) (*v1alpha1.Pipeline, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPipeline not implemented") +} +func (*UnimplementedPipelineServiceServer) RestartPipeline(ctx context.Context, req *RestartPipelineRequest) (*RestartPipelineResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartPipeline not implemented") +} +func (*UnimplementedPipelineServiceServer) DeletePipeline(ctx context.Context, req *DeletePipelineRequest) (*DeletePipelineResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePipeline not implemented") +} +func (*UnimplementedPipelineServiceServer) PipelineLogs(req *PipelineLogsRequest, srv PipelineService_PipelineLogsServer) error { + return status.Errorf(codes.Unimplemented, "method PipelineLogs not implemented") +} +func (*UnimplementedPipelineServiceServer) WatchSteps(req *WatchStepRequest, srv PipelineService_WatchStepsServer) error { + return status.Errorf(codes.Unimplemented, "method WatchSteps not implemented") +} + +func RegisterPipelineServiceServer(s *grpc.Server, srv PipelineServiceServer) { + s.RegisterService(&_PipelineService_serviceDesc, srv) +} + +func _PipelineService_ListPipelines_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPipelinesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServiceServer).ListPipelines(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pipeline.PipelineService/ListPipelines", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServiceServer).ListPipelines(ctx, req.(*ListPipelinesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PipelineService_WatchPipelines_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListPipelinesRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(PipelineServiceServer).WatchPipelines(m, &pipelineServiceWatchPipelinesServer{stream}) +} + +type PipelineService_WatchPipelinesServer interface { + Send(*PipelineWatchEvent) error + grpc.ServerStream +} + +type pipelineServiceWatchPipelinesServer struct { + grpc.ServerStream +} + +func (x *pipelineServiceWatchPipelinesServer) Send(m *PipelineWatchEvent) error { + return x.ServerStream.SendMsg(m) +} + +func _PipelineService_GetPipeline_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPipelineRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServiceServer).GetPipeline(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pipeline.PipelineService/GetPipeline", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServiceServer).GetPipeline(ctx, req.(*GetPipelineRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PipelineService_RestartPipeline_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RestartPipelineRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServiceServer).RestartPipeline(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pipeline.PipelineService/RestartPipeline", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServiceServer).RestartPipeline(ctx, req.(*RestartPipelineRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PipelineService_DeletePipeline_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePipelineRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServiceServer).DeletePipeline(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pipeline.PipelineService/DeletePipeline", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServiceServer).DeletePipeline(ctx, req.(*DeletePipelineRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PipelineService_PipelineLogs_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(PipelineLogsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(PipelineServiceServer).PipelineLogs(m, &pipelineServicePipelineLogsServer{stream}) +} + +type PipelineService_PipelineLogsServer interface { + Send(*LogEntry) error + grpc.ServerStream +} + +type pipelineServicePipelineLogsServer struct { + grpc.ServerStream +} + +func (x *pipelineServicePipelineLogsServer) Send(m *LogEntry) error { + return x.ServerStream.SendMsg(m) +} + +func _PipelineService_WatchSteps_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(WatchStepRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(PipelineServiceServer).WatchSteps(m, &pipelineServiceWatchStepsServer{stream}) +} + +type PipelineService_WatchStepsServer interface { + Send(*StepWatchEvent) error + grpc.ServerStream +} + +type pipelineServiceWatchStepsServer struct { + grpc.ServerStream +} + +func (x *pipelineServiceWatchStepsServer) Send(m *StepWatchEvent) error { + return x.ServerStream.SendMsg(m) +} + +var _PipelineService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pipeline.PipelineService", + HandlerType: (*PipelineServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListPipelines", + Handler: _PipelineService_ListPipelines_Handler, + }, + { + MethodName: "GetPipeline", + Handler: _PipelineService_GetPipeline_Handler, + }, + { + MethodName: "RestartPipeline", + Handler: _PipelineService_RestartPipeline_Handler, + }, + { + MethodName: "DeletePipeline", + Handler: _PipelineService_DeletePipeline_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "WatchPipelines", + Handler: _PipelineService_WatchPipelines_Handler, + ServerStreams: true, + }, + { + StreamName: "PipelineLogs", + Handler: _PipelineService_PipelineLogs_Handler, + ServerStreams: true, + }, + { + StreamName: "WatchSteps", + Handler: _PipelineService_WatchSteps_Handler, + ServerStreams: true, + }, + }, + Metadata: "pkg/apiclient/pipeline/pipeline.proto", +} + +func (m *ListPipelinesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListPipelinesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ListPipelinesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.ListOptions != nil { + { + size, err := m.ListOptions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PipelineWatchEvent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PipelineWatchEvent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PipelineWatchEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Object != nil { + { + size, err := m.Object.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetPipelineRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetPipelineRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetPipelineRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.GetOptions != nil { + { + size, err := m.GetOptions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RestartPipelineRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RestartPipelineRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RestartPipelineRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RestartPipelineResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RestartPipelineResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RestartPipelineResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *DeletePipelineRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeletePipelineRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DeletePipelineRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.DeleteOptions != nil { + { + size, err := m.DeleteOptions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DeletePipelineResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeletePipelineResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DeletePipelineResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *WatchStepRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WatchStepRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WatchStepRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.ListOptions != nil { + { + size, err := m.ListOptions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StepWatchEvent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StepWatchEvent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StepWatchEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Object != nil { + { + size, err := m.Object.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PipelineLogsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PipelineLogsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PipelineLogsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.PodLogOptions != nil { + { + size, err := m.PodLogOptions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.StepName) > 0 { + i -= len(m.StepName) + copy(dAtA[i:], m.StepName) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.StepName))) + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *LogEntry) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LogEntry) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *LogEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Msg) > 0 { + i -= len(m.Msg) + copy(dAtA[i:], m.Msg) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Msg))) + i-- + dAtA[i] = 0x3a + } + if m.Time != nil { + { + size, err := m.Time.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPipeline(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if len(m.StepName) > 0 { + i -= len(m.StepName) + copy(dAtA[i:], m.StepName) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.StepName))) + i-- + dAtA[i] = 0x1a + } + if len(m.PipelineName) > 0 { + i -= len(m.PipelineName) + copy(dAtA[i:], m.PipelineName) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.PipelineName))) + i-- + dAtA[i] = 0x12 + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintPipeline(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintPipeline(dAtA []byte, offset int, v uint64) int { + offset -= sovPipeline(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *ListPipelinesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.ListOptions != nil { + l = m.ListOptions.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PipelineWatchEvent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.Object != nil { + l = m.Object.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *GetPipelineRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.GetOptions != nil { + l = m.GetOptions.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RestartPipelineRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RestartPipelineResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *DeletePipelineRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.DeleteOptions != nil { + l = m.DeleteOptions.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *DeletePipelineResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *WatchStepRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.ListOptions != nil { + l = m.ListOptions.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *StepWatchEvent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.Object != nil { + l = m.Object.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PipelineLogsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.StepName) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.PodLogOptions != nil { + l = m.PodLogOptions.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *LogEntry) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.PipelineName) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.StepName) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.Time != nil { + l = m.Time.Size() + n += 1 + l + sovPipeline(uint64(l)) + } + l = len(m.Msg) + if l > 0 { + n += 1 + l + sovPipeline(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovPipeline(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozPipeline(x uint64) (n int) { + return sovPipeline(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *ListPipelinesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListPipelinesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListPipelinesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ListOptions == nil { + m.ListOptions = &v1.ListOptions{} + } + if err := m.ListOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PipelineWatchEvent) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PipelineWatchEvent: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PipelineWatchEvent: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Object", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Object == nil { + m.Object = &v1alpha1.Pipeline{} + } + if err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetPipelineRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetPipelineRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetPipelineRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GetOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.GetOptions == nil { + m.GetOptions = &v1.GetOptions{} + } + if err := m.GetOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RestartPipelineRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RestartPipelineRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RestartPipelineRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RestartPipelineResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RestartPipelineResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RestartPipelineResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeletePipelineRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeletePipelineRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeletePipelineRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeleteOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DeleteOptions == nil { + m.DeleteOptions = &v1.DeleteOptions{} + } + if err := m.DeleteOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeletePipelineResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeletePipelineResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeletePipelineResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WatchStepRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WatchStepRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WatchStepRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ListOptions == nil { + m.ListOptions = &v1.ListOptions{} + } + if err := m.ListOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StepWatchEvent) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StepWatchEvent: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StepWatchEvent: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Object", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Object == nil { + m.Object = &v1alpha1.Step{} + } + if err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PipelineLogsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PipelineLogsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PipelineLogsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StepName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StepName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PodLogOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PodLogOptions == nil { + m.PodLogOptions = &v11.PodLogOptions{} + } + if err := m.PodLogOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LogEntry) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LogEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LogEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PipelineName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PipelineName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StepName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StepName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Time == nil { + m.Time = &v1.Time{} + } + if err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Msg", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPipeline + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPipeline + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPipeline + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Msg = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPipeline(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPipeline + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipPipeline(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPipeline + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPipeline + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPipeline + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthPipeline + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupPipeline + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthPipeline + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthPipeline = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowPipeline = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupPipeline = fmt.Errorf("proto: unexpected end of group") +) diff --git a/pkg/apiclient/pipeline/pipeline.pb.gw.go b/pkg/apiclient/pipeline/pipeline.pb.gw.go new file mode 100644 index 000000000000..d759ffa6b373 --- /dev/null +++ b/pkg/apiclient/pipeline/pipeline.pb.gw.go @@ -0,0 +1,843 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: pkg/apiclient/pipeline/pipeline.proto + +/* +Package pipeline is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package pipeline + +import ( + "context" + "io" + "net/http" + + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage +var _ = metadata.Join + +var ( + filter_PipelineService_ListPipelines_0 = &utilities.DoubleArray{Encoding: map[string]int{"namespace": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_PipelineService_ListPipelines_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListPipelinesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_ListPipelines_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListPipelines(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PipelineService_ListPipelines_0(ctx context.Context, marshaler runtime.Marshaler, server PipelineServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListPipelinesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_ListPipelines_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListPipelines(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_PipelineService_WatchPipelines_0 = &utilities.DoubleArray{Encoding: map[string]int{"namespace": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_PipelineService_WatchPipelines_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (PipelineService_WatchPipelinesClient, runtime.ServerMetadata, error) { + var protoReq ListPipelinesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_WatchPipelines_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.WatchPipelines(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +var ( + filter_PipelineService_GetPipeline_0 = &utilities.DoubleArray{Encoding: map[string]int{"namespace": 0, "name": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_PipelineService_GetPipeline_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPipelineRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_GetPipeline_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetPipeline(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PipelineService_GetPipeline_0(ctx context.Context, marshaler runtime.Marshaler, server PipelineServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPipelineRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_GetPipeline_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetPipeline(ctx, &protoReq) + return msg, metadata, err + +} + +func request_PipelineService_RestartPipeline_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RestartPipelineRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.RestartPipeline(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PipelineService_RestartPipeline_0(ctx context.Context, marshaler runtime.Marshaler, server PipelineServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RestartPipelineRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.RestartPipeline(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_PipelineService_DeletePipeline_0 = &utilities.DoubleArray{Encoding: map[string]int{"namespace": 0, "name": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_PipelineService_DeletePipeline_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeletePipelineRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_DeletePipeline_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeletePipeline(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PipelineService_DeletePipeline_0(ctx context.Context, marshaler runtime.Marshaler, server PipelineServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeletePipelineRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_DeletePipeline_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeletePipeline(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_PipelineService_PipelineLogs_0 = &utilities.DoubleArray{Encoding: map[string]int{"namespace": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_PipelineService_PipelineLogs_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (PipelineService_PipelineLogsClient, runtime.ServerMetadata, error) { + var protoReq PipelineLogsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_PipelineLogs_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.PipelineLogs(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +var ( + filter_PipelineService_WatchSteps_0 = &utilities.DoubleArray{Encoding: map[string]int{"namespace": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_PipelineService_WatchSteps_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (PipelineService_WatchStepsClient, runtime.ServerMetadata, error) { + var protoReq WatchStepRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["namespace"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace") + } + + protoReq.Namespace, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_WatchSteps_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.WatchSteps(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +// RegisterPipelineServiceHandlerServer registers the http handlers for service PipelineService to "mux". +// UnaryRPC :call PipelineServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterPipelineServiceHandlerFromEndpoint instead. +func RegisterPipelineServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PipelineServiceServer) error { + + mux.Handle("GET", pattern_PipelineService_ListPipelines_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PipelineService_ListPipelines_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_ListPipelines_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PipelineService_WatchPipelines_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + mux.Handle("GET", pattern_PipelineService_GetPipeline_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PipelineService_GetPipeline_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_GetPipeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_PipelineService_RestartPipeline_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PipelineService_RestartPipeline_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_RestartPipeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_PipelineService_DeletePipeline_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PipelineService_DeletePipeline_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_DeletePipeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PipelineService_PipelineLogs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + mux.Handle("GET", pattern_PipelineService_WatchSteps_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + return nil +} + +// RegisterPipelineServiceHandlerFromEndpoint is same as RegisterPipelineServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterPipelineServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterPipelineServiceHandler(ctx, mux, conn) +} + +// RegisterPipelineServiceHandler registers the http handlers for service PipelineService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterPipelineServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterPipelineServiceHandlerClient(ctx, mux, NewPipelineServiceClient(conn)) +} + +// RegisterPipelineServiceHandlerClient registers the http handlers for service PipelineService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "PipelineServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "PipelineServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "PipelineServiceClient" to call the correct interceptors. +func RegisterPipelineServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PipelineServiceClient) error { + + mux.Handle("GET", pattern_PipelineService_ListPipelines_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_ListPipelines_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_ListPipelines_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PipelineService_WatchPipelines_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_WatchPipelines_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_WatchPipelines_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PipelineService_GetPipeline_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_GetPipeline_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_GetPipeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_PipelineService_RestartPipeline_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_RestartPipeline_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_RestartPipeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_PipelineService_DeletePipeline_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_DeletePipeline_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_DeletePipeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PipelineService_PipelineLogs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_PipelineLogs_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_PipelineLogs_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PipelineService_WatchSteps_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_WatchSteps_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_PipelineService_WatchSteps_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_PipelineService_ListPipelines_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "pipelines", "namespace"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_PipelineService_WatchPipelines_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "stream", "pipelines", "namespace"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_PipelineService_GetPipeline_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "pipelines", "namespace", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_PipelineService_RestartPipeline_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "pipelines", "namespace", "name", "restart"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_PipelineService_DeletePipeline_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "pipelines", "namespace", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_PipelineService_PipelineLogs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "stream", "pipelines", "namespace", "logs"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_PipelineService_WatchSteps_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "stream", "steps", "namespace"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_PipelineService_ListPipelines_0 = runtime.ForwardResponseMessage + + forward_PipelineService_WatchPipelines_0 = runtime.ForwardResponseStream + + forward_PipelineService_GetPipeline_0 = runtime.ForwardResponseMessage + + forward_PipelineService_RestartPipeline_0 = runtime.ForwardResponseMessage + + forward_PipelineService_DeletePipeline_0 = runtime.ForwardResponseMessage + + forward_PipelineService_PipelineLogs_0 = runtime.ForwardResponseStream + + forward_PipelineService_WatchSteps_0 = runtime.ForwardResponseStream +) diff --git a/pkg/apiclient/pipeline/pipeline.proto b/pkg/apiclient/pipeline/pipeline.proto new file mode 100644 index 000000000000..472299579f03 --- /dev/null +++ b/pkg/apiclient/pipeline/pipeline.proto @@ -0,0 +1,95 @@ +syntax = "proto3"; +option go_package = "github.com/argoproj/argo-workflows/pkg/apiclient/pipeline"; + +import "google/api/annotations.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/api/core/v1/generated.proto"; +import "github.com/argoproj-labs/argo-dataflow/api/v1alpha1/generated.proto"; + +package pipeline; + +message ListPipelinesRequest { + string namespace = 1; + k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions listOptions = 2; +} + +message PipelineWatchEvent { + string type = 1; + github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline object = 2; +} + +message GetPipelineRequest { + string name = 1; + string namespace = 2; + k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions getOptions = 3; +} + +message RestartPipelineRequest { + string name = 1; + string namespace = 2; +} + +message RestartPipelineResponse { +} + +message DeletePipelineRequest { + string name = 1; + string namespace = 2; + k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 3; +} + +message DeletePipelineResponse { +} + +message WatchStepRequest { + string namespace = 1; + k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions listOptions = 2; +} + +message StepWatchEvent { + string type = 1; + github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Step object = 2; +} + +message PipelineLogsRequest { + string namespace = 1; + // optional - only return entries for this pipeline + string name = 2; + // optional - only return entries for this step + string stepName = 3; + k8s.io.api.core.v1.PodLogOptions podLogOptions = 5; +} + +// structured log entry +message LogEntry { + string namespace = 1; + string pipelineName = 2; + string stepName = 3; + k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 6; + string msg = 7; +} + + +service PipelineService { + rpc ListPipelines (ListPipelinesRequest) returns (github.com.argoproj_labs.argo_dataflow.api.v1alpha1.PipelineList) { + option (google.api.http).get = "/api/v1/pipelines/{namespace}"; + } + rpc WatchPipelines (ListPipelinesRequest) returns (stream PipelineWatchEvent) { + option (google.api.http).get = "/api/v1/stream/pipelines/{namespace}"; + } + rpc GetPipeline (GetPipelineRequest) returns (github.com.argoproj_labs.argo_dataflow.api.v1alpha1.Pipeline) { + option (google.api.http).get = "/api/v1/pipelines/{namespace}/{name}"; + } + rpc RestartPipeline (RestartPipelineRequest) returns (RestartPipelineResponse) { + option (google.api.http).post = "/api/v1/pipelines/{namespace}/{name}/restart"; + } + rpc DeletePipeline (DeletePipelineRequest) returns (DeletePipelineResponse) { + option (google.api.http).delete = "/api/v1/pipelines/{namespace}/{name}"; + } + rpc PipelineLogs (PipelineLogsRequest) returns (stream LogEntry) { + option (google.api.http).get = "/api/v1/stream/pipelines/{namespace}/logs"; + } + rpc WatchSteps (WatchStepRequest) returns (stream StepWatchEvent) { + option (google.api.http).get = "/api/v1/stream/steps/{namespace}"; + } +} diff --git a/pkg/apiclient/sensor/sensor.pb.go b/pkg/apiclient/sensor/sensor.pb.go index 373fd9564e74..bb7c6e25c440 100644 --- a/pkg/apiclient/sensor/sensor.pb.go +++ b/pkg/apiclient/sensor/sensor.pb.go @@ -1880,10 +1880,7 @@ func (m *ListSensorsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -2038,10 +2035,7 @@ func (m *CreateSensorRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -2192,10 +2186,7 @@ func (m *GetSensorRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -2346,10 +2337,7 @@ func (m *UpdateSensorRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -2500,10 +2488,7 @@ func (m *DeleteSensorRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -2554,10 +2539,7 @@ func (m *DeleteSensorResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -2772,10 +2754,7 @@ func (m *SensorsLogsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -3086,10 +3065,7 @@ func (m *LogEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { @@ -3208,10 +3184,7 @@ func (m *SensorWatchEvent) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSensor - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSensor } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/workflow/workflow.pb.go b/pkg/apiclient/workflow/workflow.pb.go index 5958b4ffb98c..645ac55d7201 100644 --- a/pkg/apiclient/workflow/workflow.pb.go +++ b/pkg/apiclient/workflow/workflow.pb.go @@ -3760,10 +3760,7 @@ func (m *WorkflowCreateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -3946,10 +3943,7 @@ func (m *WorkflowGetRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -4100,10 +4094,7 @@ func (m *WorkflowListRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -4238,10 +4229,7 @@ func (m *WorkflowResubmitRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -4408,10 +4396,7 @@ func (m *WorkflowRetryRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -4558,10 +4543,7 @@ func (m *WorkflowResumeRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -4676,10 +4658,7 @@ func (m *WorkflowTerminateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -4858,10 +4837,7 @@ func (m *WorkflowStopRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5104,10 +5080,7 @@ func (m *WorkflowSetRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5222,10 +5195,7 @@ func (m *WorkflowSuspendRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5408,10 +5378,7 @@ func (m *WorkflowLogRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5562,10 +5529,7 @@ func (m *WorkflowDeleteRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5616,10 +5580,7 @@ func (m *WorkflowDeleteResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5738,10 +5699,7 @@ func (m *WatchWorkflowsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5860,10 +5818,7 @@ func (m *WorkflowWatchEvent) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -5982,10 +5937,7 @@ func (m *WatchEventsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -6100,10 +6052,7 @@ func (m *LogEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -6222,10 +6171,7 @@ func (m *WorkflowLintRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { @@ -6408,10 +6354,7 @@ func (m *WorkflowSubmitRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflow - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflow } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/workflowarchive/workflow-archive.pb.go b/pkg/apiclient/workflowarchive/workflow-archive.pb.go index a3e47f47c60f..a7d31999741a 100644 --- a/pkg/apiclient/workflowarchive/workflow-archive.pb.go +++ b/pkg/apiclient/workflowarchive/workflow-archive.pb.go @@ -687,10 +687,7 @@ func (m *ListArchivedWorkflowsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowArchive - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowArchive } if (iNdEx + skippy) > l { @@ -773,10 +770,7 @@ func (m *GetArchivedWorkflowRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowArchive - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowArchive } if (iNdEx + skippy) > l { @@ -859,10 +853,7 @@ func (m *DeleteArchivedWorkflowRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowArchive - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowArchive } if (iNdEx + skippy) > l { @@ -913,10 +904,7 @@ func (m *ArchivedWorkflowDeletedResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowArchive - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowArchive } if (iNdEx + skippy) > l { diff --git a/pkg/apiclient/workflowtemplate/workflow-template.pb.go b/pkg/apiclient/workflowtemplate/workflow-template.pb.go index 1ea64c11d893..6440d96b66d0 100644 --- a/pkg/apiclient/workflowtemplate/workflow-template.pb.go +++ b/pkg/apiclient/workflowtemplate/workflow-template.pb.go @@ -1422,10 +1422,7 @@ func (m *WorkflowTemplateCreateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1576,10 +1573,7 @@ func (m *WorkflowTemplateGetRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1698,10 +1692,7 @@ func (m *WorkflowTemplateListRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowTemplate } if (iNdEx + skippy) > l { @@ -1852,10 +1843,7 @@ func (m *WorkflowTemplateUpdateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowTemplate } if (iNdEx + skippy) > l { @@ -2006,10 +1994,7 @@ func (m *WorkflowTemplateDeleteRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowTemplate } if (iNdEx + skippy) > l { @@ -2060,10 +2045,7 @@ func (m *WorkflowTemplateDeleteResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowTemplate } if (iNdEx + skippy) > l { @@ -2218,10 +2200,7 @@ func (m *WorkflowTemplateLintRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWorkflowTemplate - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWorkflowTemplate } if (iNdEx + skippy) > l { diff --git a/pkg/apis/workflow/v1alpha1/generated.pb.go b/pkg/apis/workflow/v1alpha1/generated.pb.go index a9be758eb956..1e82d3f48902 100644 --- a/pkg/apis/workflow/v1alpha1/generated.pb.go +++ b/pkg/apis/workflow/v1alpha1/generated.pb.go @@ -13399,10 +13399,7 @@ func (m *Amount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13560,10 +13557,7 @@ func (m *ArchiveStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13681,10 +13675,7 @@ func (m *Arguments) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14055,10 +14046,7 @@ func (m *Artifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14417,10 +14405,7 @@ func (m *ArtifactLocation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14503,10 +14488,7 @@ func (m *ArtifactPaths) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14620,10 +14602,7 @@ func (m *ArtifactRepositoryRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14758,10 +14737,7 @@ func (m *ArtifactRepositoryRefStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14876,10 +14852,7 @@ func (m *ArtifactoryArtifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15001,10 +14974,7 @@ func (m *ArtifactoryAuth) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15154,10 +15124,7 @@ func (m *Backoff) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15243,10 +15210,7 @@ func (m *Cache) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15362,10 +15326,7 @@ func (m *ClusterWorkflowTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15482,10 +15443,7 @@ func (m *ClusterWorkflowTemplateList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15631,10 +15589,7 @@ func (m *Condition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15749,10 +15704,7 @@ func (m *ContainerNode) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15870,10 +15822,7 @@ func (m *ContainerSetTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15963,10 +15912,7 @@ func (m *ContinueOn) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16048,10 +15994,7 @@ func (m *Counter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16121,10 +16064,7 @@ func (m *CreateS3BucketOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16273,10 +16213,7 @@ func (m *CronWorkflow) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16393,10 +16330,7 @@ func (m *CronWorkflowList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16691,10 +16625,7 @@ func (m *CronWorkflowSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16848,10 +16779,7 @@ func (m *CronWorkflowStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17300,10 +17228,7 @@ func (m *DAGTask) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17440,10 +17365,7 @@ func (m *DAGTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17560,10 +17482,7 @@ func (m *Data) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17649,10 +17568,7 @@ func (m *DataSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17734,10 +17650,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17819,10 +17732,7 @@ func (m *ExecutorConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17937,10 +17847,7 @@ func (m *GCSArtifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18058,10 +17965,7 @@ func (m *GCSBucket) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18164,10 +18068,7 @@ func (m *Gauge) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18461,10 +18362,7 @@ func (m *GitArtifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18599,10 +18497,7 @@ func (m *HDFSArtifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18749,10 +18644,7 @@ func (m *HDFSConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19006,10 +18898,7 @@ func (m *HDFSKrbConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19125,10 +19014,7 @@ func (m *HTTPArtifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19242,10 +19128,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19361,10 +19244,7 @@ func (m *Histogram) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19482,10 +19362,7 @@ func (m *Inputs) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19569,10 +19446,7 @@ func (m *Item) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19718,10 +19592,7 @@ func (m *Link) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19855,10 +19726,7 @@ func (m *MemoizationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20008,10 +19876,7 @@ func (m *Memoize) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20171,7 +20036,7 @@ func (m *Metadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -20298,7 +20163,7 @@ func (m *Metadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -20315,10 +20180,7 @@ func (m *Metadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20432,10 +20294,7 @@ func (m *MetricLabel) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20519,10 +20378,7 @@ func (m *Metrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20604,10 +20460,7 @@ func (m *Mutex) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20721,10 +20574,7 @@ func (m *MutexHolding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20842,10 +20692,7 @@ func (m *MutexStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21570,7 +21417,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -21742,10 +21589,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21827,10 +21671,7 @@ func (m *NodeSynchronizationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21880,10 +21721,7 @@ func (m *NoneStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21998,10 +21836,7 @@ func (m *OSSArtifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22239,10 +22074,7 @@ func (m *OSSBucket) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22426,10 +22258,7 @@ func (m *Outputs) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22513,10 +22342,7 @@ func (m *ParallelSteps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22764,10 +22590,7 @@ func (m *Parameter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22885,10 +22708,7 @@ func (m *PodGC) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23176,10 +22996,7 @@ func (m *Prometheus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23261,10 +23078,7 @@ func (m *RawArtifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23526,10 +23340,7 @@ func (m *ResourceTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23615,10 +23426,7 @@ func (m *RetryAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23668,10 +23476,7 @@ func (m *RetryNodeAntiAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23861,10 +23666,7 @@ func (m *RetryStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23979,10 +23781,7 @@ func (m *S3Artifact) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24309,10 +24108,7 @@ func (m *S3Bucket) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24427,10 +24223,7 @@ func (m *ScriptTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24544,10 +24337,7 @@ func (m *SemaphoreHolding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24633,10 +24423,7 @@ func (m *SemaphoreRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24754,10 +24541,7 @@ func (m *SemaphoreStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24947,10 +24731,7 @@ func (m *Sequence) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25102,10 +24883,7 @@ func (m *Submit) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25487,10 +25265,7 @@ func (m *SubmitOpts) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25540,10 +25315,7 @@ func (m *SuppliedValueFrom) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25625,10 +25397,7 @@ func (m *SuspendTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25750,10 +25519,7 @@ func (m *Synchronization) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25875,10 +25641,7 @@ func (m *SynchronizationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25988,10 +25751,7 @@ func (m *TTLStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -26061,10 +25821,7 @@ func (m *TarStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -26322,7 +26079,7 @@ func (m *Template) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -27415,10 +27172,7 @@ func (m *Template) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27552,10 +27306,7 @@ func (m *TemplateRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27637,10 +27388,7 @@ func (m *TransformationStep) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27744,10 +27492,7 @@ func (m *UserContainer) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28058,10 +27803,7 @@ func (m *ValueFrom) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28367,10 +28109,7 @@ func (m *Version) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28452,10 +28191,7 @@ func (m *VolumeClaimGC) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28604,10 +28340,7 @@ func (m *Workflow) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28723,10 +28456,7 @@ func (m *WorkflowEventBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28843,10 +28573,7 @@ func (m *WorkflowEventBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28965,10 +28692,7 @@ func (m *WorkflowEventBindingSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29085,10 +28809,7 @@ func (m *WorkflowList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29524,7 +29245,7 @@ func (m *WorkflowSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -30442,10 +30163,7 @@ func (m *WorkflowSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30769,7 +30487,7 @@ func (m *WorkflowStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -30968,7 +30686,7 @@ func (m *WorkflowStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -31113,7 +30831,7 @@ func (m *WorkflowStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -31323,10 +31041,7 @@ func (m *WorkflowStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31711,10 +31426,7 @@ func (m *WorkflowStep) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31830,10 +31542,7 @@ func (m *WorkflowTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31950,10 +31659,7 @@ func (m *WorkflowTemplateList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32055,10 +31761,7 @@ func (m *WorkflowTemplateRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32177,10 +31880,7 @@ func (m *WorkflowTemplateSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32230,10 +31930,7 @@ func (m *ZipStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/server/apiserver/argoserver.go b/server/apiserver/argoserver.go index 0a3eb30eb812..b472bad4ee4b 100644 --- a/server/apiserver/argoserver.go +++ b/server/apiserver/argoserver.go @@ -28,6 +28,7 @@ import ( eventpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/event" eventsourcepkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/eventsource" infopkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/info" + pipelinepkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/pipeline" sensorpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/sensor" workflowpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflow" workflowarchivepkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflowarchive" @@ -42,6 +43,7 @@ import ( "github.com/argoproj/argo-workflows/v3/server/event" "github.com/argoproj/argo-workflows/v3/server/eventsource" "github.com/argoproj/argo-workflows/v3/server/info" + pipeline "github.com/argoproj/argo-workflows/v3/server/pipeline" "github.com/argoproj/argo-workflows/v3/server/sensor" "github.com/argoproj/argo-workflows/v3/server/static" "github.com/argoproj/argo-workflows/v3/server/types" @@ -249,6 +251,7 @@ func (as *argoServer) newGRPCServer(instanceIDService instanceid.Service, offloa infopkg.RegisterInfoServiceServer(grpcServer, info.NewInfoServer(as.managedNamespace, links)) eventpkg.RegisterEventServiceServer(grpcServer, eventServer) eventsourcepkg.RegisterEventSourceServiceServer(grpcServer, eventsource.NewEventSourceServer()) + pipelinepkg.RegisterPipelineServiceServer(grpcServer, pipeline.NewPipelineServer()) sensorpkg.RegisterSensorServiceServer(grpcServer, sensor.NewSensorServer()) workflowpkg.RegisterWorkflowServiceServer(grpcServer, workflow.NewWorkflowServer(instanceIDService, offloadNodeStatusRepo)) workflowtemplatepkg.RegisterWorkflowTemplateServiceServer(grpcServer, workflowtemplate.NewWorkflowTemplateServer(instanceIDService)) @@ -296,6 +299,7 @@ func (as *argoServer) newHTTPServer(ctx context.Context, port int, artifactServe mustRegisterGWHandler(eventpkg.RegisterEventServiceHandlerFromEndpoint, ctx, gwmux, endpoint, dialOpts) mustRegisterGWHandler(eventsourcepkg.RegisterEventSourceServiceHandlerFromEndpoint, ctx, gwmux, endpoint, dialOpts) mustRegisterGWHandler(sensorpkg.RegisterSensorServiceHandlerFromEndpoint, ctx, gwmux, endpoint, dialOpts) + mustRegisterGWHandler(pipelinepkg.RegisterPipelineServiceHandlerFromEndpoint, ctx, gwmux, endpoint, dialOpts) mustRegisterGWHandler(workflowpkg.RegisterWorkflowServiceHandlerFromEndpoint, ctx, gwmux, endpoint, dialOpts) mustRegisterGWHandler(workflowtemplatepkg.RegisterWorkflowTemplateServiceHandlerFromEndpoint, ctx, gwmux, endpoint, dialOpts) mustRegisterGWHandler(cronworkflowpkg.RegisterCronWorkflowServiceHandlerFromEndpoint, ctx, gwmux, endpoint, dialOpts) diff --git a/server/auth/gatekeeper.go b/server/auth/gatekeeper.go index c3fd21404d4a..827584cd51c1 100644 --- a/server/auth/gatekeeper.go +++ b/server/auth/gatekeeper.go @@ -18,6 +18,7 @@ import ( "google.golang.org/grpc/status" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" @@ -34,6 +35,7 @@ import ( type ContextKey string const ( + DynamicKey ContextKey = "dynamic.Interface" WfKey ContextKey = "workflow.Interface" SensorKey ContextKey = "sensor.Interface" EventSourceKey ContextKey = "eventsource.Interface" @@ -96,6 +98,7 @@ func (s *gatekeeper) Context(ctx context.Context) (context.Context, error) { if err != nil { return nil, err } + ctx = context.WithValue(ctx, DynamicKey, clients.Dynamic) ctx = context.WithValue(ctx, WfKey, clients.Workflow) ctx = context.WithValue(ctx, EventSourceKey, clients.EventSource) ctx = context.WithValue(ctx, SensorKey, clients.Sensor) @@ -104,6 +107,10 @@ func (s *gatekeeper) Context(ctx context.Context) (context.Context, error) { return ctx, nil } +func GetDynamicClient(ctx context.Context) dynamic.Interface { + return ctx.Value(DynamicKey).(dynamic.Interface) +} + func GetWfClient(ctx context.Context) workflow.Interface { return ctx.Value(WfKey).(workflow.Interface) } @@ -254,6 +261,10 @@ func DefaultClientForAuthorization(authorization string) (*rest.Config, *servert if err != nil { return nil, nil, fmt.Errorf("failed to create REST config: %w", err) } + dynamicClient, err := dynamic.NewForConfig(restConfig) + if err != nil { + return nil, nil, fmt.Errorf("failure to create dynamic client: %w", err) + } wfClient, err := workflow.NewForConfig(restConfig) if err != nil { return nil, nil, fmt.Errorf("failure to create workflow client: %w", err) @@ -270,5 +281,11 @@ func DefaultClientForAuthorization(authorization string) (*rest.Config, *servert if err != nil { return nil, nil, fmt.Errorf("failure to create kubernetes client: %w", err) } - return restConfig, &servertypes.Clients{Workflow: wfClient, EventSource: eventSourceClient, Sensor: sensorClient, Kubernetes: kubeClient}, nil + return restConfig, &servertypes.Clients{ + Dynamic: dynamicClient, + Workflow: wfClient, + Sensor: sensorClient, + EventSource: eventSourceClient, + Kubernetes: kubeClient, + }, nil } diff --git a/server/pipeline/pipeline_server.go b/server/pipeline/pipeline_server.go new file mode 100644 index 000000000000..17d2bdd27b1f --- /dev/null +++ b/server/pipeline/pipeline_server.go @@ -0,0 +1,179 @@ +package pipeline + +import ( + "context" + "io" + + dfv1 "github.com/argoproj-labs/argo-dataflow/api/v1alpha1" + corev1 "k8s.io/api/core/v1" + apierr "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + + pipelinepkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/pipeline" + "github.com/argoproj/argo-workflows/v3/server/auth" + "github.com/argoproj/argo-workflows/v3/util/logs" +) + +type server struct{} + +func (s *server) ListPipelines(ctx context.Context, req *pipelinepkg.ListPipelinesRequest) (*dfv1.PipelineList, error) { + client := auth.GetDynamicClient(ctx) + opts := metav1.ListOptions{} + if req.ListOptions != nil { + opts = *req.ListOptions + } + list, err := client.Resource(dfv1.PipelineGroupVersionResource).Namespace(req.Namespace).List(ctx, opts) + if err != nil { + return nil, err + } + items := make([]dfv1.Pipeline, len(list.Items)) + for i, un := range list.Items { + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(un.Object, &items[i]); err != nil { + return nil, err + } + } + return &dfv1.PipelineList{Items: items}, nil +} + +func (s *server) WatchPipelines(req *pipelinepkg.ListPipelinesRequest, svr pipelinepkg.PipelineService_WatchPipelinesServer) error { + ctx := svr.Context() + client := auth.GetDynamicClient(ctx) + opts := metav1.ListOptions{} + if req.ListOptions != nil { + opts = *req.ListOptions + } + watcher, err := client.Resource(dfv1.PipelineGroupVersionResource).Namespace(req.Namespace).Watch(ctx, opts) + if err != nil { + return err + } + defer watcher.Stop() + for { + select { + case <-ctx.Done(): + return ctx.Err() + case event, open := <-watcher.ResultChan(): + if !open { + return io.EOF + } + un, ok := event.Object.(*unstructured.Unstructured) + if !ok { + return apierr.FromObject(event.Object) + } + pl := &dfv1.Pipeline{} + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(un.Object, pl); err != nil { + return err + } + if err := svr.Send(&pipelinepkg.PipelineWatchEvent{Type: string(event.Type), Object: pl}); err != nil { + return err + } + } + } +} + +func (s *server) GetPipeline(ctx context.Context, req *pipelinepkg.GetPipelineRequest) (*dfv1.Pipeline, error) { + client := auth.GetDynamicClient(ctx) + opts := metav1.GetOptions{} + if req.GetOptions != nil { + opts = *req.GetOptions + } + un, err := client.Resource(dfv1.PipelineGroupVersionResource).Namespace(req.Namespace).Get(ctx, req.Name, opts) + if err != nil { + return nil, err + } + item := &dfv1.Pipeline{} + return item, runtime.DefaultUnstructuredConverter.FromUnstructured(un.Object, item) +} + +func (s *server) RestartPipeline(ctx context.Context, req *pipelinepkg.RestartPipelineRequest) (*pipelinepkg.RestartPipelineResponse, error) { + client := auth.GetKubeClient(ctx) + err := client.CoreV1().Pods(req.Namespace).DeleteCollection( + ctx, + metav1.DeleteOptions{}, + metav1.ListOptions{LabelSelector: dfv1.KeyPipelineName + "=" + req.Name}, + ) + if err != nil { + return nil, err + } + return &pipelinepkg.RestartPipelineResponse{}, nil +} + +func (s *server) DeletePipeline(ctx context.Context, req *pipelinepkg.DeletePipelineRequest) (*pipelinepkg.DeletePipelineResponse, error) { + client := auth.GetDynamicClient(ctx) + opts := metav1.DeleteOptions{} + if req.DeleteOptions != nil { + opts = *req.DeleteOptions + } + err := client.Resource(dfv1.PipelineGroupVersionResource).Namespace(req.Namespace).Delete(ctx, req.Name, opts) + if err != nil { + return nil, err + } + return &pipelinepkg.DeletePipelineResponse{}, nil +} + +func (s *server) PipelineLogs(in *pipelinepkg.PipelineLogsRequest, svr pipelinepkg.PipelineService_PipelineLogsServer) error { + labelSelector := dfv1.KeyPipelineName + if in.Name != "" { + labelSelector += "=" + in.Name + } + if in.StepName != "" { + labelSelector += "," + dfv1.KeyStepName + "=" + in.StepName + } + return logs.LogPods( + svr.Context(), + in.Namespace, + labelSelector, + in.PodLogOptions, + func(pod *corev1.Pod, data []byte) error { + now := metav1.Now() + e := &pipelinepkg.LogEntry{ + Namespace: pod.Namespace, + PipelineName: pod.Labels[dfv1.KeyPipelineName], + StepName: pod.Labels[dfv1.KeyStepName], + Time: &now, + Msg: string(data), + } + return svr.Send(e) + }, + ) +} + +func (s *server) WatchSteps(req *pipelinepkg.WatchStepRequest, svr pipelinepkg.PipelineService_WatchStepsServer) error { + ctx := svr.Context() + client := auth.GetDynamicClient(ctx) + opts := metav1.ListOptions{} + if req.ListOptions != nil { + opts = *req.ListOptions + } + watcher, err := client.Resource(dfv1.StepGroupVersionResource).Namespace(req.Namespace).Watch(ctx, opts) + if err != nil { + return err + } + defer watcher.Stop() + for { + select { + case <-ctx.Done(): + return ctx.Err() + case event, open := <-watcher.ResultChan(): + if !open { + return io.EOF + } + un, ok := event.Object.(*unstructured.Unstructured) + if !ok { + return apierr.FromObject(event.Object) + } + step := &dfv1.Step{} + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(un.Object, step); err != nil { + return err + } + if err := svr.Send(&pipelinepkg.StepWatchEvent{Type: string(event.Type), Object: step}); err != nil { + return err + } + } + } +} + +func NewPipelineServer() pipelinepkg.PipelineServiceServer { + return &server{} +} diff --git a/server/types/clients.go b/server/types/clients.go index dfed8f59072e..d9033d82371d 100644 --- a/server/types/clients.go +++ b/server/types/clients.go @@ -3,12 +3,14 @@ package types import ( eventsource "github.com/argoproj/argo-events/pkg/client/eventsource/clientset/versioned" sensor "github.com/argoproj/argo-events/pkg/client/sensor/clientset/versioned" + "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" workflow "github.com/argoproj/argo-workflows/v3/pkg/client/clientset/versioned" ) type Clients struct { + Dynamic dynamic.Interface Workflow workflow.Interface Sensor sensor.Interface EventSource eventsource.Interface diff --git a/test/e2e/argo_server_test.go b/test/e2e/argo_server_test.go index 690ff5f7d592..d4cb0d665c30 100644 --- a/test/e2e/argo_server_test.go +++ b/test/e2e/argo_server_test.go @@ -1630,6 +1630,20 @@ func (s *ArgoServerSuite) TestEventSourcesService() { }) } +func (s *ArgoServerSuite) TestPipelineService() { + s.T().SkipNow() + s.Run("GetPipeline", func() { + s.e().GET("/api/v1/pipelines/argo/not-exists"). + Expect(). + Status(404) + }) + s.Run("ListPipelines", func() { + s.e().GET("/api/v1/pipelines/argo"). + Expect(). + Status(200) + }) +} + func (s *ArgoServerSuite) TestSensorService() { s.Run("CreateSensor", func() { s.e().POST("/api/v1/sensors/argo"). diff --git a/ui/package.json b/ui/package.json index 4d0f85f32ff1..7d2158e57430 100644 --- a/ui/package.json +++ b/ui/package.json @@ -40,7 +40,7 @@ "devDependencies": { "@babel/core": "^7.0.0-0", "@babel/preset-env": "^7.12.1", - "@fortawesome/fontawesome-free": "^5.12.0", + "@fortawesome/fontawesome-free": "^5.15.3", "@types/chart.js": "^2.9.24", "@types/classnames": "^2.2.3", "@types/dagre": "^0.7.44", diff --git a/ui/src/app/app-router.tsx b/ui/src/app/app-router.tsx index e9be83a0a072..2bb40ee5f10b 100644 --- a/ui/src/app/app-router.tsx +++ b/ui/src/app/app-router.tsx @@ -13,6 +13,7 @@ import eventflow from './event-flow'; import eventSources from './event-sources'; import help from './help'; import login from './login'; +import pipelines from './pipelines'; import reports from './reports'; import sensors from './sensors'; import {uiUrl} from './shared/base'; @@ -28,6 +29,7 @@ import workflows from './workflows'; const eventFlowUrl = uiUrl('event-flow'); const sensorUrl = uiUrl('sensors'); +const pipelinesUrl = uiUrl('pipelines'); const workflowsUrl = uiUrl('workflows'); const workflowsEventBindingsUrl = uiUrl('workflow-event-bindings'); const workflowTemplatesUrl = uiUrl('workflow-templates'); @@ -98,6 +100,11 @@ export const AppRouter = ({popupManager, history, notificationsManager}: {popupM path: cronWorkflowsUrl + namespaceSuffix, iconClassName: 'fa fa-clock' }, + { + title: 'Pipelines', + path: pipelinesUrl + '/' + namespace, + iconClassName: 'fa fa-cubes' + }, { title: 'Event Flow', path: eventFlowUrl + namespaceSuffix, @@ -152,6 +159,7 @@ export const AppRouter = ({popupManager, history, notificationsManager}: {popupM + diff --git a/ui/src/app/pipelines/components/pipeline-container.tsx b/ui/src/app/pipelines/components/pipeline-container.tsx new file mode 100644 index 000000000000..51fb5afdc896 --- /dev/null +++ b/ui/src/app/pipelines/components/pipeline-container.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import {Route, RouteComponentProps, Switch} from 'react-router'; +import {PipelineDetails} from './pipeline-details/pipeline-details'; +import {PipelineList} from './pipeline-list/pipeline-list'; + +export const PipelineContainer = (props: RouteComponentProps) => ( + + + + +); diff --git a/ui/src/app/pipelines/components/pipeline-details/pipeline-details.tsx b/ui/src/app/pipelines/components/pipeline-details/pipeline-details.tsx new file mode 100644 index 000000000000..c885afd756d5 --- /dev/null +++ b/ui/src/app/pipelines/components/pipeline-details/pipeline-details.tsx @@ -0,0 +1,165 @@ +import {NotificationType, Page} from 'argo-ui'; +import * as React from 'react'; +import {useContext, useEffect, useState} from 'react'; +import {RouteComponentProps} from 'react-router'; +import {Pipeline} from '../../../../models/pipeline'; +import {Step} from '../../../../models/step'; +import {uiUrl} from '../../../shared/base'; +import {ErrorNotice} from '../../../shared/components/error-notice'; +import {GraphPanel} from '../../../shared/components/graph/graph-panel'; +import {Loading} from '../../../shared/components/loading'; +import {Context} from '../../../shared/context'; +import {historyUrl} from '../../../shared/history'; +import {ListWatch} from '../../../shared/list-watch'; +import {services} from '../../../shared/services'; +import {StepSidePanel} from '../step-side-panel'; +import {graph} from './pipeline-graph'; + +require('./pipeline.scss'); + +export const PipelineDetails = ({history, match, location}: RouteComponentProps) => { + const {notifications, navigation, popup} = useContext(Context); + const queryParams = new URLSearchParams(location.search); + // state for URL and query parameters + const namespace = match.params.namespace; + const name = match.params.name; + + const [tab, setTab] = useState(queryParams.get('tab')); + const [selectedStep, selectStep] = useState(queryParams.get('selectedStep')); + + useEffect( + () => + history.push( + historyUrl('pipelines/{namespace}/{name}', { + namespace, + name, + selectedStep, + tab + }) + ), + [namespace, name, selectedStep, tab] + ); + + const [error, setError] = useState(); + const [pipeline, setPipeline] = useState(); + const [steps, setSteps] = useState([]); + + useEffect(() => { + services.pipeline + .getPipeline(namespace, name) + .then(setPipeline) + .then(() => setError(null)) + .catch(setError); + const w = new ListWatch( + () => Promise.resolve({metadata: {}, items: []}), + () => services.pipeline.watchSteps(namespace, ['dataflow.argoproj.io/pipeline-name=' + name]), + () => setError(null), + () => setError(null), + items => setSteps([...items]), + setError + ); + w.start(); + return () => w.stop(); + }, [name, namespace]); + + const step = steps.find(s => s.spec.name === selectedStep); + return ( + { + services.pipeline + .restartPipeline(namespace, name) + .then(() => setError(null)) + .then(() => + notifications.show({type: NotificationType.Success, content: 'Your pipeline pods should terminate within ~30s, before being re-created'}) + ) + .catch(setError); + } + }, + { + title: 'Delete', + iconClassName: 'fa fa-trash', + action: () => { + popup.confirm('confirm', 'Are you sure you want to delete this pipeline?').then(yes => { + if (yes) { + services.pipeline + .deletePipeline(namespace, name) + .then(() => navigation.goto(uiUrl('pipelines/' + namespace))) + .then(() => setError(null)) + .catch(setError); + } + }); + } + } + ] + } + }}> + <> + + {!pipeline ? ( + + ) : ( + <> + { + if (node.startsWith('step/')) { + selectStep(node.replace('step/', '')); + } + }} + /> + {step && ( + selectStep(null)} + /> + )} + + )} + + + ); +}; diff --git a/ui/src/app/pipelines/components/pipeline-details/pipeline-graph.ts b/ui/src/app/pipelines/components/pipeline-details/pipeline-graph.ts new file mode 100644 index 000000000000..6d292a23ebe7 --- /dev/null +++ b/ui/src/app/pipelines/components/pipeline-details/pipeline-graph.ts @@ -0,0 +1,133 @@ +import {Pipeline} from '../../../../models/pipeline'; +import {Step} from '../../../../models/step'; +import {Graph} from '../../../shared/components/graph/types'; +import {Icon} from '../../../shared/components/icon'; + +type Type = '' | 'cat' | 'container' | 'filter' | 'git' | 'group' | 'handler' | 'map'; + +const stepIcon = (type: Type): Icon => { + switch (type) { + case 'cat': + return 'exchange-alt'; + case 'container': + return 'cube'; + case 'filter': + return 'filter'; + case 'git': + return 'code-branch'; + case 'group': + return 'object-group'; + case 'handler': + return 'code'; + case 'map': + return 'exchange-alt'; + default: + return 'square'; + } +}; + +const topicIcon: Icon = 'inbox'; +const pendingSymbol = '🕑'; +const errorSymbol = '⚠️ '; +const totalSymbol = 'x'; + +const emptySet = '∅'; +export const graph = (pipeline: Pipeline, steps: Step[]) => { + const g = new Graph(); + + steps.forEach(step => { + const spec = step.spec; + const stepId = 'step/' + spec.name; + const status = step.status || {phase: '', replicas: 0}; + + const type: Type = spec.cat + ? 'cat' + : spec.container + ? 'container' + : spec.filter + ? 'filter' + : spec.git + ? 'git' + : spec.group + ? 'group' + : spec.handler + ? 'handler' + : spec.map + ? 'map' + : ''; + + const nodeLabel = status.replicas !== 1 ? spec.name + ' (x' + status.replicas + ')' : spec.name; + g.nodes.set(stepId, {genre: type, label: nodeLabel, icon: stepIcon(type), classNames: status.phase}); + + const classNames = status.phase === 'Running' ? 'flow' : ''; + (spec.sources || []).forEach((x, i) => { + const ss = (status.sourceStatuses || {})[x.name || ''] || {}; + const metrics = Object.values(ss.metrics || {}).reduce( + (a, b) => ({ + total: (a.total || 0) + (b.total || 0), + errors: (a.errors || 0) + (b.errors || 0) + }), + {total: 0, errors: 0} + ); + const label = + (metrics.errors > 0 ? errorSymbol + metrics.errors : '') + + (ss.pending ? pendingSymbol + ss.pending : '') + + ' ' + + totalSymbol + + (metrics.total || '?') + + ' (' + + ((ss.lastMessage || {}).data || emptySet) + + ')'; + if (x.cron) { + const cronId = 'cron/' + stepId + '/' + x.cron.schedule; + g.nodes.set(cronId, {genre: 'cron', icon: 'clock', label: x.cron.schedule}); + g.edges.set({v: cronId, w: stepId}, {classNames, label}); + } else if (x.kafka) { + const kafkaId = x.kafka.name || x.kafka.url || 'default'; + const topicId = 'kafka/' + kafkaId + '/' + x.kafka.topic; + g.nodes.set(topicId, {genre: 'kafka', icon: topicIcon, label: x.kafka.topic}); + g.edges.set({v: topicId, w: stepId}, {classNames, label}); + } else if (x.stan) { + const stanId = x.stan.name || x.stan.url || 'default'; + const subjectId = 'stan/' + stanId + '/' + x.stan.subject; + g.nodes.set(subjectId, {genre: 'stan', icon: topicIcon, label: x.stan.subject}); + g.edges.set({v: subjectId, w: stepId}, {classNames, label}); + } + }); + (spec.sinks || []).forEach((x, i) => { + const ss = (status.sinkStatuses || {})[x.name || ''] || {}; + const metrics = Object.values(ss.metrics || {}).reduce( + (a, b) => ({ + total: (a.total || 0) + (b.total || 0), + errors: (a.errors || 0) + (b.errors || 0) + }), + {total: 0, errors: 0} + ); + const label = + (metrics.errors > 0 ? errorSymbol + metrics.errors : '') + + (ss.pending ? pendingSymbol + ss.pending : '') + + ' ' + + totalSymbol + + (metrics.total || '?') + + ' (' + + ((ss.lastMessage || {}).data || emptySet) + + ')'; + if (x.kafka) { + const kafkaId = x.kafka.name || x.kafka.url || 'default'; + const topicId = 'kafka/' + kafkaId + '/' + x.kafka.topic; + g.nodes.set(topicId, {genre: 'kafka', icon: topicIcon, label: x.kafka.topic}); + g.edges.set({v: stepId, w: topicId}, {classNames, label}); + } else if (x.log) { + const logId = 'log/' + stepId; + g.nodes.set(logId, {genre: 'log', icon: 'file-alt', label: 'log'}); + g.edges.set({v: stepId, w: logId}, {classNames, label}); + } else if (x.stan) { + const stanId = x.stan.name || x.stan.url || 'default'; + const subjectId = 'stan/' + stanId + '/' + x.stan.subject; + g.nodes.set(subjectId, {genre: 'stan', icon: topicIcon, label: x.stan.subject}); + g.edges.set({v: stepId, w: subjectId}, {classNames, label}); + } + }); + }); + return g; +}; diff --git a/ui/src/app/pipelines/components/pipeline-details/pipeline.scss b/ui/src/app/pipelines/components/pipeline-details/pipeline.scss new file mode 100644 index 000000000000..42788d4510c8 --- /dev/null +++ b/ui/src/app/pipelines/components/pipeline-details/pipeline.scss @@ -0,0 +1,24 @@ +@import 'node_modules/argo-ui/src/styles/config'; + +.graph.pipeline { + .edge { + path { + stroke-dasharray: 8; + } + } + + .node { + &.Running { + text.icon { + animation: none; + } + } + } + + .edge.flow { + path { + stroke: $argo-running-color; + animation: flowing infinite linear 4s; + } + } +} \ No newline at end of file diff --git a/ui/src/app/pipelines/components/pipeline-list/pipeline-list.scss b/ui/src/app/pipelines/components/pipeline-list/pipeline-list.scss new file mode 100644 index 000000000000..5551ff460175 --- /dev/null +++ b/ui/src/app/pipelines/components/pipeline-list/pipeline-list.scss @@ -0,0 +1 @@ +@import 'node_modules/argo-ui/src/styles/config'; diff --git a/ui/src/app/pipelines/components/pipeline-list/pipeline-list.tsx b/ui/src/app/pipelines/components/pipeline-list/pipeline-list.tsx new file mode 100644 index 000000000000..73f6e2865083 --- /dev/null +++ b/ui/src/app/pipelines/components/pipeline-list/pipeline-list.tsx @@ -0,0 +1,102 @@ +import {Page} from 'argo-ui'; +import * as React from 'react'; +import {useEffect, useState} from 'react'; +import {Link, RouteComponentProps} from 'react-router-dom'; +import {NodePhase} from '../../../../models'; +import {Pipeline} from '../../../../models/pipeline'; +import {uiUrl} from '../../../shared/base'; +import {ErrorNotice} from '../../../shared/components/error-notice'; +import {Loading} from '../../../shared/components/loading'; +import {NamespaceFilter} from '../../../shared/components/namespace-filter'; +import {PhaseIcon} from '../../../shared/components/phase-icon'; +import {Timestamp} from '../../../shared/components/timestamp'; +import {ZeroState} from '../../../shared/components/zero-state'; +import {historyUrl} from '../../../shared/history'; +import {ListWatch} from '../../../shared/list-watch'; +import {services} from '../../../shared/services'; + +export const PipelineList = ({match, history}: RouteComponentProps) => { + // state for URL and query parameters + const [namespace, setNamespace] = useState(match.params.namespace || ''); + + useEffect( + () => + history.push( + historyUrl('pipelines/{namespace}', { + namespace + }) + ), + [namespace] + ); + + // internal state + const [error, setError] = useState(); + const [pipelines, setPipelines] = useState(); + + useEffect(() => { + const lw = new ListWatch( + () => services.pipeline.listPipelines(namespace), + () => services.pipeline.watchPipelines(namespace), + () => setError(null), + () => setError(null), + items => setPipelines([...items]), + setError + ); + lw.start(); + return () => lw.stop(); + }, [namespace]); + + return ( + ] + }}> + + {!pipelines ? ( + + ) : pipelines.length === 0 ? ( + +

A pipeline is something super secret. Shhhh...

+

+ Learn more. +

+
+ ) : ( + <> +
+
+
+
NAME
+
NAMESPACE
+
CREATED
+
MESSAGE
+
CONDITIONS
+
+ {pipelines.map(p => ( + +
+ +
+
{p.metadata.name}
+
{p.metadata.namespace}
+
+ +
+
{p.status && p.status.message}
+
{p.status && p.status.conditions && p.status.conditions.map(c => c.type).join(',')}
+ + ))} +
+ + )} + + ); +}; diff --git a/ui/src/app/pipelines/components/pipeline-logs-viewer.tsx b/ui/src/app/pipelines/components/pipeline-logs-viewer.tsx new file mode 100644 index 000000000000..0605574307af --- /dev/null +++ b/ui/src/app/pipelines/components/pipeline-logs-viewer.tsx @@ -0,0 +1,66 @@ +import * as React from 'react'; +import {useEffect, useState} from 'react'; +import {Observable} from 'rxjs'; +import {ErrorNotice} from '../../shared/components/error-notice'; +import {services} from '../../shared/services'; +import {FullHeightLogsViewer} from '../../workflows/components/workflow-logs-viewer/full-height-logs-viewer'; + +function identity(value: T) { + return () => value; +} + +export const PipelineLogsViewer = ({namespace, pipelineName, stepName}: {namespace: string; pipelineName: string; stepName: string}) => { + const [container, setContainer] = useState('main'); + const [error, setError] = useState(); + const [logsObservable, setLogsObservable] = useState>(); + const [logLoaded, setLogLoaded] = useState(false); + + useEffect(() => { + setError(null); + setLogLoaded(false); + const source = services.pipeline + .pipelineLogs(namespace, pipelineName, stepName, container, 50) + .filter(e => !!e) + .map(e => e.msg + '\n') + .publishReplay() + .refCount(); + const subscription = source.subscribe(() => setLogLoaded(true), setError); + setLogsObservable(source); + return () => subscription.unsubscribe(); + }, [namespace, pipelineName, stepName, container]); + + return ( +
+
+
+

Container

+
+ {['init', 'main', 'sidecar'].map(x => ( + + ))} +
+ +
+
+ {!logLoaded ? ( +

+ Waiting for data... +

+ ) : ( + false + }} + /> + )} +
+
+
+ ); +}; diff --git a/ui/src/app/pipelines/components/step-side-panel.tsx b/ui/src/app/pipelines/components/step-side-panel.tsx new file mode 100644 index 000000000000..9fd1da677989 --- /dev/null +++ b/ui/src/app/pipelines/components/step-side-panel.tsx @@ -0,0 +1,87 @@ +import {SlidingPanel, Tabs} from 'argo-ui'; +import * as React from 'react'; +import {Step} from '../../../models/step'; +import {ObjectEditor} from '../../shared/components/object-editor/object-editor'; +import {Phase} from '../../shared/components/phase'; +import {Timestamp} from '../../shared/components/timestamp'; +import {EventsPanel} from '../../workflows/components/events-panel'; +import {PipelineLogsViewer} from './pipeline-logs-viewer'; + +export const StepSidePanel = ({ + isShown, + namespace, + pipelineName, + step, + setTab, + tab, + onClose +}: { + isShown: boolean; + namespace: string; + pipelineName: string; + step: Step; + tab: string; + setTab: (tab: string) => void; + onClose: () => void; +}) => { + const stepName = step.spec.name; + return ( + + <> +

+ {pipelineName}/{stepName} +

+ +
+
+
Phase
+
+ {step.status.message} +
+
+
+
Replicas
+
{step.status.replicas}
+
+ {step.status.lastScaledAt && ( +
+
Last scaled
+
+ +
+
+ )} +
+
+ ) + }, + { + title: 'LOGS', + key: 'logs', + content: + }, + { + title: 'EVENTS', + key: 'events', + content: + }, + { + title: 'MANIFEST', + key: 'manifest', + content: + } + ]} + /> + + + ); +}; diff --git a/ui/src/app/pipelines/index.ts b/ui/src/app/pipelines/index.ts new file mode 100644 index 000000000000..d56ea074ce20 --- /dev/null +++ b/ui/src/app/pipelines/index.ts @@ -0,0 +1,5 @@ +import {PipelineContainer} from './components/pipeline-container'; + +export default { + component: PipelineContainer +}; diff --git a/ui/src/app/shared/components/icon.ts b/ui/src/app/shared/components/icon.ts index 5981f10ac112..f5b5bbb92a42 100644 --- a/ui/src/app/shared/components/icon.ts +++ b/ui/src/app/shared/components/icon.ts @@ -2,14 +2,19 @@ export type Icon = | 'arrow-left' | 'arrow-right' | 'bars' + | 'bed' | 'bell' | 'box' | 'calendar' | 'cloud' + | 'cube' + | 'chevron-circle-right' + | 'chevron-right' | 'circle' | 'circle-notch' | 'clock' | 'code' + | 'cog' | 'comment' | 'caret-left' | 'caret-right' @@ -20,6 +25,7 @@ export type Icon = | 'envelope' | 'edit' | 'ellipsis-h' + | 'exchange-alt' | 'external-link-alt' | 'file' | 'file-alt' @@ -28,11 +34,13 @@ export type Icon = | 'forward' | 'grip-vertical' | 'hdd' + | 'inbox' | 'info-circle' | 'keyboard' | 'link' | 'list' | 'microchip' + | 'object-group' | 'play' | 'play-circle' | 'plus-circle' diff --git a/ui/src/app/shared/components/icons.ts b/ui/src/app/shared/components/icons.ts index 099b8bb7761d..8ad3501c37a7 100644 --- a/ui/src/app/shared/components/icons.ts +++ b/ui/src/app/shared/components/icons.ts @@ -1,13 +1,18 @@ export const icons: {[key: string]: string} = { 'arrow-right': '\uf061', + 'bed': '\uf236', 'bell': '\uf0f3', 'box': '\uf466', 'calendar': '\uf133', 'cloud': '\uf0c2', + 'chevron-circle-right': '\uf138', + 'chevron-right': '\uf054', 'circle': '\uf111', 'circle-notch': '\uf1ce', 'clock': '\uf017', 'code': '\uf121', + 'cube': '\uf1b2', + 'cog': '\uf013', 'comment': '\uf075', 'code-branch': '\uf126', 'credit-card': '\uf09d', @@ -15,6 +20,7 @@ export const icons: {[key: string]: string} = { 'database': '\uf1c0', 'envelope': '\uf0e0', 'ellipsis-h': '\uf141', + 'exchange-alt': '\uf362', 'file': '\uf15b', 'file-alt': '\uf15c', 'file-code': '\uf1c9', @@ -22,10 +28,12 @@ export const icons: {[key: string]: string} = { 'forward': '\uf04e', 'grip-vertical': '\uf58e', 'hdd': '\uf0a0', + 'inbox': '\uf01c', 'keyboard': '\uf11c', 'link': '\uf0c1', 'list': '\uf03a', 'microchip': '\uf2db', + 'object-group': '\uf247', 'play': '\uf04b', 'play-circle': '\uf144', 'puzzle-piece': '\uf12e', diff --git a/ui/src/app/shared/components/object-editor/object-editor.tsx b/ui/src/app/shared/components/object-editor/object-editor.tsx index b8344d0173db..779d25841160 100644 --- a/ui/src/app/shared/components/object-editor/object-editor.tsx +++ b/ui/src/app/shared/components/object-editor/object-editor.tsx @@ -24,7 +24,15 @@ export const ObjectEditor = ({type, value, buttons, onChange}: Pr const [text, setText] = useState(stringify(value, lang)); useEffect(() => storage.setItem('lang', lang, defaultLang), [lang]); - useEffect(() => setText(stringify(value, lang)), [value]); + useEffect(() => { + const newText = stringify(value, lang); + setText(newText); + // we ONLY want to change the text, if the normalized version has changed, this prevents white-space changes + // from resulting in a significant change + if (newText !== stringify(parse(editor.current.editor.getValue()), lang)) { + editor.current.editor.setValue(newText); + } + }, [value]); useEffect(() => setText(stringify(parse(text), lang)), [lang]); useEffect(() => { // we ONLY want to change the text, if the normalized version has changed, this prevents white-space changes diff --git a/ui/src/app/shared/components/phase-icon.tsx b/ui/src/app/shared/components/phase-icon.tsx index c20e9058a0aa..783af3b1712a 100644 --- a/ui/src/app/shared/components/phase-icon.tsx +++ b/ui/src/app/shared/components/phase-icon.tsx @@ -1,8 +1,7 @@ import * as classNames from 'classnames'; import * as React from 'react'; -import {NodePhase} from '../../../models'; import {Utils} from '../utils'; -export const PhaseIcon = ({value}: {value: NodePhase}) => { +export const PhaseIcon = ({value}: {value: string}) => { return