Hello ofri masad,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/18519
to review the following change.
Change subject: core: Add mom policy update command
......................................................................
core: Add mom policy update command
Add a command to allow update of mom policy on host.
Conflicts:
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
Change-Id: Ic2ba5b4dd31c44ac8b1e13f44a4337f81aff55b2
Signed-off-by: Ofri Masad <[email protected]>
---
A
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsValidator.java
M
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.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/action/VdcActionType.java
M
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.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/AuditLogDirector.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
M
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
M
frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
13 files changed, 114 insertions(+), 3 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/19/18519/1
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
new file mode 100644
index 0000000..7a1da67
--- /dev/null
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
@@ -0,0 +1,68 @@
+package org.ovirt.engine.core.bll;
+
+
+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.VdsActionParameters;
+import org.ovirt.engine.core.common.errors.VdcBLLException;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.common.vdscommands.MomPolicyVDSParameters;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+
+import java.util.Collections;
+import java.util.List;
+
+@NonTransactiveCommandAttribute
+public class UpdateMomPolicyCommand extends VdsCommand<VdsActionParameters> {
+
+ public UpdateMomPolicyCommand(VdsActionParameters vdsActionParameters) {
+ super(vdsActionParameters);
+ }
+
+ @Override
+ protected void executeCommand() {
+ boolean succeeded = false;
+ try {
+ succeeded = runVdsCommand(VDSCommandType.SetMOMPolicyParameters,
+ new MomPolicyVDSParameters(getVds(),
getVdsGroup().isEnableBallooning())).getSucceeded();
+ } catch (VdcBLLException e) {
+ log.errorFormat("Could not update MoM policy on host {0}",
getVdsName());
+ }
+ getReturnValue().setSucceeded(succeeded);
+ }
+
+ @Override
+ protected boolean canDoAction() {
+ VdsValidator vdsValidator = new VdsValidator(getVds());
+
+ return validate(vdsValidator.exists())
+ && validate(vdsValidator.isUp())
+ && validate(validateMinimumVersionSupport());
+ }
+
+ private ValidationResult validateMinimumVersionSupport() {
+ return
FeatureSupported.momPolicyOnHost(getVdsGroup().getcompatibility_version())
+ ? ValidationResult.VALID
+ : new
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_MOM_UPDATE_VDS_VERSION);
+ }
+
+ @Override
+ public List<PermissionSubject> getPermissionCheckSubjects() {
+ return Collections.singletonList(new
PermissionSubject(getParameters().getVdsId(),
+ VdcObjectType.VDS, getActionType().getActionGroup()));
+ }
+
+ @Override
+ public AuditLogType getAuditLogTypeValue() {
+ return getSucceeded() ? AuditLogType.USER_UPDATED_MOM_POLICIES
+ : AuditLogType.USER_FAILED_TO_UPDATE_MOM_POLICIES;
+ }
+
+ @Override
+ protected void setActionMessageParameters() {
+ addCanDoActionMessage(VdcBllMessages.VAR__TYPE__HOST);
+ addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE);
+ }
+}
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsValidator.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsValidator.java
index de28134..75e7597 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsValidator.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsValidator.java
@@ -81,4 +81,14 @@
}
return ValidationResult.VALID;
}
+
+ public ValidationResult validateStatus(VDSStatus vdsStatus, VdcBllMessages
hostStatus) {
+ return vdsStatus == vds.getStatus()
+ ? ValidationResult.VALID
+ : new
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_VDS_STATUS_ILLEGAL,
hostStatus.toString());
+ }
+
+ public ValidationResult isUp() {
+ return validateStatus(VDSStatus.Up,
VdcBllMessages.VAR__HOST_STATUS__UP);
+ }
}
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
index 202280f..c62f32c 100644
---
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
@@ -790,7 +790,11 @@
USER_REMOVED_NETWORK_QOS(10102),
USER_FAILED_TO_REMOVE_NETWORK_QOS(10103),
USER_UPDATED_NETWORK_QOS(10104),
- USER_FAILED_TO_UPDATE_NETWORK_QOS(10105)
+ USER_FAILED_TO_UPDATE_NETWORK_QOS(10105),
+
+ //mom policies
+ USER_UPDATED_MOM_POLICIES(10200),
+ USER_FAILED_TO_UPDATE_MOM_POLICIES(10201)
;
private int intValue;
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 ae8c2a3..c16a4f7 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
@@ -140,4 +140,13 @@
public static boolean setupManagementNetwork(Version version) {
return supportedInConfig(ConfigValues.NormalizedMgmgNetworkEnabled,
version);
}
+
+ /**
+ * @param version
+ * Compatibility version to check for.
+ * @return <code>true</code> iff MoM Policy on host is supported for the
cluster version.
+ */
+ public static boolean momPolicyOnHost(Version version) {
+ return supportedInConfig(ConfigValues.MomPoliciesOnHostSupported,
version);
+ }
}
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
index 6604f57..fa34826 100644
---
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
@@ -279,7 +279,9 @@
EndExternalJob(1801, ActionGroup.INJECT_EXTERNAL_TASKS, false,
QuotaDependency.NONE),
ClearExternalJob(1802, ActionGroup.INJECT_EXTERNAL_TASKS, false,
QuotaDependency.NONE),
AddExternalStep(1803, ActionGroup.INJECT_EXTERNAL_TASKS, false,
QuotaDependency.NONE),
- EndExternalStep(1804, ActionGroup.INJECT_EXTERNAL_TASKS, false,
QuotaDependency.NONE);
+ EndExternalStep(1804, ActionGroup.INJECT_EXTERNAL_TASKS, false,
QuotaDependency.NONE),
+
+ UpdateMomPolicy(1900, ActionGroup.MANIPUTLATE_HOST, false,
QuotaDependency.NONE);
private int intValue;
private ActionGroup actionGroup;
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 e3298f9..8581df8 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
@@ -1449,6 +1449,11 @@
@DefaultValueAttribute("true")
NormalizedMgmgNetworkEnabled(522),
+ @TypeConverterAttribute(Boolean.class)
+ @DefaultValueAttribute("true")
+ MomPoliciesOnHostSupported(530),
+
+
Invalid(65535);
private int intValue;
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 8d744fd..28e6abe 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
@@ -218,6 +218,7 @@
ACTION_TYPE_FAILED_VDS_STATUS_ILLEGAL(ErrorType.CONFLICT),
ACTION_TYPE_FAILED_MIGRATE_BETWEEN_TWO_CLUSTERS(ErrorType.CONFLICT),
ACTION_TYPE_FAILED_VDS_INTERMITENT_CONNECTIVITY(ErrorType.CONFLICT),
+ ACTION_TYPE_FAILED_MOM_UPDATE_VDS_VERSION(ErrorType.INCOMPATIBLE_VERSION),
VDS_CANNOT_REMOVE_VDS_GROUP_VDS_DETECTED(ErrorType.CONFLICT),
VDS_CANNOT_MAINTENANCE_VDS_IS_NOT_OPERATIONAL(ErrorType.CONFLICT),
VDS_CANNOT_MAINTENANCE_VDS_IS_NOT_RESPONDING_WITH_VMS(ErrorType.CONFLICT),
diff --git
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
index f3641de..30b65cc 100644
---
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
+++
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
@@ -479,6 +479,11 @@
severities.put(AuditLogType.USER_FAILED_TO_UPDATE_NETWORK_QOS,
AuditLogSeverity.ERROR);
}
+ private static void initMomPoliciesSeverities() {
+ severities.put(AuditLogType.USER_UPDATED_MOM_POLICIES,
AuditLogSeverity.NORMAL);
+ severities.put(AuditLogType.USER_FAILED_TO_UPDATE_MOM_POLICIES,
AuditLogSeverity.WARNING);
+ }
+
private static void initVMSeverities() {
severities.put(AuditLogType.USER_ATTACH_VM_TO_AD_GROUP,
AuditLogSeverity.NORMAL);
severities.put(AuditLogType.USER_ATTACH_VM_TO_AD_GROUP_FAILED,
AuditLogSeverity.ERROR);
diff --git
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
index 4d6244f..e49eb05 100644
---
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -528,6 +528,7 @@
ACTION_TYPE_FAILED_PM_ENABLED_WITHOUT_AGENT=Cannot ${action} ${type}. Power
Management is enabled for Host but no Agent type selected.
ACTION_TYPE_FAILED_PM_ENABLED_WITHOUT_AGENT_CREDENTIALS=Cannot ${action}
${type}. Power Management is enabled for Host but Agent credentials are missing.
ACTION_TYPE_FAILED_AGENT_NOT_SUPPORTED=Cannot ${action} ${type}. Selected
Power Management Agent is not supported.
+ACTION_TYPE_FAILED_MOM_UPDATE_VDS_VERSION=Cannot ${action} ${type}. The
cluster's compatibility version doesn't support MoM Policy update.
NETWORK_BOND_NOT_ATTACCH_TO_NETWORK=Bond is not attached to Network.
NETWORK_INTERFACE_NOT_ATTACCH_TO_NETWORK=Network Interface is not attached to
Logical Network.
NETWORK_INTERFACE_IN_USE_BY_VLAN=Bonding cannot be applied on an Interface
where VLAN is defined.\n\
diff --git
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
index 1cf170e..393b2b5 100644
---
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
+++
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
@@ -676,3 +676,5 @@
USER_FAILED_TO_UPDATE_CLUSTER_POLICY=Failed to update Clsuter Policy:
${ClusterPolicy}. (User: ${UserName})
USER_REMOVE_CLUSTER_POLICY=Clsuter Policy ${ClusterPolicy} was removed. (User:
${UserName})
USER_FAILED_TO_REMOVE_CLUSTER_POLICY=Failed to remove Clsuter Policy:
${ClusterPolicy}. (User: ${UserName})
+USER_UPDATED_MOM_POLICIES=Mom policy was updated on host ${VdsName}.
+USER_FAILED_TO_UPDATE_MOM_POLICIES=Mom policy could not be updated on host
${VdsName}.
diff --git
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
index 056dbf8..9afd909 100644
---
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
+++
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
@@ -1429,6 +1429,9 @@
@DefaultStringValue("Cannot ${action} ${type}. Selected Power Management
Agent is not supported.")
String ACTION_TYPE_FAILED_AGENT_NOT_SUPPORTED();
+ @DefaultStringValue("Cannot ${action} ${type}. The cluster's compatibility
version doesn't support MoM Policy update.")
+ String ACTION_TYPE_FAILED_MOM_UPDATE_VDS_VERSION();
+
@DefaultStringValue("Bond is not attached to Network.")
String NETWORK_BOND_NOT_ATTACCH_TO_NETWORK();
diff --git
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
index 9636050..0c9c150 100644
---
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
+++
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
@@ -533,6 +533,7 @@
ACTION_TYPE_FAILED_PM_ENABLED_WITHOUT_AGENT=Cannot ${action} ${type}. Power
Management is enabled for Host but no Agent type selected.
ACTION_TYPE_FAILED_PM_ENABLED_WITHOUT_AGENT_CREDENTIALS=Cannot ${action}
${type}. Power Management is enabled for Host but Agent credentials are missing.
ACTION_TYPE_FAILED_AGENT_NOT_SUPPORTED=Cannot ${action} ${type}. Selected
Power Management Agent is not supported.
+ACTION_TYPE_FAILED_MOM_UPDATE_VDS_VERSION=Cannot ${action} ${type}. The
cluster's compatibility version doesn't support MoM Policy update.
NETWORK_BOND_NOT_ATTACCH_TO_NETWORK=Bond is not attached to Network.
NETWORK_INTERFACE_NOT_ATTACCH_TO_NETWORK=Network Interface is not attached to
Logical Network.
NETWORK_INTERFACE_IN_USE_BY_VLAN=Bonding cannot be applied on an Interface
where VLAN is defined.\n\
diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
index 4b1f5db..0c2c36f 100644
--- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
+++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
@@ -195,7 +195,7 @@
select fn_db_add_config_value('VirtIoScsiEnabled','true','3.3');
select
fn_db_add_config_value('VirtIoScsiUnsupportedOsList','WindowsXP,RHEL5,RHEL5x64,RHEL4,RHEL4x64,RHEL3,RHEL3x64','general');
select fn_db_add_config_value('NormalizedMgmgNetworkEnabled','false','3.0');
-select fn_db_add_config_value('NormalizedMgmgNetworkEnabled','false','3.1');
+select fn_db_add_config_value('IterationsWithBalloonProblem','3','general');
-- by default use no proxy
select fn_db_add_config_value('SpiceProxyDefault','','general');
--
To view, visit http://gerrit.ovirt.org/18519
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic2ba5b4dd31c44ac8b1e13f44a4337f81aff55b2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Martin Sivák <[email protected]>
Gerrit-Reviewer: ofri masad <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches