You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ch...@apache.org on 2012/12/13 15:45:33 UTC

[4/36] CLOUDSTACK-594: Updating the XenServer java bindings used in cloudstack - part2

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2ce2645c/deps/XenServerJava/src/com/xensource/xenapi/Host.java
----------------------------------------------------------------------
diff --git a/deps/XenServerJava/src/com/xensource/xenapi/Host.java b/deps/XenServerJava/src/com/xensource/xenapi/Host.java
new file mode 100644
index 0000000..2368930
--- /dev/null
+++ b/deps/XenServerJava/src/com/xensource/xenapi/Host.java
@@ -0,0 +1,2919 @@
+/*
+ * 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 physical host
+ *
+ * @author Citrix Systems, Inc.
+ */
+public class Host extends XenAPIObject {
+
+    /**
+     * The XenAPI reference (OpaqueRef) to this object.
+     */
+    protected final String ref;
+
+    /**
+     * For internal use only.
+     */
+    Host(String ref) {
+       this.ref = ref;
+    }
+
+    /**
+     * @return The XenAPI reference (OpaqueRef) to this object.
+     */
+    public String toWireString() {
+       return this.ref;
+    }
+
+    /**
+     * If obj is a Host, compares XenAPI references for equality.
+     */
+    @Override
+    public boolean equals(Object obj)
+    {
+        if (obj != null && obj instanceof Host)
+        {
+            Host other = (Host) obj;
+            return other.ref.equals(this.ref);
+        } else
+        {
+            return false;
+        }
+    }
+
+    @Override
+    public int hashCode()
+    {
+        return ref.hashCode();
+    }
+
+    /**
+     * Represents all the fields in a Host
+     */
+    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", "memoryOverhead", this.memoryOverhead);
+            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", "APIVersionMajor", this.APIVersionMajor);
+            print.printf("%1$20s: %2$s\n", "APIVersionMinor", this.APIVersionMinor);
+            print.printf("%1$20s: %2$s\n", "APIVersionVendor", this.APIVersionVendor);
+            print.printf("%1$20s: %2$s\n", "APIVersionVendorImplementation", this.APIVersionVendorImplementation);
+            print.printf("%1$20s: %2$s\n", "enabled", this.enabled);
+            print.printf("%1$20s: %2$s\n", "softwareVersion", this.softwareVersion);
+            print.printf("%1$20s: %2$s\n", "otherConfig", this.otherConfig);
+            print.printf("%1$20s: %2$s\n", "capabilities", this.capabilities);
+            print.printf("%1$20s: %2$s\n", "cpuConfiguration", this.cpuConfiguration);
+            print.printf("%1$20s: %2$s\n", "schedPolicy", this.schedPolicy);
+            print.printf("%1$20s: %2$s\n", "supportedBootloaders", this.supportedBootloaders);
+            print.printf("%1$20s: %2$s\n", "residentVMs", this.residentVMs);
+            print.printf("%1$20s: %2$s\n", "logging", this.logging);
+            print.printf("%1$20s: %2$s\n", "PIFs", this.PIFs);
+            print.printf("%1$20s: %2$s\n", "suspendImageSr", this.suspendImageSr);
+            print.printf("%1$20s: %2$s\n", "crashDumpSr", this.crashDumpSr);
+            print.printf("%1$20s: %2$s\n", "crashdumps", this.crashdumps);
+            print.printf("%1$20s: %2$s\n", "patches", this.patches);
+            print.printf("%1$20s: %2$s\n", "PBDs", this.PBDs);
+            print.printf("%1$20s: %2$s\n", "hostCPUs", this.hostCPUs);
+            print.printf("%1$20s: %2$s\n", "cpuInfo", this.cpuInfo);
+            print.printf("%1$20s: %2$s\n", "hostname", this.hostname);
+            print.printf("%1$20s: %2$s\n", "address", this.address);
+            print.printf("%1$20s: %2$s\n", "metrics", this.metrics);
+            print.printf("%1$20s: %2$s\n", "licenseParams", this.licenseParams);
+            print.printf("%1$20s: %2$s\n", "haStatefiles", this.haStatefiles);
+            print.printf("%1$20s: %2$s\n", "haNetworkPeers", this.haNetworkPeers);
+            print.printf("%1$20s: %2$s\n", "blobs", this.blobs);
+            print.printf("%1$20s: %2$s\n", "tags", this.tags);
+            print.printf("%1$20s: %2$s\n", "externalAuthType", this.externalAuthType);
+            print.printf("%1$20s: %2$s\n", "externalAuthServiceName", this.externalAuthServiceName);
+            print.printf("%1$20s: %2$s\n", "externalAuthConfiguration", this.externalAuthConfiguration);
+            print.printf("%1$20s: %2$s\n", "edition", this.edition);
+            print.printf("%1$20s: %2$s\n", "licenseServer", this.licenseServer);
+            print.printf("%1$20s: %2$s\n", "biosStrings", this.biosStrings);
+            print.printf("%1$20s: %2$s\n", "powerOnMode", this.powerOnMode);
+            print.printf("%1$20s: %2$s\n", "powerOnConfig", this.powerOnConfig);
+            print.printf("%1$20s: %2$s\n", "localCacheSr", this.localCacheSr);
+            print.printf("%1$20s: %2$s\n", "chipsetInfo", this.chipsetInfo);
+            print.printf("%1$20s: %2$s\n", "PCIs", this.PCIs);
+            print.printf("%1$20s: %2$s\n", "PGPUs", this.PGPUs);
+            return writer.toString();
+        }
+
+        /**
+         * Convert a host.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("memory_overhead", this.memoryOverhead == null ? 0 : this.memoryOverhead);
+            map.put("allowed_operations", this.allowedOperations == null ? new LinkedHashSet<Types.HostAllowedOperations>() : this.allowedOperations);
+            map.put("current_operations", this.currentOperations == null ? new HashMap<String, Types.HostAllowedOperations>() : this.currentOperations);
+            map.put("API_version_major", this.APIVersionMajor == null ? 0 : this.APIVersionMajor);
+            map.put("API_version_minor", this.APIVersionMinor == null ? 0 : this.APIVersionMinor);
+            map.put("API_version_vendor", this.APIVersionVendor == null ? "" : this.APIVersionVendor);
+            map.put("API_version_vendor_implementation", this.APIVersionVendorImplementation == null ? new HashMap<String, String>() : this.APIVersionVendorImplementation);
+            map.put("enabled", this.enabled == null ? false : this.enabled);
+            map.put("software_version", this.softwareVersion == null ? new HashMap<String, String>() : this.softwareVersion);
+            map.put("other_config", this.otherConfig == null ? new HashMap<String, String>() : this.otherConfig);
+            map.put("capabilities", this.capabilities == null ? new LinkedHashSet<String>() : this.capabilities);
+            map.put("cpu_configuration", this.cpuConfiguration == null ? new HashMap<String, String>() : this.cpuConfiguration);
+            map.put("sched_policy", this.schedPolicy == null ? "" : this.schedPolicy);
+            map.put("supported_bootloaders", this.supportedBootloaders == null ? new LinkedHashSet<String>() : this.supportedBootloaders);
+            map.put("resident_VMs", this.residentVMs == null ? new LinkedHashSet<VM>() : this.residentVMs);
+            map.put("logging", this.logging == null ? new HashMap<String, String>() : this.logging);
+            map.put("PIFs", this.PIFs == null ? new LinkedHashSet<PIF>() : this.PIFs);
+            map.put("suspend_image_sr", this.suspendImageSr == null ? new SR("OpaqueRef:NULL") : this.suspendImageSr);
+            map.put("crash_dump_sr", this.crashDumpSr == null ? new SR("OpaqueRef:NULL") : this.crashDumpSr);
+            map.put("crashdumps", this.crashdumps == null ? new LinkedHashSet<HostCrashdump>() : this.crashdumps);
+            map.put("patches", this.patches == null ? new LinkedHashSet<HostPatch>() : this.patches);
+            map.put("PBDs", this.PBDs == null ? new LinkedHashSet<PBD>() : this.PBDs);
+            map.put("host_CPUs", this.hostCPUs == null ? new LinkedHashSet<HostCpu>() : this.hostCPUs);
+            map.put("cpu_info", this.cpuInfo == null ? new HashMap<String, String>() : this.cpuInfo);
+            map.put("hostname", this.hostname == null ? "" : this.hostname);
+            map.put("address", this.address == null ? "" : this.address);
+            map.put("metrics", this.metrics == null ? new HostMetrics("OpaqueRef:NULL") : this.metrics);
+            map.put("license_params", this.licenseParams == null ? new HashMap<String, String>() : this.licenseParams);
+            map.put("ha_statefiles", this.haStatefiles == null ? new LinkedHashSet<String>() : this.haStatefiles);
+            map.put("ha_network_peers", this.haNetworkPeers == null ? new LinkedHashSet<String>() : this.haNetworkPeers);
+            map.put("blobs", this.blobs == null ? new HashMap<String, Blob>() : this.blobs);
+            map.put("tags", this.tags == null ? new LinkedHashSet<String>() : this.tags);
+            map.put("external_auth_type", this.externalAuthType == null ? "" : this.externalAuthType);
+            map.put("external_auth_service_name", this.externalAuthServiceName == null ? "" : this.externalAuthServiceName);
+            map.put("external_auth_configuration", this.externalAuthConfiguration == null ? new HashMap<String, String>() : this.externalAuthConfiguration);
+            map.put("edition", this.edition == null ? "" : this.edition);
+            map.put("license_server", this.licenseServer == null ? new HashMap<String, String>() : this.licenseServer);
+            map.put("bios_strings", this.biosStrings == null ? new HashMap<String, String>() : this.biosStrings);
+            map.put("power_on_mode", this.powerOnMode == null ? "" : this.powerOnMode);
+            map.put("power_on_config", this.powerOnConfig == null ? new HashMap<String, String>() : this.powerOnConfig);
+            map.put("local_cache_sr", this.localCacheSr == null ? new SR("OpaqueRef:NULL") : this.localCacheSr);
+            map.put("chipset_info", this.chipsetInfo == null ? new HashMap<String, String>() : this.chipsetInfo);
+            map.put("PCIs", this.PCIs == null ? new LinkedHashSet<PCI>() : this.PCIs);
+            map.put("PGPUs", this.PGPUs == null ? new LinkedHashSet<PGPU>() : this.PGPUs);
+            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;
+        /**
+         * Virtualization memory overhead (bytes).
+         */
+        public Long memoryOverhead;
+        /**
+         * 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.HostAllowedOperations> 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.HostAllowedOperations> currentOperations;
+        /**
+         * major version number
+         */
+        public Long APIVersionMajor;
+        /**
+         * minor version number
+         */
+        public Long APIVersionMinor;
+        /**
+         * identification of vendor
+         */
+        public String APIVersionVendor;
+        /**
+         * details of vendor implementation
+         */
+        public Map<String, String> APIVersionVendorImplementation;
+        /**
+         * True if the host is currently enabled
+         */
+        public Boolean enabled;
+        /**
+         * version strings
+         */
+        public Map<String, String> softwareVersion;
+        /**
+         * additional configuration
+         */
+        public Map<String, String> otherConfig;
+        /**
+         * Xen capabilities
+         */
+        public Set<String> capabilities;
+        /**
+         * The CPU configuration on this host.  May contain keys such as "nr_nodes", "sockets_per_node", "cores_per_socket", or "threads_per_core"
+         */
+        public Map<String, String> cpuConfiguration;
+        /**
+         * Scheduler policy currently in force on this host
+         */
+        public String schedPolicy;
+        /**
+         * a list of the bootloaders installed on the machine
+         */
+        public Set<String> supportedBootloaders;
+        /**
+         * list of VMs currently resident on host
+         */
+        public Set<VM> residentVMs;
+        /**
+         * logging configuration
+         */
+        public Map<String, String> logging;
+        /**
+         * physical network interfaces
+         */
+        public Set<PIF> PIFs;
+        /**
+         * The SR in which VDIs for suspend images are created
+         */
+        public SR suspendImageSr;
+        /**
+         * The SR in which VDIs for crash dumps are created
+         */
+        public SR crashDumpSr;
+        /**
+         * Set of host crash dumps
+         */
+        public Set<HostCrashdump> crashdumps;
+        /**
+         * Set of host patches
+         */
+        public Set<HostPatch> patches;
+        /**
+         * physical blockdevices
+         */
+        public Set<PBD> PBDs;
+        /**
+         * The physical CPUs on this host
+         */
+        public Set<HostCpu> hostCPUs;
+        /**
+         * Details about the physical CPUs on this host
+         */
+        public Map<String, String> cpuInfo;
+        /**
+         * The hostname of this host
+         */
+        public String hostname;
+        /**
+         * The address by which this host can be contacted from any other host in the pool
+         */
+        public String address;
+        /**
+         * metrics associated with this host
+         */
+        public HostMetrics metrics;
+        /**
+         * State of the current license
+         */
+        public Map<String, String> licenseParams;
+        /**
+         * The set of statefiles accessible from this host
+         */
+        public Set<String> haStatefiles;
+        /**
+         * The set of hosts visible via the network from this host
+         */
+        public Set<String> haNetworkPeers;
+        /**
+         * Binary blobs associated with this host
+         */
+        public Map<String, Blob> blobs;
+        /**
+         * user-specified tags for categorization purposes
+         */
+        public Set<String> tags;
+        /**
+         * type of external authentication service configured; empty if none configured.
+         */
+        public String externalAuthType;
+        /**
+         * name of external authentication service configured; empty if none configured.
+         */
+        public String externalAuthServiceName;
+        /**
+         * configuration specific to external authentication service
+         */
+        public Map<String, String> externalAuthConfiguration;
+        /**
+         * XenServer edition
+         */
+        public String edition;
+        /**
+         * Contact information of the license server
+         */
+        public Map<String, String> licenseServer;
+        /**
+         * BIOS strings
+         */
+        public Map<String, String> biosStrings;
+        /**
+         * The power on mode
+         */
+        public String powerOnMode;
+        /**
+         * The power on config
+         */
+        public Map<String, String> powerOnConfig;
+        /**
+         * The SR that is used as a local cache
+         */
+        public SR localCacheSr;
+        /**
+         * Information about chipset features
+         */
+        public Map<String, String> chipsetInfo;
+        /**
+         * List of PCI devices in the host
+         */
+        public Set<PCI> PCIs;
+        /**
+         * List of physical GPUs in the host
+         */
+        public Set<PGPU> PGPUs;
+    }
+
+    /**
+     * Get a record containing the current state of the given host.
+     *
+     * @return all fields from the object
+     */
+    public Host.Record getRecord(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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.toHostRecord(result);
+    }
+
+    /**
+     * Get a reference to the host instance with the specified UUID.
+     *
+     * @param uuid UUID of object to return
+     * @return reference to the object
+     */
+    public static Host getByUuid(Connection c, String uuid) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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.toHost(result);
+    }
+
+    /**
+     * Get all the host instances with the given label.
+     *
+     * @param label label of object to return
+     * @return references to objects with matching names
+     */
+    public static Set<Host> getByNameLabel(Connection c, String label) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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.toSetOfHost(result);
+    }
+
+    /**
+     * Get the uuid field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getUuid(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 host.
+     *
+     * @return value of the field
+     */
+    public String getNameLabel(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 host.
+     *
+     * @return value of the field
+     */
+    public String getNameDescription(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 memory/overhead field of the given host.
+     *
+     * @return value of the field
+     */
+    public Long getMemoryOverhead(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_memory_overhead";
+        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 allowed_operations field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<Types.HostAllowedOperations> getAllowedOperations(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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.toSetOfHostAllowedOperations(result);
+    }
+
+    /**
+     * Get the current_operations field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, Types.HostAllowedOperations> getCurrentOperations(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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.toMapOfStringHostAllowedOperations(result);
+    }
+
+    /**
+     * Get the API_version/major field of the given host.
+     *
+     * @return value of the field
+     */
+    public Long getAPIVersionMajor(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_API_version_major";
+        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 API_version/minor field of the given host.
+     *
+     * @return value of the field
+     */
+    public Long getAPIVersionMinor(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_API_version_minor";
+        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 API_version/vendor field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getAPIVersionVendor(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_API_version_vendor";
+        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 API_version/vendor_implementation field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getAPIVersionVendorImplementation(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_API_version_vendor_implementation";
+        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 enabled field of the given host.
+     *
+     * @return value of the field
+     */
+    public Boolean getEnabled(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_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 software_version field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getSoftwareVersion(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_software_version";
+        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 other_config field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getOtherConfig(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 capabilities field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<String> getCapabilities(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_capabilities";
+        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 cpu_configuration field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getCpuConfiguration(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_cpu_configuration";
+        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 sched_policy field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getSchedPolicy(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_sched_policy";
+        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 supported_bootloaders field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<String> getSupportedBootloaders(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_supported_bootloaders";
+        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 resident_VMs field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<VM> getResidentVMs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_resident_VMs";
+        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.toSetOfVM(result);
+    }
+
+    /**
+     * Get the logging field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getLogging(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_logging";
+        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 PIFs field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<PIF> getPIFs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_PIFs";
+        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.toSetOfPIF(result);
+    }
+
+    /**
+     * Get the suspend_image_sr field of the given host.
+     *
+     * @return value of the field
+     */
+    public SR getSuspendImageSr(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_suspend_image_sr";
+        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.toSR(result);
+    }
+
+    /**
+     * Get the crash_dump_sr field of the given host.
+     *
+     * @return value of the field
+     */
+    public SR getCrashDumpSr(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_crash_dump_sr";
+        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.toSR(result);
+    }
+
+    /**
+     * Get the crashdumps field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<HostCrashdump> getCrashdumps(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_crashdumps";
+        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.toSetOfHostCrashdump(result);
+    }
+
+    /**
+     * Get the patches field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<HostPatch> getPatches(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_patches";
+        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.toSetOfHostPatch(result);
+    }
+
+    /**
+     * Get the PBDs field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<PBD> getPBDs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 host_CPUs field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<HostCpu> getHostCPUs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_host_CPUs";
+        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.toSetOfHostCpu(result);
+    }
+
+    /**
+     * Get the cpu_info field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getCpuInfo(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_cpu_info";
+        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 hostname field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getHostname(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_hostname";
+        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 address field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getAddress(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_address";
+        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 metrics field of the given host.
+     *
+     * @return value of the field
+     */
+    public HostMetrics getMetrics(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_metrics";
+        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.toHostMetrics(result);
+    }
+
+    /**
+     * Get the license_params field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getLicenseParams(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_license_params";
+        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 ha_statefiles field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<String> getHaStatefiles(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_ha_statefiles";
+        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 ha_network_peers field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<String> getHaNetworkPeers(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_ha_network_peers";
+        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 blobs field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, Blob> getBlobs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 tags field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<String> getTags(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 external_auth_type field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getExternalAuthType(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_external_auth_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 external_auth_service_name field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getExternalAuthServiceName(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_external_auth_service_name";
+        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 external_auth_configuration field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getExternalAuthConfiguration(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_external_auth_configuration";
+        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 edition field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getEdition(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_edition";
+        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 license_server field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getLicenseServer(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_license_server";
+        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 bios_strings field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getBiosStrings(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_bios_strings";
+        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 power_on_mode field of the given host.
+     *
+     * @return value of the field
+     */
+    public String getPowerOnMode(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_power_on_mode";
+        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 power_on_config field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getPowerOnConfig(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_power_on_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 local_cache_sr field of the given host.
+     *
+     * @return value of the field
+     */
+    public SR getLocalCacheSr(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_local_cache_sr";
+        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.toSR(result);
+    }
+
+    /**
+     * Get the chipset_info field of the given host.
+     *
+     * @return value of the field
+     */
+    public Map<String, String> getChipsetInfo(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_chipset_info";
+        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 PCIs field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<PCI> getPCIs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_PCIs";
+        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.toSetOfPCI(result);
+    }
+
+    /**
+     * Get the PGPUs field of the given host.
+     *
+     * @return value of the field
+     */
+    public Set<PGPU> getPGPUs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_PGPUs";
+        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.toSetOfPGPU(result);
+    }
+
+    /**
+     * Set the name/label field of the given host.
+     *
+     * @param label New value to set
+     */
+    public void setNameLabel(Connection c, String label) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_name_label";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(label)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Set the name/description field of the given host.
+     *
+     * @param description New value to set
+     */
+    public void setNameDescription(Connection c, String description) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_name_description";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(description)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Set the other_config field of the given host.
+     *
+     * @param otherConfig New value to set
+     */
+    public void setOtherConfig(Connection c, Map<String, String> otherConfig) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 host.
+     *
+     * @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 = "host.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 host.  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 = "host.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 logging field of the given host.
+     *
+     * @param logging New value to set
+     */
+    public void setLogging(Connection c, Map<String, String> logging) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_logging";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(logging)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Add the given key-value pair to the logging field of the given host.
+     *
+     * @param key Key to add
+     * @param value Value to add
+     */
+    public void addToLogging(Connection c, String key, String value) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.add_to_logging";
+        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 logging field of the given host.  If the key is not in that Map, then do nothing.
+     *
+     * @param key Key to remove
+     */
+    public void removeFromLogging(Connection c, String key) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.remove_from_logging";
+        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 suspend_image_sr field of the given host.
+     *
+     * @param suspendImageSr New value to set
+     */
+    public void setSuspendImageSr(Connection c, SR suspendImageSr) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_suspend_image_sr";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(suspendImageSr)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Set the crash_dump_sr field of the given host.
+     *
+     * @param crashDumpSr New value to set
+     */
+    public void setCrashDumpSr(Connection c, SR crashDumpSr) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_crash_dump_sr";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(crashDumpSr)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Set the hostname field of the given host.
+     *
+     * @param hostname New value to set
+     */
+    public void setHostname(Connection c, String hostname) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_hostname";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(hostname)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Set the address field of the given host.
+     *
+     * @param address New value to set
+     */
+    public void setAddress(Connection c, String address) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_address";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(address)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Set the tags field of the given host.
+     *
+     * @param tags New value to set
+     */
+    public void setTags(Connection c, Set<String> tags) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.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 host.  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 = "host.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 host.  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 = "host.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 license_server field of the given host.
+     *
+     * @param licenseServer New value to set
+     */
+    public void setLicenseServer(Connection c, Map<String, String> licenseServer) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.set_license_server";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(licenseServer)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Add the given key-value pair to the license_server field of the given host.
+     *
+     * @param key Key to add
+     * @param value Value to add
+     */
+    public void addToLicenseServer(Connection c, String key, String value) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.add_to_license_server";
+        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 license_server field of the given host.  If the key is not in that Map, then do nothing.
+     *
+     * @param key Key to remove
+     */
+    public void removeFromLicenseServer(Connection c, String key) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.remove_from_license_server";
+        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;
+    }
+
+    /**
+     * Puts the host into a state in which no new VMs can be started. Currently active VMs on the host continue to execute.
+     *
+     * @return Task
+     */
+    public Task disableAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.disable";
+        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);
+    }
+
+    /**
+     * Puts the host into a state in which no new VMs can be started. Currently active VMs on the host continue to execute.
+     *
+     */
+    public void disable(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.disable";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Puts the host into a state in which new VMs can be started.
+     *
+     * @return Task
+     */
+    public Task enableAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.enable";
+        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);
+    }
+
+    /**
+     * Puts the host into a state in which new VMs can be started.
+     *
+     */
+    public void enable(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.enable";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Shutdown the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)
+     *
+     * @return Task
+     */
+    public Task shutdownAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.shutdown";
+        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);
+    }
+
+    /**
+     * Shutdown the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)
+     *
+     */
+    public void shutdown(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.shutdown";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Reboot the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)
+     *
+     * @return Task
+     */
+    public Task rebootAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.reboot";
+        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);
+    }
+
+    /**
+     * Reboot the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)
+     *
+     */
+    public void reboot(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.reboot";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Get the host xen dmesg.
+     *
+     * @return Task
+     */
+    public Task dmesgAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.dmesg";
+        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);
+    }
+
+    /**
+     * Get the host xen dmesg.
+     *
+     * @return dmesg string
+     */
+    public String dmesg(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.dmesg";
+        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 host xen dmesg, and clear the buffer.
+     *
+     * @return Task
+     */
+    public Task dmesgClearAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.dmesg_clear";
+        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);
+    }
+
+    /**
+     * Get the host xen dmesg, and clear the buffer.
+     *
+     * @return dmesg string
+     */
+    public String dmesgClear(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.dmesg_clear";
+        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 host's log file
+     *
+     * @return Task
+     */
+    public Task getLogAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.get_log";
+        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);
+    }
+
+    /**
+     * Get the host's log file
+     *
+     * @return The contents of the host's primary log file
+     */
+    public String getLog(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_log";
+        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);
+    }
+
+    /**
+     * Inject the given string as debugging keys into Xen
+     *
+     * @param keys The keys to send
+     * @return Task
+     */
+    public Task sendDebugKeysAsync(Connection c, String keys) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.send_debug_keys";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(keys)};
+        Map response = c.dispatch(method_call, method_params);
+        Object result = response.get("Value");
+        return Types.toTask(result);
+    }
+
+    /**
+     * Inject the given string as debugging keys into Xen
+     *
+     * @param keys The keys to send
+     */
+    public void sendDebugKeys(Connection c, String keys) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.send_debug_keys";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(keys)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Run xen-bugtool --yestoall and upload the output to Citrix support
+     *
+     * @param url The URL to upload to
+     * @param options Extra configuration operations
+     * @return Task
+     */
+    public Task bugreportUploadAsync(Connection c, String url, Map<String, String> options) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.bugreport_upload";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(url), Marshalling.toXMLRPC(options)};
+        Map response = c.dispatch(method_call, method_params);
+        Object result = response.get("Value");
+        return Types.toTask(result);
+    }
+
+    /**
+     * Run xen-bugtool --yestoall and upload the output to Citrix support
+     *
+     * @param url The URL to upload to
+     * @param options Extra configuration operations
+     */
+    public void bugreportUpload(Connection c, String url, Map<String, String> options) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.bugreport_upload";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(url), Marshalling.toXMLRPC(options)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * List all supported methods
+     *
+     * @return The name of every supported method.
+     */
+    public static Set<String> listMethods(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.list_methods";
+        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);
+    }
+
+    /**
+     * Apply a new license to a host
+     *
+     * @param contents The contents of the license file, base64 encoded
+     * @return Task
+     */
+    public Task licenseApplyAsync(Connection c, String contents) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException,
+       Types.LicenseProcessingError {
+        String method_call = "Async.host.license_apply";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(contents)};
+        Map response = c.dispatch(method_call, method_params);
+        Object result = response.get("Value");
+        return Types.toTask(result);
+    }
+
+    /**
+     * Apply a new license to a host
+     *
+     * @param contents The contents of the license file, base64 encoded
+     */
+    public void licenseApply(Connection c, String contents) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException,
+       Types.LicenseProcessingError {
+        String method_call = "host.license_apply";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(contents)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Destroy specified host record in database
+     *
+     * @return Task
+     */
+    public Task destroyAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.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 host record in database
+     *
+     */
+    public void destroy(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.destroy";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Attempt to power-on the host (if the capability exists).
+     *
+     * @return Task
+     */
+    public Task powerOnAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.power_on";
+        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);
+    }
+
+    /**
+     * Attempt to power-on the host (if the capability exists).
+     *
+     */
+    public void powerOn(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.power_on";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * This call disables HA on the local host. This should only be used with extreme care.
+     *
+     */
+    public static void emergencyHaDisable(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.emergency_ha_disable";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     *
+     *
+     * @return A set of data sources
+     */
+    public Set<DataSource.Record> getDataSources(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_data_sources";
+        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.toSetOfDataSourceRecord(result);
+    }
+
+    /**
+     * Start recording the specified data source
+     *
+     * @param dataSource The data source to record
+     */
+    public void recordDataSource(Connection c, String dataSource) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.record_data_source";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(dataSource)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Query the latest value of the specified data source
+     *
+     * @param dataSource The data source to query
+     * @return The latest value, averaged over the last 5 seconds
+     */
+    public Double queryDataSource(Connection c, String dataSource) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.query_data_source";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(dataSource)};
+        Map response = c.dispatch(method_call, method_params);
+        Object result = response.get("Value");
+            return Types.toDouble(result);
+    }
+
+    /**
+     * Forget the recorded statistics related to the specified data source
+     *
+     * @param dataSource The data source whose archives are to be forgotten
+     */
+    public void forgetDataSourceArchives(Connection c, String dataSource) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.forget_data_source_archives";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(dataSource)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Check this host can be evacuated.
+     *
+     * @return Task
+     */
+    public Task assertCanEvacuateAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.assert_can_evacuate";
+        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);
+    }
+
+    /**
+     * Check this host can be evacuated.
+     *
+     */
+    public void assertCanEvacuate(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.assert_can_evacuate";
+        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 VMs which prevent the host being evacuated, with per-VM error codes
+     *
+     * @return Task
+     */
+    public Task getVmsWhichPreventEvacuationAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.get_vms_which_prevent_evacuation";
+        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);
+    }
+
+    /**
+     * Return a set of VMs which prevent the host being evacuated, with per-VM error codes
+     *
+     * @return VMs which block evacuation together with reasons
+     */
+    public Map<VM, Set<String>> getVmsWhichPreventEvacuation(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_vms_which_prevent_evacuation";
+        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.toMapOfVMSetOfString(result);
+    }
+
+    /**
+     * Return a set of VMs which are not co-operating with the host's memory control system
+     * @deprecated
+     *
+     * @return Task
+     */
+   @Deprecated public Task getUncooperativeResidentVMsAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.get_uncooperative_resident_VMs";
+        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);
+    }
+
+    /**
+     * Return a set of VMs which are not co-operating with the host's memory control system
+     * @deprecated
+     *
+     * @return VMs which are not co-operating
+     */
+   @Deprecated public Set<VM> getUncooperativeResidentVMs(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.get_uncooperative_resident_VMs";
+        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.toSetOfVM(result);
+    }
+
+    /**
+     * Migrate all VMs off of this host, where possible.
+     *
+     * @return Task
+     */
+    public Task evacuateAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.evacuate";
+        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);
+    }
+
+    /**
+     * Migrate all VMs off of this host, where possible.
+     *
+     */
+    public void evacuate(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.evacuate";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Re-configure syslog logging
+     *
+     * @return Task
+     */
+    public Task syslogReconfigureAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.syslog_reconfigure";
+        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);
+    }
+
+    /**
+     * Re-configure syslog logging
+     *
+     */
+    public void syslogReconfigure(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.syslog_reconfigure";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Reconfigure the management network interface
+     *
+     * @param pif reference to a PIF object corresponding to the management interface
+     * @return Task
+     */
+    public static Task managementReconfigureAsync(Connection c, PIF pif) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.management_reconfigure";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(pif)};
+        Map response = c.dispatch(method_call, method_params);
+        Object result = response.get("Value");
+        return Types.toTask(result);
+    }
+
+    /**
+     * Reconfigure the management network interface
+     *
+     * @param pif reference to a PIF object corresponding to the management interface
+     */
+    public static void managementReconfigure(Connection c, PIF pif) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.management_reconfigure";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(pif)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Reconfigure the management network interface. Should only be used if Host.management_reconfigure is impossible because the network configuration is broken.
+     *
+     * @param iface name of the interface to use as a management interface
+     */
+    public static void localManagementReconfigure(Connection c, String iface) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.local_management_reconfigure";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(iface)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Disable the management network interface
+     *
+     */
+    public static void managementDisable(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "host.management_disable";
+        String session = c.getSessionReference();
+        Object[] method_params = {Marshalling.toXMLRPC(session)};
+        Map response = c.dispatch(method_call, method_params);
+        return;
+    }
+
+    /**
+     * Returns the management interface for the specified host
+     *
+     * @return Task
+     */
+    public Task getManagementIfaceAsync(Connection c) throws
+       BadServerResponse,
+       XenAPIException,
+       XmlRpcException {
+        String method_call = "Async.host.get_management_interface";
+        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 the management interface for the specified host
+     *
+     * @return The managment interface for the host
+     */
+    public PIF getManagementIface(Connection c) t

<TRUNCATED>