package org.ovirt.engine.core.bll.gluster; import java.util.ArrayList; import java.util.List; import org.mockito.Mock; import org.mockito.Spy; import org.ovirt.engine.core.bll.BaseCommandTest; import org.ovirt.engine.core.bll.gluster.tasks.GlusterTaskUtils; import org.ovirt.engine.core.bll.interfaces.BackendInternal; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.gluster.AccessProtocol; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType; import org.ovirt.engine.core.common.businessentities.gluster.TransportType; import org.ovirt.engine.core.common.interfaces.VDSBrokerFrontend; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.gluster.GlusterBrickDao; import org.ovirt.engine.core.dao.gluster.GlusterVolumeDao; public abstract class AbstractRemoveGlusterVolumeBricksCommandTest extends BaseCommandTest { @Mock GlusterVolumeDao volumeDao; @Mock GlusterBrickDao brickDao; @Mock protected BackendInternal backend; @Mock protected VDSBrokerFrontend vdsBrokerFrontend; @Spy private GlusterTaskUtils glusterTaskUtils; protected final Guid volumeWithRemoveBricksTask = new Guid("8bc6f108-c0ef-43ab-ba20-ec41107220f5"); protected final Guid volumeWithoutAsyncTask = new Guid("000000000000-0000-0000-0000-00000003"); protected final Guid volumeWithoutRemoveBricksTask = new Guid("000000000000-0000-0000-0000-00000004"); protected final Guid CLUSTER_ID = new Guid("b399944a-81ab-4ec5-8266-e19ba7c3c9d1"); protected final Guid SERVER_ID = new Guid("da9e2f09-2835-4530-9bf5-576c52b11941"); protected static final Guid BRICK_UUID1 = new Guid("6ccdc294-d77b-4929-809d-8afe7634b47d"); protected List<GlusterBrickEntity> getInvalidNoOfBricks(Guid volumeId) { List<GlusterBrickEntity> bricks = new ArrayList<>(); GlusterBrickEntity brick = new GlusterBrickEntity(); brick.setVolumeId(volumeId); brick.setBrickDirectory("/tmp/test-vol1"); brick.setServerId(SERVER_ID); brick.setStatus(GlusterStatus.UP); bricks.add(brick); return bricks; } protected List<GlusterBrickEntity> getInvalidBricks(Guid volumeId) { List<GlusterBrickEntity> bricks = new ArrayList<>(); GlusterBrickEntity brick1 = new GlusterBrickEntity(); brick1.setVolumeId(volumeId); brick1.setBrickDirectory("/tmp/test-vol1"); brick1.setServerId(SERVER_ID); brick1.setStatus(GlusterStatus.UP); bricks.add(brick1); GlusterBrickEntity brick2 = new GlusterBrickEntity(); brick2.setVolumeId(volumeId); brick2.setBrickDirectory("/tmp/test-vol122"); brick2.setServerId(SERVER_ID); brick2.setStatus(GlusterStatus.UP); bricks.add(brick2); return bricks; } protected Object getVolumeWithoutRemoveBricksTask(Guid volumeId) { GlusterVolumeEntity volume = getVolumeWithRemoveBricksTask(volumeId); volume.getAsyncTask().setType(null); return volume; } protected VDS getVds(VDSStatus status) { VDS vds = new VDS(); vds.setId(Guid.newGuid()); vds.setVdsName("gfs1"); vds.setClusterId(CLUSTER_ID); vds.setStatus(status); return vds; } protected GlusterVolumeEntity getVolume(Guid id) { GlusterVolumeEntity volumeEntity = new GlusterVolumeEntity(); volumeEntity.setId(id); volumeEntity.setName("test-vol"); volumeEntity.addAccessProtocol(AccessProtocol.GLUSTER); volumeEntity.addTransportType(TransportType.TCP); volumeEntity.setStatus(GlusterStatus.UP); volumeEntity.setBricks(getBricks(id)); volumeEntity.setVolumeType(GlusterVolumeType.DISTRIBUTE); volumeEntity.setClusterId(CLUSTER_ID); return volumeEntity; } protected List<GlusterBrickEntity> getBricks(Guid volumeId) { List<GlusterBrickEntity> bricks = new ArrayList<>(); GlusterBrickEntity brick1 = new GlusterBrickEntity(); brick1.setVolumeId(volumeId); brick1.setId(BRICK_UUID1); brick1.setBrickDirectory("/tmp/test-vol0"); brick1.setServerId(SERVER_ID); brick1.setStatus(GlusterStatus.UP); bricks.add(brick1); GlusterBrickEntity brick2 = new GlusterBrickEntity(); brick2.setVolumeId(volumeId); brick2.setId(BRICK_UUID1); brick2.setBrickDirectory("/tmp/test-vol1"); brick2.setServerId(SERVER_ID); brick2.setStatus(GlusterStatus.UP); bricks.add(brick2); return bricks; } protected abstract GlusterVolumeEntity getVolumeWithRemoveBricksTask(Guid volumeId); }