Alon Bar-Lev has uploaded a new change for review.

Change subject: host-deploy: introduce host package management
......................................................................

host-deploy: introduce host package management

Change-Id: Iacf0690597aac49619f256fd80138a9fdbac8514
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/VdsMgmtPackages.java
1 file changed, 96 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/39973/6

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/VdsMgmtPackages.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/VdsMgmtPackages.java
new file mode 100644
index 0000000..1c8a3a0
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/hostdeploy/VdsMgmtPackages.java
@@ -0,0 +1,96 @@
+package org.ovirt.engine.core.bll.hostdeploy;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.Callable;
+
+import org.apache.commons.lang.StringUtils;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.otopi.constants.Confirms;
+import org.ovirt.otopi.dialog.Event;
+import org.ovirt.ovirt_host_mgmt.constants.Const;
+import org.ovirt.ovirt_host_mgmt.constants.PackagesEnv;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class VdsMgmtPackages extends VdsDeployBase {
+
+    private static final Logger log = 
LoggerFactory.getLogger(VdsMgmtPackages.class);
+
+    private boolean _checkOnly;
+    private String[] _packages;
+    private String[] _packagesInfo;
+
+    private final List<Callable<Boolean>> _deployCustomizationDialog = 
Arrays.asList(
+        new Callable<Boolean>() { public Boolean call() throws Exception {
+            _parser.cliEnvironmentSet(
+                PackagesEnv.UPDATE_MODE,
+                _checkOnly ? Const.PACKAGES_UPDATE_MODE_CHECK_UPDATE : 
Const.PACKAGES_UPDATE_MODE_UPDATE
+            );
+            return true;
+        }},
+        new Callable<Boolean>() { public Boolean call() throws Exception {
+            _parser.cliEnvironmentSet(
+                PackagesEnv.PACKAGES,
+                _packages
+            );
+            return true;
+        }}
+    );
+
+    // BUG: Arrays.asList() cannot handle single element correctly
+    private final List<Callable<Boolean>> _deployTerminationDialog = new 
ArrayList<Callable<Boolean>>() {{ add(
+        new Callable<Boolean>() { public Boolean call() throws Exception {
+            _packagesInfo = (String[])_parser.cliEnvironmentGet(
+                PackagesEnv.PACKAGES_INFO
+            );
+            if (_packagesInfo.length > 0) {
+                _messages.post(
+                    InstallerMessages.Severity.INFO,
+                    String.format("Available packages for update: %s", 
StringUtils.join(_packagesInfo, ","))
+                );
+            }
+            return true;
+        }}
+    );}};
+
+    protected boolean processEvent(Event.Base bevent) throws IOException {
+        boolean unknown = true;
+
+        if (bevent instanceof Event.Confirm) {
+            Event.Confirm event = (Event.Confirm)bevent;
+
+            if (Confirms.GPG_KEY.equals(event.what)) {
+                _messages.post(InstallerMessages.Severity.WARNING, 
event.description);
+                event.reply = true;
+                unknown = false;
+            }
+        }
+
+        return unknown;
+    }
+
+    public VdsMgmtPackages(VDS vds, boolean checkOnly) {
+        super("host-mgmt", "ovirt-host-mgmt", vds);
+
+        _checkOnly = checkOnly;
+
+        addCustomizationDialog(_deployCustomizationDialog);
+        addCustomizationDialog(CUSTOMIZATION_DIALOG_EPILOG);
+        addTerminationDialog(TERMINATION_DIALOG_PROLOG);
+        addTerminationDialog(_deployTerminationDialog);
+        addTerminationDialog(TERMINATION_DIALOG_EPILOG);
+    }
+
+    public void setPackages(Collection<String> packages) {
+        _packages = packages.toArray(new String[0]);
+    }
+
+    public Collection<String> getUpdates() {
+        return Arrays.asList(_packagesInfo);
+    }
+
+}


-- 
To view, visit https://gerrit.ovirt.org/39973
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iacf0690597aac49619f256fd80138a9fdbac8514
Gerrit-PatchSet: 6
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
Gerrit-Reviewer: Jenkins CI
Gerrit-Reviewer: Moti Asayag <masa...@redhat.com>
Gerrit-Reviewer: automat...@ovirt.org
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to