From 8446929e3b91390d84ad71b7e6170d5fee074b66 Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Fri, 9 Feb 2024 16:32:59 +0200 Subject: [PATCH] Simple UI: Add support for dynamic rollouts (#1635) Signed-off-by: Marinov Avgustin --- .../org/eclipse/hawkbit/ui/simple/view/Constants.java | 1 + .../org/eclipse/hawkbit/ui/simple/view/RolloutView.java | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/Constants.java b/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/Constants.java index bf30b5ed3..4acd021c5 100644 --- a/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/Constants.java +++ b/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/Constants.java @@ -41,6 +41,7 @@ public interface Constants { String START_TYPE = "Start Type"; String MANUAL = "Manual"; String AUTO = "Auto"; + String DYNAMIC = "Dynamic"; String NAME_ASC = "name:asc"; } diff --git a/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/RolloutView.java b/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/RolloutView.java index 6df2ccb94..798f4fc7a 100644 --- a/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/RolloutView.java +++ b/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/RolloutView.java @@ -9,6 +9,7 @@ */ package org.eclipse.hawkbit.ui.simple.view; +import com.vaadin.flow.component.checkbox.Checkbox; import org.eclipse.hawkbit.ui.simple.HawkbitClient; import org.eclipse.hawkbit.ui.simple.MainLayout; import org.eclipse.hawkbit.ui.simple.view.util.SelectionGrid; @@ -194,6 +195,7 @@ public class RolloutView extends TableView { private final TextField distributionSet = Utils.textField(Constants.DISTRIBUTION_SET); private final TextField actonType = Utils.textField(Constants.ACTION_TYPE); private final TextField startAt = Utils.textField(Constants.START_AT); + private final Checkbox dynamic = new Checkbox(Constants.DYNAMIC); private final SelectionGrid groupGrid; private RolloutDetails(final HawkbitClient hawkbitClient) { @@ -211,6 +213,9 @@ public class RolloutView extends TableView { field.setReadOnly(true); add(field); }); + dynamic.setReadOnly(true); + dynamic.setEnabled(false); + add(dynamic); add(groupGrid); setResponsiveSteps(new ResponsiveStep("0", 2)); @@ -235,6 +240,7 @@ public class RolloutView extends TableView { case TIMEFORCED -> "Scheduled at " + new Date(rollout.getForcetime()); }); startAt.setValue(ObjectUtils.isEmpty(rollout.getStartAt()) ? "" : new Date(rollout.getStartAt()).toString()); + dynamic.setValue(rollout.isDynamic()); groupGrid.setItems(query -> hawkbitClient.getRolloutRestApi() @@ -266,6 +272,7 @@ public class RolloutView extends TableView { private final NumberField groupNumber; private final NumberField triggerThreshold; private final NumberField errorThreshold; + private final Checkbox dynamic = new Checkbox(Constants.DYNAMIC); private final Button create = new Button("Create"); @@ -374,6 +381,7 @@ public class RolloutView extends TableView { name, distributionSet, targetFilter, description, actionType, startType, groupNumber, triggerThreshold, errorThreshold, + dynamic, actions); add(layout); open(); @@ -430,6 +438,7 @@ public class RolloutView extends TableView { request.setErrorAction( new MgmtRolloutErrorAction( MgmtRolloutErrorAction.ErrorAction.PAUSE, "")); + request.setDynamic(dynamic.getValue()); hawkbitClient.getRolloutRestApi().create(request).getBody(); }); }