Daniel Erez has uploaded a new change for review.

Change subject: core: registerLibvirtSecrets on add and update secret
......................................................................

core: registerLibvirtSecrets on add and update secret

Invoke RegisterLibvirtSecrets command upon adding a new
libvirt secret or updating an existing one.

Change-Id: I9d000e7d4cfcc946b7d055c9ed205aa54e9e2c7b
Bug-Url: https://bugzilla.redhat.com/1185826
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddLibvirtSecretCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CINDERStorageHelper.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/LibvirtSecretCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateLibvirtSecretCommand.java
4 files changed, 46 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/61/41561/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddLibvirtSecretCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddLibvirtSecretCommand.java
index 6a709d4..a98b165 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddLibvirtSecretCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddLibvirtSecretCommand.java
@@ -1,11 +1,11 @@
 package org.ovirt.engine.core.bll.storage;
 
+import java.util.Date;
+
 import org.ovirt.engine.core.bll.provider.storage.LibvirtSecretValidator;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.action.LibvirtSecretParameters;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
-
-import java.util.Date;
 
 public class AddLibvirtSecretCommand extends LibvirtSecretCommandBase {
 
@@ -28,6 +28,7 @@
         super.executeCommand();
         getParameters().getLibvirtSecret().setCreationDate(new Date());
         getLibvirtSecretDAO().save(getParameters().getLibvirtSecret());
+        registerLibvirtSecret();
         setSucceeded(true);
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CINDERStorageHelper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CINDERStorageHelper.java
index a872b0e..5111a4b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CINDERStorageHelper.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CINDERStorageHelper.java
@@ -44,7 +44,7 @@
 
 public class CINDERStorageHelper extends StorageHelperBase {
 
-    private Logger log = LoggerFactory.getLogger(CINDERStorageHelper.class);
+    private static Logger log = 
LoggerFactory.getLogger(CINDERStorageHelper.class);
 
     private boolean runInNewTransaction = true;
 
@@ -58,7 +58,10 @@
 
     @Override
     protected Pair<Boolean, VdcFault> 
runConnectionStorageToDomain(StorageDomain storageDomain, Guid vdsId, int type) 
{
-        return registerLibvirtSecrets(storageDomain, vdsId);
+        Provider provider = 
getProviderDao().get(Guid.createGuidFromString(storageDomain.getStorage()));
+        List<LibvirtSecret> libvirtSecrets = 
getLibvirtSecretDao().getAllByProviderId(provider.getId());
+        VDS vds = getVdsDao().get(vdsId);
+        return registerLibvirtSecrets(storageDomain, vds, libvirtSecrets);
     }
 
     @Override
@@ -66,14 +69,12 @@
         return unregisterLibvirtSecrets(storageDomain, vdsId);
     }
 
-    private Pair<Boolean, VdcFault> registerLibvirtSecrets(StorageDomain 
storageDomain, Guid vdsId) {
-        Provider provider = 
getProviderDao().get(Guid.createGuidFromString(storageDomain.getStorage()));
-        VDS vds = getVdsDao().get(vdsId);
-        List<LibvirtSecret> libvirtSecrets = 
getLibvirtSecretDao().getAllByProviderId(provider.getId());
+    public static Pair<Boolean, VdcFault> registerLibvirtSecrets(
+            StorageDomain storageDomain, VDS vds, List<LibvirtSecret> 
libvirtSecrets) {
         if (!libvirtSecrets.isEmpty()) {
             VDSReturnValue returnValue = 
Backend.getInstance().getResourceManager().RunVdsCommand(
                     VDSCommandType.RegisterLibvirtSecrets,
-                    new RegisterLibvirtSecretsVDSParameters(vdsId, 
libvirtSecrets));
+                    new RegisterLibvirtSecretsVDSParameters(vds.getId(), 
libvirtSecrets));
             if (!returnValue.getSucceeded()) {
                 
addMessageToAuditLog(AuditLogType.FAILED_TO_REGISTER_LIBVIRT_SECRET,
                         storageDomain.getName(), vds.getName());
@@ -107,7 +108,7 @@
         return true;
     }
 
-    private void addMessageToAuditLog(AuditLogType auditLogType, String 
storageDomainName, String vdsName){
+    private static void addMessageToAuditLog(AuditLogType auditLogType, String 
storageDomainName, String vdsName){
         AuditLogableBase logable = new AuditLogableBase();
         logable.addCustomValue("StorageDomainName", storageDomainName);
         logable.addCustomValue("VdsName", vdsName);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/LibvirtSecretCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/LibvirtSecretCommandBase.java
index 5750295..240303d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/LibvirtSecretCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/LibvirtSecretCommandBase.java
@@ -8,11 +8,17 @@
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.LibvirtSecretParameters;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.LibvirtSecretDao;
 
 public abstract class LibvirtSecretCommandBase extends 
CommandBase<LibvirtSecretParameters> {
+
+    private StorageDomain storageDomain;
 
     public LibvirtSecretCommandBase(LibvirtSecretParameters parameters) {
         super(parameters);
@@ -41,4 +47,31 @@
         addCustomValue("LibvirtSecretUUID", secretUuid.toString());
         getReturnValue().setActionReturnValue(secretUuid);
     }
+
+    @Override
+    public StorageDomain getStorageDomain() {
+        if (storageDomain == null) {
+            Guid providerId = 
getParameters().getLibvirtSecret().getProviderId();
+            List<StorageDomain> storageDomains = 
getStorageDomainDAO().getAllByConnectionId(providerId);
+            storageDomain = storageDomains.get(0);
+        }
+        return storageDomain;
+    }
+
+    protected List<VDS> getAllRunningVdssInPool() {
+        return 
getVdsDAO().getAllForStoragePoolAndStatus(getStoragePool().getId(), 
VDSStatus.Up);
+    }
+
+    protected void registerLibvirtSecret() {
+        if (getStorageDomain().getStatus() == StorageDomainStatus.Active) {
+            List<VDS> hostsInStatusUp = getAllRunningVdssInPool();
+            for (VDS vds : hostsInStatusUp) {
+                CINDERStorageHelper.registerLibvirtSecrets(
+                        getStorageDomain(), vds, 
Collections.singletonList(getParameters().getLibvirtSecret()));
+            }
+        } else {
+            log.info("Libvirt secret '{}' hasn't been registered since storage 
domain '{}' is not Active",
+                    getParameters().getLibvirtSecret().getId(), 
getStorageDomain().getName());
+        }
+    }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateLibvirtSecretCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateLibvirtSecretCommand.java
index bc131c4..64a1fb9 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateLibvirtSecretCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateLibvirtSecretCommand.java
@@ -24,6 +24,7 @@
     protected void executeCommand() {
         super.executeCommand();
         getLibvirtSecretDAO().update(getParameters().getLibvirtSecret());
+        registerLibvirtSecret();
         setSucceeded(true);
     }
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9d000e7d4cfcc946b7d055c9ed205aa54e9e2c7b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <de...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to