/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package se.kth.karamel.backend.launcher;
import java.util.List;
import se.kth.karamel.backend.running.model.ClusterRuntime;
import se.kth.karamel.backend.running.model.MachineRuntime;
import se.kth.karamel.common.clusterdef.json.JsonCluster;
import se.kth.karamel.common.exception.KaramelException;
/**
*
* @author kamal
*/
public abstract class Launcher {
/**
* It cleans up all the groups have this type of provider
* @param definition
* @param runtime
* @throws KaramelException
*/
public abstract void cleanup(JsonCluster definition, ClusterRuntime runtime) throws KaramelException;
/**
*
* @param definition
* @param runtime
* @param name
* @return group id
* @throws se.kth.karamel.common.exception.KaramelException
*/
public abstract String forkGroup(JsonCluster definition, ClusterRuntime runtime, String name)
throws KaramelException;
/**
*
* @param definition
* @param runtime
* @param name
* @return
* @throws KaramelException
*/
public abstract List<MachineRuntime> forkMachines(JsonCluster definition, ClusterRuntime runtime, String name)
throws KaramelException;
}