/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.imageservercontroller;
import java.net.URI;
import com.emc.storageos.Controller;
import com.emc.storageos.svcs.errorhandling.resources.InternalException;
import com.emc.storageos.volumecontroller.AsyncTask;
public interface ImageServerController extends Controller {
/**
* Delete image from all available imageServers
*
* @param task {@link AsyncTask} instance
*/
void deleteImage(AsyncTask task) throws InternalException;
/**
* Install OS
* @param task {@link AsyncTask}
* @param computeImageJob {@link URI} compute imageJob id
* @throws InternalException
*/
void installOperatingSystem(AsyncTask task, URI computeImageJob) throws InternalException;
/**
* Verify image server and import existing images on to the image server
* @param task {@link AsyncTask} instance
* @param opName {@link String} operation name
*/
void verifyImageServerAndImportExistingImages(AsyncTask task, String opName);
/**
* Import image to all available imageServers
*
* @param task {@link AsyncTask} instance
*/
void importImageToServers(AsyncTask task) throws InternalException;
}