Eli Mesika has uploaded a new change for review. Change subject: core: Default DC & Cluster has fixed UUIDs ......................................................................
core: Default DC & Cluster has fixed UUIDs When installing several RHEV environments and having integrated management for the heterogeneous virtual environment. When the integrated management program gathering information through the rhev REST api every RHEVM installations of The 'Default' Datacenter uuid and 'Default' Cluster uuid are the same. These were generated uniq uuids on previous virsions implementations such as RHEV 3.0 or 3.1. This patch removes the static DC & Cluster UUID (except from the tests) and change all references to take the dynamic generated value that is stored in the vdc_options table. Change-Id: I96c96f5692a9ba113f37f0f8b082aaee244b3ed7 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1026885 Signed-off-by: Eli Mesika <emes...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVdsGroupCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolValidator.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommandTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java M packaging/dbscripts/insert_data.sql M packaging/setup/ovirt_engine_setup/constants.py M packaging/setup/plugins/ovirt-engine-setup/config/appmode.py 9 files changed, 31 insertions(+), 21 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/21040/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVdsGroupCommand.java index 76b9b5d..7185eb5 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVdsGroupCommand.java @@ -4,8 +4,9 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.VdsGroupParametersBase; -import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VmPool; +import org.ovirt.engine.core.common.config.Config; +import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.validation.group.RemoveEntity; import org.ovirt.engine.core.dal.dbbroker.DbFacade; @@ -32,7 +33,7 @@ addCanDoActionMessage(VdcBllMessages.VMT_CLUSTER_IS_NOT_VALID); returnValue = false; } else { - if (getVdsGroup().getId().equals(VDSGroup.DEFAULT_VDS_GROUP_ID)) { + if (getVdsGroup().getId().equals(Config.GetValue(ConfigValues.AutoRegistrationDefaultVdsGroupID))) { addCanDoActionMessage(VdcBllMessages.VDS_CANNOT_REMOVE_DEFAULT_VDS_GROUP); returnValue = false; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java index be33823..713698b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java @@ -22,6 +22,8 @@ import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; import org.ovirt.engine.core.common.businessentities.network.NetworkStatus; +import org.ovirt.engine.core.common.config.Config; +import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.gluster.GlusterFeatureSupported; import org.ovirt.engine.core.common.utils.ListUtils; @@ -34,8 +36,6 @@ import org.ovirt.engine.core.dao.VdsStaticDAO; import org.ovirt.engine.core.dao.network.NetworkDao; import org.ovirt.engine.core.utils.NetworkUtils; -import org.ovirt.engine.core.common.config.Config; -import org.ovirt.engine.core.common.config.ConfigValues; public class UpdateVdsGroupCommand<T extends VdsGroupOperationParameters> extends VdsGroupOperationCommandBase<T> implements RenamedEntityInfoProvider{ @@ -266,7 +266,7 @@ .toString()); result = false; } - else if (VDSGroup.DEFAULT_VDS_GROUP_ID.equals(getVdsGroup().getId())) { + else if (Config.GetValue(ConfigValues.AutoRegistrationDefaultVdsGroupID).equals(getVdsGroup().getId())) { addCanDoActionMessage(VdcBllMessages.DEFAULT_CLUSTER_CANNOT_BE_ON_LOCALFS); result = false; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolValidator.java index c23907e..055641c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolValidator.java @@ -3,10 +3,10 @@ import java.util.List; import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.VDSGroup; -import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; @@ -69,7 +69,7 @@ List<VDSGroup> clusters = getVdsGroupDao().getAllForStoragePool(storagePool.getId()); boolean hasDefaultCluster = false; for (VDSGroup cluster : clusters) { - if (cluster.getId().equals(VDSGroup.DEFAULT_VDS_GROUP_ID)) { + if (cluster.getId().equals(Config.GetValue(ConfigValues.AutoRegistrationDefaultVdsGroupID))) { hasDefaultCluster = true; break; } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java index 9c5bfd0..09a7082 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java @@ -48,7 +48,7 @@ private static final Version VERSION_1_1 = new Version(1, 1); private static final Version VERSION_1_2 = new Version(1, 2); private static final Guid STORAGE_POOL_ID = Guid.newGuid(); - + private static final Guid DEFAULT_VDS_GROUP_ID = new Guid("99408929-82CF-4DC7-A532-9D998063FA95"); @Mock private VdsGroupDAO vdsGroupDAO; @Mock @@ -150,6 +150,7 @@ @Test public void defaultClusterInLocalFs() { + mcr.mockConfigValue(ConfigValues.AutoRegistrationDefaultVdsGroupID, DEFAULT_VDS_GROUP_ID); createCommandWithDefaultVdsGroup(); oldGroupIsDetachedDefault(); storagePoolIsLocalFS(); @@ -309,7 +310,7 @@ private static VDSGroup createDefaultVdsGroup() { VDSGroup group = new VDSGroup(); group.setName("Default"); - group.setId(VDSGroup.DEFAULT_VDS_GROUP_ID); + group.setId(DEFAULT_VDS_GROUP_ID); group.setcpu_name("Intel Conroe"); group.setcompatibility_version(VERSION_1_1); group.setStoragePoolId(STORAGE_POOL_ID); @@ -319,7 +320,7 @@ private static VDSGroup createVdsGroupWithNoCpuName() { VDSGroup group = new VDSGroup(); group.setName("Default"); - group.setId(VDSGroup.DEFAULT_VDS_GROUP_ID); + group.setId(DEFAULT_VDS_GROUP_ID); group.setcompatibility_version(VERSION_1_1); group.setStoragePoolId(STORAGE_POOL_ID); return group; @@ -413,7 +414,7 @@ private void clusterHasVMs() { VM vm = new VM(); - vm.setVdsGroupId(VDSGroup.DEFAULT_VDS_GROUP_ID); + vm.setVdsGroupId(DEFAULT_VDS_GROUP_ID); List<VM> vmList = new ArrayList<VM>(); vmList.add(vm); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommandTest.java index 460612a..d1bac37 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommandTest.java @@ -14,30 +14,37 @@ import java.util.Set; import org.junit.Before; +import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.bll.utils.VersionSupport; import org.ovirt.engine.core.common.action.StoragePoolManagementParameter; -import org.ovirt.engine.core.common.businessentities.StorageType; -import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.StorageType; +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dao.StorageDomainStaticDAO; import org.ovirt.engine.core.dao.StoragePoolDAO; import org.ovirt.engine.core.dao.VdsGroupDAO; +import org.ovirt.engine.core.utils.MockConfigRule; @RunWith(MockitoJUnitRunner.class) public class UpdateStoragePoolCommandTest { + + @ClassRule + public static MockConfigRule mcr = new MockConfigRule(); private static final Version VERSION_1_0 = new Version(1, 0); private static final Version VERSION_1_1 = new Version(1, 1); private static final Version VERSION_1_2 = new Version(1, 2); private static final Version VERSION_2_0 = new Version(2, 0); + private static final Guid DEFAULT_VDS_GROUP_ID = new Guid("99408929-82CF-4DC7-A532-9D998063FA95"); private UpdateStoragePoolCommand<StoragePoolManagementParameter> cmd; @@ -139,6 +146,7 @@ @Test public void poolHasDefaultCluster() { + mcr.mockConfigValue(ConfigValues.AutoRegistrationDefaultVdsGroupID, DEFAULT_VDS_GROUP_ID); addDefaultClusterToPool(); storagePoolWithLocalFS(); canDoActionFailed(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_POOL_WITH_DEFAULT_VDS_GROUP_CANNOT_BE_LOCALFS.toString()); @@ -231,7 +239,7 @@ private void addDefaultClusterToPool() { VDSGroup defaultCluster = new VDSGroup(); defaultCluster.setcompatibility_version(VERSION_1_1); - defaultCluster.setId(VDSGroup.DEFAULT_VDS_GROUP_ID); + defaultCluster.setId(DEFAULT_VDS_GROUP_ID); List<VDSGroup> clusters = new ArrayList<VDSGroup>(); clusters.add(defaultCluster); when(vdsDao.getAllForStoragePool(any(Guid.class))).thenReturn(clusters); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java index 3da0c8e..c8c8883 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java @@ -20,8 +20,6 @@ private static final long serialVersionUID = 5659359762655478095L; - public static final Guid DEFAULT_VDS_GROUP_ID = new Guid("99408929-82CF-4DC7-A532-9D998063FA95"); - private Guid id; @NotNull(message = "VALIDATION.VDS_GROUP.NAME.NOT_NULL", groups = { CreateEntity.class, UpdateEntity.class }) @@ -114,10 +112,12 @@ description = value; } + @Override public String getComment() { return comment; } + @Override public void setComment(String value) { comment = value; } diff --git a/packaging/dbscripts/insert_data.sql b/packaging/dbscripts/insert_data.sql index acf65cd..2582670 100644 --- a/packaging/dbscripts/insert_data.sql +++ b/packaging/dbscripts/insert_data.sql @@ -1,3 +1,5 @@ +INSERT INTO vdc_options(option_name, option_value, version) values ('AutoRegistrationDefaultVdsGroupID', uuid_generate_v1(),'general'); + Create or replace FUNCTION insert_data() RETURNS VOID AS $procedure$ @@ -8,8 +10,8 @@ v_id_0009 UUID; BEGIN v_id_0000 := '00000000-0000-0000-0000-000000000000'; - v_storage_pool_id := '5849B030-626E-47CB-AD90-3CE782D831B3'; - v_cluster_id := '99408929-82CF-4DC7-A532-9D998063FA95'; + v_storage_pool_id := uuid_generate_v1(); + v_cluster_id := option_value from vdc_options where option_name = 'AutoRegistrationDefaultVdsGroupID' and version = 'general'; v_id_0009 := '00000000-0000-0000-0000-000000000009'; diff --git a/packaging/setup/ovirt_engine_setup/constants.py b/packaging/setup/ovirt_engine_setup/constants.py index f87e168..420a81c 100644 --- a/packaging/setup/ovirt_engine_setup/constants.py +++ b/packaging/setup/ovirt_engine_setup/constants.py @@ -597,7 +597,6 @@ ENGINE_SERVICE_NAME = 'ovirt-engine' WEBSOCKET_PROXY_SERVICE_NAME = 'ovirt-websocket-proxy' PKI_PASSWORD = 'mypass' - DEFAULT_CLUSTER_ID = '99408929-82CF-4DC7-A532-9D998063FA95' MINIMUM_SPACE_ISODOMAIN_MB = 350 ISO_DOMAIN_IMAGE_UID = '11111111-1111-1111-1111-111111111111' MAC_RANGE_BASE = '00:1a:4a' diff --git a/packaging/setup/plugins/ovirt-engine-setup/config/appmode.py b/packaging/setup/plugins/ovirt-engine-setup/config/appmode.py index 37bc3f7..c5fe0fe 100644 --- a/packaging/setup/plugins/ovirt-engine-setup/config/appmode.py +++ b/packaging/setup/plugins/ovirt-engine-setup/config/appmode.py @@ -99,13 +99,12 @@ self.environment[osetupcons.DBEnv.STATEMENT].execute( statement=""" select inst_update_service_type( - %(clusterid)s, + null, %(virt)s, %(gluster)s ) """, args=dict( - clusterid=osetupcons.Const.DEFAULT_CLUSTER_ID, virt=(v in ('both', 'virt')), gluster=(v == 'gluster'), ), -- To view, visit http://gerrit.ovirt.org/21040 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I96c96f5692a9ba113f37f0f8b082aaee244b3ed7 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Eli Mesika <emes...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches