Ravi Nori has uploaded a new change for review. Change subject: restapi : Update of power management via cli ignored(#959879) ......................................................................
restapi : Update of power management via cli ignored(#959879) Unable update power management fields via cli, but the same works from web admin portal Change-Id: I2f2f425703cca688abf1ac3736a37ec5e3216840 Bug-Url: https://bugzilla.redhat.com/959879 Signed-off-by: Ravi Nori <[email protected]> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java 1 file changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/94/14994/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java index 0d4e7c4..baaf324 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java @@ -9,6 +9,7 @@ import org.ovirt.engine.api.common.util.StatusUtils; import org.ovirt.engine.api.model.Action; +import org.ovirt.engine.api.model.Agent; import org.ovirt.engine.api.model.Cluster; import org.ovirt.engine.api.model.CreationStatus; import org.ovirt.engine.api.model.Fault; @@ -323,8 +324,15 @@ protected class UpdateParametersProvider implements ParametersProvider<Host, VDS> { @Override public VdcActionParametersBase getParameters(Host incoming, VDS entity) { + String managementIp = null; + if (incoming.isSetPowerManagement()) { + managementIp = getManagementIp(incoming.getPowerManagement(), entity.getStaticData()); + } VdsStatic updated = getMapper(modelType, VdsStatic.class).map(incoming, entity.getStaticData()); + if (incoming.isSetPowerManagement()) { + updated.setManagementIp(managementIp); + } UpdateVdsActionParameters updateParams = new UpdateVdsActionParameters(updated, "", false); if (incoming.isSetOverrideIptables()) { updateParams.setOverrideFirewall(incoming.isOverrideIptables()); @@ -333,6 +341,31 @@ } } + /** + * Get the management ip address to use. + * If the incoming Host management ip is different from the one in the + * database we use incoming management ip + * If incoming agent address is different from the management ip in the + * database we use the incoming agent address at order 1. + * @param model + * @param vdsStatic + * @return + */ + private String getManagementIp(PowerManagement model, VdsStatic vdsStatic) { + String newIp = vdsStatic.getManagementIp(); + if (model.getAddress() != null && !model.getAddress().equals(vdsStatic.getManagementIp())) { + return model.getAddress(); + } + if (model.isSetAgents()) { + for (Agent agent : model.getAgents().getAgents()) { + if (agent.getOrder() == 1 && !agent.getAddress().equals(vdsStatic.getManagementIp())) { + return agent.getAddress(); + } + } + } + return newIp; + } + @Override protected Host doPopulate(Host model, VDS entity) { return model; -- To view, visit http://gerrit.ovirt.org/14994 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2f2f425703cca688abf1ac3736a37ec5e3216840 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
