package org.ovirt.engine.core.vdsbroker.gluster; import java.util.HashSet; import java.util.Set; import org.ovirt.engine.core.common.businessentities.gluster.StorageDevice; import org.ovirt.engine.core.common.vdscommands.gluster.CreateBrickVDSParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.vdsbroker.vdsbroker.Status; /** * VDS command to create a gluster brick */ public class CreateBrickVDSCommand<P extends CreateBrickVDSParameters> extends AbstractGlusterBrokerCommand<P> { private OneStorageDeviceReturn storageDeviceReturn; public CreateBrickVDSCommand(P parameters) { super(parameters); } @Override protected void executeVdsBrokerCommand() { CreateBrickVDSParameters parameters = getParameters(); Set<String> diskNames = new HashSet<>(); for (StorageDevice storageDevice : parameters.getStorageDevices()) { diskNames.add(storageDevice.getName()); } storageDeviceReturn = getBroker().glusterCreateBrick(parameters.getLvName(), parameters.getMountPoint(), parameters.getRaidParams(), parameters.getFsType(), diskNames.toArray(new String[0])); proceedProxyReturnValue(); if (getVDSReturnValue().getSucceeded()) { StorageDevice storageDevice = storageDeviceReturn.getStorageDevice(); storageDevice.setVdsId(getParameters().getVdsId()); storageDevice.setId(Guid.newGuid()); setReturnValue(storageDevice); } } @Override protected Status getReturnStatus() { return storageDeviceReturn.getStatus(); } }