package org.ovirt.engine.api.restapi.resource;
import javax.ws.rs.DELETE;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.StorageConnection;
import org.ovirt.engine.api.resource.StorageDomainServerConnectionResource;
import org.ovirt.engine.core.common.action.AttachDetachStorageConnectionParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
import org.ovirt.engine.core.common.queries.StorageServerConnectionQueryParametersBase;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendStorageDomainServerConnectionResource extends
AbstractBackendSubResource<StorageConnection, StorageServerConnections> implements StorageDomainServerConnectionResource {
protected BackendStorageDomainServerConnectionsResource parent;
public BackendStorageDomainServerConnectionResource(String id, BackendStorageDomainServerConnectionsResource parent) {
super(id, StorageConnection.class, StorageServerConnections.class);
this.parent = parent;
}
@Override
public StorageConnection get() {
return performGet(VdcQueryType.GetStorageServerConnectionById,
new StorageServerConnectionQueryParametersBase(guid.toString()));
}
public BackendStorageDomainServerConnectionsResource getParent() {
return parent;
}
@Override
@DELETE
public Response remove() {
get();
AttachDetachStorageConnectionParameters params =
new AttachDetachStorageConnectionParameters(parent.storageDomainId, id);
return performAction(VdcActionType.DetachStorageConnectionFromStorageDomain, params);
}
}