package org.ovirt.engine.core.common.utils.gluster;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
import org.ovirt.engine.core.compat.Guid;
public class GlusterCoreUtil {
public static final List<String> getQualifiedBrickList(Collection<GlusterBrickEntity> bricks) {
List<String> qualifiedBricks = new ArrayList<>();
for (GlusterBrickEntity GlusterBrick : bricks) {
qualifiedBricks.add(GlusterBrick.getQualifiedName());
}
return qualifiedBricks;
}
public static final GlusterBrickEntity getBrickByQualifiedName(List<GlusterBrickEntity> bricksList,
String qualifiedBrickName) {
for (GlusterBrickEntity brick : bricksList) {
// Compare the brickname with the existing volume brick
if (brick.getQualifiedName().equals(qualifiedBrickName)) {
return brick;
}
}
return null;
}
/**
* Checks if given brick <code>searchBrick</code> exists in the given collection of bricks. Note that this method
* checks only two (and most important) attributes of the brick: server id and brick directory
*
* @return true of the given <code>searchBrick</code> exists in the given collection of bricks, else false
*/
public static boolean containsBrick(Collection<GlusterBrickEntity> bricks, GlusterBrickEntity searchBrick) {
return findBrick(bricks, searchBrick) != null;
}
/**
* Checks if given brick <code>searchBrick</code> exists in the given collection of bricks, and returns it if found. Note that this method
* checks only two (and most important) attributes of the brick: server id and brick directory.
*
* @return the brick if found in the <code>bricks</code> collection, else null.
*/
public static GlusterBrickEntity findBrick(Collection<GlusterBrickEntity> bricks, GlusterBrickEntity searchBrick) {
return findBrick(bricks, searchBrick.getServerId(), searchBrick.getBrickDirectory());
}
/**
* Checks if a brick with given server id and brick directory exists in the given collection of bricks, and returns
* it if found.
*/
public static GlusterBrickEntity findBrick(Collection<GlusterBrickEntity> bricks, Guid serverId, String brickDir) {
for (GlusterBrickEntity brick : bricks) {
if (brick.getServerId().equals(serverId)
&& brick.getBrickDirectory().equals(brickDir)) {
return brick;
}
}
return null;
}
}