/* * 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. */ using System; using System.Collections; using System.Collections.Generic; using CookComputing.XmlRpc; namespace XenAPI { /// /// A virtual disk image /// First published in XenServer 4.0. /// public partial class VDI : XenObject { public VDI() { } public VDI(string uuid, string name_label, string name_description, List allowed_operations, Dictionary current_operations, XenRef SR, List> VBDs, List> crash_dumps, long virtual_size, long physical_utilisation, vdi_type type, bool sharable, bool read_only, Dictionary other_config, bool storage_lock, string location, bool managed, bool missing, XenRef parent, Dictionary xenstore_data, Dictionary sm_config, bool is_a_snapshot, XenRef snapshot_of, List> snapshots, DateTime snapshot_time, string[] tags, bool allow_caching, on_boot on_boot, XenRef metadata_of_pool, bool metadata_latest) { this.uuid = uuid; this.name_label = name_label; this.name_description = name_description; this.allowed_operations = allowed_operations; this.current_operations = current_operations; this.SR = SR; this.VBDs = VBDs; this.crash_dumps = crash_dumps; this.virtual_size = virtual_size; this.physical_utilisation = physical_utilisation; this.type = type; this.sharable = sharable; this.read_only = read_only; this.other_config = other_config; this.storage_lock = storage_lock; this.location = location; this.managed = managed; this.missing = missing; this.parent = parent; this.xenstore_data = xenstore_data; this.sm_config = sm_config; this.is_a_snapshot = is_a_snapshot; this.snapshot_of = snapshot_of; this.snapshots = snapshots; this.snapshot_time = snapshot_time; this.tags = tags; this.allow_caching = allow_caching; this.on_boot = on_boot; this.metadata_of_pool = metadata_of_pool; this.metadata_latest = metadata_latest; } /// /// Creates a new VDI from a Proxy_VDI. /// /// public VDI(Proxy_VDI proxy) { this.UpdateFromProxy(proxy); } public override void UpdateFrom(VDI update) { uuid = update.uuid; name_label = update.name_label; name_description = update.name_description; allowed_operations = update.allowed_operations; current_operations = update.current_operations; SR = update.SR; VBDs = update.VBDs; crash_dumps = update.crash_dumps; virtual_size = update.virtual_size; physical_utilisation = update.physical_utilisation; type = update.type; sharable = update.sharable; read_only = update.read_only; other_config = update.other_config; storage_lock = update.storage_lock; location = update.location; managed = update.managed; missing = update.missing; parent = update.parent; xenstore_data = update.xenstore_data; sm_config = update.sm_config; is_a_snapshot = update.is_a_snapshot; snapshot_of = update.snapshot_of; snapshots = update.snapshots; snapshot_time = update.snapshot_time; tags = update.tags; allow_caching = update.allow_caching; on_boot = update.on_boot; metadata_of_pool = update.metadata_of_pool; metadata_latest = update.metadata_latest; } internal void UpdateFromProxy(Proxy_VDI proxy) { uuid = proxy.uuid == null ? null : (string)proxy.uuid; name_label = proxy.name_label == null ? null : (string)proxy.name_label; name_description = proxy.name_description == null ? null : (string)proxy.name_description; allowed_operations = proxy.allowed_operations == null ? null : Helper.StringArrayToEnumList(proxy.allowed_operations); current_operations = proxy.current_operations == null ? null : Maps.convert_from_proxy_string_vdi_operations(proxy.current_operations); SR = proxy.SR == null ? null : XenRef.Create(proxy.SR); VBDs = proxy.VBDs == null ? null : XenRef.Create(proxy.VBDs); crash_dumps = proxy.crash_dumps == null ? null : XenRef.Create(proxy.crash_dumps); virtual_size = proxy.virtual_size == null ? 0 : long.Parse((string)proxy.virtual_size); physical_utilisation = proxy.physical_utilisation == null ? 0 : long.Parse((string)proxy.physical_utilisation); type = proxy.type == null ? (vdi_type) 0 : (vdi_type)Helper.EnumParseDefault(typeof(vdi_type), (string)proxy.type); sharable = (bool)proxy.sharable; read_only = (bool)proxy.read_only; other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config); storage_lock = (bool)proxy.storage_lock; location = proxy.location == null ? null : (string)proxy.location; managed = (bool)proxy.managed; missing = (bool)proxy.missing; parent = proxy.parent == null ? null : XenRef.Create(proxy.parent); xenstore_data = proxy.xenstore_data == null ? null : Maps.convert_from_proxy_string_string(proxy.xenstore_data); sm_config = proxy.sm_config == null ? null : Maps.convert_from_proxy_string_string(proxy.sm_config); is_a_snapshot = (bool)proxy.is_a_snapshot; snapshot_of = proxy.snapshot_of == null ? null : XenRef.Create(proxy.snapshot_of); snapshots = proxy.snapshots == null ? null : XenRef.Create(proxy.snapshots); snapshot_time = proxy.snapshot_time; tags = proxy.tags == null ? new string[] {} : (string [])proxy.tags; allow_caching = (bool)proxy.allow_caching; on_boot = proxy.on_boot == null ? (on_boot) 0 : (on_boot)Helper.EnumParseDefault(typeof(on_boot), (string)proxy.on_boot); metadata_of_pool = proxy.metadata_of_pool == null ? null : XenRef.Create(proxy.metadata_of_pool); metadata_latest = (bool)proxy.metadata_latest; } public Proxy_VDI ToProxy() { Proxy_VDI result_ = new Proxy_VDI(); result_.uuid = (uuid != null) ? uuid : ""; result_.name_label = (name_label != null) ? name_label : ""; result_.name_description = (name_description != null) ? name_description : ""; result_.allowed_operations = (allowed_operations != null) ? Helper.ObjectListToStringArray(allowed_operations) : new string[] {}; result_.current_operations = Maps.convert_to_proxy_string_vdi_operations(current_operations); result_.SR = (SR != null) ? SR : ""; result_.VBDs = (VBDs != null) ? Helper.RefListToStringArray(VBDs) : new string[] {}; result_.crash_dumps = (crash_dumps != null) ? Helper.RefListToStringArray(crash_dumps) : new string[] {}; result_.virtual_size = virtual_size.ToString(); result_.physical_utilisation = physical_utilisation.ToString(); result_.type = vdi_type_helper.ToString(type); result_.sharable = sharable; result_.read_only = read_only; result_.other_config = Maps.convert_to_proxy_string_string(other_config); result_.storage_lock = storage_lock; result_.location = (location != null) ? location : ""; result_.managed = managed; result_.missing = missing; result_.parent = (parent != null) ? parent : ""; result_.xenstore_data = Maps.convert_to_proxy_string_string(xenstore_data); result_.sm_config = Maps.convert_to_proxy_string_string(sm_config); result_.is_a_snapshot = is_a_snapshot; result_.snapshot_of = (snapshot_of != null) ? snapshot_of : ""; result_.snapshots = (snapshots != null) ? Helper.RefListToStringArray(snapshots) : new string[] {}; result_.snapshot_time = snapshot_time; result_.tags = tags; result_.allow_caching = allow_caching; result_.on_boot = on_boot_helper.ToString(on_boot); result_.metadata_of_pool = (metadata_of_pool != null) ? metadata_of_pool : ""; result_.metadata_latest = metadata_latest; return result_; } /// /// Creates a new VDI from a Hashtable. /// /// public VDI(Hashtable table) { uuid = Marshalling.ParseString(table, "uuid"); name_label = Marshalling.ParseString(table, "name_label"); name_description = Marshalling.ParseString(table, "name_description"); allowed_operations = Helper.StringArrayToEnumList(Marshalling.ParseStringArray(table, "allowed_operations")); current_operations = Maps.convert_from_proxy_string_vdi_operations(Marshalling.ParseHashTable(table, "current_operations")); SR = Marshalling.ParseRef(table, "SR"); VBDs = Marshalling.ParseSetRef(table, "VBDs"); crash_dumps = Marshalling.ParseSetRef(table, "crash_dumps"); virtual_size = Marshalling.ParseLong(table, "virtual_size"); physical_utilisation = Marshalling.ParseLong(table, "physical_utilisation"); type = (vdi_type)Helper.EnumParseDefault(typeof(vdi_type), Marshalling.ParseString(table, "type")); sharable = Marshalling.ParseBool(table, "sharable"); read_only = Marshalling.ParseBool(table, "read_only"); other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config")); storage_lock = Marshalling.ParseBool(table, "storage_lock"); location = Marshalling.ParseString(table, "location"); managed = Marshalling.ParseBool(table, "managed"); missing = Marshalling.ParseBool(table, "missing"); parent = Marshalling.ParseRef(table, "parent"); xenstore_data = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "xenstore_data")); sm_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "sm_config")); is_a_snapshot = Marshalling.ParseBool(table, "is_a_snapshot"); snapshot_of = Marshalling.ParseRef(table, "snapshot_of"); snapshots = Marshalling.ParseSetRef(table, "snapshots"); snapshot_time = Marshalling.ParseDateTime(table, "snapshot_time"); tags = Marshalling.ParseStringArray(table, "tags"); allow_caching = Marshalling.ParseBool(table, "allow_caching"); on_boot = (on_boot)Helper.EnumParseDefault(typeof(on_boot), Marshalling.ParseString(table, "on_boot")); metadata_of_pool = Marshalling.ParseRef(table, "metadata_of_pool"); metadata_latest = Marshalling.ParseBool(table, "metadata_latest"); } public bool DeepEquals(VDI other, bool ignoreCurrentOperations) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; if (!ignoreCurrentOperations && !Helper.AreEqual2(this.current_operations, other.current_operations)) return false; return Helper.AreEqual2(this._uuid, other._uuid) && Helper.AreEqual2(this._name_label, other._name_label) && Helper.AreEqual2(this._name_description, other._name_description) && Helper.AreEqual2(this._allowed_operations, other._allowed_operations) && Helper.AreEqual2(this._SR, other._SR) && Helper.AreEqual2(this._VBDs, other._VBDs) && Helper.AreEqual2(this._crash_dumps, other._crash_dumps) && Helper.AreEqual2(this._virtual_size, other._virtual_size) && Helper.AreEqual2(this._physical_utilisation, other._physical_utilisation) && Helper.AreEqual2(this._type, other._type) && Helper.AreEqual2(this._sharable, other._sharable) && Helper.AreEqual2(this._read_only, other._read_only) && Helper.AreEqual2(this._other_config, other._other_config) && Helper.AreEqual2(this._storage_lock, other._storage_lock) && Helper.AreEqual2(this._location, other._location) && Helper.AreEqual2(this._managed, other._managed) && Helper.AreEqual2(this._missing, other._missing) && Helper.AreEqual2(this._parent, other._parent) && Helper.AreEqual2(this._xenstore_data, other._xenstore_data) && Helper.AreEqual2(this._sm_config, other._sm_config) && Helper.AreEqual2(this._is_a_snapshot, other._is_a_snapshot) && Helper.AreEqual2(this._snapshot_of, other._snapshot_of) && Helper.AreEqual2(this._snapshots, other._snapshots) && Helper.AreEqual2(this._snapshot_time, other._snapshot_time) && Helper.AreEqual2(this._tags, other._tags) && Helper.AreEqual2(this._allow_caching, other._allow_caching) && Helper.AreEqual2(this._on_boot, other._on_boot) && Helper.AreEqual2(this._metadata_of_pool, other._metadata_of_pool) && Helper.AreEqual2(this._metadata_latest, other._metadata_latest); } public override string SaveChanges(Session session, string opaqueRef, VDI server) { if (opaqueRef == null) { Proxy_VDI p = this.ToProxy(); return session.proxy.vdi_create(session.uuid, p).parse(); } else { if (!Helper.AreEqual2(_other_config, server._other_config)) { VDI.set_other_config(session, opaqueRef, _other_config); } if (!Helper.AreEqual2(_xenstore_data, server._xenstore_data)) { VDI.set_xenstore_data(session, opaqueRef, _xenstore_data); } if (!Helper.AreEqual2(_sm_config, server._sm_config)) { VDI.set_sm_config(session, opaqueRef, _sm_config); } if (!Helper.AreEqual2(_tags, server._tags)) { VDI.set_tags(session, opaqueRef, _tags); } if (!Helper.AreEqual2(_name_label, server._name_label)) { VDI.set_name_label(session, opaqueRef, _name_label); } if (!Helper.AreEqual2(_name_description, server._name_description)) { VDI.set_name_description(session, opaqueRef, _name_description); } if (!Helper.AreEqual2(_virtual_size, server._virtual_size)) { VDI.set_virtual_size(session, opaqueRef, _virtual_size); } if (!Helper.AreEqual2(_sharable, server._sharable)) { VDI.set_sharable(session, opaqueRef, _sharable); } if (!Helper.AreEqual2(_read_only, server._read_only)) { VDI.set_read_only(session, opaqueRef, _read_only); } return null; } } /// /// Get a record containing the current state of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static VDI get_record(Session session, string _vdi) { return new VDI((Proxy_VDI)session.proxy.vdi_get_record(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get a reference to the VDI instance with the specified UUID. /// First published in XenServer 4.0. /// /// The session /// UUID of object to return public static XenRef get_by_uuid(Session session, string _uuid) { return XenRef.Create(session.proxy.vdi_get_by_uuid(session.uuid, (_uuid != null) ? _uuid : "").parse()); } /// /// Create a new VDI instance, and return its handle. /// First published in XenServer 4.0. /// /// The session /// All constructor arguments public static XenRef create(Session session, VDI _record) { return XenRef.Create(session.proxy.vdi_create(session.uuid, _record.ToProxy()).parse()); } /// /// Create a new VDI instance, and return its handle. /// First published in XenServer 4.0. /// /// The session /// All constructor arguments public static XenRef async_create(Session session, VDI _record) { return XenRef.Create(session.proxy.async_vdi_create(session.uuid, _record.ToProxy()).parse()); } /// /// Destroy the specified VDI instance. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static void destroy(Session session, string _vdi) { session.proxy.vdi_destroy(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Destroy the specified VDI instance. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef async_destroy(Session session, string _vdi) { return XenRef.Create(session.proxy.async_vdi_destroy(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get all the VDI instances with the given label. /// First published in XenServer 4.0. /// /// The session /// label of object to return public static List> get_by_name_label(Session session, string _label) { return XenRef.Create(session.proxy.vdi_get_by_name_label(session.uuid, (_label != null) ? _label : "").parse()); } /// /// Get the uuid field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static string get_uuid(Session session, string _vdi) { return (string)session.proxy.vdi_get_uuid(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the name/label field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static string get_name_label(Session session, string _vdi) { return (string)session.proxy.vdi_get_name_label(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the name/description field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static string get_name_description(Session session, string _vdi) { return (string)session.proxy.vdi_get_name_description(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the allowed_operations field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static List get_allowed_operations(Session session, string _vdi) { return Helper.StringArrayToEnumList(session.proxy.vdi_get_allowed_operations(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the current_operations field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static Dictionary get_current_operations(Session session, string _vdi) { return Maps.convert_from_proxy_string_vdi_operations(session.proxy.vdi_get_current_operations(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the SR field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef get_SR(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_get_sr(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the VBDs field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static List> get_VBDs(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_get_vbds(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the crash_dumps field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static List> get_crash_dumps(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_get_crash_dumps(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the virtual_size field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static long get_virtual_size(Session session, string _vdi) { return long.Parse((string)session.proxy.vdi_get_virtual_size(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the physical_utilisation field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static long get_physical_utilisation(Session session, string _vdi) { return long.Parse((string)session.proxy.vdi_get_physical_utilisation(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the type field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static vdi_type get_type(Session session, string _vdi) { return (vdi_type)Helper.EnumParseDefault(typeof(vdi_type), (string)session.proxy.vdi_get_type(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the sharable field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static bool get_sharable(Session session, string _vdi) { return (bool)session.proxy.vdi_get_sharable(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the read_only field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static bool get_read_only(Session session, string _vdi) { return (bool)session.proxy.vdi_get_read_only(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the other_config field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static Dictionary get_other_config(Session session, string _vdi) { return Maps.convert_from_proxy_string_string(session.proxy.vdi_get_other_config(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the storage_lock field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static bool get_storage_lock(Session session, string _vdi) { return (bool)session.proxy.vdi_get_storage_lock(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the location field of the given VDI. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi public static string get_location(Session session, string _vdi) { return (string)session.proxy.vdi_get_location(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the managed field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static bool get_managed(Session session, string _vdi) { return (bool)session.proxy.vdi_get_managed(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the missing field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static bool get_missing(Session session, string _vdi) { return (bool)session.proxy.vdi_get_missing(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the parent field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef get_parent(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_get_parent(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the xenstore_data field of the given VDI. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi public static Dictionary get_xenstore_data(Session session, string _vdi) { return Maps.convert_from_proxy_string_string(session.proxy.vdi_get_xenstore_data(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the sm_config field of the given VDI. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi public static Dictionary get_sm_config(Session session, string _vdi) { return Maps.convert_from_proxy_string_string(session.proxy.vdi_get_sm_config(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the is_a_snapshot field of the given VDI. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi public static bool get_is_a_snapshot(Session session, string _vdi) { return (bool)session.proxy.vdi_get_is_a_snapshot(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the snapshot_of field of the given VDI. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef get_snapshot_of(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_get_snapshot_of(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the snapshots field of the given VDI. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi public static List> get_snapshots(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_get_snapshots(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the snapshot_time field of the given VDI. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi public static DateTime get_snapshot_time(Session session, string _vdi) { return session.proxy.vdi_get_snapshot_time(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the tags field of the given VDI. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi public static string[] get_tags(Session session, string _vdi) { return (string [])session.proxy.vdi_get_tags(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the allow_caching field of the given VDI. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given vdi public static bool get_allow_caching(Session session, string _vdi) { return (bool)session.proxy.vdi_get_allow_caching(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Get the on_boot field of the given VDI. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given vdi public static on_boot get_on_boot(Session session, string _vdi) { return (on_boot)Helper.EnumParseDefault(typeof(on_boot), (string)session.proxy.vdi_get_on_boot(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the metadata_of_pool field of the given VDI. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef get_metadata_of_pool(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_get_metadata_of_pool(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Get the metadata_latest field of the given VDI. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi public static bool get_metadata_latest(Session session, string _vdi) { return (bool)session.proxy.vdi_get_metadata_latest(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Set the other_config field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// New value to set public static void set_other_config(Session session, string _vdi, Dictionary _other_config) { session.proxy.vdi_set_other_config(session.uuid, (_vdi != null) ? _vdi : "", Maps.convert_to_proxy_string_string(_other_config)).parse(); } /// /// Add the given key-value pair to the other_config field of the given VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// Key to add /// Value to add public static void add_to_other_config(Session session, string _vdi, string _key, string _value) { session.proxy.vdi_add_to_other_config(session.uuid, (_vdi != null) ? _vdi : "", (_key != null) ? _key : "", (_value != null) ? _value : "").parse(); } /// /// Remove the given key and its corresponding value from the other_config field of the given VDI. If the key is not in that Map, then do nothing. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// Key to remove public static void remove_from_other_config(Session session, string _vdi, string _key) { session.proxy.vdi_remove_from_other_config(session.uuid, (_vdi != null) ? _vdi : "", (_key != null) ? _key : "").parse(); } /// /// Set the xenstore_data field of the given VDI. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// New value to set public static void set_xenstore_data(Session session, string _vdi, Dictionary _xenstore_data) { session.proxy.vdi_set_xenstore_data(session.uuid, (_vdi != null) ? _vdi : "", Maps.convert_to_proxy_string_string(_xenstore_data)).parse(); } /// /// Add the given key-value pair to the xenstore_data field of the given VDI. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// Key to add /// Value to add public static void add_to_xenstore_data(Session session, string _vdi, string _key, string _value) { session.proxy.vdi_add_to_xenstore_data(session.uuid, (_vdi != null) ? _vdi : "", (_key != null) ? _key : "", (_value != null) ? _value : "").parse(); } /// /// Remove the given key and its corresponding value from the xenstore_data field of the given VDI. If the key is not in that Map, then do nothing. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// Key to remove public static void remove_from_xenstore_data(Session session, string _vdi, string _key) { session.proxy.vdi_remove_from_xenstore_data(session.uuid, (_vdi != null) ? _vdi : "", (_key != null) ? _key : "").parse(); } /// /// Set the sm_config field of the given VDI. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// New value to set public static void set_sm_config(Session session, string _vdi, Dictionary _sm_config) { session.proxy.vdi_set_sm_config(session.uuid, (_vdi != null) ? _vdi : "", Maps.convert_to_proxy_string_string(_sm_config)).parse(); } /// /// Add the given key-value pair to the sm_config field of the given VDI. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// Key to add /// Value to add public static void add_to_sm_config(Session session, string _vdi, string _key, string _value) { session.proxy.vdi_add_to_sm_config(session.uuid, (_vdi != null) ? _vdi : "", (_key != null) ? _key : "", (_value != null) ? _value : "").parse(); } /// /// Remove the given key and its corresponding value from the sm_config field of the given VDI. If the key is not in that Map, then do nothing. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// Key to remove public static void remove_from_sm_config(Session session, string _vdi, string _key) { session.proxy.vdi_remove_from_sm_config(session.uuid, (_vdi != null) ? _vdi : "", (_key != null) ? _key : "").parse(); } /// /// Set the tags field of the given VDI. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi /// New value to set public static void set_tags(Session session, string _vdi, string[] _tags) { session.proxy.vdi_set_tags(session.uuid, (_vdi != null) ? _vdi : "", _tags).parse(); } /// /// Add the given value to the tags field of the given VDI. If the value is already in that Set, then do nothing. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi /// New value to add public static void add_tags(Session session, string _vdi, string _value) { session.proxy.vdi_add_tags(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse(); } /// /// Remove the given value from the tags field of the given VDI. If the value is not in that Set, then do nothing. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given vdi /// Value to remove public static void remove_tags(Session session, string _vdi, string _value) { session.proxy.vdi_remove_tags(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse(); } /// /// Take a read-only snapshot of the VDI, returning a reference to the snapshot. If any driver_params are specified then these are passed through to the storage-specific substrate driver that takes the snapshot. NB the snapshot lives in the same Storage Repository as its parent. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// Optional parameters that can be passed through to backend driver in order to specify storage-type-specific snapshot options First published in XenServer 4.1. public static XenRef snapshot(Session session, string _vdi, Dictionary _driver_params) { return XenRef.Create(session.proxy.vdi_snapshot(session.uuid, (_vdi != null) ? _vdi : "", Maps.convert_to_proxy_string_string(_driver_params)).parse()); } /// /// Take a read-only snapshot of the VDI, returning a reference to the snapshot. If any driver_params are specified then these are passed through to the storage-specific substrate driver that takes the snapshot. NB the snapshot lives in the same Storage Repository as its parent. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// Optional parameters that can be passed through to backend driver in order to specify storage-type-specific snapshot options First published in XenServer 4.1. public static XenRef async_snapshot(Session session, string _vdi, Dictionary _driver_params) { return XenRef.Create(session.proxy.async_vdi_snapshot(session.uuid, (_vdi != null) ? _vdi : "", Maps.convert_to_proxy_string_string(_driver_params)).parse()); } /// /// Take an exact copy of the VDI and return a reference to the new disk. If any driver_params are specified then these are passed through to the storage-specific substrate driver that implements the clone operation. NB the clone lives in the same Storage Repository as its parent. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// Optional parameters that are passed through to the backend driver in order to specify storage-type-specific clone options First published in XenServer 4.1. public static XenRef clone(Session session, string _vdi, Dictionary _driver_params) { return XenRef.Create(session.proxy.vdi_clone(session.uuid, (_vdi != null) ? _vdi : "", Maps.convert_to_proxy_string_string(_driver_params)).parse()); } /// /// Take an exact copy of the VDI and return a reference to the new disk. If any driver_params are specified then these are passed through to the storage-specific substrate driver that implements the clone operation. NB the clone lives in the same Storage Repository as its parent. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// Optional parameters that are passed through to the backend driver in order to specify storage-type-specific clone options First published in XenServer 4.1. public static XenRef async_clone(Session session, string _vdi, Dictionary _driver_params) { return XenRef.Create(session.proxy.async_vdi_clone(session.uuid, (_vdi != null) ? _vdi : "", Maps.convert_to_proxy_string_string(_driver_params)).parse()); } /// /// Resize the VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The new size of the VDI public static void resize(Session session, string _vdi, long _size) { session.proxy.vdi_resize(session.uuid, (_vdi != null) ? _vdi : "", _size.ToString()).parse(); } /// /// Resize the VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The new size of the VDI public static XenRef async_resize(Session session, string _vdi, long _size) { return XenRef.Create(session.proxy.async_vdi_resize(session.uuid, (_vdi != null) ? _vdi : "", _size.ToString()).parse()); } /// /// Resize the VDI which may or may not be attached to running guests. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The new size of the VDI public static void resize_online(Session session, string _vdi, long _size) { session.proxy.vdi_resize_online(session.uuid, (_vdi != null) ? _vdi : "", _size.ToString()).parse(); } /// /// Resize the VDI which may or may not be attached to running guests. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The new size of the VDI public static XenRef async_resize_online(Session session, string _vdi, long _size) { return XenRef.Create(session.proxy.async_vdi_resize_online(session.uuid, (_vdi != null) ? _vdi : "", _size.ToString()).parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.1. /// /// The session /// The uuid of the disk to introduce /// The name of the disk record /// The description of the disk record /// The SR that the VDI is in /// The type of the VDI /// true if this disk may be shared /// true if this disk may ONLY be mounted read-only /// additional configuration /// location information /// Data to insert into xenstore /// Storage-specific config public static XenRef introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config) { return XenRef.Create(session.proxy.vdi_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config)).parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.1. /// /// The session /// The uuid of the disk to introduce /// The name of the disk record /// The description of the disk record /// The SR that the VDI is in /// The type of the VDI /// true if this disk may be shared /// true if this disk may ONLY be mounted read-only /// additional configuration /// location information /// Data to insert into xenstore /// Storage-specific config public static XenRef async_introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config) { return XenRef.Create(session.proxy.async_vdi_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config)).parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.1. /// /// The session /// The uuid of the disk to introduce /// The name of the disk record /// The description of the disk record /// The SR that the VDI is in /// The type of the VDI /// true if this disk may be shared /// true if this disk may ONLY be mounted read-only /// additional configuration /// location information /// Data to insert into xenstore /// Storage-specific config /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. public static XenRef introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config, bool _managed, long _virtual_size, long _physical_utilisation, string _metadata_of_pool, bool _is_a_snapshot, DateTime _snapshot_time, string _snapshot_of) { return XenRef.Create(session.proxy.vdi_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config), _managed, _virtual_size.ToString(), _physical_utilisation.ToString(), (_metadata_of_pool != null) ? _metadata_of_pool : "", _is_a_snapshot, _snapshot_time, (_snapshot_of != null) ? _snapshot_of : "").parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.1. /// /// The session /// The uuid of the disk to introduce /// The name of the disk record /// The description of the disk record /// The SR that the VDI is in /// The type of the VDI /// true if this disk may be shared /// true if this disk may ONLY be mounted read-only /// additional configuration /// location information /// Data to insert into xenstore /// Storage-specific config /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. public static XenRef async_introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config, bool _managed, long _virtual_size, long _physical_utilisation, string _metadata_of_pool, bool _is_a_snapshot, DateTime _snapshot_time, string _snapshot_of) { return XenRef.Create(session.proxy.async_vdi_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config), _managed, _virtual_size.ToString(), _physical_utilisation.ToString(), (_metadata_of_pool != null) ? _metadata_of_pool : "", _is_a_snapshot, _snapshot_time, (_snapshot_of != null) ? _snapshot_of : "").parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.0. /// /// The session /// The uuid of the disk to introduce First published in XenServer 4.1. /// The name of the disk record First published in XenServer 4.1. /// The description of the disk record First published in XenServer 4.1. /// The SR that the VDI is in First published in XenServer 4.1. /// The type of the VDI First published in XenServer 4.1. /// true if this disk may be shared First published in XenServer 4.1. /// true if this disk may ONLY be mounted read-only First published in XenServer 4.1. /// additional configuration First published in XenServer 4.1. /// location information First published in XenServer 4.1. /// Data to insert into xenstore First published in XenServer 4.1. /// Storage-specific config First published in XenServer 4.1. public static XenRef db_introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config) { return XenRef.Create(session.proxy.vdi_db_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config)).parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.0. /// /// The session /// The uuid of the disk to introduce First published in XenServer 4.1. /// The name of the disk record First published in XenServer 4.1. /// The description of the disk record First published in XenServer 4.1. /// The SR that the VDI is in First published in XenServer 4.1. /// The type of the VDI First published in XenServer 4.1. /// true if this disk may be shared First published in XenServer 4.1. /// true if this disk may ONLY be mounted read-only First published in XenServer 4.1. /// additional configuration First published in XenServer 4.1. /// location information First published in XenServer 4.1. /// Data to insert into xenstore First published in XenServer 4.1. /// Storage-specific config First published in XenServer 4.1. public static XenRef async_db_introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config) { return XenRef.Create(session.proxy.async_vdi_db_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config)).parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.0. /// /// The session /// The uuid of the disk to introduce First published in XenServer 4.1. /// The name of the disk record First published in XenServer 4.1. /// The description of the disk record First published in XenServer 4.1. /// The SR that the VDI is in First published in XenServer 4.1. /// The type of the VDI First published in XenServer 4.1. /// true if this disk may be shared First published in XenServer 4.1. /// true if this disk may ONLY be mounted read-only First published in XenServer 4.1. /// additional configuration First published in XenServer 4.1. /// location information First published in XenServer 4.1. /// Data to insert into xenstore First published in XenServer 4.1. /// Storage-specific config First published in XenServer 4.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. public static XenRef db_introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config, bool _managed, long _virtual_size, long _physical_utilisation, string _metadata_of_pool, bool _is_a_snapshot, DateTime _snapshot_time, string _snapshot_of) { return XenRef.Create(session.proxy.vdi_db_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config), _managed, _virtual_size.ToString(), _physical_utilisation.ToString(), (_metadata_of_pool != null) ? _metadata_of_pool : "", _is_a_snapshot, _snapshot_time, (_snapshot_of != null) ? _snapshot_of : "").parse()); } /// /// Create a new VDI record in the database only /// First published in XenServer 4.0. /// /// The session /// The uuid of the disk to introduce First published in XenServer 4.1. /// The name of the disk record First published in XenServer 4.1. /// The description of the disk record First published in XenServer 4.1. /// The SR that the VDI is in First published in XenServer 4.1. /// The type of the VDI First published in XenServer 4.1. /// true if this disk may be shared First published in XenServer 4.1. /// true if this disk may ONLY be mounted read-only First published in XenServer 4.1. /// additional configuration First published in XenServer 4.1. /// location information First published in XenServer 4.1. /// Data to insert into xenstore First published in XenServer 4.1. /// Storage-specific config First published in XenServer 4.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. /// Storage-specific config First published in XenServer 6.1. public static XenRef async_db_introduce(Session session, string _uuid, string _name_label, string _name_description, string _sr, vdi_type _type, bool _sharable, bool _read_only, Dictionary _other_config, string _location, Dictionary _xenstore_data, Dictionary _sm_config, bool _managed, long _virtual_size, long _physical_utilisation, string _metadata_of_pool, bool _is_a_snapshot, DateTime _snapshot_time, string _snapshot_of) { return XenRef.Create(session.proxy.async_vdi_db_introduce(session.uuid, (_uuid != null) ? _uuid : "", (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_sr != null) ? _sr : "", vdi_type_helper.ToString(_type), _sharable, _read_only, Maps.convert_to_proxy_string_string(_other_config), (_location != null) ? _location : "", Maps.convert_to_proxy_string_string(_xenstore_data), Maps.convert_to_proxy_string_string(_sm_config), _managed, _virtual_size.ToString(), _physical_utilisation.ToString(), (_metadata_of_pool != null) ? _metadata_of_pool : "", _is_a_snapshot, _snapshot_time, (_snapshot_of != null) ? _snapshot_of : "").parse()); } /// /// Removes a VDI record from the database /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi public static void db_forget(Session session, string _vdi) { session.proxy.vdi_db_forget(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Removes a VDI record from the database /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi public static XenRef async_db_forget(Session session, string _vdi) { return XenRef.Create(session.proxy.async_vdi_db_forget(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Ask the storage backend to refresh the fields in the VDI object /// First published in XenServer 4.1.1. /// /// The session /// The opaque_ref of the given vdi public static void update(Session session, string _vdi) { session.proxy.vdi_update(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Ask the storage backend to refresh the fields in the VDI object /// First published in XenServer 4.1.1. /// /// The session /// The opaque_ref of the given vdi public static XenRef async_update(Session session, string _vdi) { return XenRef.Create(session.proxy.async_vdi_update(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Copy either a full VDI or the block differences between two VDIs into either a fresh VDI or an existing VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The destination SR (only required if the destination VDI is not specified public static XenRef copy(Session session, string _vdi, string _sr) { return XenRef.Create(session.proxy.vdi_copy(session.uuid, (_vdi != null) ? _vdi : "", (_sr != null) ? _sr : "").parse()); } /// /// Copy either a full VDI or the block differences between two VDIs into either a fresh VDI or an existing VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The destination SR (only required if the destination VDI is not specified public static XenRef async_copy(Session session, string _vdi, string _sr) { return XenRef.Create(session.proxy.async_vdi_copy(session.uuid, (_vdi != null) ? _vdi : "", (_sr != null) ? _sr : "").parse()); } /// /// Copy either a full VDI or the block differences between two VDIs into either a fresh VDI or an existing VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The destination SR (only required if the destination VDI is not specified /// The base VDI (only required if copying only changed blocks, by default all blocks will be copied) First published in XenServer 6.2 SP1 Hotfix XS62ESP1004. /// The destination VDI to copy blocks into (if omitted then a destination SR must be provided and a fresh VDI will be created) First published in XenServer 6.2 SP1 Hotfix XS62ESP1004. public static XenRef copy(Session session, string _vdi, string _sr, string _base_vdi, string _into_vdi) { return XenRef.Create(session.proxy.vdi_copy(session.uuid, (_vdi != null) ? _vdi : "", (_sr != null) ? _sr : "", (_base_vdi != null) ? _base_vdi : "", (_into_vdi != null) ? _into_vdi : "").parse()); } /// /// Copy either a full VDI or the block differences between two VDIs into either a fresh VDI or an existing VDI. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The destination SR (only required if the destination VDI is not specified /// The base VDI (only required if copying only changed blocks, by default all blocks will be copied) First published in XenServer 6.2 SP1 Hotfix XS62ESP1004. /// The destination VDI to copy blocks into (if omitted then a destination SR must be provided and a fresh VDI will be created) First published in XenServer 6.2 SP1 Hotfix XS62ESP1004. public static XenRef async_copy(Session session, string _vdi, string _sr, string _base_vdi, string _into_vdi) { return XenRef.Create(session.proxy.async_vdi_copy(session.uuid, (_vdi != null) ? _vdi : "", (_sr != null) ? _sr : "", (_base_vdi != null) ? _base_vdi : "", (_into_vdi != null) ? _into_vdi : "").parse()); } /// /// Sets the VDI's managed field /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The new value of the VDI's managed field public static void set_managed(Session session, string _vdi, bool _value) { session.proxy.vdi_set_managed(session.uuid, (_vdi != null) ? _vdi : "", _value).parse(); } /// /// Removes a VDI record from the database /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static void forget(Session session, string _vdi) { session.proxy.vdi_forget(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Removes a VDI record from the database /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef async_forget(Session session, string _vdi) { return XenRef.Create(session.proxy.async_vdi_forget(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Sets the VDI's sharable field /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given vdi /// The new value of the VDI's sharable field public static void set_sharable(Session session, string _vdi, bool _value) { session.proxy.vdi_set_sharable(session.uuid, (_vdi != null) ? _vdi : "", _value).parse(); } /// /// Sets the VDI's read_only field /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The new value of the VDI's read_only field public static void set_read_only(Session session, string _vdi, bool _value) { session.proxy.vdi_set_read_only(session.uuid, (_vdi != null) ? _vdi : "", _value).parse(); } /// /// Sets the VDI's missing field /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// The new value of the VDI's missing field public static void set_missing(Session session, string _vdi, bool _value) { session.proxy.vdi_set_missing(session.uuid, (_vdi != null) ? _vdi : "", _value).parse(); } /// /// Sets the VDI's virtual_size field /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// The new value of the VDI's virtual size public static void set_virtual_size(Session session, string _vdi, long _value) { session.proxy.vdi_set_virtual_size(session.uuid, (_vdi != null) ? _vdi : "", _value.ToString()).parse(); } /// /// Sets the VDI's physical_utilisation field /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given vdi /// The new value of the VDI's physical utilisation public static void set_physical_utilisation(Session session, string _vdi, long _value) { session.proxy.vdi_set_physical_utilisation(session.uuid, (_vdi != null) ? _vdi : "", _value.ToString()).parse(); } /// /// Sets whether this VDI is a snapshot /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi /// The new value indicating whether this VDI is a snapshot public static void set_is_a_snapshot(Session session, string _vdi, bool _value) { session.proxy.vdi_set_is_a_snapshot(session.uuid, (_vdi != null) ? _vdi : "", _value).parse(); } /// /// Sets the VDI of which this VDI is a snapshot /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi /// The VDI of which this VDI is a snapshot public static void set_snapshot_of(Session session, string _vdi, string _value) { session.proxy.vdi_set_snapshot_of(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse(); } /// /// Sets the snapshot time of this VDI. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi /// The snapshot time of this VDI. public static void set_snapshot_time(Session session, string _vdi, DateTime _value) { session.proxy.vdi_set_snapshot_time(session.uuid, (_vdi != null) ? _vdi : "", _value).parse(); } /// /// Records the pool whose metadata is contained by this VDI. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi /// The pool whose metadata is contained by this VDI public static void set_metadata_of_pool(Session session, string _vdi, string _value) { session.proxy.vdi_set_metadata_of_pool(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse(); } /// /// Set the name label of the VDI. This can only happen when then its SR is currently attached. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The name lable for the VDI public static void set_name_label(Session session, string _vdi, string _value) { session.proxy.vdi_set_name_label(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse(); } /// /// Set the name label of the VDI. This can only happen when then its SR is currently attached. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The name lable for the VDI public static XenRef async_set_name_label(Session session, string _vdi, string _value) { return XenRef.Create(session.proxy.async_vdi_set_name_label(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse()); } /// /// Set the name description of the VDI. This can only happen when its SR is currently attached. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The name description for the VDI public static void set_name_description(Session session, string _vdi, string _value) { session.proxy.vdi_set_name_description(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse(); } /// /// Set the name description of the VDI. This can only happen when its SR is currently attached. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given vdi /// The name description for the VDI public static XenRef async_set_name_description(Session session, string _vdi, string _value) { return XenRef.Create(session.proxy.async_vdi_set_name_description(session.uuid, (_vdi != null) ? _vdi : "", (_value != null) ? _value : "").parse()); } /// /// Set the value of the on_boot parameter. This value can only be changed when the VDI is not attached to a running VM. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given vdi /// The value to set public static void set_on_boot(Session session, string _vdi, on_boot _value) { session.proxy.vdi_set_on_boot(session.uuid, (_vdi != null) ? _vdi : "", on_boot_helper.ToString(_value)).parse(); } /// /// Set the value of the on_boot parameter. This value can only be changed when the VDI is not attached to a running VM. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given vdi /// The value to set public static XenRef async_set_on_boot(Session session, string _vdi, on_boot _value) { return XenRef.Create(session.proxy.async_vdi_set_on_boot(session.uuid, (_vdi != null) ? _vdi : "", on_boot_helper.ToString(_value)).parse()); } /// /// Set the value of the allow_caching parameter. This value can only be changed when the VDI is not attached to a running VM. The caching behaviour is only affected by this flag for VHD-based VDIs that have one parent and no child VHDs. Moreover, caching only takes place when the host running the VM containing this VDI has a nominated SR for local caching. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given vdi /// The value to set public static void set_allow_caching(Session session, string _vdi, bool _value) { session.proxy.vdi_set_allow_caching(session.uuid, (_vdi != null) ? _vdi : "", _value).parse(); } /// /// Set the value of the allow_caching parameter. This value can only be changed when the VDI is not attached to a running VM. The caching behaviour is only affected by this flag for VHD-based VDIs that have one parent and no child VHDs. Moreover, caching only takes place when the host running the VM containing this VDI has a nominated SR for local caching. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given vdi /// The value to set public static XenRef async_set_allow_caching(Session session, string _vdi, bool _value) { return XenRef.Create(session.proxy.async_vdi_set_allow_caching(session.uuid, (_vdi != null) ? _vdi : "", _value).parse()); } /// /// Load the metadata found on the supplied VDI and return a session reference which can be used in XenAPI calls to query its contents. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef open_database(Session session, string _vdi) { return XenRef.Create(session.proxy.vdi_open_database(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Load the metadata found on the supplied VDI and return a session reference which can be used in XenAPI calls to query its contents. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef async_open_database(Session session, string _vdi) { return XenRef.Create(session.proxy.async_vdi_open_database(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Check the VDI cache for the pool UUID of the database on this VDI. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi public static string read_database_pool_uuid(Session session, string _vdi) { return (string)session.proxy.vdi_read_database_pool_uuid(session.uuid, (_vdi != null) ? _vdi : "").parse(); } /// /// Check the VDI cache for the pool UUID of the database on this VDI. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given vdi public static XenRef async_read_database_pool_uuid(Session session, string _vdi) { return XenRef.Create(session.proxy.async_vdi_read_database_pool_uuid(session.uuid, (_vdi != null) ? _vdi : "").parse()); } /// /// Migrate a VDI, which may be attached to a running guest, to a different SR. The destination SR must be visible to the guest. /// First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given vdi /// The destination SR /// Other parameters public static XenRef pool_migrate(Session session, string _vdi, string _sr, Dictionary _options) { return XenRef.Create(session.proxy.vdi_pool_migrate(session.uuid, (_vdi != null) ? _vdi : "", (_sr != null) ? _sr : "", Maps.convert_to_proxy_string_string(_options)).parse()); } /// /// Migrate a VDI, which may be attached to a running guest, to a different SR. The destination SR must be visible to the guest. /// First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given vdi /// The destination SR /// Other parameters public static XenRef async_pool_migrate(Session session, string _vdi, string _sr, Dictionary _options) { return XenRef.Create(session.proxy.async_vdi_pool_migrate(session.uuid, (_vdi != null) ? _vdi : "", (_sr != null) ? _sr : "", Maps.convert_to_proxy_string_string(_options)).parse()); } /// /// Return a list of all the VDIs known to the system. /// First published in XenServer 4.0. /// /// The session public static List> get_all(Session session) { return XenRef.Create(session.proxy.vdi_get_all(session.uuid).parse()); } /// /// Get all the VDI Records at once, in a single XML RPC call /// First published in XenServer 4.0. /// /// The session public static Dictionary, VDI> get_all_records(Session session) { return XenRef.Create(session.proxy.vdi_get_all_records(session.uuid).parse()); } /// /// Unique identifier/object reference /// public virtual string uuid { get { return _uuid; } set { if (!Helper.AreEqual(value, _uuid)) { _uuid = value; Changed = true; NotifyPropertyChanged("uuid"); } } } private string _uuid; /// /// a human-readable name /// public virtual string name_label { get { return _name_label; } set { if (!Helper.AreEqual(value, _name_label)) { _name_label = value; Changed = true; NotifyPropertyChanged("name_label"); } } } private string _name_label; /// /// a notes field containing human-readable description /// public virtual string name_description { get { return _name_description; } set { if (!Helper.AreEqual(value, _name_description)) { _name_description = value; Changed = true; NotifyPropertyChanged("name_description"); } } } private string _name_description; /// /// 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 virtual List allowed_operations { get { return _allowed_operations; } set { if (!Helper.AreEqual(value, _allowed_operations)) { _allowed_operations = value; Changed = true; NotifyPropertyChanged("allowed_operations"); } } } private List _allowed_operations; /// /// links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task. /// public virtual Dictionary current_operations { get { return _current_operations; } set { if (!Helper.AreEqual(value, _current_operations)) { _current_operations = value; Changed = true; NotifyPropertyChanged("current_operations"); } } } private Dictionary _current_operations; /// /// storage repository in which the VDI resides /// public virtual XenRef SR { get { return _SR; } set { if (!Helper.AreEqual(value, _SR)) { _SR = value; Changed = true; NotifyPropertyChanged("SR"); } } } private XenRef _SR; /// /// list of vbds that refer to this disk /// public virtual List> VBDs { get { return _VBDs; } set { if (!Helper.AreEqual(value, _VBDs)) { _VBDs = value; Changed = true; NotifyPropertyChanged("VBDs"); } } } private List> _VBDs; /// /// list of crash dumps that refer to this disk /// public virtual List> crash_dumps { get { return _crash_dumps; } set { if (!Helper.AreEqual(value, _crash_dumps)) { _crash_dumps = value; Changed = true; NotifyPropertyChanged("crash_dumps"); } } } private List> _crash_dumps; /// /// size of disk as presented to the guest (in bytes). Note that, depending on storage backend type, requested size may not be respected exactly /// public virtual long virtual_size { get { return _virtual_size; } set { if (!Helper.AreEqual(value, _virtual_size)) { _virtual_size = value; Changed = true; NotifyPropertyChanged("virtual_size"); } } } private long _virtual_size; /// /// amount of physical space that the disk image is currently taking up on the storage repository (in bytes) /// public virtual long physical_utilisation { get { return _physical_utilisation; } set { if (!Helper.AreEqual(value, _physical_utilisation)) { _physical_utilisation = value; Changed = true; NotifyPropertyChanged("physical_utilisation"); } } } private long _physical_utilisation; /// /// type of the VDI /// public virtual vdi_type type { get { return _type; } set { if (!Helper.AreEqual(value, _type)) { _type = value; Changed = true; NotifyPropertyChanged("type"); } } } private vdi_type _type; /// /// true if this disk may be shared /// public virtual bool sharable { get { return _sharable; } set { if (!Helper.AreEqual(value, _sharable)) { _sharable = value; Changed = true; NotifyPropertyChanged("sharable"); } } } private bool _sharable; /// /// true if this disk may ONLY be mounted read-only /// public virtual bool read_only { get { return _read_only; } set { if (!Helper.AreEqual(value, _read_only)) { _read_only = value; Changed = true; NotifyPropertyChanged("read_only"); } } } private bool _read_only; /// /// additional configuration /// public virtual Dictionary other_config { get { return _other_config; } set { if (!Helper.AreEqual(value, _other_config)) { _other_config = value; Changed = true; NotifyPropertyChanged("other_config"); } } } private Dictionary _other_config; /// /// true if this disk is locked at the storage level /// public virtual bool storage_lock { get { return _storage_lock; } set { if (!Helper.AreEqual(value, _storage_lock)) { _storage_lock = value; Changed = true; NotifyPropertyChanged("storage_lock"); } } } private bool _storage_lock; /// /// location information /// First published in XenServer 4.1. /// public virtual string location { get { return _location; } set { if (!Helper.AreEqual(value, _location)) { _location = value; Changed = true; NotifyPropertyChanged("location"); } } } private string _location; /// /// /// public virtual bool managed { get { return _managed; } set { if (!Helper.AreEqual(value, _managed)) { _managed = value; Changed = true; NotifyPropertyChanged("managed"); } } } private bool _managed; /// /// true if SR scan operation reported this VDI as not present on disk /// public virtual bool missing { get { return _missing; } set { if (!Helper.AreEqual(value, _missing)) { _missing = value; Changed = true; NotifyPropertyChanged("missing"); } } } private bool _missing; /// /// References the parent disk, if this VDI is part of a chain /// public virtual XenRef parent { get { return _parent; } set { if (!Helper.AreEqual(value, _parent)) { _parent = value; Changed = true; NotifyPropertyChanged("parent"); } } } private XenRef _parent; /// /// data to be inserted into the xenstore tree (/local/domain/0/backend/vbd///sm-data) after the VDI is attached. This is generally set by the SM backends on vdi_attach. /// First published in XenServer 4.1. /// public virtual Dictionary xenstore_data { get { return _xenstore_data; } set { if (!Helper.AreEqual(value, _xenstore_data)) { _xenstore_data = value; Changed = true; NotifyPropertyChanged("xenstore_data"); } } } private Dictionary _xenstore_data; /// /// SM dependent data /// First published in XenServer 4.1. /// public virtual Dictionary sm_config { get { return _sm_config; } set { if (!Helper.AreEqual(value, _sm_config)) { _sm_config = value; Changed = true; NotifyPropertyChanged("sm_config"); } } } private Dictionary _sm_config; /// /// true if this is a snapshot. /// First published in XenServer 5.0. /// public virtual bool is_a_snapshot { get { return _is_a_snapshot; } set { if (!Helper.AreEqual(value, _is_a_snapshot)) { _is_a_snapshot = value; Changed = true; NotifyPropertyChanged("is_a_snapshot"); } } } private bool _is_a_snapshot; /// /// Ref pointing to the VDI this snapshot is of. /// First published in XenServer 5.0. /// public virtual XenRef snapshot_of { get { return _snapshot_of; } set { if (!Helper.AreEqual(value, _snapshot_of)) { _snapshot_of = value; Changed = true; NotifyPropertyChanged("snapshot_of"); } } } private XenRef _snapshot_of; /// /// List pointing to all the VDIs snapshots. /// First published in XenServer 5.0. /// public virtual List> snapshots { get { return _snapshots; } set { if (!Helper.AreEqual(value, _snapshots)) { _snapshots = value; Changed = true; NotifyPropertyChanged("snapshots"); } } } private List> _snapshots; /// /// Date/time when this snapshot was created. /// First published in XenServer 5.0. /// public virtual DateTime snapshot_time { get { return _snapshot_time; } set { if (!Helper.AreEqual(value, _snapshot_time)) { _snapshot_time = value; Changed = true; NotifyPropertyChanged("snapshot_time"); } } } private DateTime _snapshot_time; /// /// user-specified tags for categorization purposes /// First published in XenServer 5.0. /// public virtual string[] tags { get { return _tags; } set { if (!Helper.AreEqual(value, _tags)) { _tags = value; Changed = true; NotifyPropertyChanged("tags"); } } } private string[] _tags; /// /// true if this VDI is to be cached in the local cache SR /// First published in XenServer 5.6 FP1. /// public virtual bool allow_caching { get { return _allow_caching; } set { if (!Helper.AreEqual(value, _allow_caching)) { _allow_caching = value; Changed = true; NotifyPropertyChanged("allow_caching"); } } } private bool _allow_caching; /// /// The behaviour of this VDI on a VM boot /// First published in XenServer 5.6 FP1. /// public virtual on_boot on_boot { get { return _on_boot; } set { if (!Helper.AreEqual(value, _on_boot)) { _on_boot = value; Changed = true; NotifyPropertyChanged("on_boot"); } } } private on_boot _on_boot; /// /// The pool whose metadata is contained in this VDI /// First published in XenServer 6.0. /// public virtual XenRef metadata_of_pool { get { return _metadata_of_pool; } set { if (!Helper.AreEqual(value, _metadata_of_pool)) { _metadata_of_pool = value; Changed = true; NotifyPropertyChanged("metadata_of_pool"); } } } private XenRef _metadata_of_pool; /// /// Whether this VDI contains the latest known accessible metadata for the pool /// First published in XenServer 6.0. /// public virtual bool metadata_latest { get { return _metadata_latest; } set { if (!Helper.AreEqual(value, _metadata_latest)) { _metadata_latest = value; Changed = true; NotifyPropertyChanged("metadata_latest"); } } } private bool _metadata_latest; } }