/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.vipr.client.core; import java.io.File; import javax.ws.rs.core.MediaType; import com.emc.storageos.model.storagedriver.StorageDriverList; import com.emc.storageos.model.storagedriver.StorageDriverRestRep; import com.emc.vipr.client.core.impl.PathConstants; import com.emc.vipr.client.impl.RestClient; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.multipart.FormDataMultiPart; import com.sun.jersey.multipart.file.FileDataBodyPart; public class StorageDriver { private static final String DRIVER_KEY_NAME = "driver"; private RestClient client; public StorageDriver(RestClient client) { this.client = client; } public StorageDriverRestRep getDriver(String name) { return client.get(StorageDriverRestRep.class, PathConstants.STORAGE_DRIVER_GET_URL, name); } public StorageDriverList getDrivers() { return client.get(StorageDriverList.class, PathConstants.STORAGE_DRIVER_LIST_URL); } public ClientResponse installDriver(File f) { FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.bodyPart(new FileDataBodyPart(DRIVER_KEY_NAME, f, MediaType.APPLICATION_OCTET_STREAM_TYPE)); return client.postMultiPart(ClientResponse.class, multiPart, PathConstants.STORAGE_DRIVER_INSTALL_URL); } public ClientResponse uninstallDriver(String driverName) { return client.delete(ClientResponse.class, PathConstants.STORAGE_DRIVER_UNINSTALL_URL, driverName); } public ClientResponse upgradeDriver(String driverName, File driverFile, boolean force) { FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.bodyPart(new FileDataBodyPart(DRIVER_KEY_NAME, driverFile, MediaType.APPLICATION_OCTET_STREAM_TYPE)); multiPart.field("force", Boolean.toString(force)); return client.postMultiPart(ClientResponse.class, multiPart, PathConstants.STORAGE_DRIVER_UPGRADE_URL, driverName); } }