Tomas Jelinek has uploaded a new change for review. Change subject: core: remove vds_groups_vm_static ......................................................................
core: remove vds_groups_vm_static WIP do not review Change-Id: Ifaebd849061efa1637f9fa21d8584212ba0e51f2 Signed-off-by: Tomas Jelinek <tjeli...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/VnicProfileHelper.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/commands/AffinityGroupCRUDCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateInterfaceListModel.java A packaging/dbscripts/upgrade/03_04_0610_remove_vds_groups_vm_static_constraint.sql 17 files changed, 61 insertions(+), 17 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/23828/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java index d188aee..2b35742 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java @@ -69,7 +69,7 @@ } } - protected VmWatchdogValidator getVmWatchdogValidator() { + private VmWatchdogValidator getVmWatchdogValidator() { VmWatchdogValidator vmWatchdogValidator = null; VmWatchdog watchdog = new VmWatchdog(); watchdog.setAction(getParameters().getAction()); @@ -80,11 +80,22 @@ vmWatchdogValidator = new VmWatchdogValidator(getVm().getOs(), watchdog, getVm().getVdsGroupCompatibilityVersion()); } else { - vmWatchdogValidator = new VmWatchdogValidator(getVmTemplate().getOsId(), watchdog, - (getVdsGroupDAO().get(getVmTemplate().getVdsGroupId())).getcompatibility_version()); + if (getVmTemplate().getVdsGroupId() != null) { + vmWatchdogValidator = new VmWatchdogValidator(getVmTemplate().getOsId(), watchdog, + (getVdsGroupDAO().get(getVmTemplate().getVdsGroupId())).getcompatibility_version()); + } } return vmWatchdogValidator; } + protected ValidationResult validateModelCompatibleWithOs() { + VmWatchdogValidator validator = getVmWatchdogValidator(); + if (validator != null) { + return validator.isModelCompatibleWithOs(); + } else { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_TEMPLATE_DOES_NOT_EXIST_ON_ANY_CLUSTER); + } + } + } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java index 4b0c812..9e72e7e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java @@ -745,7 +745,11 @@ protected static boolean isLegalClusterId(Guid clusterId, List<String> reasons) { // check given cluster id - VDSGroup vdsGroup = DbFacade.getInstance().getVdsGroupDao().get(clusterId); + VDSGroup vdsGroup = null; + if (clusterId != null) { + vdsGroup = DbFacade.getInstance().getVdsGroupDao().get(clusterId); + } + boolean legalClusterId = (vdsGroup != null); if (!legalClusterId) { reasons.add(VdcBllErrors.VM_INVALID_SERVER_CLUSTER_ID.toString()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommand.java index a32ac34..037f839 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommand.java @@ -75,9 +75,12 @@ @Override public List<PermissionSubject> getPermissionCheckSubjects() { List<PermissionSubject> permissionList = new ArrayList<PermissionSubject>(); - permissionList.add(new PermissionSubject(getParameters().getVmStaticData().getVdsGroupId(), - VdcObjectType.VdsGroups, - getActionType().getActionGroup())); + if (getParameters().getVmStaticData().getVdsGroupId() != null) { + permissionList.add(new PermissionSubject(getParameters().getVmStaticData().getVdsGroupId(), + VdcObjectType.VdsGroups, + getActionType().getActionGroup())); + } + permissionList.add(new PermissionSubject(getVmTemplateId(), VdcObjectType.VmTemplate, getActionType().getActionGroup())); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java index dfb6c12..315bd42 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java @@ -53,7 +53,7 @@ return failCanDoAction(VdcBllMessages.WATCHDOG_ALREADY_EXISTS); } - if (!validate(getVmWatchdogValidator().isModelCompatibleWithOs())) { + if (!validate(validateModelCompatibleWithOs())) { return false; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java index c202300..f5592c1 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java @@ -203,7 +203,7 @@ private void UpdateVmNetworks() { // check if the cluster has changed - if (!getVm().getVdsGroupId().equals(getParameters().getVmStaticData().getVdsGroupId())) { + if (!ObjectUtils.equals(getVm().getVdsGroupId(), getParameters().getVmStaticData().getVdsGroupId())) { List<Network> networks = getNetworkDAO().getAllForCluster(getParameters().getVmStaticData().getVdsGroupId()); List<VmNic> interfaces = getVmNicDao().getAllForVm(getParameters().getVmStaticData().getId()); @@ -549,6 +549,10 @@ public List<QuotaConsumptionParameter> getQuotaVdsConsumptionParameters() { List<QuotaConsumptionParameter> list = new ArrayList<QuotaConsumptionParameter>(); + if (getVdsGroupId() == null) { + return list; + } + // The cases must be persistent with the create_functions_sp if (!getQuotaManager().isVmStatusQuotaCountable(getVm().getStatus())) { list.add(new QuotaSanityParameter(getParameters().getVmStaticData().getQuotaId(), null)); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java index 3839a63..cf9974c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java @@ -32,7 +32,7 @@ return failCanDoAction(VdcBllMessages.WATCHDOG_NOT_FOUND); } - if (!validate(getVmWatchdogValidator().isModelCompatibleWithOs())) { + if (!validate(validateModelCompatibleWithOs())) { return false; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java index 1e19fe3..6e553cf 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.regex.Pattern; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.action.VmManagementParametersBase; import org.ovirt.engine.core.common.businessentities.MigrationSupport; @@ -53,7 +54,7 @@ Guid guid = vm.getDedicatedVmForVds(); // get dedicated host cluster and comparing it to VM cluster VDS vds = getVdsDAO().get(guid); - result = vds != null && (vm.getVdsGroupId().equals(vds.getVdsGroupId())); + result = vds != null && (ObjectUtils.equals(vm.getVdsGroupId(), vds.getVdsGroupId())); } if (!result) { getReturnValue().getCanDoActionMessages() diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java index 8b3d759..1d38506 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java @@ -94,6 +94,10 @@ } public static boolean isNetworkInCluster(Network network, Guid clusterId) { + if (clusterId == null) { + return false; + } + List<Network> networks = DbFacade.getInstance().getNetworkDao().getAllForCluster(clusterId); for (Network clusterNetwork : networks) { if (clusterNetwork.getId().equals(network.getId())) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/VnicProfileHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/VnicProfileHelper.java index 44308b4..6faa68f1 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/VnicProfileHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/VnicProfileHelper.java @@ -1,6 +1,7 @@ package org.ovirt.engine.core.bll.network.vm; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -174,6 +175,10 @@ } } + if (vm.getVdsGroupId() == null) { + return new ValidationResult(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CLUSTER); + } + Network network = getNetworkDao().getByNameAndCluster(networkName, vm.getVdsGroupId()); if (network == null) { return new ValidationResult(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CLUSTER); @@ -192,7 +197,11 @@ private Map<String, Network> getNetworksInCluster() { if (networksInClusterByName == null) { - networksInClusterByName = Entities.entitiesByName(getNetworkDao().getAllForCluster(clusterId)); + if (clusterId != null) { + networksInClusterByName = Entities.entitiesByName(getNetworkDao().getAllForCluster(clusterId)); + } else { + networksInClusterByName = new HashMap<>(); + } } return networksInClusterByName; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/commands/AffinityGroupCRUDCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/commands/AffinityGroupCRUDCommand.java index 1a78d1a..ea8353f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/commands/AffinityGroupCRUDCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/commands/AffinityGroupCRUDCommand.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Set; +import org.apache.commons.lang.ObjectUtils; import org.ovirt.engine.core.bll.CommandBase; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.VdcObjectType; @@ -40,7 +41,7 @@ if (vmStatic == null) { return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_INVALID_VM_FOR_AFFINITY_GROUP); } - if (!vmStatic.getVdsGroupId().equals(getVdsGroupId())) { + if (!ObjectUtils.equals(vmStatic.getVdsGroupId(), getVdsGroupId())) { return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_NOT_IN_AFFINITY_GROUP_CLUSTER); } if (vmSet.contains(vmStatic.getId())) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java index 69f695e..976ab0a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java @@ -518,7 +518,7 @@ // It is necessary to fetch the vm static from the Db, in order to get this information VmStatic vmStaticFromDb = getVmStaticDao().get(vm.getId()); if (vmStaticFromDb != null) { - VDSGroup vdsGroup = getVdsGroupDao().get(vmStaticFromDb.getVdsGroupId()); + VDSGroup vdsGroup = vmStaticFromDb.getVdsGroupId() != null ? getVdsGroupDao().get(vmStaticFromDb.getVdsGroupId()) : null; if (vdsGroup != null) { vm.setStoragePoolId(vdsGroup.getStoragePoolId()); vm.setVdsGroupCompatibilityVersion(vdsGroup.getcompatibility_version()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java index 25bc3a8..b074c96 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/VmDeviceUtils.java @@ -391,7 +391,7 @@ if (isVm) { addSoundCard(vm.getStaticData(), vm.getVdsGroupCompatibilityVersion()); } else { - VDSGroup cluster = DbFacade.getInstance().getVdsGroupDao().get(vmBase.getVdsGroupId()); + VDSGroup cluster = vmBase.getVdsGroupId() != null ? DbFacade.getInstance().getVdsGroupDao().get(vmBase.getVdsGroupId()) : null; if (cluster != null) { addSoundCard(vmBase, cluster.getcompatibility_version()); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java index 43a16b7..baf2809 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java @@ -213,6 +213,7 @@ ACTION_TYPE_FAILED_CANNOT_REMOVE_ACTIVE_IMAGE(ErrorType.CONFLICT), ACTION_TYPE_FAILED_CPU_NOT_FOUND(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_TEMPLATE_DOES_NOT_EXIST(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_FAILED_TEMPLATE_DOES_NOT_EXIST_ON_ANY_CLUSTER(ErrorType.DATA_CORRUPTION), ACTION_TYPE_FAILED_TEMPLATE_VERSION_CANNOT_BE_BASE_TEMPLATE(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_INSTANCE_TYPE_DOES_NOT_EXIST(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_IMAGE_TYPE_DOES_NOT_EXIST(ErrorType.BAD_PARAMETERS), diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java index 1426fd5..cbac720 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java @@ -417,7 +417,9 @@ mVdsGroup = getVdsGroupDAO().get(mVdsGroupId); } else if (getVmTemplate() != null) { mVdsGroupId = getVmTemplate().getVdsGroupId(); - mVdsGroup = getVdsGroupDAO().get(mVdsGroupId); + if (mVdsGroupId != null) { + mVdsGroup = getVdsGroupDAO().get(mVdsGroupId); + } } } return mVdsGroup; diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java index 0c27695..7352163 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java @@ -92,6 +92,9 @@ @Override public List<Network> getAllForCluster(Guid id) { + if (id == null) { + return new ArrayList<>(); + } return getAllForCluster(id, null, false); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateInterfaceListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateInterfaceListModel.java index d92d0da..5121913 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateInterfaceListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateInterfaceListModel.java @@ -211,7 +211,7 @@ cluster = null; super.setEntity(value); - if (getEntity() != null) { + if (getEntity() != null && ((VmTemplate) getEntity()).getVdsGroupId() != null) { AsyncDataProvider.getClusterById(new AsyncQuery(this, new INewAsyncCallback() { @Override diff --git a/packaging/dbscripts/upgrade/03_04_0610_remove_vds_groups_vm_static_constraint.sql b/packaging/dbscripts/upgrade/03_04_0610_remove_vds_groups_vm_static_constraint.sql new file mode 100644 index 0000000..b5dad12 --- /dev/null +++ b/packaging/dbscripts/upgrade/03_04_0610_remove_vds_groups_vm_static_constraint.sql @@ -0,0 +1 @@ +ALTER TABLE vm_static DROP CONSTRAINT vds_groups_vm_static; -- To view, visit http://gerrit.ovirt.org/23828 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifaebd849061efa1637f9fa21d8584212ba0e51f2 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <tjeli...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches