mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 17:48:47 +01:00
Compare commits
6 Commits
commit-ser
...
manifest-h
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f816ada864 | ||
|
|
ebb71a0018 | ||
|
|
8bd52a7b74 | ||
|
|
2d43a8331f | ||
|
|
dd7952e389 | ||
|
|
037d098d7c |
1
17312096-72e2-485c-a433-7d7c6b81ca08
Submodule
1
17312096-72e2-485c-a433-7d7c6b81ca08
Submodule
Submodule 17312096-72e2-485c-a433-7d7c6b81ca08 added at 665d6fd139
1
34628a51-2048-4667-8992-9b36b6f0d245
Submodule
1
34628a51-2048-4667-8992-9b36b6f0d245
Submodule
Submodule 34628a51-2048-4667-8992-9b36b6f0d245 added at 6241416c8e
1
37026e70-563e-4149-8395-2079e81158a0
Submodule
1
37026e70-563e-4149-8395-2079e81158a0
Submodule
Submodule 37026e70-563e-4149-8395-2079e81158a0 added at 665d6fd139
1
9e98b44c-364c-41da-b89d-819b02ff12f5
Submodule
1
9e98b44c-364c-41da-b89d-819b02ff12f5
Submodule
Submodule 9e98b44c-364c-41da-b89d-819b02ff12f5 added at 665d6fd139
1
acbbabb3-b0e1-4bfb-8fd4-a253e0296c7e
Submodule
1
acbbabb3-b0e1-4bfb-8fd4-a253e0296c7e
Submodule
Submodule acbbabb3-b0e1-4bfb-8fd4-a253e0296c7e added at a1a761cc43
@@ -6560,6 +6560,9 @@
|
||||
"source": {
|
||||
"$ref": "#/definitions/v1alpha1ApplicationSource"
|
||||
},
|
||||
"sourceHydrator": {
|
||||
"$ref": "#/definitions/v1alpha1SourceHydrator"
|
||||
},
|
||||
"sources": {
|
||||
"type": "array",
|
||||
"title": "Sources is a reference to the location of the application's manifests or chart",
|
||||
@@ -6617,6 +6620,9 @@
|
||||
"$ref": "#/definitions/v1alpha1ResourceStatus"
|
||||
}
|
||||
},
|
||||
"sourceHydrator": {
|
||||
"$ref": "#/definitions/v1alpha1SourceHydratorStatus"
|
||||
},
|
||||
"sourceType": {
|
||||
"type": "string",
|
||||
"title": "SourceType specifies the type of this application"
|
||||
@@ -7006,6 +7012,21 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1DrySource": {
|
||||
"description": "DrySource specifies a location for dry \"don't repeat yourself\" manifest source information.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string"
|
||||
},
|
||||
"repoURL": {
|
||||
"type": "string"
|
||||
},
|
||||
"targetRevision": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1DuckTypeGenerator": {
|
||||
"description": "DuckType defines a generator to match against clusters registered with ArgoCD.",
|
||||
"type": "object",
|
||||
@@ -7257,6 +7278,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1HydrateTo": {
|
||||
"description": "HydrateTo specifies a location to which hydrated manifests should be pushed as a \"staging area\" before being moved to\nthe SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"targetRevision": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1Info": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -8867,6 +8897,33 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1SourceHydrator": {
|
||||
"description": "SourceHydrator specifies a dry \"don't repeat yourself\" source for manifests, a sync source from which to sync\nhydrated manifests, and an optional hydrateTo location to act as a \"staging\" aread for hydrated manifests.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"drySource": {
|
||||
"$ref": "#/definitions/v1alpha1DrySource"
|
||||
},
|
||||
"hydrateTo": {
|
||||
"$ref": "#/definitions/v1alpha1HydrateTo"
|
||||
},
|
||||
"syncSource": {
|
||||
"$ref": "#/definitions/v1alpha1SyncSource"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1SourceHydratorStatus": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"drySource": {
|
||||
"$ref": "#/definitions/v1alpha1DrySource"
|
||||
},
|
||||
"revision": {
|
||||
"type": "string",
|
||||
"title": "Revision holds the resolved revision (sha) of the dry source as of the most recent reconciliation"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1SyncOperation": {
|
||||
"description": "SyncOperation contains details about a sync operation.",
|
||||
"type": "object",
|
||||
@@ -9021,6 +9078,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1SyncSource": {
|
||||
"description": "SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the\nassociated DrySource config in the SourceHydrator.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string"
|
||||
},
|
||||
"targetRevision": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1SyncStatus": {
|
||||
"type": "object",
|
||||
"title": "SyncStatus contains information about the currently observed live and desired states of an application",
|
||||
|
||||
1
b605bc84-1e9b-4105-b5e7-739af9e65e38
Submodule
1
b605bc84-1e9b-4105-b5e7-739af9e65e38
Submodule
Submodule b605bc84-1e9b-4105-b5e7-739af9e65e38 added at a3879b24c0
@@ -5,6 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
goerrors "errors"
|
||||
"fmt"
|
||||
"github.com/argoproj/argo-cd/v2/controller/commit"
|
||||
"math"
|
||||
"math/rand"
|
||||
"net/http"
|
||||
@@ -1457,6 +1458,12 @@ func (ctrl *ApplicationController) PatchAppWithWriteBack(ctx context.Context, na
|
||||
return patchedApp, err
|
||||
}
|
||||
|
||||
// processAppRefreshQueueItem does roughly these tasks:
|
||||
// 1. If we're shutting down, it quits early and returns "false" to indicate we're done processing refreshes.
|
||||
// 2. Checks whether the app needs to be refreshed. If not, quit early.
|
||||
// 3. If we're "comparing with nothing," just update the app resource tree in Redis and the app status in k8s.
|
||||
// 4. Checks that all AppProject restrictions are being followed. If not, clears the app resource tree and managed
|
||||
// resources in Redis and sets failure conditions on the app status.
|
||||
func (ctrl *ApplicationController) processAppRefreshQueueItem() (processNext bool) {
|
||||
patchMs := time.Duration(0) // time spent in doing patch/update calls
|
||||
setOpMs := time.Duration(0) // time spent in doing Operation patch calls in autosync
|
||||
@@ -1546,6 +1553,59 @@ func (ctrl *ApplicationController) processAppRefreshQueueItem() (processNext boo
|
||||
return
|
||||
}
|
||||
|
||||
// If we're using a source hydrator, see if the dry source has changed.
|
||||
if app.Spec.SourceHydrator != nil {
|
||||
revision, err := ctrl.appStateManager.ResolveDryRevision(app)
|
||||
if err != nil {
|
||||
logCtx.Errorf("Failed to check whether dry source has changed, skipping: %v", err)
|
||||
}
|
||||
if app.Status.SourceHydrator.Revision != revision {
|
||||
app.Status.SourceHydrator.Revision = revision
|
||||
ctrl.persistAppStatus(origApp, &app.Status)
|
||||
|
||||
sources := []appv1.ApplicationSource{app.Spec.SourceHydrator.GetApplicationSource()}
|
||||
revisions := []string{app.Spec.SourceHydrator.DrySource.TargetRevision}
|
||||
|
||||
appLabelKey, err := ctrl.settingsMgr.GetAppInstanceLabelKey()
|
||||
if err != nil {
|
||||
logCtx.Errorf("Failed to get app instance label key: %s", err)
|
||||
return
|
||||
}
|
||||
|
||||
objs, _, err := ctrl.appStateManager.GetRepoObjs(app, sources, appLabelKey, revisions, false, false, false, project)
|
||||
if err != nil {
|
||||
logCtx.Errorf("Failed to get repo objects: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
// Set up a ManifestsRequest
|
||||
manifestDetails := make([]commit.ManifestDetails, len(objs))
|
||||
for i, obj := range objs {
|
||||
manifestDetails[i] = commit.ManifestDetails{Manifest: *obj}
|
||||
}
|
||||
paths := []commit.PathDetails{{
|
||||
Path: app.Spec.SourceHydrator.SyncSource.Path,
|
||||
Manifests: manifestDetails,
|
||||
}}
|
||||
manifestsRequest := commit.ManifestsRequest{
|
||||
RepoURL: app.Spec.SourceHydrator.DrySource.RepoURL,
|
||||
TargetBranch: app.Spec.SourceHydrator.SyncSource.TargetRevision,
|
||||
DrySHA: revision,
|
||||
CommitAuthor: "Argo CD Hydrator <argo-cd-hydrator@example.com>",
|
||||
CommitMessage: fmt.Sprintf("hydrate %s", revision),
|
||||
CommitTime: time.Now(),
|
||||
Paths: paths,
|
||||
}
|
||||
|
||||
commitService := commit.NewService()
|
||||
_, err = commitService.Commit(manifestsRequest)
|
||||
if err != nil {
|
||||
logCtx.Errorf("Failed to commit hydrated manifests: %v", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var localManifests []string
|
||||
if opState := app.Status.OperationState; opState != nil && opState.Operation.Sync != nil {
|
||||
localManifests = opState.Operation.Sync.Manifests
|
||||
@@ -1717,6 +1777,8 @@ func (ctrl *ApplicationController) needRefreshAppStatus(app *appv1.Application,
|
||||
return false, refreshType, compareWith
|
||||
}
|
||||
|
||||
// refreshAppConditions validates whether AppProject restrictions are being followed. If not, it adds error conditions
|
||||
// to the app status.
|
||||
func (ctrl *ApplicationController) refreshAppConditions(app *appv1.Application) (*appv1.AppProject, bool) {
|
||||
errorConditions := make([]appv1.ApplicationCondition, 0)
|
||||
proj, err := ctrl.getAppProj(app)
|
||||
|
||||
116
controller/commit/commit.go
Normal file
116
controller/commit/commit.go
Normal file
@@ -0,0 +1,116 @@
|
||||
package commit
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/google/uuid"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
"sigs.k8s.io/yaml"
|
||||
"time"
|
||||
)
|
||||
|
||||
/**
|
||||
The commit package provides a way for the controller to push manifests to git.
|
||||
*/
|
||||
|
||||
type Service interface {
|
||||
Commit(ManifestsRequest) (ManifestsResponse, error)
|
||||
}
|
||||
|
||||
type ManifestsRequest struct {
|
||||
RepoURL string
|
||||
TargetBranch string
|
||||
DrySHA string
|
||||
CommitAuthor string
|
||||
CommitMessage string
|
||||
CommitTime time.Time
|
||||
Paths []PathDetails
|
||||
}
|
||||
|
||||
type PathDetails struct {
|
||||
Path string
|
||||
Manifests []ManifestDetails
|
||||
ReadmeDetails
|
||||
}
|
||||
|
||||
type ManifestDetails struct {
|
||||
Manifest unstructured.Unstructured
|
||||
}
|
||||
|
||||
type ReadmeDetails struct {
|
||||
}
|
||||
|
||||
type ManifestsResponse struct {
|
||||
RequestId string
|
||||
}
|
||||
|
||||
func NewService() Service {
|
||||
return &service{}
|
||||
}
|
||||
|
||||
type service struct {
|
||||
}
|
||||
|
||||
func (s *service) Commit(r ManifestsRequest) (ManifestsResponse, error) {
|
||||
logCtx := log.WithFields(log.Fields{"repo": r.RepoURL, "branch": r.TargetBranch, "drySHA": r.DrySHA})
|
||||
logCtx.Info("committing")
|
||||
|
||||
// Create a temp dir with a UUID
|
||||
dirName, err := uuid.NewRandom()
|
||||
err = os.MkdirAll(path.Join("/tmp/_commit-service", dirName.String()), os.ModePerm)
|
||||
if err != nil {
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to create temp dir: %w", err)
|
||||
}
|
||||
|
||||
// Clone the repo into the temp dir using the git CLI
|
||||
err = exec.Command("git", "clone", r.RepoURL, dirName.String()).Run()
|
||||
if err != nil {
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to clone repo: %w", err)
|
||||
}
|
||||
|
||||
// Write the manifests to the temp dir
|
||||
for _, p := range r.Paths {
|
||||
err = os.MkdirAll(path.Join(dirName.String(), p.Path), os.ModePerm)
|
||||
if err != nil {
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to create path: %w", err)
|
||||
}
|
||||
for _, m := range p.Manifests {
|
||||
// Marshal the manifests
|
||||
mYaml, err := yaml.Marshal(m.Manifest)
|
||||
if err != nil {
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to marshal manifest: %w", err)
|
||||
}
|
||||
// Write the yaml to manifest.yaml
|
||||
err = os.WriteFile(path.Join(dirName.String(), p.Path, "manifest.yaml"), mYaml, os.ModePerm)
|
||||
if err != nil {
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to write manifest: %w", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Commit the changes
|
||||
err = exec.Command("git", "add", ".").Run()
|
||||
if err != nil {
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to add files: %w", err)
|
||||
}
|
||||
|
||||
commitCmd := exec.Command("git", "commit", "-m", r.CommitMessage, "--author", r.CommitAuthor)
|
||||
out, err := commitCmd.CombinedOutput()
|
||||
if err != nil {
|
||||
log.WithError(err).WithField("output", string(out)).Error("failed to commit files")
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to commit: %w", err)
|
||||
}
|
||||
|
||||
pushCmd := exec.Command("git", "push", "origin", r.TargetBranch)
|
||||
out, err = pushCmd.CombinedOutput()
|
||||
if err != nil {
|
||||
log.WithError(err).WithField("output", string(out)).Error("failed to push manifests")
|
||||
return ManifestsResponse{}, fmt.Errorf("failed to push: %w", err)
|
||||
}
|
||||
log.WithField("output", string(out)).Debug("pushed manifests to git")
|
||||
|
||||
return ManifestsResponse{}, nil
|
||||
}
|
||||
@@ -73,6 +73,7 @@ type AppStateManager interface {
|
||||
CompareAppState(app *v1alpha1.Application, project *v1alpha1.AppProject, revisions []string, sources []v1alpha1.ApplicationSource, noCache bool, noRevisionCache bool, localObjects []string, hasMultipleSources bool) (*comparisonResult, error)
|
||||
SyncAppState(app *v1alpha1.Application, state *v1alpha1.OperationState)
|
||||
GetRepoObjs(app *v1alpha1.Application, sources []v1alpha1.ApplicationSource, appLabelKey string, revisions []string, noCache, noRevisionCache, verifySignature bool, proj *v1alpha1.AppProject) ([]*unstructured.Unstructured, []*apiclient.ManifestResponse, error)
|
||||
ResolveDryRevision(app *v1alpha1.Application) (string, error)
|
||||
}
|
||||
|
||||
// comparisonResult holds the state of an application after the reconciliation
|
||||
@@ -276,6 +277,29 @@ func (m *appStateManager) GetRepoObjs(app *v1alpha1.Application, sources []v1alp
|
||||
return targetObjs, manifestInfos, nil
|
||||
}
|
||||
|
||||
func (m *appStateManager) ResolveDryRevision(app *v1alpha1.Application) (string, error) {
|
||||
conn, repoClient, err := m.repoClientset.NewRepoServerClient()
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to connect to repo server: %w", err)
|
||||
}
|
||||
defer io.Close(conn)
|
||||
|
||||
repo, err := m.db.GetRepository(context.Background(), app.Spec.SourceHydrator.DrySource.RepoURL)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to get repo %q: %w", app.Spec.SourceHydrator.DrySource.RepoURL, err)
|
||||
}
|
||||
|
||||
resp, err := repoClient.ResolveRevision(context.Background(), &apiclient.ResolveRevisionRequest{
|
||||
Repo: repo,
|
||||
App: app,
|
||||
AmbiguousRevision: app.Spec.SourceHydrator.DrySource.TargetRevision,
|
||||
})
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to determine whether the dry source has changed: %w", err)
|
||||
}
|
||||
return resp.Revision, nil
|
||||
}
|
||||
|
||||
func unmarshalManifests(manifests []string) ([]*unstructured.Unstructured, error) {
|
||||
targetObjs := make([]*unstructured.Unstructured, 0)
|
||||
for _, manifest := range manifests {
|
||||
|
||||
1
ef2804b5-5feb-4f9d-afab-b07f35775501
Submodule
1
ef2804b5-5feb-4f9d-afab-b07f35775501
Submodule
Submodule ef2804b5-5feb-4f9d-afab-b07f35775501 added at f0cc986839
File diff suppressed because it is too large
Load Diff
@@ -1272,6 +1272,51 @@ spec:
|
||||
required:
|
||||
- repoURL
|
||||
type: object
|
||||
sourceHydrator:
|
||||
description: SourceHydrator provides a way to push hydrated manifests
|
||||
back to git before syncing them to the cluster.
|
||||
properties:
|
||||
drySource:
|
||||
description: DrySource specifies where the dry "don't repeat yourself"
|
||||
manifest source lives.
|
||||
properties:
|
||||
path:
|
||||
type: string
|
||||
repoURL:
|
||||
type: string
|
||||
targetRevision:
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- repoURL
|
||||
- targetRevision
|
||||
type: object
|
||||
hydrateTo:
|
||||
description: |-
|
||||
HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
|
||||
have to move manifests to the SyncSource, e.g. by pull request.
|
||||
properties:
|
||||
targetRevision:
|
||||
type: string
|
||||
required:
|
||||
- targetRevision
|
||||
type: object
|
||||
syncSource:
|
||||
description: SyncSource specifies where to sync hydrated manifests
|
||||
from.
|
||||
properties:
|
||||
path:
|
||||
type: string
|
||||
targetRevision:
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- targetRevision
|
||||
type: object
|
||||
required:
|
||||
- drySource
|
||||
- syncSource
|
||||
type: object
|
||||
sources:
|
||||
description: Sources is a reference to the location of the application's
|
||||
manifests or chart
|
||||
@@ -4179,6 +4224,30 @@ spec:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
sourceHydrator:
|
||||
description: SourceHydrator stores information about the current state
|
||||
of source hydration
|
||||
properties:
|
||||
drySource:
|
||||
description: DrySource holds the dry source configuration as of
|
||||
the most recent reconciliation
|
||||
properties:
|
||||
path:
|
||||
type: string
|
||||
repoURL:
|
||||
type: string
|
||||
targetRevision:
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- repoURL
|
||||
- targetRevision
|
||||
type: object
|
||||
revision:
|
||||
description: Revision holds the resolved revision (sha) of the
|
||||
dry source as of the most recent reconciliation
|
||||
type: string
|
||||
type: object
|
||||
sourceType:
|
||||
description: SourceType specifies the type of this application
|
||||
type: string
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -587,6 +587,9 @@ message ApplicationSpec {
|
||||
|
||||
// Sources is a reference to the location of the application's manifests or chart
|
||||
repeated ApplicationSource sources = 8;
|
||||
|
||||
// SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.
|
||||
optional SourceHydrator sourceHydrator = 9;
|
||||
}
|
||||
|
||||
// ApplicationStatus contains status information for the application
|
||||
@@ -630,6 +633,9 @@ message ApplicationStatus {
|
||||
|
||||
// ControllerNamespace indicates the namespace in which the application controller is located
|
||||
optional string controllerNamespace = 13;
|
||||
|
||||
// SourceHydrator stores information about the current state of source hydration
|
||||
optional SourceHydratorStatus sourceHydrator = 14;
|
||||
}
|
||||
|
||||
// ApplicationSummary contains information about URLs and container images used by an application
|
||||
@@ -875,6 +881,15 @@ message ConnectionState {
|
||||
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time attemptedAt = 3;
|
||||
}
|
||||
|
||||
// DrySource specifies a location for dry "don't repeat yourself" manifest source information.
|
||||
message DrySource {
|
||||
optional string repoURL = 1;
|
||||
|
||||
optional string targetRevision = 2;
|
||||
|
||||
optional string path = 3;
|
||||
}
|
||||
|
||||
// DuckType defines a generator to match against clusters registered with ArgoCD.
|
||||
message DuckTypeGenerator {
|
||||
// ConfigMapRef is a ConfigMap with the duck type definitions needed to retrieve the data
|
||||
@@ -1040,6 +1055,12 @@ message HostResourceInfo {
|
||||
optional int64 capacity = 4;
|
||||
}
|
||||
|
||||
// HydrateTo specifies a location to which hydrated manifests should be pushed as a "staging area" before being moved to
|
||||
// the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.
|
||||
message HydrateTo {
|
||||
optional string targetRevision = 1;
|
||||
}
|
||||
|
||||
message Info {
|
||||
optional string name = 1;
|
||||
|
||||
@@ -2125,6 +2146,28 @@ message SignatureKey {
|
||||
optional string keyID = 1;
|
||||
}
|
||||
|
||||
// SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync
|
||||
// hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests.
|
||||
message SourceHydrator {
|
||||
// DrySource specifies where the dry "don't repeat yourself" manifest source lives.
|
||||
optional DrySource drySource = 1;
|
||||
|
||||
// SyncSource specifies where to sync hydrated manifests from.
|
||||
optional SyncSource syncSource = 2;
|
||||
|
||||
// HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
|
||||
// have to move manifests to the SyncSource, e.g. by pull request.
|
||||
optional HydrateTo hydrateTo = 3;
|
||||
}
|
||||
|
||||
message SourceHydratorStatus {
|
||||
// DrySource holds the dry source configuration as of the most recent reconciliation
|
||||
optional DrySource drySource = 1;
|
||||
|
||||
// Revision holds the resolved revision (sha) of the dry source as of the most recent reconciliation
|
||||
optional string revision = 2;
|
||||
}
|
||||
|
||||
// SyncOperation contains details about a sync operation.
|
||||
message SyncOperation {
|
||||
// Revision is the revision (Git) or chart version (Helm) which to sync the application to
|
||||
@@ -2221,6 +2264,14 @@ message SyncPolicyAutomated {
|
||||
optional bool allowEmpty = 3;
|
||||
}
|
||||
|
||||
// SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the
|
||||
// associated DrySource config in the SourceHydrator.
|
||||
message SyncSource {
|
||||
optional string targetRevision = 1;
|
||||
|
||||
optional string path = 2;
|
||||
}
|
||||
|
||||
// SyncStatus contains information about the currently observed live and desired states of an application
|
||||
message SyncStatus {
|
||||
// Status is the sync state of the comparison
|
||||
|
||||
@@ -68,6 +68,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ComponentParameter": schema_pkg_apis_application_v1alpha1_ComponentParameter(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConfigManagementPlugin": schema_pkg_apis_application_v1alpha1_ConfigManagementPlugin(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConnectionState": schema_pkg_apis_application_v1alpha1_ConnectionState(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource": schema_pkg_apis_application_v1alpha1_DrySource(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator": schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.EnvEntry": schema_pkg_apis_application_v1alpha1_EnvEntry(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ErrApplicationNotAllowedToUseProject": schema_pkg_apis_application_v1alpha1_ErrApplicationNotAllowedToUseProject(ref),
|
||||
@@ -83,6 +84,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HelmParameter": schema_pkg_apis_application_v1alpha1_HelmParameter(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HostInfo": schema_pkg_apis_application_v1alpha1_HostInfo(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HostResourceInfo": schema_pkg_apis_application_v1alpha1_HostResourceInfo(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo": schema_pkg_apis_application_v1alpha1_HydrateTo(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info": schema_pkg_apis_application_v1alpha1_Info(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.InfoItem": schema_pkg_apis_application_v1alpha1_InfoItem(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.JWTToken": schema_pkg_apis_application_v1alpha1_JWTToken(ref),
|
||||
@@ -154,11 +156,14 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitlab": schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorGitlab(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SecretRef": schema_pkg_apis_application_v1alpha1_SecretRef(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SignatureKey": schema_pkg_apis_application_v1alpha1_SignatureKey(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator": schema_pkg_apis_application_v1alpha1_SourceHydrator(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus": schema_pkg_apis_application_v1alpha1_SourceHydratorStatus(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperation": schema_pkg_apis_application_v1alpha1_SyncOperation(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperationResource": schema_pkg_apis_application_v1alpha1_SyncOperationResource(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperationResult": schema_pkg_apis_application_v1alpha1_SyncOperationResult(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy": schema_pkg_apis_application_v1alpha1_SyncPolicy(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicyAutomated": schema_pkg_apis_application_v1alpha1_SyncPolicyAutomated(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource": schema_pkg_apis_application_v1alpha1_SyncSource(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus": schema_pkg_apis_application_v1alpha1_SyncStatus(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStrategy": schema_pkg_apis_application_v1alpha1_SyncStrategy(ref),
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStrategyApply": schema_pkg_apis_application_v1alpha1_SyncStrategyApply(ref),
|
||||
@@ -2156,12 +2161,18 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSpec(ref common.ReferenceCa
|
||||
},
|
||||
},
|
||||
},
|
||||
"sourceHydrator": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.",
|
||||
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"),
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"destination", "project"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy"},
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy"},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2289,11 +2300,18 @@ func schema_pkg_apis_application_v1alpha1_ApplicationStatus(ref common.Reference
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"sourceHydrator": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "SourceHydrator stores information about the current state of source hydration",
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationCondition", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSummary", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HealthStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationState", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionHistory", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationCondition", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSummary", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HealthStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationState", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionHistory", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3128,6 +3146,41 @@ func schema_pkg_apis_application_v1alpha1_ConnectionState(ref common.ReferenceCa
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_DrySource(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "DrySource specifies a location for dry \"don't repeat yourself\" manifest source information.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"repoURL": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"targetRevision": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"path": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"repoURL", "targetRevision", "path"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
@@ -3740,6 +3793,27 @@ func schema_pkg_apis_application_v1alpha1_HostResourceInfo(ref common.ReferenceC
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_HydrateTo(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "HydrateTo specifies a location to which hydrated manifests should be pushed as a \"staging area\" before being moved to the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"targetRevision": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"targetRevision"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_Info(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
@@ -7367,6 +7441,70 @@ func schema_pkg_apis_application_v1alpha1_SignatureKey(ref common.ReferenceCallb
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_SourceHydrator(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "SourceHydrator specifies a dry \"don't repeat yourself\" source for manifests, a sync source from which to sync hydrated manifests, and an optional hydrateTo location to act as a \"staging\" aread for hydrated manifests.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"drySource": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "DrySource specifies where the dry \"don't repeat yourself\" manifest source lives.",
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource"),
|
||||
},
|
||||
},
|
||||
"syncSource": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "SyncSource specifies where to sync hydrated manifests from.",
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource"),
|
||||
},
|
||||
},
|
||||
"hydrateTo": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "HydrateTo specifies an optional \"staging\" location to push hydrated manifests to. An external system would then have to move manifests to the SyncSource, e.g. by pull request.",
|
||||
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo"),
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"drySource", "syncSource"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource"},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_SourceHydratorStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"drySource": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "DrySource holds the dry source configuration as of the most recent reconciliation",
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource"),
|
||||
},
|
||||
},
|
||||
"revision": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Revision holds the resolved revision (sha) of the dry source as of the most recent reconciliation",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource"},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_SyncOperation(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
@@ -7689,6 +7827,34 @@ func schema_pkg_apis_application_v1alpha1_SyncPolicyAutomated(ref common.Referen
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_SyncSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the associated DrySource config in the SourceHydrator.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"targetRevision": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"path": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"targetRevision", "path"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_pkg_apis_application_v1alpha1_SyncStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
|
||||
@@ -83,6 +83,9 @@ type ApplicationSpec struct {
|
||||
|
||||
// Sources is a reference to the location of the application's manifests or chart
|
||||
Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"`
|
||||
|
||||
// SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.
|
||||
SourceHydrator *SourceHydrator `json:"sourceHydrator,omitempty" protobuf:"bytes,9,opt,name=sourceHydrator"`
|
||||
}
|
||||
|
||||
type IgnoreDifferences []ResourceIgnoreDifferences
|
||||
@@ -210,6 +213,9 @@ func (a *ApplicationSpec) GetSource() ApplicationSource {
|
||||
if a.HasMultipleSources() {
|
||||
return a.Sources[0]
|
||||
}
|
||||
if a.SourceHydrator != nil {
|
||||
return a.SourceHydrator.GetApplicationSource()
|
||||
}
|
||||
if a.Source != nil {
|
||||
return *a.Source
|
||||
}
|
||||
@@ -220,6 +226,9 @@ func (a *ApplicationSpec) GetSources() ApplicationSources {
|
||||
if a.HasMultipleSources() {
|
||||
return a.Sources
|
||||
}
|
||||
if a.SourceHydrator != nil {
|
||||
return ApplicationSources{a.SourceHydrator.GetApplicationSource()}
|
||||
}
|
||||
if a.Source != nil {
|
||||
return ApplicationSources{*a.Source}
|
||||
}
|
||||
@@ -227,7 +236,7 @@ func (a *ApplicationSpec) GetSources() ApplicationSources {
|
||||
}
|
||||
|
||||
func (a *ApplicationSpec) HasMultipleSources() bool {
|
||||
return a.Sources != nil && len(a.Sources) > 0
|
||||
return a.SourceHydrator == nil && a.Sources != nil && len(a.Sources) > 0
|
||||
}
|
||||
|
||||
func (a *ApplicationSpec) GetSourcePtr(index int) *ApplicationSource {
|
||||
@@ -238,6 +247,10 @@ func (a *ApplicationSpec) GetSourcePtr(index int) *ApplicationSource {
|
||||
}
|
||||
return &a.Sources[0]
|
||||
}
|
||||
if a.SourceHydrator != nil {
|
||||
source := a.SourceHydrator.GetApplicationSource()
|
||||
return &source
|
||||
}
|
||||
return a.Source
|
||||
}
|
||||
|
||||
@@ -286,6 +299,48 @@ const (
|
||||
ApplicationSourceTypePlugin ApplicationSourceType = "Plugin"
|
||||
)
|
||||
|
||||
// SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync
|
||||
// hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests.
|
||||
type SourceHydrator struct {
|
||||
// DrySource specifies where the dry "don't repeat yourself" manifest source lives.
|
||||
DrySource DrySource `json:"drySource" protobuf:"bytes,1,name=drySource"`
|
||||
// SyncSource specifies where to sync hydrated manifests from.
|
||||
SyncSource SyncSource `json:"syncSource" protobuf:"bytes,2,name=syncSource"`
|
||||
// HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
|
||||
// have to move manifests to the SyncSource, e.g. by pull request.
|
||||
HydrateTo *HydrateTo `json:"hydrateTo,omitempty" protobuf:"bytes,3,opt,name=hydrateTo"`
|
||||
}
|
||||
|
||||
// GetApplicationSource gets the source from which we should sync when a source hydrator is configured.
|
||||
func (s SourceHydrator) GetApplicationSource() ApplicationSource {
|
||||
return ApplicationSource{
|
||||
// Pull the RepoURL from the dry source. The SyncSource's RepoURL is assumed to be the same.
|
||||
RepoURL: s.DrySource.RepoURL,
|
||||
Path: s.SyncSource.Path,
|
||||
TargetRevision: s.SyncSource.TargetRevision,
|
||||
}
|
||||
}
|
||||
|
||||
// DrySource specifies a location for dry "don't repeat yourself" manifest source information.
|
||||
type DrySource struct {
|
||||
RepoURL string `json:"repoURL" protobuf:"bytes,1,name=repoURL"`
|
||||
TargetRevision string `json:"targetRevision" protobuf:"bytes,2,name=targetRevision"`
|
||||
Path string `json:"path" protobuf:"bytes,3,name=path"`
|
||||
}
|
||||
|
||||
// SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the
|
||||
// associated DrySource config in the SourceHydrator.
|
||||
type SyncSource struct {
|
||||
TargetRevision string `json:"targetRevision" protobuf:"bytes,1,name=targetRevision"`
|
||||
Path string `json:"path" protobuf:"bytes,2,name=path"`
|
||||
}
|
||||
|
||||
// HydrateTo specifies a location to which hydrated manifests should be pushed as a "staging area" before being moved to
|
||||
// the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.
|
||||
type HydrateTo struct {
|
||||
TargetRevision string `json:"targetRevision" protobuf:"bytes,1,name=targetRevision"`
|
||||
}
|
||||
|
||||
// RefreshType specifies how to refresh the sources of a given application
|
||||
type RefreshType string
|
||||
|
||||
@@ -958,6 +1013,15 @@ type ApplicationStatus struct {
|
||||
SourceTypes []ApplicationSourceType `json:"sourceTypes,omitempty" protobuf:"bytes,12,opt,name=sourceTypes"`
|
||||
// ControllerNamespace indicates the namespace in which the application controller is located
|
||||
ControllerNamespace string `json:"controllerNamespace,omitempty" protobuf:"bytes,13,opt,name=controllerNamespace"`
|
||||
// SourceHydrator stores information about the current state of source hydration
|
||||
SourceHydrator SourceHydratorStatus `json:"sourceHydrator,omitempty" protobuf:"bytes,14,opt,name=sourceHydrator"`
|
||||
}
|
||||
|
||||
type SourceHydratorStatus struct {
|
||||
// DrySource holds the dry source configuration as of the most recent reconciliation
|
||||
DrySource DrySource `json:"drySource,omitempty" protobuf:"bytes,1,opt,name=drySource"`
|
||||
// Revision holds the resolved revision (sha) of the dry source as of the most recent reconciliation
|
||||
Revision string `json:"revision,omitempty" protobuf:"bytes,2,opt,name=revision"`
|
||||
}
|
||||
|
||||
// GetRevisions will return the current revision associated with the Application.
|
||||
|
||||
@@ -1273,6 +1273,11 @@ func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec) {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.SourceHydrator != nil {
|
||||
in, out := &in.SourceHydrator, &out.SourceHydrator
|
||||
*out = new(SourceHydrator)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1331,6 +1336,7 @@ func (in *ApplicationStatus) DeepCopyInto(out *ApplicationStatus) {
|
||||
*out = make([]ApplicationSourceType, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
out.SourceHydrator = in.SourceHydrator
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1790,6 +1796,22 @@ func (in *ConnectionState) DeepCopy() *ConnectionState {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *DrySource) DeepCopyInto(out *DrySource) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DrySource.
|
||||
func (in *DrySource) DeepCopy() *DrySource {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(DrySource)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *DuckTypeGenerator) DeepCopyInto(out *DuckTypeGenerator) {
|
||||
*out = *in
|
||||
@@ -2122,6 +2144,22 @@ func (in *HostResourceInfo) DeepCopy() *HostResourceInfo {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *HydrateTo) DeepCopyInto(out *HydrateTo) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HydrateTo.
|
||||
func (in *HydrateTo) DeepCopy() *HydrateTo {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(HydrateTo)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in IgnoreDifferences) DeepCopyInto(out *IgnoreDifferences) {
|
||||
{
|
||||
@@ -4043,6 +4081,46 @@ func (in *SignatureKey) DeepCopy() *SignatureKey {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *SourceHydrator) DeepCopyInto(out *SourceHydrator) {
|
||||
*out = *in
|
||||
out.DrySource = in.DrySource
|
||||
out.SyncSource = in.SyncSource
|
||||
if in.HydrateTo != nil {
|
||||
in, out := &in.HydrateTo, &out.HydrateTo
|
||||
*out = new(HydrateTo)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceHydrator.
|
||||
func (in *SourceHydrator) DeepCopy() *SourceHydrator {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(SourceHydrator)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *SourceHydratorStatus) DeepCopyInto(out *SourceHydratorStatus) {
|
||||
*out = *in
|
||||
out.DrySource = in.DrySource
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceHydratorStatus.
|
||||
func (in *SourceHydratorStatus) DeepCopy() *SourceHydratorStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(SourceHydratorStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *SyncOperation) DeepCopyInto(out *SyncOperation) {
|
||||
*out = *in
|
||||
@@ -4229,6 +4307,22 @@ func (in *SyncPolicyAutomated) DeepCopy() *SyncPolicyAutomated {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *SyncSource) DeepCopyInto(out *SyncSource) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncSource.
|
||||
func (in *SyncSource) DeepCopy() *SyncSource {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(SyncSource)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *SyncStatus) DeepCopyInto(out *SyncStatus) {
|
||||
*out = *in
|
||||
|
||||
@@ -2340,6 +2340,116 @@ func (m *UpdateRevisionForPathsResponse) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_UpdateRevisionForPathsResponse proto.InternalMessageInfo
|
||||
|
||||
type HasDrySourceChangedRequest struct {
|
||||
Repo *v1alpha1.Repository `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
|
||||
ApplicationSource *v1alpha1.ApplicationSource `protobuf:"bytes,2,opt,name=applicationSource,proto3" json:"applicationSource,omitempty"`
|
||||
SyncedRevision string `protobuf:"bytes,3,opt,name=syncedRevision,proto3" json:"syncedRevision,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedRequest) Reset() { *m = HasDrySourceChangedRequest{} }
|
||||
func (m *HasDrySourceChangedRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*HasDrySourceChangedRequest) ProtoMessage() {}
|
||||
func (*HasDrySourceChangedRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_dd8723cfcc820480, []int{33}
|
||||
}
|
||||
func (m *HasDrySourceChangedRequest) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *HasDrySourceChangedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
if deterministic {
|
||||
return xxx_messageInfo_HasDrySourceChangedRequest.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 *HasDrySourceChangedRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_HasDrySourceChangedRequest.Merge(m, src)
|
||||
}
|
||||
func (m *HasDrySourceChangedRequest) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *HasDrySourceChangedRequest) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_HasDrySourceChangedRequest.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_HasDrySourceChangedRequest proto.InternalMessageInfo
|
||||
|
||||
func (m *HasDrySourceChangedRequest) GetRepo() *v1alpha1.Repository {
|
||||
if m != nil {
|
||||
return m.Repo
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedRequest) GetApplicationSource() *v1alpha1.ApplicationSource {
|
||||
if m != nil {
|
||||
return m.ApplicationSource
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedRequest) GetSyncedRevision() string {
|
||||
if m != nil {
|
||||
return m.SyncedRevision
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type HasDrySourceChangedResponse struct {
|
||||
HasChanged bool `protobuf:"varint,1,opt,name=hasChanged,proto3" json:"hasChanged,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedResponse) Reset() { *m = HasDrySourceChangedResponse{} }
|
||||
func (m *HasDrySourceChangedResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*HasDrySourceChangedResponse) ProtoMessage() {}
|
||||
func (*HasDrySourceChangedResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_dd8723cfcc820480, []int{34}
|
||||
}
|
||||
func (m *HasDrySourceChangedResponse) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *HasDrySourceChangedResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
if deterministic {
|
||||
return xxx_messageInfo_HasDrySourceChangedResponse.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 *HasDrySourceChangedResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_HasDrySourceChangedResponse.Merge(m, src)
|
||||
}
|
||||
func (m *HasDrySourceChangedResponse) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *HasDrySourceChangedResponse) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_HasDrySourceChangedResponse.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_HasDrySourceChangedResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *HasDrySourceChangedResponse) GetHasChanged() bool {
|
||||
if m != nil {
|
||||
return m.HasChanged
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*ManifestRequest)(nil), "repository.ManifestRequest")
|
||||
proto.RegisterMapType((map[string]bool)(nil), "repository.ManifestRequest.EnabledSourceTypesEntry")
|
||||
@@ -2383,6 +2493,8 @@ func init() {
|
||||
proto.RegisterType((*UpdateRevisionForPathsRequest)(nil), "repository.UpdateRevisionForPathsRequest")
|
||||
proto.RegisterMapType((map[string]*v1alpha1.RefTarget)(nil), "repository.UpdateRevisionForPathsRequest.RefSourcesEntry")
|
||||
proto.RegisterType((*UpdateRevisionForPathsResponse)(nil), "repository.UpdateRevisionForPathsResponse")
|
||||
proto.RegisterType((*HasDrySourceChangedRequest)(nil), "repository.HasDrySourceChangedRequest")
|
||||
proto.RegisterType((*HasDrySourceChangedResponse)(nil), "repository.HasDrySourceChangedResponse")
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -2390,149 +2502,154 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_dd8723cfcc820480 = []byte{
|
||||
// 2265 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x1a, 0x5d, 0x6f, 0x1b, 0xc7,
|
||||
0x51, 0x47, 0x52, 0x14, 0x39, 0x94, 0x25, 0x6a, 0x63, 0xcb, 0x67, 0xc6, 0x16, 0x94, 0x6b, 0x6d,
|
||||
0x38, 0x76, 0x42, 0xc2, 0x32, 0x12, 0xb7, 0x4e, 0x9a, 0x42, 0x71, 0x6c, 0xc9, 0xb1, 0x65, 0xab,
|
||||
0x67, 0xa7, 0x85, 0x5b, 0xb7, 0xc5, 0xf2, 0xb8, 0x24, 0x2f, 0x3c, 0xde, 0xad, 0xef, 0xf6, 0x14,
|
||||
0xd0, 0x40, 0x1f, 0x8a, 0x16, 0xfd, 0x09, 0x7d, 0xe8, 0xaf, 0x28, 0x50, 0x14, 0x7d, 0xec, 0x43,
|
||||
0xd1, 0x8f, 0xc7, 0xa2, 0x7f, 0xa0, 0x85, 0x5f, 0x0a, 0xf4, 0x57, 0x14, 0xfb, 0x71, 0x9f, 0x3c,
|
||||
0xd2, 0x4a, 0x69, 0x2b, 0x6d, 0x5f, 0xa4, 0xdb, 0xd9, 0xd9, 0x99, 0xd9, 0xd9, 0xf9, 0xdc, 0x25,
|
||||
0x5c, 0xf2, 0x09, 0xf5, 0x02, 0xe2, 0x1f, 0x11, 0xbf, 0x23, 0x3e, 0x6d, 0xe6, 0xf9, 0x93, 0xd4,
|
||||
0x67, 0x9b, 0xfa, 0x1e, 0xf3, 0x10, 0x24, 0x90, 0xd6, 0xfd, 0x81, 0xcd, 0x86, 0x61, 0xb7, 0x6d,
|
||||
0x79, 0xe3, 0x0e, 0xf6, 0x07, 0x1e, 0xf5, 0xbd, 0xcf, 0xc5, 0xc7, 0xbb, 0x56, 0xaf, 0x73, 0xb4,
|
||||
0xd3, 0xa1, 0xa3, 0x41, 0x07, 0x53, 0x3b, 0xe8, 0x60, 0x4a, 0x1d, 0xdb, 0xc2, 0xcc, 0xf6, 0xdc,
|
||||
0xce, 0xd1, 0x35, 0xec, 0xd0, 0x21, 0xbe, 0xd6, 0x19, 0x10, 0x97, 0xf8, 0x98, 0x91, 0x9e, 0xa4,
|
||||
0xdc, 0x7a, 0x73, 0xe0, 0x79, 0x03, 0x87, 0x74, 0xc4, 0xa8, 0x1b, 0xf6, 0x3b, 0x64, 0x4c, 0x99,
|
||||
0x62, 0x6b, 0xfc, 0x6b, 0x15, 0xd6, 0x0f, 0xb0, 0x6b, 0xf7, 0x49, 0xc0, 0x4c, 0xf2, 0x2c, 0x24,
|
||||
0x01, 0x43, 0x4f, 0xa1, 0xc2, 0x85, 0xd1, 0xb5, 0x6d, 0xed, 0x72, 0x63, 0x67, 0xbf, 0x9d, 0x48,
|
||||
0xd3, 0x8e, 0xa4, 0x11, 0x1f, 0x3f, 0xb6, 0x7a, 0xed, 0xa3, 0x9d, 0x36, 0x1d, 0x0d, 0xda, 0x5c,
|
||||
0x9a, 0x76, 0x4a, 0x9a, 0x76, 0x24, 0x4d, 0xdb, 0x8c, 0xb7, 0x65, 0x0a, 0xaa, 0xa8, 0x05, 0x35,
|
||||
0x9f, 0x1c, 0xd9, 0x81, 0xed, 0xb9, 0x7a, 0x69, 0x5b, 0xbb, 0x5c, 0x37, 0xe3, 0x31, 0xd2, 0x61,
|
||||
0xc5, 0xf5, 0x6e, 0x61, 0x6b, 0x48, 0xf4, 0xf2, 0xb6, 0x76, 0xb9, 0x66, 0x46, 0x43, 0xb4, 0x0d,
|
||||
0x0d, 0x4c, 0xe9, 0x7d, 0xdc, 0x25, 0xce, 0x3d, 0x32, 0xd1, 0x2b, 0x62, 0x61, 0x1a, 0xc4, 0xd7,
|
||||
0x62, 0x4a, 0x1f, 0xe0, 0x31, 0xd1, 0x97, 0xc5, 0x6c, 0x34, 0x44, 0xe7, 0xa1, 0xee, 0xe2, 0x31,
|
||||
0x09, 0x28, 0xb6, 0x88, 0x5e, 0x13, 0x73, 0x09, 0x00, 0xfd, 0x04, 0x36, 0x52, 0x82, 0x3f, 0xf2,
|
||||
0x42, 0xdf, 0x22, 0x3a, 0x88, 0xad, 0x3f, 0x5c, 0x6c, 0xeb, 0xbb, 0x79, 0xb2, 0xe6, 0x34, 0x27,
|
||||
0xf4, 0x23, 0x58, 0x16, 0x27, 0xaf, 0x37, 0xb6, 0xcb, 0xaf, 0x54, 0xdb, 0x92, 0x2c, 0x72, 0x61,
|
||||
0x85, 0x3a, 0xe1, 0xc0, 0x76, 0x03, 0x7d, 0x55, 0x70, 0x78, 0xbc, 0x18, 0x87, 0x5b, 0x9e, 0xdb,
|
||||
0xb7, 0x07, 0x07, 0xd8, 0xc5, 0x03, 0x32, 0x26, 0x2e, 0x3b, 0x14, 0xc4, 0xcd, 0x88, 0x09, 0x7a,
|
||||
0x0e, 0xcd, 0x51, 0x18, 0x30, 0x6f, 0x6c, 0x3f, 0x27, 0x0f, 0x29, 0x5f, 0x1b, 0xe8, 0xa7, 0x84,
|
||||
0x36, 0x1f, 0x2c, 0xc6, 0xf8, 0x5e, 0x8e, 0xaa, 0x39, 0xc5, 0x87, 0x1b, 0xc9, 0x28, 0xec, 0x92,
|
||||
0xef, 0x12, 0x5f, 0x58, 0xd7, 0x9a, 0x34, 0x92, 0x14, 0x48, 0x9a, 0x91, 0xad, 0x46, 0x81, 0xbe,
|
||||
0xbe, 0x5d, 0x96, 0x66, 0x14, 0x83, 0xd0, 0x65, 0x58, 0x3f, 0x22, 0xbe, 0xdd, 0x9f, 0x3c, 0xb2,
|
||||
0x07, 0x2e, 0x66, 0xa1, 0x4f, 0xf4, 0xa6, 0x30, 0xc5, 0x3c, 0x18, 0x8d, 0xe1, 0xd4, 0x90, 0x38,
|
||||
0x63, 0xae, 0xf2, 0x5b, 0x3e, 0xe9, 0x05, 0xfa, 0x86, 0xd0, 0xef, 0xde, 0xe2, 0x27, 0x28, 0xc8,
|
||||
0x99, 0x59, 0xea, 0x5c, 0x30, 0xd7, 0x33, 0x95, 0xa7, 0x48, 0x1f, 0x41, 0x52, 0xb0, 0x1c, 0x18,
|
||||
0x5d, 0x82, 0x35, 0xe6, 0x63, 0x6b, 0x64, 0xbb, 0x83, 0x03, 0xc2, 0x86, 0x5e, 0x4f, 0x7f, 0x43,
|
||||
0x68, 0x22, 0x07, 0x45, 0x16, 0x20, 0xe2, 0xe2, 0xae, 0x43, 0x7a, 0xd2, 0x16, 0x1f, 0x4f, 0x28,
|
||||
0x09, 0xf4, 0xd3, 0x62, 0x17, 0xd7, 0xdb, 0xa9, 0x08, 0x95, 0x0b, 0x10, 0xed, 0xdb, 0x53, 0xab,
|
||||
0x6e, 0xbb, 0xcc, 0x9f, 0x98, 0x05, 0xe4, 0xd0, 0x08, 0x1a, 0x7c, 0x1f, 0x91, 0x29, 0x9c, 0x11,
|
||||
0xa6, 0x70, 0x77, 0x31, 0x1d, 0xed, 0x27, 0x04, 0xcd, 0x34, 0x75, 0xd4, 0x06, 0x34, 0xc4, 0xc1,
|
||||
0x41, 0xe8, 0x30, 0x9b, 0x3a, 0x44, 0x8a, 0x11, 0xe8, 0x9b, 0x42, 0x4d, 0x05, 0x33, 0xe8, 0x1e,
|
||||
0x80, 0x4f, 0xfa, 0x11, 0xde, 0x59, 0xb1, 0xf3, 0xab, 0xf3, 0x76, 0x6e, 0xc6, 0xd8, 0x72, 0xc7,
|
||||
0xa9, 0xe5, 0x9c, 0x39, 0xdf, 0x06, 0xb1, 0x98, 0xf2, 0x76, 0xe1, 0xd6, 0xba, 0x30, 0xb1, 0x82,
|
||||
0x19, 0x6e, 0x8b, 0x0a, 0x2a, 0x82, 0xd6, 0x39, 0x69, 0xad, 0x29, 0x50, 0xeb, 0x36, 0x9c, 0x9d,
|
||||
0xa1, 0x6a, 0xd4, 0x84, 0xf2, 0x88, 0x4c, 0x44, 0x88, 0xae, 0x9b, 0xfc, 0x13, 0x9d, 0x86, 0xe5,
|
||||
0x23, 0xec, 0x84, 0x44, 0x04, 0xd5, 0x9a, 0x29, 0x07, 0x37, 0x4b, 0xdf, 0xd0, 0x5a, 0xbf, 0xd0,
|
||||
0x60, 0x3d, 0x27, 0x78, 0xc1, 0xfa, 0x1f, 0xa6, 0xd7, 0xbf, 0x02, 0x33, 0xee, 0x3f, 0xc6, 0xfe,
|
||||
0x80, 0xb0, 0x94, 0x20, 0xc6, 0xdf, 0x34, 0xd0, 0x73, 0x1a, 0xfd, 0x9e, 0xcd, 0x86, 0x77, 0x6c,
|
||||
0x87, 0x04, 0xe8, 0x06, 0xac, 0xf8, 0x12, 0xa6, 0x12, 0xcf, 0x9b, 0x73, 0x0e, 0x62, 0x7f, 0xc9,
|
||||
0x8c, 0xb0, 0xd1, 0x47, 0x50, 0x1b, 0x13, 0x86, 0x7b, 0x98, 0x61, 0x25, 0xfb, 0x76, 0xd1, 0x4a,
|
||||
0xce, 0xe5, 0x40, 0xe1, 0xed, 0x2f, 0x99, 0xf1, 0x1a, 0xf4, 0x1e, 0x2c, 0x5b, 0xc3, 0xd0, 0x1d,
|
||||
0x89, 0x94, 0xd3, 0xd8, 0xb9, 0x30, 0x6b, 0xf1, 0x2d, 0x8e, 0xb4, 0xbf, 0x64, 0x4a, 0xec, 0x8f,
|
||||
0xab, 0x50, 0xa1, 0xd8, 0x67, 0xc6, 0x1d, 0x38, 0x5d, 0xc4, 0x82, 0xe7, 0x39, 0x6b, 0x48, 0xac,
|
||||
0x51, 0x10, 0x8e, 0x95, 0x9a, 0xe3, 0x31, 0x42, 0x50, 0x09, 0xec, 0xe7, 0x52, 0xd5, 0x65, 0x53,
|
||||
0x7c, 0x1b, 0x6f, 0xc3, 0xc6, 0x14, 0x37, 0x7e, 0xa8, 0x52, 0x36, 0x4e, 0x61, 0x55, 0xb1, 0x36,
|
||||
0x42, 0x38, 0xf3, 0x58, 0xe8, 0x22, 0x0e, 0xf6, 0x27, 0x91, 0xb9, 0x8d, 0x7d, 0xd8, 0xcc, 0xb3,
|
||||
0x0d, 0xa8, 0xe7, 0x06, 0x84, 0x9b, 0xbe, 0x88, 0x8e, 0x36, 0xe9, 0x25, 0xb3, 0x42, 0x8a, 0x9a,
|
||||
0x59, 0x30, 0x63, 0xfc, 0xb4, 0x04, 0x9b, 0x26, 0x09, 0x3c, 0xe7, 0x88, 0x44, 0xa1, 0xeb, 0x64,
|
||||
0x8a, 0x8f, 0x1f, 0x40, 0x19, 0x53, 0xaa, 0xcc, 0xe4, 0xee, 0x2b, 0x4b, 0xef, 0x26, 0xa7, 0x8a,
|
||||
0xde, 0x81, 0x0d, 0x3c, 0xee, 0xda, 0x83, 0xd0, 0x0b, 0x83, 0x68, 0x5b, 0xc2, 0xa8, 0xea, 0xe6,
|
||||
0xf4, 0x84, 0x61, 0xc1, 0xd9, 0x29, 0x15, 0x28, 0x75, 0xa6, 0x4b, 0x24, 0x2d, 0x57, 0x22, 0x15,
|
||||
0x32, 0x29, 0xcd, 0x62, 0xf2, 0x27, 0x0d, 0x9a, 0x89, 0xeb, 0x28, 0xf2, 0xe7, 0xa1, 0x3e, 0x56,
|
||||
0xb0, 0x40, 0xd7, 0x44, 0x7c, 0x4a, 0x00, 0xd9, 0x6a, 0xa9, 0x94, 0xaf, 0x96, 0x36, 0xa1, 0x2a,
|
||||
0x8b, 0x59, 0xb5, 0x31, 0x35, 0xca, 0x88, 0x5c, 0xc9, 0x89, 0xbc, 0x05, 0x10, 0xc4, 0xf1, 0x4b,
|
||||
0xaf, 0x8a, 0xd9, 0x14, 0x04, 0x19, 0xb0, 0x2a, 0x73, 0xab, 0x49, 0x82, 0xd0, 0x61, 0xfa, 0x8a,
|
||||
0xc0, 0xc8, 0xc0, 0x0c, 0x0f, 0xd6, 0xef, 0xdb, 0x7c, 0x0f, 0xfd, 0xe0, 0x64, 0x8c, 0xfd, 0x7d,
|
||||
0xa8, 0x70, 0x66, 0x7c, 0x63, 0x5d, 0x1f, 0xbb, 0xd6, 0x90, 0x44, 0xba, 0x8a, 0xc7, 0xdc, 0x8d,
|
||||
0x19, 0x1e, 0x04, 0x7a, 0x49, 0xc0, 0xc5, 0xb7, 0xf1, 0xbb, 0x92, 0x94, 0x74, 0x97, 0xd2, 0xe0,
|
||||
0xab, 0x2f, 0xa8, 0x8b, 0x53, 0x7c, 0x79, 0x3a, 0xc5, 0xe7, 0x44, 0xfe, 0x32, 0x29, 0xfe, 0x15,
|
||||
0xa5, 0x29, 0x23, 0x84, 0x95, 0x5d, 0x4a, 0xb9, 0x20, 0xe8, 0x1a, 0x54, 0x30, 0xa5, 0x52, 0xe1,
|
||||
0xb9, 0x88, 0xac, 0x50, 0xf8, 0x7f, 0x25, 0x92, 0x40, 0x6d, 0xdd, 0x80, 0x7a, 0x0c, 0x7a, 0x19,
|
||||
0xdb, 0x7a, 0x9a, 0xed, 0x36, 0x80, 0xac, 0x61, 0xef, 0xba, 0x7d, 0x8f, 0x1f, 0x29, 0x37, 0x76,
|
||||
0xb5, 0x54, 0x7c, 0x1b, 0x37, 0x23, 0x0c, 0x21, 0xdb, 0x3b, 0xb0, 0x6c, 0x33, 0x32, 0x8e, 0x84,
|
||||
0xdb, 0x4c, 0x0b, 0x97, 0x10, 0x32, 0x25, 0x92, 0xf1, 0xe7, 0x1a, 0x9c, 0xe3, 0x27, 0xf6, 0x48,
|
||||
0xb8, 0xc9, 0x2e, 0xa5, 0x9f, 0x10, 0x86, 0x6d, 0x27, 0xf8, 0x4e, 0x48, 0xfc, 0xc9, 0x6b, 0x36,
|
||||
0x8c, 0x01, 0x54, 0xa5, 0x97, 0xa9, 0x78, 0xf7, 0xca, 0xdb, 0x19, 0x45, 0x3e, 0xe9, 0x61, 0xca,
|
||||
0xaf, 0xa7, 0x87, 0x29, 0xea, 0x29, 0x2a, 0x27, 0xd4, 0x53, 0xcc, 0x6e, 0x2b, 0x53, 0xcd, 0x6a,
|
||||
0x35, 0xdb, 0xac, 0x16, 0x94, 0xea, 0x2b, 0xc7, 0x2d, 0xd5, 0x6b, 0x85, 0xa5, 0xfa, 0xb8, 0xd0,
|
||||
0x8f, 0xeb, 0x42, 0xdd, 0xdf, 0x4a, 0x5b, 0xe0, 0x4c, 0x5b, 0x5b, 0xa4, 0x68, 0x87, 0xd7, 0x5a,
|
||||
0xb4, 0x7f, 0x96, 0x29, 0xc2, 0x65, 0x1b, 0xfc, 0xde, 0xf1, 0xf6, 0x34, 0xa7, 0x1c, 0xff, 0xbf,
|
||||
0x2b, 0x9e, 0x7f, 0x2e, 0x6a, 0x26, 0xea, 0x25, 0x3a, 0x88, 0x13, 0x3a, 0xcf, 0x43, 0x3c, 0xb5,
|
||||
0xaa, 0xa0, 0xc5, 0xbf, 0xd1, 0x55, 0xa8, 0x70, 0x25, 0xab, 0xa2, 0xf6, 0x6c, 0x5a, 0x9f, 0xfc,
|
||||
0x24, 0x76, 0x29, 0x7d, 0x44, 0x89, 0x65, 0x0a, 0x24, 0x74, 0x13, 0xea, 0xb1, 0xe1, 0x2b, 0xcf,
|
||||
0x3a, 0x9f, 0x5e, 0x11, 0xfb, 0x49, 0xb4, 0x2c, 0x41, 0xe7, 0x6b, 0x7b, 0xb6, 0x4f, 0x2c, 0x51,
|
||||
0xf2, 0x2d, 0x4f, 0xaf, 0xfd, 0x24, 0x9a, 0x8c, 0xd7, 0xc6, 0xe8, 0xe8, 0x1a, 0x54, 0xe5, 0xbd,
|
||||
0x81, 0xf0, 0xa0, 0xc6, 0xce, 0xb9, 0xe9, 0x60, 0x1a, 0xad, 0x52, 0x88, 0xc6, 0x1f, 0x35, 0x78,
|
||||
0x2b, 0x31, 0x88, 0xc8, 0x9b, 0xa2, 0xaa, 0xfb, 0xab, 0xcf, 0xb8, 0x97, 0x60, 0x4d, 0x94, 0xf9,
|
||||
0xc9, 0xf5, 0x81, 0xbc, 0xc9, 0xca, 0x41, 0x8d, 0xdf, 0x6a, 0x70, 0x71, 0x7a, 0x1f, 0xb7, 0x86,
|
||||
0xd8, 0x67, 0xf1, 0xf1, 0x9e, 0xc4, 0x5e, 0xa2, 0x84, 0x57, 0x4a, 0x12, 0x5e, 0x66, 0x7f, 0xe5,
|
||||
0xec, 0xfe, 0x8c, 0xdf, 0x97, 0xa0, 0x91, 0x32, 0xa0, 0xa2, 0x84, 0xc9, 0x0b, 0x3e, 0x61, 0xb7,
|
||||
0xa2, 0xb1, 0x13, 0x49, 0xa1, 0x6e, 0xa6, 0x20, 0x68, 0x04, 0x40, 0xb1, 0x8f, 0xc7, 0x84, 0x11,
|
||||
0x9f, 0x47, 0x72, 0xee, 0xf1, 0xf7, 0x16, 0x8f, 0x2e, 0x87, 0x11, 0x4d, 0x33, 0x45, 0x9e, 0x57,
|
||||
0xac, 0x82, 0x75, 0xa0, 0xe2, 0xb7, 0x1a, 0xa1, 0x2f, 0x60, 0xad, 0x6f, 0x3b, 0xe4, 0x30, 0x11,
|
||||
0xa4, 0x2a, 0x04, 0x79, 0xb8, 0xb8, 0x20, 0x77, 0xd2, 0x74, 0xcd, 0x1c, 0x1b, 0xe3, 0x0a, 0x34,
|
||||
0xf3, 0xfe, 0xc4, 0x85, 0xb4, 0xc7, 0x78, 0x10, 0x6b, 0x4b, 0x8d, 0x0c, 0x04, 0xcd, 0xbc, 0xff,
|
||||
0x18, 0x7f, 0x2f, 0xc1, 0x99, 0x98, 0xdc, 0xae, 0xeb, 0x7a, 0xa1, 0x6b, 0x89, 0xab, 0xb8, 0xc2,
|
||||
0xb3, 0x38, 0x0d, 0xcb, 0xcc, 0x66, 0x4e, 0x5c, 0xf8, 0x88, 0x01, 0xcf, 0x5d, 0xcc, 0xf3, 0x1c,
|
||||
0x66, 0x53, 0x75, 0xc0, 0xd1, 0x50, 0x9e, 0xfd, 0xb3, 0xd0, 0xf6, 0x49, 0x4f, 0x44, 0x82, 0x9a,
|
||||
0x19, 0x8f, 0xf9, 0x1c, 0xaf, 0x6a, 0x44, 0x19, 0x2f, 0x95, 0x19, 0x8f, 0x85, 0xdd, 0x7b, 0x8e,
|
||||
0x43, 0x2c, 0xae, 0x8e, 0x54, 0xa1, 0x9f, 0x83, 0x8a, 0x06, 0x82, 0xf9, 0xb6, 0x3b, 0x50, 0x65,
|
||||
0xbe, 0x1a, 0x71, 0x39, 0xb1, 0xef, 0xe3, 0x89, 0x5e, 0x13, 0x0a, 0x90, 0x03, 0xf4, 0x21, 0x94,
|
||||
0xc7, 0x98, 0xaa, 0x44, 0x77, 0x25, 0x13, 0x1d, 0x8a, 0x34, 0xd0, 0x3e, 0xc0, 0x54, 0x66, 0x02,
|
||||
0xbe, 0xac, 0xf5, 0x3e, 0xd4, 0x22, 0xc0, 0x97, 0x2a, 0x09, 0x3f, 0x87, 0x53, 0x99, 0xe0, 0x83,
|
||||
0x9e, 0xc0, 0x66, 0x62, 0x51, 0x69, 0x86, 0xaa, 0x08, 0x7c, 0xeb, 0xa5, 0x92, 0x99, 0x33, 0x08,
|
||||
0x18, 0xcf, 0x60, 0x83, 0x9b, 0x8c, 0x70, 0xfc, 0x13, 0x6a, 0x6d, 0x3e, 0x80, 0x7a, 0xcc, 0xb2,
|
||||
0xd0, 0x66, 0x5a, 0x50, 0x3b, 0x8a, 0xae, 0x48, 0x65, 0x6f, 0x13, 0x8f, 0x8d, 0x5d, 0x40, 0x69,
|
||||
0x79, 0x55, 0x06, 0xba, 0x9a, 0x2d, 0x8a, 0xcf, 0xe4, 0xd3, 0x8d, 0x40, 0x8f, 0x6a, 0xe2, 0xdf,
|
||||
0x94, 0x60, 0x7d, 0xcf, 0x16, 0xb7, 0x1c, 0x27, 0x14, 0xe4, 0xae, 0x40, 0x33, 0x08, 0xbb, 0x63,
|
||||
0xaf, 0x17, 0x3a, 0x44, 0x15, 0x05, 0x2a, 0xd3, 0x4f, 0xc1, 0xe7, 0x05, 0x3f, 0xae, 0x2c, 0x8a,
|
||||
0xd9, 0x50, 0x75, 0xb8, 0xe2, 0x1b, 0x7d, 0x08, 0xe7, 0x1e, 0x90, 0x2f, 0xd4, 0x7e, 0xf6, 0x1c,
|
||||
0xaf, 0xdb, 0xb5, 0xdd, 0x41, 0xc4, 0x64, 0x59, 0x30, 0x99, 0x8d, 0x50, 0x54, 0x2a, 0x56, 0x0b,
|
||||
0x4b, 0x45, 0xe3, 0x67, 0x1a, 0x34, 0x13, 0xad, 0x29, 0xbd, 0xdf, 0x90, 0xfe, 0x21, 0xb5, 0x7e,
|
||||
0x31, 0xad, 0xf5, 0x3c, 0xea, 0x7f, 0xee, 0x1a, 0xab, 0x69, 0xd7, 0xf8, 0xa7, 0x06, 0x67, 0xf6,
|
||||
0x6c, 0x16, 0x05, 0x25, 0xfb, 0x7f, 0xed, 0x04, 0x0b, 0xf4, 0x5d, 0x29, 0xd6, 0x77, 0x1b, 0x36,
|
||||
0xf3, 0x1b, 0x55, 0x4a, 0x3f, 0x0d, 0xcb, 0xfc, 0xe4, 0xa3, 0xfb, 0x00, 0x39, 0x30, 0x7e, 0x5d,
|
||||
0x85, 0x0b, 0x9f, 0xd1, 0x1e, 0x66, 0xf1, 0x7d, 0xce, 0x1d, 0xcf, 0x3f, 0xe4, 0x53, 0x27, 0xa3,
|
||||
0xa1, 0xdc, 0x0b, 0x59, 0x69, 0xee, 0x0b, 0x59, 0x79, 0xce, 0x0b, 0x59, 0xe5, 0x58, 0x2f, 0x64,
|
||||
0xcb, 0x27, 0xf6, 0x42, 0x36, 0xdd, 0x23, 0x55, 0x0b, 0x7b, 0xa4, 0x27, 0x99, 0x3e, 0x62, 0x45,
|
||||
0xb8, 0xc4, 0x37, 0xd3, 0x2e, 0x31, 0xf7, 0x74, 0xe6, 0x5e, 0xed, 0xe7, 0x1e, 0x96, 0x6a, 0x2f,
|
||||
0x7d, 0x58, 0xaa, 0x4f, 0x3f, 0x2c, 0x15, 0xbf, 0x4d, 0xc0, 0xcc, 0xb7, 0x89, 0x4b, 0xb0, 0x16,
|
||||
0x4c, 0x5c, 0x8b, 0xf4, 0xe2, 0x5b, 0xbe, 0x86, 0xdc, 0x76, 0x16, 0x9a, 0xb1, 0xf6, 0xd5, 0x9c,
|
||||
0xb5, 0xc7, 0x96, 0x7a, 0x2a, 0x65, 0xa9, 0xff, 0x3d, 0x2d, 0xcd, 0x36, 0x6c, 0xcd, 0x3a, 0x13,
|
||||
0xe9, 0x6a, 0x3b, 0x7f, 0x00, 0xd8, 0x48, 0xaa, 0x64, 0xfe, 0xd7, 0xb6, 0x08, 0x7a, 0x08, 0xcd,
|
||||
0x3d, 0xf5, 0xc8, 0x1d, 0x5d, 0x6e, 0xa2, 0x79, 0xaf, 0x05, 0xad, 0xf3, 0xc5, 0x93, 0x92, 0x89,
|
||||
0xb1, 0x84, 0x2c, 0x38, 0x97, 0x27, 0x98, 0x3c, 0x4c, 0x7c, 0x7d, 0x0e, 0xe5, 0x18, 0xeb, 0x65,
|
||||
0x2c, 0x2e, 0x6b, 0xe8, 0x09, 0xac, 0x65, 0xaf, 0xcf, 0x51, 0xa6, 0x6c, 0x28, 0xbc, 0xd1, 0x6f,
|
||||
0x19, 0xf3, 0x50, 0x62, 0xf9, 0x9f, 0xf2, 0x03, 0xcd, 0xdc, 0x25, 0x23, 0x23, 0xdb, 0x41, 0x17,
|
||||
0xdd, 0xb5, 0xb7, 0xbe, 0x36, 0x17, 0x27, 0xa6, 0xfe, 0x01, 0xd4, 0xa2, 0xbb, 0xd7, 0xac, 0x9a,
|
||||
0x73, 0x37, 0xb2, 0xad, 0x66, 0x96, 0x5e, 0x3f, 0x30, 0x96, 0xd0, 0x47, 0x72, 0xf1, 0x2e, 0xa5,
|
||||
0x05, 0x8b, 0x53, 0x37, 0x8e, 0xad, 0x37, 0x0a, 0x6e, 0xf9, 0x8c, 0x25, 0xf4, 0x6d, 0x68, 0xf0,
|
||||
0xaf, 0x43, 0xf5, 0xbc, 0xbc, 0xd9, 0x96, 0xbf, 0x66, 0x68, 0x47, 0xbf, 0x66, 0x68, 0xdf, 0x1e,
|
||||
0x53, 0x36, 0x69, 0x15, 0x5c, 0xc3, 0x29, 0x02, 0x4f, 0xe1, 0xd4, 0x1e, 0x61, 0x49, 0xd7, 0x8c,
|
||||
0x2e, 0x1e, 0xeb, 0x6e, 0xa1, 0x65, 0xe4, 0xd1, 0xa6, 0x1b, 0x6f, 0x63, 0x09, 0xfd, 0x52, 0x83,
|
||||
0x37, 0xf6, 0x08, 0xcb, 0xf7, 0xa1, 0xe8, 0xdd, 0x62, 0x26, 0x33, 0xfa, 0xd5, 0xd6, 0x83, 0x45,
|
||||
0xbd, 0x2b, 0x4b, 0xd6, 0x58, 0x42, 0xbf, 0xd2, 0xe0, 0x6c, 0x4a, 0xb0, 0x74, 0x63, 0x89, 0xae,
|
||||
0xcd, 0x17, 0xae, 0xa0, 0x09, 0x6d, 0x7d, 0xba, 0xe0, 0xaf, 0x06, 0x52, 0x24, 0x8d, 0x25, 0x74,
|
||||
0x28, 0xce, 0x24, 0xa9, 0x23, 0xd1, 0x85, 0xc2, 0x82, 0x31, 0xe6, 0xbe, 0x35, 0x6b, 0x3a, 0x3e,
|
||||
0x87, 0x4f, 0xa1, 0xb1, 0x47, 0x58, 0x54, 0xf4, 0x64, 0x2d, 0x2d, 0x57, 0x6b, 0x66, 0x5d, 0x35,
|
||||
0x5f, 0x27, 0x09, 0x8b, 0xd9, 0x90, 0xb4, 0x52, 0xc9, 0x3f, 0xeb, 0xab, 0x85, 0x15, 0x50, 0xd6,
|
||||
0x62, 0x8a, 0x6b, 0x07, 0x63, 0x09, 0x3d, 0x83, 0xcd, 0xe2, 0xa0, 0x87, 0xde, 0x3e, 0x76, 0xb2,
|
||||
0x6a, 0x5d, 0x39, 0x0e, 0x6a, 0xc4, 0xf2, 0xe3, 0xdd, 0xbf, 0xbc, 0xd8, 0xd2, 0xfe, 0xfa, 0x62,
|
||||
0x4b, 0xfb, 0xc7, 0x8b, 0x2d, 0xed, 0xfb, 0xd7, 0x5f, 0xf2, 0xeb, 0xa2, 0xd4, 0x0f, 0x96, 0x30,
|
||||
0xb5, 0x2d, 0xc7, 0x26, 0x2e, 0xeb, 0x56, 0x85, 0xbf, 0x5d, 0xff, 0x77, 0x00, 0x00, 0x00, 0xff,
|
||||
0xff, 0x0e, 0xc8, 0x27, 0xc7, 0xcf, 0x24, 0x00, 0x00,
|
||||
// 2338 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3a, 0x5b, 0x6f, 0x1c, 0x49,
|
||||
0xd5, 0x9e, 0x8b, 0xc7, 0x33, 0x67, 0x1c, 0x5f, 0x2a, 0x89, 0xd3, 0xe9, 0x24, 0x96, 0xb7, 0xbf,
|
||||
0x2f, 0x21, 0x9b, 0xec, 0x8e, 0x15, 0x47, 0xbb, 0x81, 0xec, 0x05, 0x79, 0x9d, 0xc4, 0xce, 0x26,
|
||||
0x4e, 0x4c, 0x27, 0x0b, 0x0a, 0x04, 0x50, 0x4d, 0x4f, 0xb9, 0xa7, 0xd7, 0x3d, 0xdd, 0x95, 0xee,
|
||||
0x6a, 0xaf, 0x26, 0x12, 0x0f, 0x08, 0xc4, 0x4f, 0xe0, 0x81, 0x37, 0x7e, 0x00, 0x12, 0x12, 0x42,
|
||||
0x3c, 0xf2, 0xc4, 0xe5, 0x11, 0xf1, 0x07, 0x40, 0x79, 0x41, 0xe2, 0x57, 0xa0, 0xba, 0xf4, 0x75,
|
||||
0x7a, 0xc6, 0x5e, 0x9c, 0xcc, 0x02, 0x2f, 0x76, 0xd7, 0xa9, 0x53, 0xe7, 0x9c, 0x3a, 0x75, 0x6e,
|
||||
0x75, 0x6a, 0xe0, 0x4a, 0x40, 0xa8, 0x1f, 0x92, 0xe0, 0x90, 0x04, 0xeb, 0xe2, 0xd3, 0x61, 0x7e,
|
||||
0x30, 0xcc, 0x7c, 0x76, 0x68, 0xe0, 0x33, 0x1f, 0x41, 0x0a, 0xd1, 0x1f, 0xda, 0x0e, 0xeb, 0x47,
|
||||
0xdd, 0x8e, 0xe5, 0x0f, 0xd6, 0x71, 0x60, 0xfb, 0x34, 0xf0, 0x3f, 0x17, 0x1f, 0xef, 0x5a, 0xbd,
|
||||
0xf5, 0xc3, 0x8d, 0x75, 0x7a, 0x60, 0xaf, 0x63, 0xea, 0x84, 0xeb, 0x98, 0x52, 0xd7, 0xb1, 0x30,
|
||||
0x73, 0x7c, 0x6f, 0xfd, 0xf0, 0x06, 0x76, 0x69, 0x1f, 0xdf, 0x58, 0xb7, 0x89, 0x47, 0x02, 0xcc,
|
||||
0x48, 0x4f, 0x52, 0xd6, 0x2f, 0xd8, 0xbe, 0x6f, 0xbb, 0x64, 0x5d, 0x8c, 0xba, 0xd1, 0xfe, 0x3a,
|
||||
0x19, 0x50, 0xa6, 0xd8, 0x1a, 0xff, 0x9c, 0x87, 0xc5, 0x5d, 0xec, 0x39, 0xfb, 0x24, 0x64, 0x26,
|
||||
0x79, 0x11, 0x91, 0x90, 0xa1, 0xe7, 0x50, 0xe7, 0xc2, 0x68, 0x95, 0xb5, 0xca, 0xd5, 0xf6, 0xc6,
|
||||
0x4e, 0x27, 0x95, 0xa6, 0x13, 0x4b, 0x23, 0x3e, 0x7e, 0x68, 0xf5, 0x3a, 0x87, 0x1b, 0x1d, 0x7a,
|
||||
0x60, 0x77, 0xb8, 0x34, 0x9d, 0x8c, 0x34, 0x9d, 0x58, 0x9a, 0x8e, 0x99, 0x6c, 0xcb, 0x14, 0x54,
|
||||
0x91, 0x0e, 0xcd, 0x80, 0x1c, 0x3a, 0xa1, 0xe3, 0x7b, 0x5a, 0x75, 0xad, 0x72, 0xb5, 0x65, 0x26,
|
||||
0x63, 0xa4, 0xc1, 0x9c, 0xe7, 0x6f, 0x61, 0xab, 0x4f, 0xb4, 0xda, 0x5a, 0xe5, 0x6a, 0xd3, 0x8c,
|
||||
0x87, 0x68, 0x0d, 0xda, 0x98, 0xd2, 0x87, 0xb8, 0x4b, 0xdc, 0x07, 0x64, 0xa8, 0xd5, 0xc5, 0xc2,
|
||||
0x2c, 0x88, 0xaf, 0xc5, 0x94, 0x3e, 0xc2, 0x03, 0xa2, 0xcd, 0x8a, 0xd9, 0x78, 0x88, 0x2e, 0x42,
|
||||
0xcb, 0xc3, 0x03, 0x12, 0x52, 0x6c, 0x11, 0xad, 0x29, 0xe6, 0x52, 0x00, 0xfa, 0x11, 0x2c, 0x67,
|
||||
0x04, 0x7f, 0xe2, 0x47, 0x81, 0x45, 0x34, 0x10, 0x5b, 0x7f, 0x7c, 0xb2, 0xad, 0x6f, 0x16, 0xc9,
|
||||
0x9a, 0xa3, 0x9c, 0xd0, 0x0f, 0x60, 0x56, 0x9c, 0xbc, 0xd6, 0x5e, 0xab, 0xbd, 0x56, 0x6d, 0x4b,
|
||||
0xb2, 0xc8, 0x83, 0x39, 0xea, 0x46, 0xb6, 0xe3, 0x85, 0xda, 0xbc, 0xe0, 0xf0, 0xf4, 0x64, 0x1c,
|
||||
0xb6, 0x7c, 0x6f, 0xdf, 0xb1, 0x77, 0xb1, 0x87, 0x6d, 0x32, 0x20, 0x1e, 0xdb, 0x13, 0xc4, 0xcd,
|
||||
0x98, 0x09, 0x7a, 0x09, 0x4b, 0x07, 0x51, 0xc8, 0xfc, 0x81, 0xf3, 0x92, 0x3c, 0xa6, 0x7c, 0x6d,
|
||||
0xa8, 0x9d, 0x12, 0xda, 0x7c, 0x74, 0x32, 0xc6, 0x0f, 0x0a, 0x54, 0xcd, 0x11, 0x3e, 0xdc, 0x48,
|
||||
0x0e, 0xa2, 0x2e, 0xf9, 0x36, 0x09, 0x84, 0x75, 0x2d, 0x48, 0x23, 0xc9, 0x80, 0xa4, 0x19, 0x39,
|
||||
0x6a, 0x14, 0x6a, 0x8b, 0x6b, 0x35, 0x69, 0x46, 0x09, 0x08, 0x5d, 0x85, 0xc5, 0x43, 0x12, 0x38,
|
||||
0xfb, 0xc3, 0x27, 0x8e, 0xed, 0x61, 0x16, 0x05, 0x44, 0x5b, 0x12, 0xa6, 0x58, 0x04, 0xa3, 0x01,
|
||||
0x9c, 0xea, 0x13, 0x77, 0xc0, 0x55, 0xbe, 0x15, 0x90, 0x5e, 0xa8, 0x2d, 0x0b, 0xfd, 0x6e, 0x9f,
|
||||
0xfc, 0x04, 0x05, 0x39, 0x33, 0x4f, 0x9d, 0x0b, 0xe6, 0xf9, 0xa6, 0xf2, 0x14, 0xe9, 0x23, 0x48,
|
||||
0x0a, 0x56, 0x00, 0xa3, 0x2b, 0xb0, 0xc0, 0x02, 0x6c, 0x1d, 0x38, 0x9e, 0xbd, 0x4b, 0x58, 0xdf,
|
||||
0xef, 0x69, 0xa7, 0x85, 0x26, 0x0a, 0x50, 0x64, 0x01, 0x22, 0x1e, 0xee, 0xba, 0xa4, 0x27, 0x6d,
|
||||
0xf1, 0xe9, 0x90, 0x92, 0x50, 0x3b, 0x23, 0x76, 0x71, 0xb3, 0x93, 0x89, 0x50, 0x85, 0x00, 0xd1,
|
||||
0xb9, 0x3b, 0xb2, 0xea, 0xae, 0xc7, 0x82, 0xa1, 0x59, 0x42, 0x0e, 0x1d, 0x40, 0x9b, 0xef, 0x23,
|
||||
0x36, 0x85, 0xb3, 0xc2, 0x14, 0xee, 0x9f, 0x4c, 0x47, 0x3b, 0x29, 0x41, 0x33, 0x4b, 0x1d, 0x75,
|
||||
0x00, 0xf5, 0x71, 0xb8, 0x1b, 0xb9, 0xcc, 0xa1, 0x2e, 0x91, 0x62, 0x84, 0xda, 0x8a, 0x50, 0x53,
|
||||
0xc9, 0x0c, 0x7a, 0x00, 0x10, 0x90, 0xfd, 0x18, 0xef, 0x9c, 0xd8, 0xf9, 0xf5, 0x49, 0x3b, 0x37,
|
||||
0x13, 0x6c, 0xb9, 0xe3, 0xcc, 0x72, 0xce, 0x9c, 0x6f, 0x83, 0x58, 0x4c, 0x79, 0xbb, 0x70, 0x6b,
|
||||
0x4d, 0x98, 0x58, 0xc9, 0x0c, 0xb7, 0x45, 0x05, 0x15, 0x41, 0xeb, 0xbc, 0xb4, 0xd6, 0x0c, 0x48,
|
||||
0xbf, 0x0b, 0xe7, 0xc6, 0xa8, 0x1a, 0x2d, 0x41, 0xed, 0x80, 0x0c, 0x45, 0x88, 0x6e, 0x99, 0xfc,
|
||||
0x13, 0x9d, 0x81, 0xd9, 0x43, 0xec, 0x46, 0x44, 0x04, 0xd5, 0xa6, 0x29, 0x07, 0xb7, 0xab, 0x5f,
|
||||
0xaf, 0xe8, 0x3f, 0xab, 0xc0, 0x62, 0x41, 0xf0, 0x92, 0xf5, 0xdf, 0xcf, 0xae, 0x7f, 0x0d, 0x66,
|
||||
0xbc, 0xff, 0x14, 0x07, 0x36, 0x61, 0x19, 0x41, 0x8c, 0xbf, 0x56, 0x40, 0x2b, 0x68, 0xf4, 0x3b,
|
||||
0x0e, 0xeb, 0xdf, 0x73, 0x5c, 0x12, 0xa2, 0x5b, 0x30, 0x17, 0x48, 0x98, 0x4a, 0x3c, 0x17, 0x26,
|
||||
0x1c, 0xc4, 0xce, 0x8c, 0x19, 0x63, 0xa3, 0x8f, 0xa1, 0x39, 0x20, 0x0c, 0xf7, 0x30, 0xc3, 0x4a,
|
||||
0xf6, 0xb5, 0xb2, 0x95, 0x9c, 0xcb, 0xae, 0xc2, 0xdb, 0x99, 0x31, 0x93, 0x35, 0xe8, 0x3d, 0x98,
|
||||
0xb5, 0xfa, 0x91, 0x77, 0x20, 0x52, 0x4e, 0x7b, 0xe3, 0xd2, 0xb8, 0xc5, 0x5b, 0x1c, 0x69, 0x67,
|
||||
0xc6, 0x94, 0xd8, 0x9f, 0x34, 0xa0, 0x4e, 0x71, 0xc0, 0x8c, 0x7b, 0x70, 0xa6, 0x8c, 0x05, 0xcf,
|
||||
0x73, 0x56, 0x9f, 0x58, 0x07, 0x61, 0x34, 0x50, 0x6a, 0x4e, 0xc6, 0x08, 0x41, 0x3d, 0x74, 0x5e,
|
||||
0x4a, 0x55, 0xd7, 0x4c, 0xf1, 0x6d, 0xbc, 0x0d, 0xcb, 0x23, 0xdc, 0xf8, 0xa1, 0x4a, 0xd9, 0x38,
|
||||
0x85, 0x79, 0xc5, 0xda, 0x88, 0xe0, 0xec, 0x53, 0xa1, 0x8b, 0x24, 0xd8, 0x4f, 0x23, 0x73, 0x1b,
|
||||
0x3b, 0xb0, 0x52, 0x64, 0x1b, 0x52, 0xdf, 0x0b, 0x09, 0x37, 0x7d, 0x11, 0x1d, 0x1d, 0xd2, 0x4b,
|
||||
0x67, 0x85, 0x14, 0x4d, 0xb3, 0x64, 0xc6, 0xf8, 0x71, 0x15, 0x56, 0x4c, 0x12, 0xfa, 0xee, 0x21,
|
||||
0x89, 0x43, 0xd7, 0x74, 0x8a, 0x8f, 0xef, 0x41, 0x0d, 0x53, 0xaa, 0xcc, 0xe4, 0xfe, 0x6b, 0x4b,
|
||||
0xef, 0x26, 0xa7, 0x8a, 0xde, 0x81, 0x65, 0x3c, 0xe8, 0x3a, 0x76, 0xe4, 0x47, 0x61, 0xbc, 0x2d,
|
||||
0x61, 0x54, 0x2d, 0x73, 0x74, 0xc2, 0xb0, 0xe0, 0xdc, 0x88, 0x0a, 0x94, 0x3a, 0xb3, 0x25, 0x52,
|
||||
0xa5, 0x50, 0x22, 0x95, 0x32, 0xa9, 0x8e, 0x63, 0xf2, 0xc7, 0x0a, 0x2c, 0xa5, 0xae, 0xa3, 0xc8,
|
||||
0x5f, 0x84, 0xd6, 0x40, 0xc1, 0x42, 0xad, 0x22, 0xe2, 0x53, 0x0a, 0xc8, 0x57, 0x4b, 0xd5, 0x62,
|
||||
0xb5, 0xb4, 0x02, 0x0d, 0x59, 0xcc, 0xaa, 0x8d, 0xa9, 0x51, 0x4e, 0xe4, 0x7a, 0x41, 0xe4, 0x55,
|
||||
0x80, 0x30, 0x89, 0x5f, 0x5a, 0x43, 0xcc, 0x66, 0x20, 0xc8, 0x80, 0x79, 0x99, 0x5b, 0x4d, 0x12,
|
||||
0x46, 0x2e, 0xd3, 0xe6, 0x04, 0x46, 0x0e, 0x66, 0xf8, 0xb0, 0xf8, 0xd0, 0xe1, 0x7b, 0xd8, 0x0f,
|
||||
0xa7, 0x63, 0xec, 0xef, 0x43, 0x9d, 0x33, 0xe3, 0x1b, 0xeb, 0x06, 0xd8, 0xb3, 0xfa, 0x24, 0xd6,
|
||||
0x55, 0x32, 0xe6, 0x6e, 0xcc, 0xb0, 0x1d, 0x6a, 0x55, 0x01, 0x17, 0xdf, 0xc6, 0xef, 0xaa, 0x52,
|
||||
0xd2, 0x4d, 0x4a, 0xc3, 0xaf, 0xbe, 0xa0, 0x2e, 0x4f, 0xf1, 0xb5, 0xd1, 0x14, 0x5f, 0x10, 0xf9,
|
||||
0xcb, 0xa4, 0xf8, 0xd7, 0x94, 0xa6, 0x8c, 0x08, 0xe6, 0x36, 0x29, 0xe5, 0x82, 0xa0, 0x1b, 0x50,
|
||||
0xc7, 0x94, 0x4a, 0x85, 0x17, 0x22, 0xb2, 0x42, 0xe1, 0xff, 0x95, 0x48, 0x02, 0x55, 0xbf, 0x05,
|
||||
0xad, 0x04, 0x74, 0x14, 0xdb, 0x56, 0x96, 0xed, 0x1a, 0x80, 0xac, 0x61, 0xef, 0x7b, 0xfb, 0x3e,
|
||||
0x3f, 0x52, 0x6e, 0xec, 0x6a, 0xa9, 0xf8, 0x36, 0x6e, 0xc7, 0x18, 0x42, 0xb6, 0x77, 0x60, 0xd6,
|
||||
0x61, 0x64, 0x10, 0x0b, 0xb7, 0x92, 0x15, 0x2e, 0x25, 0x64, 0x4a, 0x24, 0xe3, 0x4f, 0x4d, 0x38,
|
||||
0xcf, 0x4f, 0xec, 0x89, 0x70, 0x93, 0x4d, 0x4a, 0xef, 0x10, 0x86, 0x1d, 0x37, 0xfc, 0x56, 0x44,
|
||||
0x82, 0xe1, 0x1b, 0x36, 0x0c, 0x1b, 0x1a, 0xd2, 0xcb, 0x54, 0xbc, 0x7b, 0xed, 0xd7, 0x19, 0x45,
|
||||
0x3e, 0xbd, 0xc3, 0xd4, 0xde, 0xcc, 0x1d, 0xa6, 0xec, 0x4e, 0x51, 0x9f, 0xd2, 0x9d, 0x62, 0xfc,
|
||||
0xb5, 0x32, 0x73, 0x59, 0x6d, 0xe4, 0x2f, 0xab, 0x25, 0xa5, 0xfa, 0xdc, 0x71, 0x4b, 0xf5, 0x66,
|
||||
0x69, 0xa9, 0x3e, 0x28, 0xf5, 0xe3, 0x96, 0x50, 0xf7, 0x47, 0x59, 0x0b, 0x1c, 0x6b, 0x6b, 0x27,
|
||||
0x29, 0xda, 0xe1, 0x8d, 0x16, 0xed, 0x9f, 0xe5, 0x8a, 0x70, 0x79, 0x0d, 0x7e, 0xef, 0x78, 0x7b,
|
||||
0x9a, 0x50, 0x8e, 0xff, 0xcf, 0x15, 0xcf, 0x3f, 0x15, 0x35, 0x13, 0xf5, 0x53, 0x1d, 0x24, 0x09,
|
||||
0x9d, 0xe7, 0x21, 0x9e, 0x5a, 0x55, 0xd0, 0xe2, 0xdf, 0xe8, 0x3a, 0xd4, 0xb9, 0x92, 0x55, 0x51,
|
||||
0x7b, 0x2e, 0xab, 0x4f, 0x7e, 0x12, 0x9b, 0x94, 0x3e, 0xa1, 0xc4, 0x32, 0x05, 0x12, 0xba, 0x0d,
|
||||
0xad, 0xc4, 0xf0, 0x95, 0x67, 0x5d, 0xcc, 0xae, 0x48, 0xfc, 0x24, 0x5e, 0x96, 0xa2, 0xf3, 0xb5,
|
||||
0x3d, 0x27, 0x20, 0x96, 0x28, 0xf9, 0x66, 0x47, 0xd7, 0xde, 0x89, 0x27, 0x93, 0xb5, 0x09, 0x3a,
|
||||
0xba, 0x01, 0x0d, 0xd9, 0x37, 0x10, 0x1e, 0xd4, 0xde, 0x38, 0x3f, 0x1a, 0x4c, 0xe3, 0x55, 0x0a,
|
||||
0xd1, 0xf8, 0x43, 0x05, 0xde, 0x4a, 0x0d, 0x22, 0xf6, 0xa6, 0xb8, 0xea, 0xfe, 0xea, 0x33, 0xee,
|
||||
0x15, 0x58, 0x10, 0x65, 0x7e, 0xda, 0x3e, 0x90, 0x9d, 0xac, 0x02, 0xd4, 0xf8, 0x6d, 0x05, 0x2e,
|
||||
0x8f, 0xee, 0x63, 0xab, 0x8f, 0x03, 0x96, 0x1c, 0xef, 0x34, 0xf6, 0x12, 0x27, 0xbc, 0x6a, 0x9a,
|
||||
0xf0, 0x72, 0xfb, 0xab, 0xe5, 0xf7, 0x67, 0xfc, 0xbe, 0x0a, 0xed, 0x8c, 0x01, 0x95, 0x25, 0x4c,
|
||||
0x5e, 0xf0, 0x09, 0xbb, 0x15, 0x17, 0x3b, 0x91, 0x14, 0x5a, 0x66, 0x06, 0x82, 0x0e, 0x00, 0x28,
|
||||
0x0e, 0xf0, 0x80, 0x30, 0x12, 0xf0, 0x48, 0xce, 0x3d, 0xfe, 0xc1, 0xc9, 0xa3, 0xcb, 0x5e, 0x4c,
|
||||
0xd3, 0xcc, 0x90, 0xe7, 0x15, 0xab, 0x60, 0x1d, 0xaa, 0xf8, 0xad, 0x46, 0xe8, 0x0b, 0x58, 0xd8,
|
||||
0x77, 0x5c, 0xb2, 0x97, 0x0a, 0xd2, 0x10, 0x82, 0x3c, 0x3e, 0xb9, 0x20, 0xf7, 0xb2, 0x74, 0xcd,
|
||||
0x02, 0x1b, 0xe3, 0x1a, 0x2c, 0x15, 0xfd, 0x89, 0x0b, 0xe9, 0x0c, 0xb0, 0x9d, 0x68, 0x4b, 0x8d,
|
||||
0x0c, 0x04, 0x4b, 0x45, 0xff, 0x31, 0xfe, 0x56, 0x85, 0xb3, 0x09, 0xb9, 0x4d, 0xcf, 0xf3, 0x23,
|
||||
0xcf, 0x12, 0xad, 0xb8, 0xd2, 0xb3, 0x38, 0x03, 0xb3, 0xcc, 0x61, 0x6e, 0x52, 0xf8, 0x88, 0x01,
|
||||
0xcf, 0x5d, 0xcc, 0xf7, 0x5d, 0xe6, 0x50, 0x75, 0xc0, 0xf1, 0x50, 0x9e, 0xfd, 0x8b, 0xc8, 0x09,
|
||||
0x48, 0x4f, 0x44, 0x82, 0xa6, 0x99, 0x8c, 0xf9, 0x1c, 0xaf, 0x6a, 0x44, 0x19, 0x2f, 0x95, 0x99,
|
||||
0x8c, 0x85, 0xdd, 0xfb, 0xae, 0x4b, 0x2c, 0xae, 0x8e, 0x4c, 0xa1, 0x5f, 0x80, 0x8a, 0x0b, 0x04,
|
||||
0x0b, 0x1c, 0xcf, 0x56, 0x65, 0xbe, 0x1a, 0x71, 0x39, 0x71, 0x10, 0xe0, 0xa1, 0xd6, 0x14, 0x0a,
|
||||
0x90, 0x03, 0xf4, 0x21, 0xd4, 0x06, 0x98, 0xaa, 0x44, 0x77, 0x2d, 0x17, 0x1d, 0xca, 0x34, 0xd0,
|
||||
0xd9, 0xc5, 0x54, 0x66, 0x02, 0xbe, 0x4c, 0x7f, 0x1f, 0x9a, 0x31, 0xe0, 0x4b, 0x95, 0x84, 0x9f,
|
||||
0xc3, 0xa9, 0x5c, 0xf0, 0x41, 0xcf, 0x60, 0x25, 0xb5, 0xa8, 0x2c, 0x43, 0x55, 0x04, 0xbe, 0x75,
|
||||
0xa4, 0x64, 0xe6, 0x18, 0x02, 0xc6, 0x0b, 0x58, 0xe6, 0x26, 0x23, 0x1c, 0x7f, 0x4a, 0x57, 0x9b,
|
||||
0x0f, 0xa0, 0x95, 0xb0, 0x2c, 0xb5, 0x19, 0x1d, 0x9a, 0x87, 0x71, 0x8b, 0x54, 0xde, 0x6d, 0x92,
|
||||
0xb1, 0xb1, 0x09, 0x28, 0x2b, 0xaf, 0xca, 0x40, 0xd7, 0xf3, 0x45, 0xf1, 0xd9, 0x62, 0xba, 0x11,
|
||||
0xe8, 0x71, 0x4d, 0xfc, 0x9b, 0x2a, 0x2c, 0x6e, 0x3b, 0xa2, 0xcb, 0x31, 0xa5, 0x20, 0x77, 0x0d,
|
||||
0x96, 0xc2, 0xa8, 0x3b, 0xf0, 0x7b, 0x91, 0x4b, 0x54, 0x51, 0xa0, 0x32, 0xfd, 0x08, 0x7c, 0x52,
|
||||
0xf0, 0xe3, 0xca, 0xa2, 0x98, 0xf5, 0xd5, 0x0d, 0x57, 0x7c, 0xa3, 0x0f, 0xe1, 0xfc, 0x23, 0xf2,
|
||||
0x85, 0xda, 0xcf, 0xb6, 0xeb, 0x77, 0xbb, 0x8e, 0x67, 0xc7, 0x4c, 0x66, 0x05, 0x93, 0xf1, 0x08,
|
||||
0x65, 0xa5, 0x62, 0xa3, 0xb4, 0x54, 0x34, 0x7e, 0x52, 0x81, 0xa5, 0x54, 0x6b, 0x4a, 0xef, 0xb7,
|
||||
0xa4, 0x7f, 0x48, 0xad, 0x5f, 0xce, 0x6a, 0xbd, 0x88, 0xfa, 0xef, 0xbb, 0xc6, 0x7c, 0xd6, 0x35,
|
||||
0xfe, 0x51, 0x81, 0xb3, 0xdb, 0x0e, 0x8b, 0x83, 0x92, 0xf3, 0xdf, 0x76, 0x82, 0x25, 0xfa, 0xae,
|
||||
0x97, 0xeb, 0xbb, 0x03, 0x2b, 0xc5, 0x8d, 0x2a, 0xa5, 0x9f, 0x81, 0x59, 0x7e, 0xf2, 0x71, 0x3f,
|
||||
0x40, 0x0e, 0x8c, 0x5f, 0x37, 0xe0, 0xd2, 0x67, 0xb4, 0x87, 0x59, 0xd2, 0xcf, 0xb9, 0xe7, 0x07,
|
||||
0x7b, 0x7c, 0x6a, 0x3a, 0x1a, 0x2a, 0xbc, 0x90, 0x55, 0x27, 0xbe, 0x90, 0xd5, 0x26, 0xbc, 0x90,
|
||||
0xd5, 0x8f, 0xf5, 0x42, 0x36, 0x3b, 0xb5, 0x17, 0xb2, 0xd1, 0x3b, 0x52, 0xa3, 0xf4, 0x8e, 0xf4,
|
||||
0x2c, 0x77, 0x8f, 0x98, 0x13, 0x2e, 0xf1, 0x8d, 0xac, 0x4b, 0x4c, 0x3c, 0x9d, 0x89, 0xad, 0xfd,
|
||||
0xc2, 0xc3, 0x52, 0xf3, 0xc8, 0x87, 0xa5, 0xd6, 0xe8, 0xc3, 0x52, 0xf9, 0xdb, 0x04, 0x8c, 0x7d,
|
||||
0x9b, 0xb8, 0x02, 0x0b, 0xe1, 0xd0, 0xb3, 0x48, 0x2f, 0xe9, 0xf2, 0xb5, 0xe5, 0xb6, 0xf3, 0xd0,
|
||||
0x9c, 0xb5, 0xcf, 0x17, 0xac, 0x3d, 0xb1, 0xd4, 0x53, 0x19, 0x4b, 0xfd, 0xcf, 0xb9, 0xd2, 0xac,
|
||||
0xc1, 0xea, 0xb8, 0x33, 0x91, 0xae, 0x66, 0xfc, 0xb2, 0x0a, 0xfa, 0x0e, 0x0e, 0xef, 0x04, 0x43,
|
||||
0x29, 0xed, 0x56, 0x1f, 0x7b, 0x36, 0xdf, 0xfc, 0x34, 0x3c, 0xaa, 0xd4, 0xee, 0xab, 0xd3, 0xb4,
|
||||
0xfb, 0x82, 0x01, 0xd4, 0xca, 0x0c, 0xc0, 0xf8, 0x08, 0x2e, 0x94, 0xaa, 0x48, 0x45, 0xab, 0x55,
|
||||
0x80, 0x3e, 0x0e, 0x15, 0x54, 0xf5, 0xe4, 0x33, 0x90, 0x8d, 0x5f, 0xb5, 0x61, 0x39, 0xbd, 0x88,
|
||||
0xf0, 0xbf, 0x8e, 0x45, 0xd0, 0x63, 0x58, 0xda, 0x56, 0xbf, 0x23, 0x88, 0xfb, 0xc7, 0x68, 0xd2,
|
||||
0x83, 0x8c, 0x7e, 0xb1, 0x7c, 0x52, 0x9d, 0xe3, 0x0c, 0xb2, 0xe0, 0x7c, 0x91, 0x60, 0xfa, 0xf6,
|
||||
0xf3, 0xff, 0x13, 0x28, 0x27, 0x58, 0x47, 0xb1, 0xb8, 0x5a, 0x41, 0xcf, 0x60, 0x21, 0xff, 0x42,
|
||||
0x81, 0x72, 0x95, 0x59, 0xe9, 0xa3, 0x89, 0x6e, 0x4c, 0x42, 0x49, 0xe4, 0x7f, 0xce, 0x7d, 0x26,
|
||||
0xd7, 0xae, 0x47, 0x46, 0xbe, 0x49, 0x51, 0xf6, 0x9c, 0xa1, 0xff, 0xdf, 0x44, 0x9c, 0x84, 0xfa,
|
||||
0x07, 0xd0, 0x8c, 0xdb, 0xdb, 0x79, 0x35, 0x17, 0x9a, 0xde, 0xfa, 0x52, 0x9e, 0xde, 0x7e, 0x68,
|
||||
0xcc, 0xa0, 0x8f, 0xe5, 0xe2, 0x4d, 0x4a, 0x4b, 0x16, 0x67, 0x9a, 0xba, 0xfa, 0xe9, 0x92, 0x46,
|
||||
0xaa, 0x31, 0x83, 0xbe, 0x09, 0x6d, 0xfe, 0xb5, 0xa7, 0x5e, 0xf0, 0x57, 0x3a, 0xf2, 0x07, 0x23,
|
||||
0x9d, 0xf8, 0x07, 0x23, 0x9d, 0xbb, 0x03, 0xca, 0x86, 0x7a, 0x49, 0xa7, 0x53, 0x11, 0x78, 0x0e,
|
||||
0xa7, 0xb6, 0x09, 0x4b, 0x1b, 0x13, 0xe8, 0xf2, 0xb1, 0xda, 0x37, 0xba, 0x51, 0x44, 0x1b, 0xed,
|
||||
0x6d, 0x18, 0x33, 0xe8, 0xe7, 0x15, 0x38, 0xbd, 0x4d, 0x58, 0xf1, 0xaa, 0x8f, 0xde, 0x2d, 0x67,
|
||||
0x32, 0xa6, 0x25, 0xa0, 0x3f, 0x3a, 0x69, 0x74, 0xc8, 0x93, 0x35, 0x66, 0xd0, 0x2f, 0x2a, 0x70,
|
||||
0x2e, 0x23, 0x58, 0xf6, 0xee, 0x8e, 0x6e, 0x4c, 0x16, 0xae, 0xe4, 0x9e, 0xaf, 0x7f, 0x7a, 0xc2,
|
||||
0x1f, 0x66, 0x64, 0x48, 0x1a, 0x33, 0x68, 0x4f, 0x9c, 0x49, 0x5a, 0xaa, 0xa3, 0x4b, 0xa5, 0x35,
|
||||
0x79, 0xc2, 0x7d, 0x75, 0xdc, 0x74, 0x72, 0x0e, 0x9f, 0x42, 0x7b, 0x9b, 0xb0, 0xb8, 0xae, 0xcc,
|
||||
0x5b, 0x5a, 0xa1, 0x9c, 0xcf, 0xbb, 0x6a, 0xb1, 0x14, 0x15, 0x16, 0xb3, 0x2c, 0x69, 0x65, 0xea,
|
||||
0xab, 0xbc, 0xaf, 0x96, 0x16, 0x99, 0x79, 0x8b, 0x29, 0x2f, 0xcf, 0x8c, 0x19, 0xf4, 0x02, 0x56,
|
||||
0xca, 0xf3, 0x0a, 0x7a, 0xfb, 0xd8, 0xf5, 0x80, 0x7e, 0xed, 0x38, 0xa8, 0x09, 0xcb, 0x3e, 0x9c,
|
||||
0x2e, 0x09, 0xc2, 0xe8, 0x4a, 0x4e, 0xab, 0x63, 0x13, 0x99, 0xfe, 0xb5, 0x23, 0xf1, 0x62, 0x4e,
|
||||
0x9f, 0x6c, 0xfe, 0xf9, 0xd5, 0x6a, 0xe5, 0x2f, 0xaf, 0x56, 0x2b, 0x7f, 0x7f, 0xb5, 0x5a, 0xf9,
|
||||
0xee, 0xcd, 0x23, 0x7e, 0x2a, 0x96, 0xf9, 0xf5, 0x19, 0xa6, 0x8e, 0xe5, 0x3a, 0xc4, 0x63, 0xdd,
|
||||
0x86, 0xf0, 0xec, 0x9b, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x13, 0x2f, 0x30, 0x1e, 0x9c, 0x26,
|
||||
0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@@ -2575,6 +2692,8 @@ type RepoServerServiceClient interface {
|
||||
GetGitDirectories(ctx context.Context, in *GitDirectoriesRequest, opts ...grpc.CallOption) (*GitDirectoriesResponse, error)
|
||||
// UpdateRevisionForPaths will compare two revisions and update the cache with the new revision if no changes are detected in the provided paths
|
||||
UpdateRevisionForPaths(ctx context.Context, in *UpdateRevisionForPathsRequest, opts ...grpc.CallOption) (*UpdateRevisionForPathsResponse, error)
|
||||
// HasDrySourceChanged determines whether a dry source has changed since the last synced revision
|
||||
HasDrySourceChanged(ctx context.Context, in *HasDrySourceChangedRequest, opts ...grpc.CallOption) (*HasDrySourceChangedResponse, error)
|
||||
}
|
||||
|
||||
type repoServerServiceClient struct {
|
||||
@@ -2736,6 +2855,15 @@ func (c *repoServerServiceClient) UpdateRevisionForPaths(ctx context.Context, in
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *repoServerServiceClient) HasDrySourceChanged(ctx context.Context, in *HasDrySourceChangedRequest, opts ...grpc.CallOption) (*HasDrySourceChangedResponse, error) {
|
||||
out := new(HasDrySourceChangedResponse)
|
||||
err := c.cc.Invoke(ctx, "/repository.RepoServerService/ResolveDryRevision", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// RepoServerServiceServer is the server API for RepoServerService service.
|
||||
type RepoServerServiceServer interface {
|
||||
// GenerateManifest generates manifest for application in specified repo name and revision
|
||||
@@ -2766,6 +2894,8 @@ type RepoServerServiceServer interface {
|
||||
GetGitDirectories(context.Context, *GitDirectoriesRequest) (*GitDirectoriesResponse, error)
|
||||
// UpdateRevisionForPaths will compare two revisions and update the cache with the new revision if no changes are detected in the provided paths
|
||||
UpdateRevisionForPaths(context.Context, *UpdateRevisionForPathsRequest) (*UpdateRevisionForPathsResponse, error)
|
||||
// HasDrySourceChanged determines whether a dry source has changed since the last synced revision
|
||||
HasDrySourceChanged(context.Context, *HasDrySourceChangedRequest) (*HasDrySourceChangedResponse, error)
|
||||
}
|
||||
|
||||
// UnimplementedRepoServerServiceServer can be embedded to have forward compatible implementations.
|
||||
@@ -2814,6 +2944,9 @@ func (*UnimplementedRepoServerServiceServer) GetGitDirectories(ctx context.Conte
|
||||
func (*UnimplementedRepoServerServiceServer) UpdateRevisionForPaths(ctx context.Context, req *UpdateRevisionForPathsRequest) (*UpdateRevisionForPathsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateRevisionForPaths not implemented")
|
||||
}
|
||||
func (*UnimplementedRepoServerServiceServer) HasDrySourceChanged(ctx context.Context, req *HasDrySourceChangedRequest) (*HasDrySourceChangedResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ResolveDryRevision not implemented")
|
||||
}
|
||||
|
||||
func RegisterRepoServerServiceServer(s *grpc.Server, srv RepoServerServiceServer) {
|
||||
s.RegisterService(&_RepoServerService_serviceDesc, srv)
|
||||
@@ -3079,6 +3212,24 @@ func _RepoServerService_UpdateRevisionForPaths_Handler(srv interface{}, ctx cont
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _RepoServerService_HasDrySourceChanged_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(HasDrySourceChangedRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(RepoServerServiceServer).HasDrySourceChanged(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/repository.RepoServerService/ResolveDryRevision",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(RepoServerServiceServer).HasDrySourceChanged(ctx, req.(*HasDrySourceChangedRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
var _RepoServerService_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "repository.RepoServerService",
|
||||
HandlerType: (*RepoServerServiceServer)(nil),
|
||||
@@ -3135,6 +3286,10 @@ var _RepoServerService_serviceDesc = grpc.ServiceDesc{
|
||||
MethodName: "UpdateRevisionForPaths",
|
||||
Handler: _RepoServerService_UpdateRevisionForPaths_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ResolveDryRevision",
|
||||
Handler: _RepoServerService_HasDrySourceChanged_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{
|
||||
{
|
||||
@@ -5317,6 +5472,101 @@ func (m *UpdateRevisionForPathsResponse) MarshalToSizedBuffer(dAtA []byte) (int,
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedRequest) 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 *HasDrySourceChangedRequest) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedRequest) 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.SyncedRevision) > 0 {
|
||||
i -= len(m.SyncedRevision)
|
||||
copy(dAtA[i:], m.SyncedRevision)
|
||||
i = encodeVarintRepository(dAtA, i, uint64(len(m.SyncedRevision)))
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
}
|
||||
if m.ApplicationSource != nil {
|
||||
{
|
||||
size, err := m.ApplicationSource.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintRepository(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
if m.Repo != nil {
|
||||
{
|
||||
size, err := m.Repo.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintRepository(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedResponse) 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 *HasDrySourceChangedResponse) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedResponse) 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.HasChanged {
|
||||
i--
|
||||
if m.HasChanged {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x8
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func encodeVarintRepository(dAtA []byte, offset int, v uint64) int {
|
||||
offset -= sovRepository(v)
|
||||
base := offset
|
||||
@@ -6300,6 +6550,45 @@ func (m *UpdateRevisionForPathsResponse) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedRequest) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
if m.Repo != nil {
|
||||
l = m.Repo.Size()
|
||||
n += 1 + l + sovRepository(uint64(l))
|
||||
}
|
||||
if m.ApplicationSource != nil {
|
||||
l = m.ApplicationSource.Size()
|
||||
n += 1 + l + sovRepository(uint64(l))
|
||||
}
|
||||
l = len(m.SyncedRevision)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovRepository(uint64(l))
|
||||
}
|
||||
if m.XXX_unrecognized != nil {
|
||||
n += len(m.XXX_unrecognized)
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *HasDrySourceChangedResponse) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
if m.HasChanged {
|
||||
n += 2
|
||||
}
|
||||
if m.XXX_unrecognized != nil {
|
||||
n += len(m.XXX_unrecognized)
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func sovRepository(x uint64) (n int) {
|
||||
return (math_bits.Len64(x|1) + 6) / 7
|
||||
}
|
||||
@@ -12491,6 +12780,232 @@ func (m *UpdateRevisionForPathsResponse) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *HasDrySourceChangedRequest) 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 ErrIntOverflowRepository
|
||||
}
|
||||
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: HasDrySourceChangedRequest: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: HasDrySourceChangedRequest: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Repo", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowRepository
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthRepository
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthRepository
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if m.Repo == nil {
|
||||
m.Repo = &v1alpha1.Repository{}
|
||||
}
|
||||
if err := m.Repo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field ApplicationSource", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowRepository
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthRepository
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthRepository
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if m.ApplicationSource == nil {
|
||||
m.ApplicationSource = &v1alpha1.ApplicationSource{}
|
||||
}
|
||||
if err := m.ApplicationSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field SyncedRevision", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowRepository
|
||||
}
|
||||
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 ErrInvalidLengthRepository
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthRepository
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.SyncedRevision = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipRepository(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthRepository
|
||||
}
|
||||
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 *HasDrySourceChangedResponse) 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 ErrIntOverflowRepository
|
||||
}
|
||||
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: HasDrySourceChangedResponse: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: HasDrySourceChangedResponse: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field HasChanged", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowRepository
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.HasChanged = bool(v != 0)
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipRepository(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthRepository
|
||||
}
|
||||
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 skipRepository(dAtA []byte) (n int, err error) {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
|
||||
@@ -2777,3 +2777,8 @@ func (s *Service) updateCachedRevision(logCtx *log.Entry, oldRev string, newRev
|
||||
logCtx.Debugf("manifest cache updated for application %s in repo %s from revision %s to revision %s", request.AppName, request.GetRepo().Repo, oldRev, newRev)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Service) HasDrySourceChanged(_ context.Context, request *apiclient.HasDrySourceChangedRequest) (*apiclient.HasDrySourceChangedResponse, error) {
|
||||
resp := apiclient.HasDrySourceChangedResponse{HasChanged: false}
|
||||
return &resp, nil
|
||||
}
|
||||
|
||||
@@ -277,6 +277,16 @@ message UpdateRevisionForPathsRequest {
|
||||
message UpdateRevisionForPathsResponse {
|
||||
}
|
||||
|
||||
message HasDrySourceChangedRequest {
|
||||
github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository repo = 1;
|
||||
github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSource applicationSource = 2;
|
||||
string syncedRevision = 3;
|
||||
}
|
||||
|
||||
message HasDrySourceChangedResponse {
|
||||
bool hasChanged = 1;
|
||||
}
|
||||
|
||||
// ManifestService
|
||||
service RepoServerService {
|
||||
|
||||
@@ -335,4 +345,8 @@ service RepoServerService {
|
||||
// UpdateRevisionForPaths will compare two revisions and update the cache with the new revision if no changes are detected in the provided paths
|
||||
rpc UpdateRevisionForPaths(UpdateRevisionForPathsRequest) returns (UpdateRevisionForPathsResponse) {
|
||||
}
|
||||
|
||||
// HasDrySourceChanged determines whether a dry source has changed since the last synced revision
|
||||
rpc HasDrySourceChanged(HasDrySourceChangedRequest) returns (HasDrySourceChangedResponse) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +188,15 @@ export const ApplicationParameters = (props: {
|
||||
);
|
||||
} else {
|
||||
const v: models.ApplicationSource[] = new Array<models.ApplicationSource>();
|
||||
v.push(app.spec.source);
|
||||
if (app.spec.sourceHydrator) {
|
||||
v.push({
|
||||
repoURL: app.spec.sourceHydrator.drySource.repoURL,
|
||||
targetRevision: app.spec.sourceHydrator.syncSource.targetRevision,
|
||||
path: app.spec.sourceHydrator.syncSource.path,
|
||||
})
|
||||
} else {
|
||||
v.push(app.spec.source);
|
||||
}
|
||||
return getEditablePanel(attributes, props.details, 0, v);
|
||||
}
|
||||
|
||||
@@ -272,7 +280,7 @@ export const ApplicationParameters = (props: {
|
||||
values={
|
||||
app?.spec?.source
|
||||
? ((props.details.plugin || app?.spec?.source?.plugin) && cloneDeep(app)) || app
|
||||
: ((repoAppDetails.plugin || app?.spec?.sources[ind]?.plugin) && cloneDeep(app)) || app
|
||||
: ((repoAppDetails.plugin || src?.plugin) && cloneDeep(app)) || app
|
||||
}
|
||||
validate={updatedApp => {
|
||||
const errors = {} as any;
|
||||
|
||||
@@ -107,7 +107,7 @@ export const ApplicationStatusPanel = ({application, showDiff, showOperation, sh
|
||||
<div className='application-status-panel__item-name' style={{marginBottom: '0.5em'}}>
|
||||
{application.spec.syncPolicy?.automated ? 'Auto sync is enabled.' : 'Auto sync is not enabled.'}
|
||||
</div>
|
||||
{application.status && application.status.sync && application.status.sync.revision && !application.spec.source.chart && (
|
||||
{application.status && application.status.sync && application.status.sync.revision && !source.chart && (
|
||||
<div className='application-status-panel__item-name'>
|
||||
<RevisionMetadataPanel
|
||||
appName={application.metadata.name}
|
||||
@@ -151,7 +151,7 @@ export const ApplicationStatusPanel = ({application, showDiff, showOperation, sh
|
||||
<RevisionMetadataPanel
|
||||
appName={application.metadata.name}
|
||||
appNamespace={application.metadata.namespace}
|
||||
type={source.chart && 'helm'}
|
||||
type={source?.chart && 'helm'}
|
||||
revision={appOperationState.syncResult.revision}
|
||||
/>
|
||||
)) || <div className='application-status-panel__item-name'>{appOperationState.message}</div>}
|
||||
|
||||
@@ -1041,10 +1041,17 @@ export function getAppDefaultSource(app?: appModels.Application) {
|
||||
if (!app) {
|
||||
return null;
|
||||
}
|
||||
return app.spec.sources && app.spec.sources.length > 0 ? app.spec.sources[0] : app.spec.source;
|
||||
return getAppSpecDefaultSource(app.spec);
|
||||
}
|
||||
|
||||
export function getAppSpecDefaultSource(spec: appModels.ApplicationSpec) {
|
||||
if (spec.sourceHydrator) {
|
||||
return {
|
||||
repoURL: spec.sourceHydrator.drySource.repoURL,
|
||||
targetRevision: spec.sourceHydrator.syncSource.targetRevision,
|
||||
path: spec.sourceHydrator.syncSource.path,
|
||||
}
|
||||
}
|
||||
return spec.sources && spec.sources.length > 0 ? spec.sources[0] : spec.source;
|
||||
}
|
||||
|
||||
|
||||
@@ -201,6 +201,27 @@ export interface ApplicationSource {
|
||||
ref?: string;
|
||||
}
|
||||
|
||||
export interface SourceHydrator {
|
||||
drySource: DrySource;
|
||||
syncSource: SyncSource;
|
||||
hydrateTo?: HydrateTo;
|
||||
}
|
||||
|
||||
export interface DrySource {
|
||||
repoURL: string;
|
||||
targetRevision: string;
|
||||
path: string;
|
||||
}
|
||||
|
||||
export interface SyncSource {
|
||||
targetRevision: string;
|
||||
path: string
|
||||
}
|
||||
|
||||
export interface HydrateTo {
|
||||
targetRevision: string;
|
||||
}
|
||||
|
||||
export interface ApplicationSourceHelm {
|
||||
valueFiles: string[];
|
||||
values?: string;
|
||||
@@ -272,6 +293,7 @@ export interface ApplicationSpec {
|
||||
project: string;
|
||||
source: ApplicationSource;
|
||||
sources: ApplicationSource[];
|
||||
sourceHydrator?: SourceHydrator;
|
||||
destination: ApplicationDestination;
|
||||
syncPolicy?: SyncPolicy;
|
||||
ignoreDifferences?: ResourceIgnoreDifferences[];
|
||||
|
||||
Reference in New Issue
Block a user