/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.utils.cluster;
import java.io.IOException;
import java.util.List;
import java.util.Set;
/**
* Provides runtime information about a cluster.
* @author Doreen Seider
*/
public interface ClusterService {
/** Period for continuously fetch cluster job information. */
int FETCH_INTERVAL = 60000;
/**
* Fetches information about cluster jobs.
* @return set of fetch {@link ClusterJobInformation}
* @throws IOException if connecting to the host failed
*/
Set<ClusterJobInformation> fetchClusterJobInformation() throws IOException;
/**
* Cancels cluster jobs.
* @param jobIds identifiers of jobs to cancel
* @return standard error of command.
* @throws IOException if connecting to the host failed
*/
String cancelClusterJobs(List<String> jobIds) throws IOException;
/**
* Adds a listener, which gets notified if state of a cluster job changed. The cluster job is identified
* by the given job identifier.
* @param jobId identifier of job
* @param listener {@link ClusterJobStateChangeListener}
*/
void addClusterJobStateChangeListener(String jobId, ClusterJobStateChangeListener listener);
}