package org.ovirt.engine.core.vdsbroker.vdsbroker;
import java.security.cert.Certificate;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import org.apache.commons.httpclient.HttpClient;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterHookContentInfoReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterHostsPubKeyReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepConfigList;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatus;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusDetail;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeSnapshotConfigReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeSnapshotCreateReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeSnapshotInfoReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeTaskReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesHealInfoReturn;
import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturn;
import org.ovirt.engine.core.vdsbroker.gluster.OneStorageDeviceReturn;
import org.ovirt.engine.core.vdsbroker.gluster.StorageDeviceListReturn;
import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturn;
import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturn;
import org.ovirt.engine.core.vdsbroker.irsbroker.StoragePoolInfo;
@SuppressWarnings("rawtypes")
public interface IVdsServer {
void close();
List<Certificate> getPeerCertificates();
HttpClient getHttpClient();
OneVmReturn create(Map createInfo);
StatusOnlyReturn createVolumeContainer(String jobId, Map<String, Object> createVolumeInfo);
StatusOnlyReturn copyData(String jobId, Map src, Map dst);
StatusOnlyReturn updateVolume(String jobId, Map<?, ?> volumeInfo, Map<?, ?> volumeAttributes);
StatusOnlyReturn allocateVolume(String spUUID, String sdUUID, String imgGUID, String volUUID, String size);
StatusOnlyReturn moveDomainDevice(String jobId, Map<String, Object> moveParams);
StatusOnlyReturn reduceDomain(String jobId, Map<String, Object> reduceParams);
StatusOnlyReturn mergeSubchain(String jobId, Map<String, Object> subchainInfo);
StatusOnlyReturn destroy(String vmId);
StatusOnlyReturn shutdown(String vmId, String timeout, String message);
StatusOnlyReturn shutdown(String vmId, String timeout, String message, boolean reboot);
OneVmReturn pause(String vmId);
StatusOnlyReturn hibernate(String vmId, String hiberVolHandle);
OneVmReturn resume(String vmId);
VMListReturn list();
VMListReturn fullList(List<String> vmIds);
VDSInfoReturn getCapabilities();
VDSInfoReturn getHardwareInfo();
VDSInfoReturn getVdsStats();
StatusOnlyReturn setMOMPolicyParameters(Map<String, Object> key_value_store);
StatusOnlyReturn setHaMaintenanceMode(String mode, boolean enabled);
StatusOnlyReturn add_image_ticket(String ticketId, String[] ops, long timeout,
long size, String url);
StatusOnlyReturn remove_image_ticket(String ticketId);
StatusOnlyReturn extend_image_ticket(String ticketId, long timeout);
OneMapReturn get_image_transfer_session_stats(String ticketId);
StatusOnlyReturn desktopLogin(String vmId, String domain, String user, String password);
StatusOnlyReturn desktopLogoff(String vmId, String force);
VMInfoListReturn getVmStats(String vmId);
VMInfoListReturn getAllVmStats();
HostDevListReturn hostDevListByCaps();
StatusOnlyReturn migrate(Map<String, Object> migrationInfo);
MigrateStatusReturn migrateStatus(String vmId);
StatusOnlyReturn migrateCancel(String vmId);
PrepareImageReturn prepareImage(String spID, String sdID, String imageID, String volumeID, boolean allowIllegal);
StatusReturn teardownImage(String spId, String sdId, String imgGroupId, String imgId);
StatusReturn verifyUntrustedVolume(String spId, String sdId, String imgGroupId, String imgId);
OneVmReturn changeDisk(String vmId, String imageLocation);
OneVmReturn changeDisk(String vmId, Map<String, Object> driveSpec);
StatusOnlyReturn addNetwork(String bridge, String vlan, String bond, String[] nics,
Map<String, String> options);
StatusOnlyReturn delNetwork(String bridge, String vlan, String bond, String[] nics);
StatusOnlyReturn editNetwork(String oldBridge, String newBridge, String vlan, String bond, String[] nics,
Map<String, String> options);
Future<Map<String, Object>> setupNetworks(Map networks,
Map bonding,
Map options,
boolean isPolicyReset);
StatusOnlyReturn setSafeNetworkConfig();
FenceStatusReturn fenceNode(String ip, String port, String type, String user, String password,
String action, String secured, String options, Map<String, Object> fencingPolicy);
ServerConnectionStatusReturn connectStorageServer(int serverType, String spUUID, Map<String, String>[] args);
ServerConnectionStatusReturn disconnectStorageServer(int serverType, String spUUID,
Map<String, String>[] args);
StatusOnlyReturn createStorageDomain(int domainType, String sdUUID, String domainName, String arg,
int storageType, String storageFormatType);
StatusOnlyReturn formatStorageDomain(String sdUUID);
StatusOnlyReturn connectStoragePool(String spUUID, int hostSpmId, String SCSIKey, String masterdomainId,
int masterVersion, Map<String, String> storageDomains);
StatusOnlyReturn disconnectStoragePool(String spUUID, int hostSpmId, String SCSIKey);
// The poolType parameter is ignored by VDSM
StatusOnlyReturn createStoragePool(int poolType, String spUUID, String poolName, String msdUUID,
String[] domList, int masterVersion, String lockPolicy, int lockRenewalIntervalSec, int leaseTimeSec,
int ioOpTimeoutSec, int leaseRetries);
StatusOnlyReturn reconstructMaster(String spUUID, String poolName, String masterDom,
Map<String, String> domDict, int masterVersion, String lockPolicy, int lockRenewalIntervalSec,
int leaseTimeSec, int ioOpTimeoutSec, int leaseRetries, int hostSpmId);
OneStorageDomainStatsReturn getStorageDomainStats(String sdUUID);
OneStorageDomainInfoReturn getStorageDomainInfo(String sdUUID);
StorageDomainListReturn getStorageDomainsList(String spUUID, int domainType, String poolType, String path);
OneUuidReturn createVG(String sdUUID, String[] deviceList, boolean force);
OneVGReturn getVGInfo(String vgUUID);
LUNListReturn getDeviceList(int storageType, String[] devicesList, boolean checkStatus);
DevicesVisibilityMapReturn getDevicesVisibility(String[] devicesList);
IQNListReturn discoverSendTargets(Map<String, String> args);
OneUuidReturn spmStart(String spUUID,
int prevID,
String prevLVER,
int recoveryMode,
String SCSIFencing,
int maxHostId,
String storagePoolFormatType);
StatusOnlyReturn spmStop(String spUUID);
SpmStatusReturn spmStatus(String spUUID);
HostJobsReturn getHostJobs(String jobType, List<String> jobIds);
TaskStatusReturn getTaskStatus(String taskUUID);
TaskStatusListReturn getAllTasksStatuses();
TaskInfoListReturn getAllTasksInfo();
StatusOnlyReturn stopTask(String taskUUID);
StatusOnlyReturn clearTask(String taskUUID);
StatusOnlyReturn revertTask(String taskUUID);
StatusOnlyReturn hotplugDisk(Map info);
StatusOnlyReturn hotunplugDisk(Map info);
VmInfoReturn hotPlugNic(Map info);
StatusOnlyReturn hotUnplugNic(Map info);
StatusOnlyReturn vmUpdateDevice(String vmId, Map device);
FutureTask<Map<String, Object>> poll();
FutureTask<Map<String, Object>> timeBoundPoll(long timeout, TimeUnit unit);
StatusOnlyReturn snapshot(String vmId, Map<String, String>[] disks);
StatusOnlyReturn snapshot(String vmId, Map<String, String>[] disks, String memory);
StatusOnlyReturn snapshot(String vmId, Map<String, String>[] disks, String memory, boolean frozen);
AlignmentScanReturn getDiskAlignment(String vmId, Map<String, String> driveSpecs);
ImageSizeReturn diskSizeExtend(String vmId, Map<String, String> diskParams, String newSize);
StatusOnlyReturn merge(String vmId, Map<String, String> drive,
String baseVolUUID, String topVolUUID, String bandwidth, String jobUUID);
// Gluster vdsm Commands
OneUuidReturn glusterVolumeCreate(String volumeName,
String[] brickList,
int replicaCount,
int stripeCount,
String[] transportList,
boolean force,
boolean arbiter);
StatusOnlyReturn glusterVolumeSet(String volumeName, String key, String value);
StatusOnlyReturn glusterVolumeStart(String volumeName, Boolean force);
StatusOnlyReturn glusterVolumeStop(String volumeName, Boolean force);
StatusOnlyReturn glusterVolumeDelete(String volumeName);
StatusOnlyReturn glusterVolumeReset(String volumeName, String volumeOption, Boolean force);
GlusterVolumeOptionsInfoReturn glusterVolumeSetOptionsList();
GlusterTaskInfoReturn glusterVolumeRemoveBricksStart(String volumeName,
String[] brickList,
int replicaCount,
Boolean forceRemove);
GlusterVolumeTaskReturn glusterVolumeRemoveBricksStop(String volumeName,
String[] brickList,
int replicaCount);
StatusOnlyReturn glusterVolumeRemoveBricksCommit(String volumeName,
String[] brickList,
int replicaCount);
StatusOnlyReturn glusterVolumeBrickAdd(String volumeName,
String[] bricks,
int replicaCount,
int stripeCount,
boolean force);
GlusterTaskInfoReturn glusterVolumeRebalanceStart(String volumeName, Boolean fixLayoutOnly, Boolean force);
GlusterVolumeTaskReturn glusterVolumeRebalanceStop(String volumeName);
StatusOnlyReturn glusterVolumeReplaceBrickCommitForce(String volumeName,
String existingBrickDir,
String newBrickDir);
StatusOnlyReturn glusterHostRemove(String hostName, Boolean force);
StatusOnlyReturn glusterHostAdd(String hostName);
GlusterServersListReturn glusterServersList();
StatusOnlyReturn diskReplicateStart(String vmUUID, Map srcDisk, Map dstDisk);
StatusOnlyReturn diskReplicateFinish(String vmUUID, Map srcDisk, Map dstDisk);
StatusOnlyReturn glusterVolumeProfileStart(String volumeName);
StatusOnlyReturn glusterVolumeProfileStop(String volumeName);
GlusterVolumeStatusReturn glusterVolumeStatus(Guid clusterId,
String volumeName,
String brickName,
String volumeStatusOption);
GlusterVolumesListReturn glusterVolumesList(Guid clusterId);
GlusterVolumesListReturn glusterVolumeInfo(Guid clusterId, String volumeName);
GlusterVolumesHealInfoReturn glusterVolumeHealInfo(String volumeName);
GlusterVolumeProfileInfoReturn glusterVolumeProfileInfo(Guid clusterId, String volumeName, boolean nfs);
StatusOnlyReturn glusterHookEnable(String glusterCommand, String stage, String hookName);
StatusOnlyReturn glusterHookDisable(String glusterCommand, String stage, String hookName);
GlusterHooksListReturn glusterHooksList();
OneUuidReturn glusterHostUUIDGet();
GlusterServicesReturn glusterServicesList(Guid serverId, String[] serviceNames);
GlusterHookContentInfoReturn glusterHookRead(String glusterCommand, String stage, String hookName);
StatusOnlyReturn glusterHookUpdate(String glusterCommand, String stage, String hookName, String content, String checksum);
StatusOnlyReturn glusterHookAdd(String glusterCommand, String stage, String hookName, String content, String checksum, Boolean enabled);
StatusOnlyReturn glusterHookRemove(String glusterCommand, String stage, String hookName);
GlusterServicesReturn glusterServicesAction(Guid serverId, String [] serviceList, String actionType);
StoragePoolInfo getStoragePoolInfo(String spUUID);
GlusterTasksListReturn glusterTasksList();
GlusterVolumeTaskReturn glusterVolumeRebalanceStatus(String volumeName);
BooleanReturn glusterVolumeEmptyCheck(String volumeName);
GlusterHostsPubKeyReturn glusterGeoRepKeysGet();
StatusOnlyReturn glusterGeoRepKeysUpdate(List<String> geoRepPubKeys, String userName);
StatusOnlyReturn glusterGeoRepMountBrokerSetup(String remoteVolumeName,
String userName,
String remoteGroupName, Boolean partial);
StatusOnlyReturn glusterVolumeGeoRepSessionCreate(String volumeName,
String remoteHost,
String remoteVolumeName,
String userName,
Boolean force);
StatusOnlyReturn glusterVolumeGeoRepSessionDelete(String volumeName,
String remoteHost,
String remoteVolumeName,
String userName);
StatusOnlyReturn glusterVolumeGeoRepSessionStop(String volumeName,
String remoteHost,
String remoteVolumeName,
String userName,
Boolean force);
GlusterVolumeGeoRepStatus glusterVolumeGeoRepSessionList();
GlusterVolumeGeoRepStatus glusterVolumeGeoRepSessionList(String volumeName);
GlusterVolumeGeoRepStatus glusterVolumeGeoRepSessionList(String volumeName,
String slaveHost,
String slaveVolumeName,
String userName);
GlusterVolumeGeoRepStatusDetail glusterVolumeGeoRepSessionStatus(String volumeName,
String slaveHost,
String slaveVolumeName,
String userName);
StatusOnlyReturn glusterVolumeGeoRepSessionStart(String volumeName,
String remoteHost,
String remoteVolumeName,
String userName,
Boolean force);
StatusOnlyReturn glusterVolumeGeoRepSessionPause(String masterVolumeName,
String slaveHost,
String slaveVolumeName,
String userName,
boolean force);
StatusOnlyReturn glusterVolumeGeoRepConfigSet(String volumeName,
String slaveHost,
String slaveVolumeName,
String configKey,
String configValue,
String userName);
StatusOnlyReturn glusterVolumeGeoRepConfigReset(String volumeName,
String slaveHost,
String slaveVolumeName,
String configKey,
String userName);
GlusterVolumeGeoRepConfigList glusterVolumeGeoRepConfigList(String volumeName,
String slaveHost,
String slaveVolumeName,
String userName);
GlusterVolumeTaskReturn glusterVolumeRemoveBrickStatus(String volumeName, String[] bricksList);
StatusOnlyReturn setNumberOfCpus(String vmId, String numberOfCpus);
StatusOnlyReturn hotplugMemory(Map info);
StatusOnlyReturn hotUnplugMemory(Map<String, Object> params);
StatusOnlyReturn updateVmPolicy(Map info);
VMListReturn getExternalVmList(String uri, String username, String password, List<String> vmsNames);
VMNamesListReturn getExternalVmNamesList(String uri, String username, String password);
OneVmReturn getExternalVmFromOva(String ovaPath);
StatusOnlyReturn glusterVolumeGeoRepSessionResume(String volumeName,
String slaveHostName,
String slaveVolumeName,
String userName,
boolean force);
GlusterVolumeSnapshotInfoReturn glusterVolumeSnapshotList(Guid clusterId, String volumeName);
GlusterVolumeSnapshotConfigReturn glusterSnapshotConfigList(Guid clusterId);
StatusOnlyReturn glusterSnapshotDelete(String snapshotName);
StatusOnlyReturn glusterVolumeSnapshotDeleteAll(String volumeName);
StatusOnlyReturn glusterSnapshotActivate(String snapshotName, boolean force);
StatusOnlyReturn glusterSnapshotDeactivate(String snapshotName);
StatusOnlyReturn glusterSnapshotRestore(String snapshotName);
GlusterVolumeSnapshotCreateReturn glusterVolumeSnapshotCreate(String volumeName,
String snapshotName,
String description,
boolean force);
StatusOnlyReturn glusterVolumeSnapshotConfigSet(String volumeName, String cfgName, String cfgValue);
StatusOnlyReturn glusterSnapshotConfigSet(String cfgName, String cfgValue);
OneStorageDeviceReturn glusterCreateBrick(String lvName,
String mountPoint,
Map<String, Object> raidParams,
String fsType,
String[] storageDevices);
StorageDeviceListReturn glusterStorageDeviceList();
StatusOnlyReturn hostdevChangeNumvfs(String deviceName, int numOfVfs);
StatusOnlyReturn convertVmFromExternalSystem(String url, String user, String password, Map<String, Object> vm, String jobUUID);
StatusOnlyReturn convertVmFromOva(String ovaPath, Map<String, Object> vm, String jobUUID);
OvfReturn getConvertedVm(String jobUUID);
StatusOnlyReturn deleteV2VJob(String jobUUID);
StatusOnlyReturn abortV2VJob(String jobUUID);
StatusOnlyReturn glusterSnapshotScheduleOverride(boolean force);
StatusOnlyReturn glusterSnapshotScheduleReset();
StatusOnlyReturn registerSecrets(Map<String, String>[] libvirtSecrets, boolean clearUnusedSecrets);
StatusOnlyReturn unregisterSecrets(String[] libvirtSecretsUuids);
StatusOnlyReturn freeze(String vmId);
StatusOnlyReturn thaw(String vmId);
StatusOnlyReturn isolateVolume(String sdUUID, String srcImageID, String dstImageID, String volumeID);
StatusOnlyReturn wipeVolume(String sdUUID, String imgUUID, String volUUID);
StatusOnlyReturn refreshVolume(String sdUUID, String spUUID, String imgUUID, String volUUID);
VolumeInfoReturn getVolumeInfo(String sdUUID, String spUUID, String imgUUID, String volUUID);
QemuImageInfoReturn getQemuImageInfo(String sdUUID, String spUUID, String imgUUID, String volUUID);
StatusOnlyReturn glusterStopProcesses();
StatusOnlyReturn sparsifyVolume(String jobId, Map<String, Object> volumeAddress);
StatusOnlyReturn amendVolume(String jobId, Map<String, Object> volInfo, Map<String, Object> volAttr);
StatusOnlyReturn sealDisks(String templateId, String jobId, String storagePoolId, List<Map<String, Object>> images);
}