class NovaLauncher extends Launcher {

  @Override
  public List<MachineRuntime> forkMachines(JsonCluster definition, ClusterRuntime runtime, String name)
          throws KaramelException {
    Nova nova = (Nova) UserClusterDataExtractor.getGroupProvider(definition,name);
    JsonGroup definedGroup = UserClusterDataExtractor.findGroup(definition, name);
    GroupRuntime groupRuntime = UserClusterDataExtractor.findGroup(runtime,name);
    Set<String> groupIds = new HashSet<>();
    groupIds.add(groupRuntime.getId());

    String keypairName = NovaSetting.NOVA_KEYPAIR_NAME(runtime.getName(), novaContext.getNovaCredentials().getRegion());
    if(!keys.contains(keypairName)) {
      uploadSshPublicKey(keypairName,nova,true);
      keys.add(keypairName);
    }
    return requestNodes(keypairName,groupRuntime,groupIds,Integer.valueOf(definedGroup.getSize()),nova);
  }

  public  NovaLauncher(NovaContext novaContext, SshKeyPair sshKeyPair);

}