package betsy.bpel.virtual.host;
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import java.util.Set;
import betsy.bpel.virtual.common.messages.collect_log_files.LogFilesRequest;
import betsy.bpel.virtual.common.messages.deploy.DeployRequest;
/**
* The {@link VirtualEngineAPI} offers methods that are required if dealing
* with virtualized testing using betsy.
*
* @author Cedric Roeck
* @version 1.0
*/
public interface VirtualEngineAPI {
/**
* Get the name of the VirtualMachine that is used by this engines.<br>
* The name shall be the prefix 'betsy-' concatenated with the name of the
* virtualized engine.
*
* @return name of the engine's VirtualMachine
*/
String getVirtualMachineName();
/**
* Get every {@link ServiceAddress} that must be available for the engine
* before testing it.
*
* @return the list of required services for the engine
*/
List<ServiceAddress> getVerifiableServiceAddresses();
/**
* Get all ports that are required by the engine to be testable.
*
* @return list of required ports
*/
Set<Integer> getRequiredPorts();
DeployRequest buildDeployRequest(String name, Path path) throws IOException;
LogFilesRequest buildLogFilesRequest();
}