From 7c1256a75d0be4d8c0bf835fdf165033d4b81608 Mon Sep 17 00:00:00 2001 From: Samuel Rowe Date: Wed, 3 Aug 2022 12:55:48 +0530 Subject: [PATCH] feat(frontend): updated form utilities to support `rollbackConfig` object in service --- .../components/Modal/service/form-utils.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/services/frontend/src/components/Modal/service/form-utils.ts b/services/frontend/src/components/Modal/service/form-utils.ts index 3fc0230..1c79086 100644 --- a/services/frontend/src/components/Modal/service/form-utils.ts +++ b/services/frontend/src/components/Modal/service/form-utils.ts @@ -84,6 +84,14 @@ const initialValues: IEditServiceForm = { maxAttempts: "", window: "" }, + rollbackConfig: { + parallelism: "", + delay: "", + failureAction: "", + monitor: "", + maxFailureRatio: "", + order: "" + }, labels: [] }, imageName: "", @@ -185,6 +193,14 @@ export const validationSchema = yup.object({ maxAttempts: yup.string(), window: yup.string() }), + rollbackConfig: yup.object({ + parallelism: yup.string(), + delay: yup.string(), + failureAction: yup.string().oneOf(["", "continue", "pause"]), + monitor: yup.string(), + maxFailureRatio: yup.string(), + order: yup.string().oneOf(["", "stop-first", "start-first"]) + }), labels: yup.array( yup.object({ key: yup.string().required("Key is required"), @@ -362,6 +378,28 @@ export const getInitialValues = (node?: IServiceNodeItem): IEditServiceForm => { initialValues.deploy.restartPolicy.window } : initialValues.deploy.restartPolicy, + rollbackConfig: deploy.rollback_config + ? { + parallelism: + deploy.rollback_config.parallelism?.toString() ?? + initialValues.deploy.rollbackConfig.parallelism, + delay: + deploy.rollback_config.delay ?? + initialValues.deploy.rollbackConfig.delay, + failureAction: + deploy.rollback_config.failure_action ?? + initialValues.deploy.rollbackConfig.failureAction, + monitor: + deploy.rollback_config.monitor ?? + initialValues.deploy.rollbackConfig.monitor, + maxFailureRatio: + deploy.rollback_config.max_failure_ratio ?? + initialValues.deploy.rollbackConfig.maxFailureRatio, + order: + deploy.rollback_config.order ?? + initialValues.deploy.rollbackConfig.order + } + : initialValues.deploy.rollbackConfig, labels: extractObjectOrArray("=", "key", "value", deploy.labels) ?? initialValues.deploy.labels @@ -483,6 +521,14 @@ export const getFinalValues = ( maxAttempts: pruneNumber(parseInt(deploy.restartPolicy.maxAttempts)), window: pruneString(deploy.restartPolicy.window) }), + rollback_config: pruneObject({ + parallelism: pruneNumber(parseInt(deploy.rollbackConfig.parallelism)), + delay: pruneString(deploy.rollbackConfig.delay), + failure_action: pruneString(deploy.rollbackConfig.failureAction), + monitor: pruneString(deploy.rollbackConfig.monitor), + max_failure_ratio: pruneString(deploy.rollbackConfig.maxFailureRatio), + order: pruneString(deploy.rollbackConfig.order) + }), labels: packArrayAsObject(deploy.labels, "key", "value") }), image: `${values.imageName}${