From 0ef5061e11cd24f81d6bbca1330d73a84c6f6421 Mon Sep 17 00:00:00 2001 From: Lev Aminov Date: Thu, 25 Jul 2019 21:13:16 +0500 Subject: [PATCH] Allow Apply Only on sync (#2015) --- .../application-sync-panel/application-sync-panel.tsx | 10 ++++++++-- ui/src/app/shared/models.ts | 2 ++ ui/src/app/shared/services/applications-service.ts | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ui/src/app/applications/components/application-sync-panel/application-sync-panel.tsx b/ui/src/app/applications/components/application-sync-panel/application-sync-panel.tsx index f53cdd10f3..5181df75dd 100644 --- a/ui/src/app/applications/components/application-sync-panel/application-sync-panel.tsx +++ b/ui/src/app/applications/components/application-sync-panel/application-sync-panel.tsx @@ -18,6 +18,7 @@ export const ApplicationSyncPanel = ({application, selectedResource, hide}: { const appResources = (application && selectedResource && application.status && application.status.resources || []).sort( (first, second) => nodeKey(first).localeCompare(nodeKey(second))); const syncResIndex = appResources.findIndex((item) => nodeKey(item) === selectedResource); + const syncStrategy = {} as models.SyncStrategy; return ( @@ -45,8 +46,11 @@ export const ApplicationSyncPanel = ({application, selectedResource, hide}: { if (resources.length === appResources.length) { resources = null; } + if (params.applyOnly) { + syncStrategy.apply = {}; + } try { - await services.applications.sync(application.metadata.name, params.revision, params.prune, params.dryRun, resources); + await services.applications.sync(application.metadata.name, params.revision, params.prune, params.dryRun, syncStrategy, resources); hide(); } catch (e) { ctx.notifications.show({ @@ -72,7 +76,9 @@ export const ApplicationSyncPanel = ({application, selectedResource, hide}: { - + + +
diff --git a/ui/src/app/shared/models.ts b/ui/src/app/shared/models.ts index 8677c34c4b..e778749660 100644 --- a/ui/src/app/shared/models.ts +++ b/ui/src/app/shared/models.ts @@ -19,6 +19,8 @@ export interface ApplicationList extends ItemsList { } export interface SyncOperationResource { group: string; kind: string; name: string; } +export interface SyncStrategy { apply: {} | null; hook: {} | null; } + export interface SyncOperation { revision: string; prune: boolean; diff --git a/ui/src/app/shared/services/applications-service.ts b/ui/src/app/shared/services/applications-service.ts index 1c8a40ec1c..1e6443a3ec 100644 --- a/ui/src/app/shared/services/applications-service.ts +++ b/ui/src/app/shared/services/applications-service.ts @@ -83,8 +83,8 @@ export class ApplicationsService { }); } - public sync(name: string, revision: string, prune: boolean, dryRun: boolean, resources: models.SyncOperationResource[]): Promise { - return requests.post(`/applications/${name}/sync`).send({revision, prune: !!prune, dryRun: !!dryRun, resources}).then(() => true); + public sync(name: string, revision: string, prune: boolean, dryRun: boolean, strategy: models.SyncStrategy, resources: models.SyncOperationResource[]): Promise { + return requests.post(`/applications/${name}/sync`).send({revision, prune: !!prune, dryRun: !!dryRun, strategy, resources}).then(() => true); } public rollback(name: string, id: number): Promise {