package org.ovirt.engine.core.vdsbroker.vdsbroker; import org.ovirt.engine.core.compat.*; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.*; import org.ovirt.engine.core.common.vdscommands.*; public class CreateStoragePoolVDSCommand<P extends CreateStoragePoolVDSCommandParameters> extends VdsBrokerCommand<P> { public CreateStoragePoolVDSCommand(P parameters) { super(parameters); } @Override protected void ExecuteVdsBrokerCommand() { // LINQ SP140 // string[] ids = CreateParameters.DomainsIdList.ConvertAll<string>(a => // a.toString()).ToArray(); Guid[] guids = getParameters().getDomainsIdList().toArray(new Guid[0]); String[] ids = new String[guids.length]; for (int i = 0; i < guids.length; i++) { ids[i] = guids[i].toString(); } status = getBroker().createStoragePool(getParameters().getStorageType().getValue(), getParameters().getStoragePoolId().toString(), getParameters().getStoragePoolName(), getParameters().getMasterDomainId().toString(), ids, getParameters().getMasterVersion(), Config.<String> GetValue(ConfigValues.LockPolicy), Config.<Integer> GetValue(ConfigValues.LockRenewalIntervalSec), Config.<Integer> GetValue(ConfigValues.LeaseTimeSec), Config.<Integer> GetValue(ConfigValues.IoOpTimeoutSec), Config.<Integer> GetValue(ConfigValues.LeaseRetries)); ProceedProxyReturnValue(); } @Override protected void ProceedProxyReturnValue() { VdcBllErrors returnStatus = GetReturnValueFromStatus(getReturnStatus()); switch (returnStatus) { // fail the operation without throwing exception case StorageDomainAccessError: getVDSReturnValue().setSucceeded(false); VDSError tempVar = new VDSError(); tempVar.setCode(VdcBllErrors.StorageDomainAccessError); tempVar.setMessage(getReturnStatus().mMessage); getVDSReturnValue().setVdsError(tempVar); break; default: super.ProceedProxyReturnValue(); InitializeVdsError(returnStatus); break; } } }