| /* | |
| * Copyright (c) Citrix Systems, Inc. | |
| * All rights reserved. | |
| * | |
| * Redistribution and use in source and binary forms, with or without | |
| * modification, are permitted provided that the following conditions | |
| * are met: | |
| * | |
| * 1) Redistributions of source code must retain the above copyright | |
| * notice, this list of conditions and the following disclaimer. | |
| * | |
| * 2) Redistributions in binary form must reproduce the above | |
| * copyright notice, this list of conditions and the following | |
| * disclaimer in the documentation and/or other materials | |
| * provided with the distribution. | |
| * | |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | |
| * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | |
| * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, | |
| * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
| * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |
| * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
| * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | |
| * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | |
| * OF THE POSSIBILITY OF SUCH DAMAGE. | |
| */ | |
| package com.xensource.xenapi; | |
| import com.xensource.xenapi.Types.BadServerResponse; | |
| import com.xensource.xenapi.Types.VersionException; | |
| import com.xensource.xenapi.Types.XenAPIException; | |
| import java.io.PrintWriter; | |
| import java.io.StringWriter; | |
| import java.util.Date; | |
| import java.util.HashMap; | |
| import java.util.LinkedHashSet; | |
| import java.util.Map; | |
| import java.util.Set; | |
| import org.apache.xmlrpc.XmlRpcException; | |
| /** | |
| * A storage repository | |
| * | |
| * @author Citrix Systems, Inc. | |
| */ | |
| public class SR extends XenAPIObject { | |
| /** | |
| * The XenAPI reference (OpaqueRef) to this object. | |
| */ | |
| protected final String ref; | |
| /** | |
| * For internal use only. | |
| */ | |
| SR(String ref) { | |
| this.ref = ref; | |
| } | |
| /** | |
| * @return The XenAPI reference (OpaqueRef) to this object. | |
| */ | |
| public String toWireString() { | |
| return this.ref; | |
| } | |
| /** | |
| * If obj is a SR, compares XenAPI references for equality. | |
| */ | |
| @Override | |
| public boolean equals(Object obj) | |
| { | |
| if (obj != null && obj instanceof SR) | |
| { | |
| SR other = (SR) obj; | |
| return other.ref.equals(this.ref); | |
| } else | |
| { | |
| return false; | |
| } | |
| } | |
| @Override | |
| public int hashCode() | |
| { | |
| return ref.hashCode(); | |
| } | |
| /** | |
| * Represents all the fields in a SR | |
| */ | |
| public static class Record implements Types.Record { | |
| public String toString() { | |
| StringWriter writer = new StringWriter(); | |
| PrintWriter print = new PrintWriter(writer); | |
| print.printf("%1$20s: %2$s\n", "uuid", this.uuid); | |
| print.printf("%1$20s: %2$s\n", "nameLabel", this.nameLabel); | |
| print.printf("%1$20s: %2$s\n", "nameDescription", this.nameDescription); | |
| print.printf("%1$20s: %2$s\n", "allowedOperations", this.allowedOperations); | |
| print.printf("%1$20s: %2$s\n", "currentOperations", this.currentOperations); | |
| print.printf("%1$20s: %2$s\n", "VDIs", this.VDIs); | |
| print.printf("%1$20s: %2$s\n", "PBDs", this.PBDs); | |
| print.printf("%1$20s: %2$s\n", "virtualAllocation", this.virtualAllocation); | |
| print.printf("%1$20s: %2$s\n", "physicalUtilisation", this.physicalUtilisation); | |
| print.printf("%1$20s: %2$s\n", "physicalSize", this.physicalSize); | |
| print.printf("%1$20s: %2$s\n", "type", this.type); | |
| print.printf("%1$20s: %2$s\n", "contentType", this.contentType); | |
| print.printf("%1$20s: %2$s\n", "shared", this.shared); | |
| print.printf("%1$20s: %2$s\n", "otherConfig", this.otherConfig); | |
| print.printf("%1$20s: %2$s\n", "tags", this.tags); | |
| print.printf("%1$20s: %2$s\n", "smConfig", this.smConfig); | |
| print.printf("%1$20s: %2$s\n", "blobs", this.blobs); | |
| print.printf("%1$20s: %2$s\n", "localCacheEnabled", this.localCacheEnabled); | |
| print.printf("%1$20s: %2$s\n", "introducedBy", this.introducedBy); | |
| return writer.toString(); | |
| } | |
| /** | |
| * Convert a SR.Record to a Map | |
| */ | |
| public Map<String,Object> toMap() { | |
| Map<String,Object> map = new HashMap<String,Object>(); | |
| map.put("uuid", this.uuid == null ? "" : this.uuid); | |
| map.put("name_label", this.nameLabel == null ? "" : this.nameLabel); | |
| map.put("name_description", this.nameDescription == null ? "" : this.nameDescription); | |
| map.put("allowed_operations", this.allowedOperations == null ? new LinkedHashSet<Types.StorageOperations>() : this.allowedOperations); | |
| map.put("current_operations", this.currentOperations == null ? new HashMap<String, Types.StorageOperations>() : this.currentOperations); | |
| map.put("VDIs", this.VDIs == null ? new LinkedHashSet<VDI>() : this.VDIs); | |
| map.put("PBDs", this.PBDs == null ? new LinkedHashSet<PBD>() : this.PBDs); | |
| map.put("virtual_allocation", this.virtualAllocation == null ? 0 : this.virtualAllocation); | |
| map.put("physical_utilisation", this.physicalUtilisation == null ? 0 : this.physicalUtilisation); | |
| map.put("physical_size", this.physicalSize == null ? 0 : this.physicalSize); | |
| map.put("type", this.type == null ? "" : this.type); | |
| map.put("content_type", this.contentType == null ? "" : this.contentType); | |
| map.put("shared", this.shared == null ? false : this.shared); | |
| map.put("other_config", this.otherConfig == null ? new HashMap<String, String>() : this.otherConfig); | |
| map.put("tags", this.tags == null ? new LinkedHashSet<String>() : this.tags); | |
| map.put("sm_config", this.smConfig == null ? new HashMap<String, String>() : this.smConfig); | |
| map.put("blobs", this.blobs == null ? new HashMap<String, Blob>() : this.blobs); | |
| map.put("local_cache_enabled", this.localCacheEnabled == null ? false : this.localCacheEnabled); | |
| map.put("introduced_by", this.introducedBy == null ? new DRTask("OpaqueRef:NULL") : this.introducedBy); | |
| return map; | |
| } | |
| /** | |
| * Unique identifier/object reference | |
| */ | |
| public String uuid; | |
| /** | |
| * a human-readable name | |
| */ | |
| public String nameLabel; | |
| /** | |
| * a notes field containing human-readable description | |
| */ | |
| public String nameDescription; | |
| /** | |
| * list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client. | |
| */ | |
| public Set<Types.StorageOperations> allowedOperations; | |
| /** | |
| * links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task. | |
| */ | |
| public Map<String, Types.StorageOperations> currentOperations; | |
| /** | |
| * all virtual disks known to this storage repository | |
| */ | |
| public Set<VDI> VDIs; | |
| /** | |
| * describes how particular hosts can see this storage repository | |
| */ | |
| public Set<PBD> PBDs; | |
| /** | |
| * sum of virtual_sizes of all VDIs in this storage repository (in bytes) | |
| */ | |
| public Long virtualAllocation; | |
| /** | |
| * physical space currently utilised on this storage repository (in bytes). Note that for sparse disk formats, physical_utilisation may be less than virtual_allocation | |
| */ | |
| public Long physicalUtilisation; | |
| /** | |
| * total physical size of the repository (in bytes) | |
| */ | |
| public Long physicalSize; | |
| /** | |
| * type of the storage repository | |
| */ | |
| public String type; | |
| /** | |
| * the type of the SR's content, if required (e.g. ISOs) | |
| */ | |
| public String contentType; | |
| /** | |
| * true if this SR is (capable of being) shared between multiple hosts | |
| */ | |
| public Boolean shared; | |
| /** | |
| * additional configuration | |
| */ | |
| public Map<String, String> otherConfig; | |
| /** | |
| * user-specified tags for categorization purposes | |
| */ | |
| public Set<String> tags; | |
| /** | |
| * SM dependent data | |
| */ | |
| public Map<String, String> smConfig; | |
| /** | |
| * Binary blobs associated with this SR | |
| */ | |
| public Map<String, Blob> blobs; | |
| /** | |
| * True if this SR is assigned to be the local cache for its host | |
| */ | |
| public Boolean localCacheEnabled; | |
| /** | |
| * The disaster recovery task which introduced this SR | |
| */ | |
| public DRTask introducedBy; | |
| } | |
| /** | |
| * Get a record containing the current state of the given SR. | |
| * | |
| * @return all fields from the object | |
| */ | |
| public SR.Record getRecord(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_record"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSRRecord(result); | |
| } | |
| /** | |
| * Get a reference to the SR instance with the specified UUID. | |
| * | |
| * @param uuid UUID of object to return | |
| * @return reference to the object | |
| */ | |
| public static SR getByUuid(Connection c, String uuid) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_by_uuid"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(uuid)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSR(result); | |
| } | |
| /** | |
| * Get all the SR instances with the given label. | |
| * | |
| * @param label label of object to return | |
| * @return references to objects with matching names | |
| */ | |
| public static Set<SR> getByNameLabel(Connection c, String label) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_by_name_label"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(label)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSetOfSR(result); | |
| } | |
| /** | |
| * Get the uuid field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public String getUuid(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_uuid"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| /** | |
| * Get the name/label field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public String getNameLabel(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_name_label"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| /** | |
| * Get the name/description field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public String getNameDescription(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_name_description"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| /** | |
| * Get the allowed_operations field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Set<Types.StorageOperations> getAllowedOperations(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_allowed_operations"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSetOfStorageOperations(result); | |
| } | |
| /** | |
| * Get the current_operations field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Map<String, Types.StorageOperations> getCurrentOperations(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_current_operations"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toMapOfStringStorageOperations(result); | |
| } | |
| /** | |
| * Get the VDIs field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Set<VDI> getVDIs(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_VDIs"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSetOfVDI(result); | |
| } | |
| /** | |
| * Get the PBDs field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Set<PBD> getPBDs(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_PBDs"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSetOfPBD(result); | |
| } | |
| /** | |
| * Get the virtual_allocation field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Long getVirtualAllocation(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_virtual_allocation"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toLong(result); | |
| } | |
| /** | |
| * Get the physical_utilisation field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Long getPhysicalUtilisation(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_physical_utilisation"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toLong(result); | |
| } | |
| /** | |
| * Get the physical_size field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Long getPhysicalSize(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_physical_size"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toLong(result); | |
| } | |
| /** | |
| * Get the type field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public String getType(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_type"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| /** | |
| * Get the content_type field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public String getContentType(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_content_type"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| /** | |
| * Get the shared field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Boolean getShared(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_shared"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toBoolean(result); | |
| } | |
| /** | |
| * Get the other_config field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Map<String, String> getOtherConfig(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_other_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toMapOfStringString(result); | |
| } | |
| /** | |
| * Get the tags field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Set<String> getTags(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_tags"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSetOfString(result); | |
| } | |
| /** | |
| * Get the sm_config field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Map<String, String> getSmConfig(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_sm_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toMapOfStringString(result); | |
| } | |
| /** | |
| * Get the blobs field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Map<String, Blob> getBlobs(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_blobs"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toMapOfStringBlob(result); | |
| } | |
| /** | |
| * Get the local_cache_enabled field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public Boolean getLocalCacheEnabled(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_local_cache_enabled"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toBoolean(result); | |
| } | |
| /** | |
| * Get the introduced_by field of the given SR. | |
| * | |
| * @return value of the field | |
| */ | |
| public DRTask getIntroducedBy(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_introduced_by"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toDRTask(result); | |
| } | |
| /** | |
| * Set the other_config field of the given SR. | |
| * | |
| * @param otherConfig New value to set | |
| */ | |
| public void setOtherConfig(Connection c, Map<String, String> otherConfig) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_other_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(otherConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Add the given key-value pair to the other_config field of the given SR. | |
| * | |
| * @param key Key to add | |
| * @param value Value to add | |
| */ | |
| public void addToOtherConfig(Connection c, String key, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.add_to_other_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(key), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Remove the given key and its corresponding value from the other_config field of the given SR. If the key is not in that Map, then do nothing. | |
| * | |
| * @param key Key to remove | |
| */ | |
| public void removeFromOtherConfig(Connection c, String key) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.remove_from_other_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(key)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Set the tags field of the given SR. | |
| * | |
| * @param tags New value to set | |
| */ | |
| public void setTags(Connection c, Set<String> tags) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_tags"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(tags)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Add the given value to the tags field of the given SR. If the value is already in that Set, then do nothing. | |
| * | |
| * @param value New value to add | |
| */ | |
| public void addTags(Connection c, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.add_tags"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Remove the given value from the tags field of the given SR. If the value is not in that Set, then do nothing. | |
| * | |
| * @param value Value to remove | |
| */ | |
| public void removeTags(Connection c, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.remove_tags"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Set the sm_config field of the given SR. | |
| * | |
| * @param smConfig New value to set | |
| */ | |
| public void setSmConfig(Connection c, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_sm_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Add the given key-value pair to the sm_config field of the given SR. | |
| * | |
| * @param key Key to add | |
| * @param value Value to add | |
| */ | |
| public void addToSmConfig(Connection c, String key, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.add_to_sm_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(key), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Remove the given key and its corresponding value from the sm_config field of the given SR. If the key is not in that Map, then do nothing. | |
| * | |
| * @param key Key to remove | |
| */ | |
| public void removeFromSmConfig(Connection c, String key) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.remove_from_sm_config"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(key)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Create a new Storage Repository and introduce it into the managed system, creating both SR record and PBD record to attach it to current host (with specified device_config parameters) | |
| * | |
| * @param host The host to create/make the SR on | |
| * @param deviceConfig The device config string that will be passed to backend SR driver | |
| * @param physicalSize The physical size of the new storage repository | |
| * @param nameLabel The name of the new storage repository | |
| * @param nameDescription The description of the new storage repository | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param contentType The type of the new SRs content, if required (e.g. ISOs) | |
| * @param shared True if the SR (is capable of) being shared by multiple hosts | |
| * @param smConfig Storage backend specific configuration options | |
| * @return Task | |
| */ | |
| public static Task createAsync(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| VersionException, | |
| XenAPIException, | |
| XmlRpcException, | |
| Types.SrUnknownDriver { | |
| if(c.rioConnection){ | |
| if (smConfig.isEmpty()){ | |
| return rioCreateAsync(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType, shared); | |
| } else { | |
| throw new Types.VersionException("smConfig parameter must be empty map for Rio (legacy XenServer) host"); | |
| } | |
| } else { | |
| return miamiCreateAsync(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType, shared, smConfig); | |
| } | |
| } | |
| private static Task rioCreateAsync(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Boolean shared) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException, | |
| Types.SrUnknownDriver { | |
| String method_call = "Async.SR.create"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| private static Task miamiCreateAsync(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException, | |
| Types.SrUnknownDriver { | |
| String method_call = "Async.SR.create"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Create a new Storage Repository and introduce it into the managed system, creating both SR record and PBD record to attach it to current host (with specified device_config parameters) | |
| * | |
| * @param host The host to create/make the SR on | |
| * @param deviceConfig The device config string that will be passed to backend SR driver | |
| * @param physicalSize The physical size of the new storage repository | |
| * @param nameLabel The name of the new storage repository | |
| * @param nameDescription The description of the new storage repository | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param contentType The type of the new SRs content, if required (e.g. ISOs) | |
| * @param shared True if the SR (is capable of) being shared by multiple hosts | |
| * @param smConfig Storage backend specific configuration options | |
| * @return The reference of the newly created Storage Repository. | |
| */ | |
| public static SR create(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| VersionException, | |
| XenAPIException, | |
| XmlRpcException, | |
| Types.SrUnknownDriver { | |
| if(c.rioConnection){ | |
| if (smConfig.isEmpty()){ | |
| return rioCreate(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType, shared); | |
| } else { | |
| throw new Types.VersionException("smConfig parameter must be empty map for Rio (legacy XenServer) host"); | |
| } | |
| } else { | |
| return miamiCreate(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType, shared, smConfig); | |
| } | |
| } | |
| private static SR rioCreate(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Boolean shared) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException, | |
| Types.SrUnknownDriver { | |
| String method_call = "SR.create"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSR(result); | |
| } | |
| private static SR miamiCreate(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException, | |
| Types.SrUnknownDriver { | |
| String method_call = "SR.create"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSR(result); | |
| } | |
| /** | |
| * Introduce a new Storage Repository into the managed system | |
| * | |
| * @param uuid The uuid assigned to the introduced SR | |
| * @param nameLabel The name of the new storage repository | |
| * @param nameDescription The description of the new storage repository | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param contentType The type of the new SRs content, if required (e.g. ISOs) | |
| * @param shared True if the SR (is capable of) being shared by multiple hosts | |
| * @param smConfig Storage backend specific configuration options | |
| * @return Task | |
| */ | |
| public static Task introduceAsync(Connection c, String uuid, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| VersionException, | |
| XenAPIException, | |
| XmlRpcException { | |
| if(c.rioConnection){ | |
| if (smConfig.isEmpty()){ | |
| return rioIntroduceAsync(c, uuid, nameLabel, nameDescription, type, contentType, shared); | |
| } else { | |
| throw new Types.VersionException("smConfig parameter must be empty map for Rio (legacy XenServer) host"); | |
| } | |
| } else { | |
| return miamiIntroduceAsync(c, uuid, nameLabel, nameDescription, type, contentType, shared, smConfig); | |
| } | |
| } | |
| private static Task rioIntroduceAsync(Connection c, String uuid, String nameLabel, String nameDescription, String type, String contentType, Boolean shared) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "Async.SR.introduce"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(uuid), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| private static Task miamiIntroduceAsync(Connection c, String uuid, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "Async.SR.introduce"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(uuid), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Introduce a new Storage Repository into the managed system | |
| * | |
| * @param uuid The uuid assigned to the introduced SR | |
| * @param nameLabel The name of the new storage repository | |
| * @param nameDescription The description of the new storage repository | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param contentType The type of the new SRs content, if required (e.g. ISOs) | |
| * @param shared True if the SR (is capable of) being shared by multiple hosts | |
| * @param smConfig Storage backend specific configuration options | |
| * @return The reference of the newly introduced Storage Repository. | |
| */ | |
| public static SR introduce(Connection c, String uuid, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| VersionException, | |
| XenAPIException, | |
| XmlRpcException { | |
| if(c.rioConnection){ | |
| if (smConfig.isEmpty()){ | |
| return rioIntroduce(c, uuid, nameLabel, nameDescription, type, contentType, shared); | |
| } else { | |
| throw new Types.VersionException("smConfig parameter must be empty map for Rio (legacy XenServer) host"); | |
| } | |
| } else { | |
| return miamiIntroduce(c, uuid, nameLabel, nameDescription, type, contentType, shared, smConfig); | |
| } | |
| } | |
| private static SR rioIntroduce(Connection c, String uuid, String nameLabel, String nameDescription, String type, String contentType, Boolean shared) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "SR.introduce"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(uuid), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSR(result); | |
| } | |
| private static SR miamiIntroduce(Connection c, String uuid, String nameLabel, String nameDescription, String type, String contentType, Boolean shared, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "SR.introduce"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(uuid), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(shared), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSR(result); | |
| } | |
| /** | |
| * Create a new Storage Repository on disk. This call is deprecated: use SR.create instead. | |
| * @deprecated | |
| * | |
| * @param host The host to create/make the SR on | |
| * @param deviceConfig The device config string that will be passed to backend SR driver | |
| * @param physicalSize The physical size of the new storage repository | |
| * @param nameLabel The name of the new storage repository | |
| * @param nameDescription The description of the new storage repository | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param contentType The type of the new SRs content, if required (e.g. ISOs) | |
| * @param smConfig Storage backend specific configuration options | |
| * @return Task | |
| */ | |
| @Deprecated public static Task makeAsync(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| VersionException, | |
| XenAPIException, | |
| XmlRpcException { | |
| if(c.rioConnection){ | |
| if (smConfig.isEmpty()){ | |
| return rioMakeAsync(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType); | |
| } else { | |
| throw new Types.VersionException("smConfig parameter must be empty map for Rio (legacy XenServer) host"); | |
| } | |
| } else { | |
| return miamiMakeAsync(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType, smConfig); | |
| } | |
| } | |
| @Deprecated private static Task rioMakeAsync(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "Async.SR.make"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| @Deprecated private static Task miamiMakeAsync(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "Async.SR.make"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Create a new Storage Repository on disk. This call is deprecated: use SR.create instead. | |
| * @deprecated | |
| * | |
| * @param host The host to create/make the SR on | |
| * @param deviceConfig The device config string that will be passed to backend SR driver | |
| * @param physicalSize The physical size of the new storage repository | |
| * @param nameLabel The name of the new storage repository | |
| * @param nameDescription The description of the new storage repository | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param contentType The type of the new SRs content, if required (e.g. ISOs) | |
| * @param smConfig Storage backend specific configuration options | |
| * @return The uuid of the newly created Storage Repository. | |
| */ | |
| @Deprecated public static String make(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| VersionException, | |
| XenAPIException, | |
| XmlRpcException { | |
| if(c.rioConnection){ | |
| if (smConfig.isEmpty()){ | |
| return rioMake(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType); | |
| } else { | |
| throw new Types.VersionException("smConfig parameter must be empty map for Rio (legacy XenServer) host"); | |
| } | |
| } else { | |
| return miamiMake(c, host, deviceConfig, physicalSize, nameLabel, nameDescription, type, contentType, smConfig); | |
| } | |
| } | |
| @Deprecated private static String rioMake(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "SR.make"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| @Deprecated private static String miamiMake(Connection c, Host host, Map<String, String> deviceConfig, Long physicalSize, String nameLabel, String nameDescription, String type, String contentType, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XmlRpcException, | |
| XenAPIException { | |
| String method_call = "SR.make"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(physicalSize), Marshalling.toXMLRPC(nameLabel), Marshalling.toXMLRPC(nameDescription), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(contentType), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| /** | |
| * Destroy specified SR, removing SR-record from database and remove SR from disk. (In order to affect this operation the appropriate device_config is read from the specified SR's PBD on current host) | |
| * | |
| * @return Task | |
| */ | |
| public Task destroyAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException, | |
| Types.SrHasPbd { | |
| String method_call = "Async.SR.destroy"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Destroy specified SR, removing SR-record from database and remove SR from disk. (In order to affect this operation the appropriate device_config is read from the specified SR's PBD on current host) | |
| * | |
| */ | |
| public void destroy(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException, | |
| Types.SrHasPbd { | |
| String method_call = "SR.destroy"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Removing specified SR-record from database, without attempting to remove SR from disk | |
| * | |
| * @return Task | |
| */ | |
| public Task forgetAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException, | |
| Types.SrHasPbd { | |
| String method_call = "Async.SR.forget"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Removing specified SR-record from database, without attempting to remove SR from disk | |
| * | |
| */ | |
| public void forget(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException, | |
| Types.SrHasPbd { | |
| String method_call = "SR.forget"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Refresh the fields on the SR object | |
| * | |
| * @return Task | |
| */ | |
| public Task updateAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.update"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Refresh the fields on the SR object | |
| * | |
| */ | |
| public void update(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.update"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Return a set of all the SR types supported by the system | |
| * | |
| * @return the supported SR types | |
| */ | |
| public static Set<String> getSupportedTypes(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_supported_types"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSetOfString(result); | |
| } | |
| /** | |
| * Refreshes the list of VDIs associated with an SR | |
| * | |
| * @return Task | |
| */ | |
| public Task scanAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.scan"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Refreshes the list of VDIs associated with an SR | |
| * | |
| */ | |
| public void scan(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.scan"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Perform a backend-specific scan, using the given device_config. If the device_config is complete, then this will return a list of the SRs present of this type on the device, if any. If the device_config is partial, then a backend-specific scan will be performed, returning results that will guide the user in improving the device_config. | |
| * | |
| * @param host The host to create/make the SR on | |
| * @param deviceConfig The device config string that will be passed to backend SR driver | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param smConfig Storage backend specific configuration options | |
| * @return Task | |
| */ | |
| public static Task probeAsync(Connection c, Host host, Map<String, String> deviceConfig, String type, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.probe"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Perform a backend-specific scan, using the given device_config. If the device_config is complete, then this will return a list of the SRs present of this type on the device, if any. If the device_config is partial, then a backend-specific scan will be performed, returning results that will guide the user in improving the device_config. | |
| * | |
| * @param host The host to create/make the SR on | |
| * @param deviceConfig The device config string that will be passed to backend SR driver | |
| * @param type The type of the SR; used to specify the SR backend driver to use | |
| * @param smConfig Storage backend specific configuration options | |
| * @return An XML fragment containing the scan results. These are specific to the scan being performed, and the backend. | |
| */ | |
| public static String probe(Connection c, Host host, Map<String, String> deviceConfig, String type, Map<String, String> smConfig) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.probe"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(host), Marshalling.toXMLRPC(deviceConfig), Marshalling.toXMLRPC(type), Marshalling.toXMLRPC(smConfig)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toString(result); | |
| } | |
| /** | |
| * Sets the shared flag on the SR | |
| * | |
| * @param value True if the SR is shared | |
| * @return Task | |
| */ | |
| public Task setSharedAsync(Connection c, Boolean value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.set_shared"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Sets the shared flag on the SR | |
| * | |
| * @param value True if the SR is shared | |
| */ | |
| public void setShared(Connection c, Boolean value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_shared"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Set the name label of the SR | |
| * | |
| * @param value The name label for the SR | |
| * @return Task | |
| */ | |
| public Task setNameLabelAsync(Connection c, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.set_name_label"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Set the name label of the SR | |
| * | |
| * @param value The name label for the SR | |
| */ | |
| public void setNameLabel(Connection c, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_name_label"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Set the name description of the SR | |
| * | |
| * @param value The name description for the SR | |
| * @return Task | |
| */ | |
| public Task setNameDescriptionAsync(Connection c, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.set_name_description"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Set the name description of the SR | |
| * | |
| * @param value The name description for the SR | |
| */ | |
| public void setNameDescription(Connection c, String value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_name_description"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Create a placeholder for a named binary blob of data that is associated with this SR | |
| * | |
| * @param name The name associated with the blob | |
| * @param mimeType The mime type for the data. Empty string translates to application/octet-stream | |
| * @param _public True if the blob should be publicly available | |
| * @return Task | |
| */ | |
| public Task createNewBlobAsync(Connection c, String name, String mimeType, Boolean _public) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.create_new_blob"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(name), Marshalling.toXMLRPC(mimeType), Marshalling.toXMLRPC(_public)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Create a placeholder for a named binary blob of data that is associated with this SR | |
| * | |
| * @param name The name associated with the blob | |
| * @param mimeType The mime type for the data. Empty string translates to application/octet-stream | |
| * @param _public True if the blob should be publicly available | |
| * @return The reference of the blob, needed for populating its data | |
| */ | |
| public Blob createNewBlob(Connection c, String name, String mimeType, Boolean _public) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.create_new_blob"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(name), Marshalling.toXMLRPC(mimeType), Marshalling.toXMLRPC(_public)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toBlob(result); | |
| } | |
| /** | |
| * Sets the SR's physical_size field | |
| * | |
| * @param value The new value of the SR's physical_size | |
| */ | |
| public void setPhysicalSize(Connection c, Long value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_physical_size"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Sets the SR's virtual_allocation field | |
| * | |
| * @param value The new value of the SR's virtual_allocation | |
| */ | |
| public void setVirtualAllocation(Connection c, Long value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_virtual_allocation"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Sets the SR's physical_utilisation field | |
| * | |
| * @param value The new value of the SR's physical utilisation | |
| */ | |
| public void setPhysicalUtilisation(Connection c, Long value) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.set_physical_utilisation"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(value)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Returns successfully if the given SR can host an HA statefile. Otherwise returns an error to explain why not | |
| * | |
| * @return Task | |
| */ | |
| public Task assertCanHostHaStatefileAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.assert_can_host_ha_statefile"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Returns successfully if the given SR can host an HA statefile. Otherwise returns an error to explain why not | |
| * | |
| */ | |
| public void assertCanHostHaStatefile(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.assert_can_host_ha_statefile"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Returns successfully if the given SR supports database replication. Otherwise returns an error to explain why not. | |
| * | |
| * @return Task | |
| */ | |
| public Task assertSupportsDatabaseReplicationAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.assert_supports_database_replication"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * Returns successfully if the given SR supports database replication. Otherwise returns an error to explain why not. | |
| * | |
| */ | |
| public void assertSupportsDatabaseReplication(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.assert_supports_database_replication"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * | |
| * | |
| * @return Task | |
| */ | |
| public Task enableDatabaseReplicationAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.enable_database_replication"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * | |
| * | |
| */ | |
| public void enableDatabaseReplication(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.enable_database_replication"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * | |
| * | |
| * @return Task | |
| */ | |
| public Task disableDatabaseReplicationAsync(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "Async.SR.disable_database_replication"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toTask(result); | |
| } | |
| /** | |
| * | |
| * | |
| */ | |
| public void disableDatabaseReplication(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.disable_database_replication"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| return; | |
| } | |
| /** | |
| * Return a list of all the SRs known to the system. | |
| * | |
| * @return references to all objects | |
| */ | |
| public static Set<SR> getAll(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_all"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toSetOfSR(result); | |
| } | |
| /** | |
| * Return a map of SR references to SR records for all SRs known to the system. | |
| * | |
| * @return records of all objects | |
| */ | |
| public static Map<SR, SR.Record> getAllRecords(Connection c) throws | |
| BadServerResponse, | |
| XenAPIException, | |
| XmlRpcException { | |
| String method_call = "SR.get_all_records"; | |
| String session = c.getSessionReference(); | |
| Object[] method_params = {Marshalling.toXMLRPC(session)}; | |
| Map response = c.dispatch(method_call, method_params); | |
| Object result = response.get("Value"); | |
| return Types.toMapOfSRSRRecord(result); | |
| } | |
| } |