Oved Ourfali has uploaded a new change for review.

Change subject: core: glance import as template should fail on old DCs
......................................................................

core: glance import as template should fail on old DCs

If the DC compatibility level is less than 3.4 then the glance import should 
fail on canDoAction.
This patch adds this validation

Change-Id: I4b975d2f8d540af6f0a3c8e4de9296173950f9ce
Bug-Url: https://bugzilla.redhat.com/1072023
Signed-off-by: Oved Ourfali <oourf...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
4 files changed, 24 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/25476/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java
index 6a68b1c..ef96f7b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java
@@ -11,6 +11,7 @@
 import org.ovirt.engine.core.bll.tasks.TaskHandlerCommand;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.common.AuditLogType;
+import org.ovirt.engine.core.common.FeatureSupported;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.ImportRepoImageParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
@@ -200,6 +201,11 @@
             if (getVdsGroup().getArchitecture() == ArchitectureType.undefined) 
{
                 return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_CLUSTER_UNDEFINED_ARCHITECTURE);
             }
+
+            setStoragePoolId(getParameters().getStoragePoolId());
+            if 
(!FeatureSupported.importGlanceImageAsTemplate(getStoragePool().getcompatibility_version()))
 {
+                return 
failCanDoAction(VdcBllMessages.ACTION_NOT_SUPPORTED_FOR_CLUSTER_POOL_LEVEL);
+            }
         }
 
         DiskImage diskImage = null;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java
index 7e97072..fc531ce 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java
@@ -229,4 +229,14 @@
     public static boolean defaultRoute(Version version) {
         return supportedInConfig(ConfigValues.DefaultRouteSupported, version);
     }
+
+    /**
+     * @param version
+     *            Compatibility version to check for.
+     * @return <code>true</code> if importing a glance image as template is 
supported for the given version.
+     */
+    public static boolean importGlanceImageAsTemplate(Version version) {
+        return supportedInConfig(ConfigValues.ImportGlanceImageAsTemplate, 
version);
+    }
+
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
index e9b5dfb..0d4fb8b 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
@@ -1635,5 +1635,9 @@
     @DefaultValueAttribute("true")
     GetFileStats,
 
+    @TypeConverterAttribute(Boolean.class)
+    @DefaultValueAttribute("true")
+    ImportGlanceImageAsTemplate,
+
     Invalid;
 }
diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql 
b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
index b89854b..30e8e53 100644
--- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
+++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
@@ -203,6 +203,10 @@
 select fn_db_add_config_value('CloudInitSupported','false','3.0');
 select fn_db_add_config_value('CloudInitSupported','false','3.1');
 select fn_db_add_config_value('CloudInitSupported','false','3.2');
+select fn_db_add_config_value('ImportGlanceImageAsTemplate','false','3.0');
+select fn_db_add_config_value('ImportGlanceImageAsTemplate','false','3.1');
+select fn_db_add_config_value('ImportGlanceImageAsTemplate','false','3.2');
+select fn_db_add_config_value('ImportGlanceImageAsTemplate','false','3.3');
 select fn_db_add_config_value('HotPlugDiskSnapshotSupported','false','3.0');
 select fn_db_add_config_value('HotPlugDiskSnapshotSupported','false','3.1');
 select fn_db_add_config_value('HotPlugDiskSnapshotSupported','false','3.2');


-- 
To view, visit http://gerrit.ovirt.org/25476
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4b975d2f8d540af6f0a3c8e4de9296173950f9ce
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Oved Ourfali <oourf...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to