package org.ovirt.engine.core.vdsbroker.gluster; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeAdvancedDetails; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeStatusOption; import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeAdvancedDetailsVDSParameters; import org.ovirt.engine.core.vdsbroker.vdsbroker.Status; public class GetGlusterVolumeAdvancedDetailsVDSCommand<P extends GlusterVolumeAdvancedDetailsVDSParameters> extends AbstractGlusterBrokerCommand<P> { private GlusterVolumeStatusReturn result; public GetGlusterVolumeAdvancedDetailsVDSCommand(P parameters) { super(parameters); } @Override protected Status getReturnStatus() { return result.getStatus(); } private boolean getSucceeded() { return result.getStatus().code == 0; } @Override protected void executeVdsBrokerCommand() { executeVolumeStatusInfo(""); GlusterVolumeAdvancedDetails volumeAdvancedDetails = result.getVolumeAdvancedDetails(); if (getParameters().isCapacityInfoRequired() || getParameters().isDetailRequired()) { if (getSucceeded()) { executeVolumeStatusInfo(GlusterVolumeStatusOption.DETAIL.name().toLowerCase()); if (getSucceeded()) { volumeAdvancedDetails.copyDetailsFrom(result.getVolumeAdvancedDetails()); } } } if (getParameters().isDetailRequired()) { if (getSucceeded()) { executeVolumeStatusInfo(GlusterVolumeStatusOption.CLIENTS.name().toLowerCase()); if (getSucceeded()) { volumeAdvancedDetails.copyClientsFrom(result.getVolumeAdvancedDetails()); executeVolumeStatusInfo(GlusterVolumeStatusOption.MEM.name().toLowerCase()); if (getSucceeded()) { volumeAdvancedDetails.copyMemoryFrom(result.getVolumeAdvancedDetails()); } } } } setReturnValue(volumeAdvancedDetails); } private void executeVolumeStatusInfo(String volumeStatusOption) { result = getBroker().glusterVolumeStatus(getParameters().getClusterId(), getParameters().getVolumeName(), getParameters().getBrickName() == null ? "" : getParameters().getBrickName(), volumeStatusOption); proceedProxyReturnValue(); } }