/* * 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 System.ComponentModel; using System.Globalization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace XenAPI { /// /// Pool-wide information /// First published in XenServer 4.0. /// public partial class Pool : XenObject { public Pool() { } public Pool(string uuid, string name_label, string name_description, XenRef master, XenRef default_SR, XenRef suspend_image_SR, XenRef crash_dump_SR, Dictionary other_config, bool ha_enabled, Dictionary ha_configuration, string[] ha_statefiles, long ha_host_failures_to_tolerate, long ha_plan_exists_for, bool ha_allow_overcommit, bool ha_overcommitted, Dictionary> blobs, string[] tags, Dictionary gui_config, Dictionary health_check_config, string wlb_url, string wlb_username, bool wlb_enabled, bool wlb_verify_cert, bool redo_log_enabled, XenRef redo_log_vdi, string vswitch_controller, Dictionary restrictions, List> metadata_VDIs, string ha_cluster_stack, List allowed_operations, Dictionary current_operations, Dictionary guest_agent_config, Dictionary cpu_info, bool policy_no_vendor_device, bool live_patching_disabled, bool igmp_snooping_enabled) { this.uuid = uuid; this.name_label = name_label; this.name_description = name_description; this.master = master; this.default_SR = default_SR; this.suspend_image_SR = suspend_image_SR; this.crash_dump_SR = crash_dump_SR; this.other_config = other_config; this.ha_enabled = ha_enabled; this.ha_configuration = ha_configuration; this.ha_statefiles = ha_statefiles; this.ha_host_failures_to_tolerate = ha_host_failures_to_tolerate; this.ha_plan_exists_for = ha_plan_exists_for; this.ha_allow_overcommit = ha_allow_overcommit; this.ha_overcommitted = ha_overcommitted; this.blobs = blobs; this.tags = tags; this.gui_config = gui_config; this.health_check_config = health_check_config; this.wlb_url = wlb_url; this.wlb_username = wlb_username; this.wlb_enabled = wlb_enabled; this.wlb_verify_cert = wlb_verify_cert; this.redo_log_enabled = redo_log_enabled; this.redo_log_vdi = redo_log_vdi; this.vswitch_controller = vswitch_controller; this.restrictions = restrictions; this.metadata_VDIs = metadata_VDIs; this.ha_cluster_stack = ha_cluster_stack; this.allowed_operations = allowed_operations; this.current_operations = current_operations; this.guest_agent_config = guest_agent_config; this.cpu_info = cpu_info; this.policy_no_vendor_device = policy_no_vendor_device; this.live_patching_disabled = live_patching_disabled; this.igmp_snooping_enabled = igmp_snooping_enabled; } /// /// Creates a new Pool from a Proxy_Pool. /// /// public Pool(Proxy_Pool proxy) { this.UpdateFromProxy(proxy); } /// /// Updates each field of this instance with the value of /// the corresponding field of a given Pool. /// public override void UpdateFrom(Pool update) { uuid = update.uuid; name_label = update.name_label; name_description = update.name_description; master = update.master; default_SR = update.default_SR; suspend_image_SR = update.suspend_image_SR; crash_dump_SR = update.crash_dump_SR; other_config = update.other_config; ha_enabled = update.ha_enabled; ha_configuration = update.ha_configuration; ha_statefiles = update.ha_statefiles; ha_host_failures_to_tolerate = update.ha_host_failures_to_tolerate; ha_plan_exists_for = update.ha_plan_exists_for; ha_allow_overcommit = update.ha_allow_overcommit; ha_overcommitted = update.ha_overcommitted; blobs = update.blobs; tags = update.tags; gui_config = update.gui_config; health_check_config = update.health_check_config; wlb_url = update.wlb_url; wlb_username = update.wlb_username; wlb_enabled = update.wlb_enabled; wlb_verify_cert = update.wlb_verify_cert; redo_log_enabled = update.redo_log_enabled; redo_log_vdi = update.redo_log_vdi; vswitch_controller = update.vswitch_controller; restrictions = update.restrictions; metadata_VDIs = update.metadata_VDIs; ha_cluster_stack = update.ha_cluster_stack; allowed_operations = update.allowed_operations; current_operations = update.current_operations; guest_agent_config = update.guest_agent_config; cpu_info = update.cpu_info; policy_no_vendor_device = update.policy_no_vendor_device; live_patching_disabled = update.live_patching_disabled; igmp_snooping_enabled = update.igmp_snooping_enabled; } internal void UpdateFromProxy(Proxy_Pool 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; master = proxy.master == null ? null : XenRef.Create(proxy.master); default_SR = proxy.default_SR == null ? null : XenRef.Create(proxy.default_SR); suspend_image_SR = proxy.suspend_image_SR == null ? null : XenRef.Create(proxy.suspend_image_SR); crash_dump_SR = proxy.crash_dump_SR == null ? null : XenRef.Create(proxy.crash_dump_SR); other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config); ha_enabled = (bool)proxy.ha_enabled; ha_configuration = proxy.ha_configuration == null ? null : Maps.convert_from_proxy_string_string(proxy.ha_configuration); ha_statefiles = proxy.ha_statefiles == null ? new string[] {} : (string [])proxy.ha_statefiles; ha_host_failures_to_tolerate = proxy.ha_host_failures_to_tolerate == null ? 0 : long.Parse((string)proxy.ha_host_failures_to_tolerate); ha_plan_exists_for = proxy.ha_plan_exists_for == null ? 0 : long.Parse((string)proxy.ha_plan_exists_for); ha_allow_overcommit = (bool)proxy.ha_allow_overcommit; ha_overcommitted = (bool)proxy.ha_overcommitted; blobs = proxy.blobs == null ? null : Maps.convert_from_proxy_string_XenRefBlob(proxy.blobs); tags = proxy.tags == null ? new string[] {} : (string [])proxy.tags; gui_config = proxy.gui_config == null ? null : Maps.convert_from_proxy_string_string(proxy.gui_config); health_check_config = proxy.health_check_config == null ? null : Maps.convert_from_proxy_string_string(proxy.health_check_config); wlb_url = proxy.wlb_url == null ? null : (string)proxy.wlb_url; wlb_username = proxy.wlb_username == null ? null : (string)proxy.wlb_username; wlb_enabled = (bool)proxy.wlb_enabled; wlb_verify_cert = (bool)proxy.wlb_verify_cert; redo_log_enabled = (bool)proxy.redo_log_enabled; redo_log_vdi = proxy.redo_log_vdi == null ? null : XenRef.Create(proxy.redo_log_vdi); vswitch_controller = proxy.vswitch_controller == null ? null : (string)proxy.vswitch_controller; restrictions = proxy.restrictions == null ? null : Maps.convert_from_proxy_string_string(proxy.restrictions); metadata_VDIs = proxy.metadata_VDIs == null ? null : XenRef.Create(proxy.metadata_VDIs); ha_cluster_stack = proxy.ha_cluster_stack == null ? null : (string)proxy.ha_cluster_stack; allowed_operations = proxy.allowed_operations == null ? null : Helper.StringArrayToEnumList(proxy.allowed_operations); current_operations = proxy.current_operations == null ? null : Maps.convert_from_proxy_string_pool_allowed_operations(proxy.current_operations); guest_agent_config = proxy.guest_agent_config == null ? null : Maps.convert_from_proxy_string_string(proxy.guest_agent_config); cpu_info = proxy.cpu_info == null ? null : Maps.convert_from_proxy_string_string(proxy.cpu_info); policy_no_vendor_device = (bool)proxy.policy_no_vendor_device; live_patching_disabled = (bool)proxy.live_patching_disabled; igmp_snooping_enabled = (bool)proxy.igmp_snooping_enabled; } public Proxy_Pool ToProxy() { Proxy_Pool result_ = new Proxy_Pool(); result_.uuid = uuid ?? ""; result_.name_label = name_label ?? ""; result_.name_description = name_description ?? ""; result_.master = master ?? ""; result_.default_SR = default_SR ?? ""; result_.suspend_image_SR = suspend_image_SR ?? ""; result_.crash_dump_SR = crash_dump_SR ?? ""; result_.other_config = Maps.convert_to_proxy_string_string(other_config); result_.ha_enabled = ha_enabled; result_.ha_configuration = Maps.convert_to_proxy_string_string(ha_configuration); result_.ha_statefiles = ha_statefiles; result_.ha_host_failures_to_tolerate = ha_host_failures_to_tolerate.ToString(); result_.ha_plan_exists_for = ha_plan_exists_for.ToString(); result_.ha_allow_overcommit = ha_allow_overcommit; result_.ha_overcommitted = ha_overcommitted; result_.blobs = Maps.convert_to_proxy_string_XenRefBlob(blobs); result_.tags = tags; result_.gui_config = Maps.convert_to_proxy_string_string(gui_config); result_.health_check_config = Maps.convert_to_proxy_string_string(health_check_config); result_.wlb_url = wlb_url ?? ""; result_.wlb_username = wlb_username ?? ""; result_.wlb_enabled = wlb_enabled; result_.wlb_verify_cert = wlb_verify_cert; result_.redo_log_enabled = redo_log_enabled; result_.redo_log_vdi = redo_log_vdi ?? ""; result_.vswitch_controller = vswitch_controller ?? ""; result_.restrictions = Maps.convert_to_proxy_string_string(restrictions); result_.metadata_VDIs = (metadata_VDIs != null) ? Helper.RefListToStringArray(metadata_VDIs) : new string[] {}; result_.ha_cluster_stack = ha_cluster_stack ?? ""; result_.allowed_operations = (allowed_operations != null) ? Helper.ObjectListToStringArray(allowed_operations) : new string[] {}; result_.current_operations = Maps.convert_to_proxy_string_pool_allowed_operations(current_operations); result_.guest_agent_config = Maps.convert_to_proxy_string_string(guest_agent_config); result_.cpu_info = Maps.convert_to_proxy_string_string(cpu_info); result_.policy_no_vendor_device = policy_no_vendor_device; result_.live_patching_disabled = live_patching_disabled; result_.igmp_snooping_enabled = igmp_snooping_enabled; return result_; } /// /// Creates a new Pool from a Hashtable. /// Note that the fields not contained in the Hashtable /// will be created with their default values. /// /// public Pool(Hashtable table) : this() { UpdateFrom(table); } /// /// Given a Hashtable with field-value pairs, it updates the fields of this Pool /// with the values listed in the Hashtable. Note that only the fields contained /// in the Hashtable will be updated and the rest will remain the same. /// /// public void UpdateFrom(Hashtable table) { if (table.ContainsKey("uuid")) uuid = Marshalling.ParseString(table, "uuid"); if (table.ContainsKey("name_label")) name_label = Marshalling.ParseString(table, "name_label"); if (table.ContainsKey("name_description")) name_description = Marshalling.ParseString(table, "name_description"); if (table.ContainsKey("master")) master = Marshalling.ParseRef(table, "master"); if (table.ContainsKey("default_SR")) default_SR = Marshalling.ParseRef(table, "default_SR"); if (table.ContainsKey("suspend_image_SR")) suspend_image_SR = Marshalling.ParseRef(table, "suspend_image_SR"); if (table.ContainsKey("crash_dump_SR")) crash_dump_SR = Marshalling.ParseRef(table, "crash_dump_SR"); if (table.ContainsKey("other_config")) other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config")); if (table.ContainsKey("ha_enabled")) ha_enabled = Marshalling.ParseBool(table, "ha_enabled"); if (table.ContainsKey("ha_configuration")) ha_configuration = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "ha_configuration")); if (table.ContainsKey("ha_statefiles")) ha_statefiles = Marshalling.ParseStringArray(table, "ha_statefiles"); if (table.ContainsKey("ha_host_failures_to_tolerate")) ha_host_failures_to_tolerate = Marshalling.ParseLong(table, "ha_host_failures_to_tolerate"); if (table.ContainsKey("ha_plan_exists_for")) ha_plan_exists_for = Marshalling.ParseLong(table, "ha_plan_exists_for"); if (table.ContainsKey("ha_allow_overcommit")) ha_allow_overcommit = Marshalling.ParseBool(table, "ha_allow_overcommit"); if (table.ContainsKey("ha_overcommitted")) ha_overcommitted = Marshalling.ParseBool(table, "ha_overcommitted"); if (table.ContainsKey("blobs")) blobs = Maps.convert_from_proxy_string_XenRefBlob(Marshalling.ParseHashTable(table, "blobs")); if (table.ContainsKey("tags")) tags = Marshalling.ParseStringArray(table, "tags"); if (table.ContainsKey("gui_config")) gui_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "gui_config")); if (table.ContainsKey("health_check_config")) health_check_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "health_check_config")); if (table.ContainsKey("wlb_url")) wlb_url = Marshalling.ParseString(table, "wlb_url"); if (table.ContainsKey("wlb_username")) wlb_username = Marshalling.ParseString(table, "wlb_username"); if (table.ContainsKey("wlb_enabled")) wlb_enabled = Marshalling.ParseBool(table, "wlb_enabled"); if (table.ContainsKey("wlb_verify_cert")) wlb_verify_cert = Marshalling.ParseBool(table, "wlb_verify_cert"); if (table.ContainsKey("redo_log_enabled")) redo_log_enabled = Marshalling.ParseBool(table, "redo_log_enabled"); if (table.ContainsKey("redo_log_vdi")) redo_log_vdi = Marshalling.ParseRef(table, "redo_log_vdi"); if (table.ContainsKey("vswitch_controller")) vswitch_controller = Marshalling.ParseString(table, "vswitch_controller"); if (table.ContainsKey("restrictions")) restrictions = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "restrictions")); if (table.ContainsKey("metadata_VDIs")) metadata_VDIs = Marshalling.ParseSetRef(table, "metadata_VDIs"); if (table.ContainsKey("ha_cluster_stack")) ha_cluster_stack = Marshalling.ParseString(table, "ha_cluster_stack"); if (table.ContainsKey("allowed_operations")) allowed_operations = Helper.StringArrayToEnumList(Marshalling.ParseStringArray(table, "allowed_operations")); if (table.ContainsKey("current_operations")) current_operations = Maps.convert_from_proxy_string_pool_allowed_operations(Marshalling.ParseHashTable(table, "current_operations")); if (table.ContainsKey("guest_agent_config")) guest_agent_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "guest_agent_config")); if (table.ContainsKey("cpu_info")) cpu_info = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "cpu_info")); if (table.ContainsKey("policy_no_vendor_device")) policy_no_vendor_device = Marshalling.ParseBool(table, "policy_no_vendor_device"); if (table.ContainsKey("live_patching_disabled")) live_patching_disabled = Marshalling.ParseBool(table, "live_patching_disabled"); if (table.ContainsKey("igmp_snooping_enabled")) igmp_snooping_enabled = Marshalling.ParseBool(table, "igmp_snooping_enabled"); } public bool DeepEquals(Pool 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._master, other._master) && Helper.AreEqual2(this._default_SR, other._default_SR) && Helper.AreEqual2(this._suspend_image_SR, other._suspend_image_SR) && Helper.AreEqual2(this._crash_dump_SR, other._crash_dump_SR) && Helper.AreEqual2(this._other_config, other._other_config) && Helper.AreEqual2(this._ha_enabled, other._ha_enabled) && Helper.AreEqual2(this._ha_configuration, other._ha_configuration) && Helper.AreEqual2(this._ha_statefiles, other._ha_statefiles) && Helper.AreEqual2(this._ha_host_failures_to_tolerate, other._ha_host_failures_to_tolerate) && Helper.AreEqual2(this._ha_plan_exists_for, other._ha_plan_exists_for) && Helper.AreEqual2(this._ha_allow_overcommit, other._ha_allow_overcommit) && Helper.AreEqual2(this._ha_overcommitted, other._ha_overcommitted) && Helper.AreEqual2(this._blobs, other._blobs) && Helper.AreEqual2(this._tags, other._tags) && Helper.AreEqual2(this._gui_config, other._gui_config) && Helper.AreEqual2(this._health_check_config, other._health_check_config) && Helper.AreEqual2(this._wlb_url, other._wlb_url) && Helper.AreEqual2(this._wlb_username, other._wlb_username) && Helper.AreEqual2(this._wlb_enabled, other._wlb_enabled) && Helper.AreEqual2(this._wlb_verify_cert, other._wlb_verify_cert) && Helper.AreEqual2(this._redo_log_enabled, other._redo_log_enabled) && Helper.AreEqual2(this._redo_log_vdi, other._redo_log_vdi) && Helper.AreEqual2(this._vswitch_controller, other._vswitch_controller) && Helper.AreEqual2(this._restrictions, other._restrictions) && Helper.AreEqual2(this._metadata_VDIs, other._metadata_VDIs) && Helper.AreEqual2(this._ha_cluster_stack, other._ha_cluster_stack) && Helper.AreEqual2(this._allowed_operations, other._allowed_operations) && Helper.AreEqual2(this._guest_agent_config, other._guest_agent_config) && Helper.AreEqual2(this._cpu_info, other._cpu_info) && Helper.AreEqual2(this._policy_no_vendor_device, other._policy_no_vendor_device) && Helper.AreEqual2(this._live_patching_disabled, other._live_patching_disabled) && Helper.AreEqual2(this._igmp_snooping_enabled, other._igmp_snooping_enabled); } internal static List ProxyArrayToObjectList(Proxy_Pool[] input) { var result = new List(); foreach (var item in input) result.Add(new Pool(item)); return result; } public override string SaveChanges(Session session, string opaqueRef, Pool server) { if (opaqueRef == null) { System.Diagnostics.Debug.Assert(false, "Cannot create instances of this type on the server"); return ""; } else { if (!Helper.AreEqual2(_name_label, server._name_label)) { Pool.set_name_label(session, opaqueRef, _name_label); } if (!Helper.AreEqual2(_name_description, server._name_description)) { Pool.set_name_description(session, opaqueRef, _name_description); } if (!Helper.AreEqual2(_default_SR, server._default_SR)) { Pool.set_default_SR(session, opaqueRef, _default_SR); } if (!Helper.AreEqual2(_suspend_image_SR, server._suspend_image_SR)) { Pool.set_suspend_image_SR(session, opaqueRef, _suspend_image_SR); } if (!Helper.AreEqual2(_crash_dump_SR, server._crash_dump_SR)) { Pool.set_crash_dump_SR(session, opaqueRef, _crash_dump_SR); } if (!Helper.AreEqual2(_other_config, server._other_config)) { Pool.set_other_config(session, opaqueRef, _other_config); } if (!Helper.AreEqual2(_ha_allow_overcommit, server._ha_allow_overcommit)) { Pool.set_ha_allow_overcommit(session, opaqueRef, _ha_allow_overcommit); } if (!Helper.AreEqual2(_tags, server._tags)) { Pool.set_tags(session, opaqueRef, _tags); } if (!Helper.AreEqual2(_gui_config, server._gui_config)) { Pool.set_gui_config(session, opaqueRef, _gui_config); } if (!Helper.AreEqual2(_health_check_config, server._health_check_config)) { Pool.set_health_check_config(session, opaqueRef, _health_check_config); } if (!Helper.AreEqual2(_wlb_enabled, server._wlb_enabled)) { Pool.set_wlb_enabled(session, opaqueRef, _wlb_enabled); } if (!Helper.AreEqual2(_wlb_verify_cert, server._wlb_verify_cert)) { Pool.set_wlb_verify_cert(session, opaqueRef, _wlb_verify_cert); } if (!Helper.AreEqual2(_policy_no_vendor_device, server._policy_no_vendor_device)) { Pool.set_policy_no_vendor_device(session, opaqueRef, _policy_no_vendor_device); } if (!Helper.AreEqual2(_live_patching_disabled, server._live_patching_disabled)) { Pool.set_live_patching_disabled(session, opaqueRef, _live_patching_disabled); } return null; } } /// /// Get a record containing the current state of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static Pool get_record(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_record(session.opaque_ref, _pool); else return new Pool((Proxy_Pool)session.proxy.pool_get_record(session.opaque_ref, _pool ?? "").parse()); } /// /// Get a reference to the pool 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) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_by_uuid(session.opaque_ref, _uuid); else return XenRef.Create(session.proxy.pool_get_by_uuid(session.opaque_ref, _uuid ?? "").parse()); } /// /// Get the uuid field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static string get_uuid(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_uuid(session.opaque_ref, _pool); else return (string)session.proxy.pool_get_uuid(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the name_label field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static string get_name_label(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_name_label(session.opaque_ref, _pool); else return (string)session.proxy.pool_get_name_label(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the name_description field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static string get_name_description(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_name_description(session.opaque_ref, _pool); else return (string)session.proxy.pool_get_name_description(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the master field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static XenRef get_master(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_master(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.pool_get_master(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the default_SR field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static XenRef get_default_SR(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_default_sr(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.pool_get_default_sr(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the suspend_image_SR field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static XenRef get_suspend_image_SR(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_suspend_image_sr(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.pool_get_suspend_image_sr(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the crash_dump_SR field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static XenRef get_crash_dump_SR(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_crash_dump_sr(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.pool_get_crash_dump_sr(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the other_config field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_other_config(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_other_config(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_other_config(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the ha_enabled field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static bool get_ha_enabled(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_enabled(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_ha_enabled(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the ha_configuration field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_ha_configuration(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_configuration(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_ha_configuration(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the ha_statefiles field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static string[] get_ha_statefiles(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_statefiles(session.opaque_ref, _pool); else return (string [])session.proxy.pool_get_ha_statefiles(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the ha_host_failures_to_tolerate field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static long get_ha_host_failures_to_tolerate(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_host_failures_to_tolerate(session.opaque_ref, _pool); else return long.Parse((string)session.proxy.pool_get_ha_host_failures_to_tolerate(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the ha_plan_exists_for field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static long get_ha_plan_exists_for(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_plan_exists_for(session.opaque_ref, _pool); else return long.Parse((string)session.proxy.pool_get_ha_plan_exists_for(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the ha_allow_overcommit field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static bool get_ha_allow_overcommit(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_allow_overcommit(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_ha_allow_overcommit(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the ha_overcommitted field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static bool get_ha_overcommitted(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_overcommitted(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_ha_overcommitted(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the blobs field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary> get_blobs(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_blobs(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_XenRefBlob(session.proxy.pool_get_blobs(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the tags field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static string[] get_tags(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_tags(session.opaque_ref, _pool); else return (string [])session.proxy.pool_get_tags(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the gui_config field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_gui_config(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_gui_config(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_gui_config(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the health_check_config field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_health_check_config(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_health_check_config(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_health_check_config(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the wlb_url field of the given pool. /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool public static string get_wlb_url(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_wlb_url(session.opaque_ref, _pool); else return (string)session.proxy.pool_get_wlb_url(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the wlb_username field of the given pool. /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool public static string get_wlb_username(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_wlb_username(session.opaque_ref, _pool); else return (string)session.proxy.pool_get_wlb_username(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the wlb_enabled field of the given pool. /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool public static bool get_wlb_enabled(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_wlb_enabled(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_wlb_enabled(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the wlb_verify_cert field of the given pool. /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool public static bool get_wlb_verify_cert(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_wlb_verify_cert(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_wlb_verify_cert(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the redo_log_enabled field of the given pool. /// First published in XenServer 5.6. /// /// The session /// The opaque_ref of the given pool public static bool get_redo_log_enabled(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_redo_log_enabled(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_redo_log_enabled(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the redo_log_vdi field of the given pool. /// First published in XenServer 5.6. /// /// The session /// The opaque_ref of the given pool public static XenRef get_redo_log_vdi(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_redo_log_vdi(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.pool_get_redo_log_vdi(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the vswitch_controller field of the given pool. /// First published in XenServer 5.6. /// Deprecated since XenServer 7.2. /// /// The session /// The opaque_ref of the given pool [Deprecated("XenServer 7.2")] public static string get_vswitch_controller(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_vswitch_controller(session.opaque_ref, _pool); else return (string)session.proxy.pool_get_vswitch_controller(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the restrictions field of the given pool. /// First published in XenServer 5.6. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_restrictions(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_restrictions(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_restrictions(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the metadata_VDIs field of the given pool. /// First published in XenServer 6.0. /// /// The session /// The opaque_ref of the given pool public static List> get_metadata_VDIs(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_metadata_vdis(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.pool_get_metadata_vdis(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the ha_cluster_stack field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static string get_ha_cluster_stack(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_ha_cluster_stack(session.opaque_ref, _pool); else return (string)session.proxy.pool_get_ha_cluster_stack(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the allowed_operations field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static List get_allowed_operations(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_allowed_operations(session.opaque_ref, _pool); else return Helper.StringArrayToEnumList(session.proxy.pool_get_allowed_operations(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the current_operations field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_current_operations(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_current_operations(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_pool_allowed_operations(session.proxy.pool_get_current_operations(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the guest_agent_config field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_guest_agent_config(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_guest_agent_config(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_guest_agent_config(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the cpu_info field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_cpu_info(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_cpu_info(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_cpu_info(session.opaque_ref, _pool ?? "").parse()); } /// /// Get the policy_no_vendor_device field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static bool get_policy_no_vendor_device(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_policy_no_vendor_device(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_policy_no_vendor_device(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the live_patching_disabled field of the given pool. /// First published in XenServer 7.1. /// /// The session /// The opaque_ref of the given pool public static bool get_live_patching_disabled(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_live_patching_disabled(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_live_patching_disabled(session.opaque_ref, _pool ?? "").parse(); } /// /// Get the igmp_snooping_enabled field of the given pool. /// First published in XenServer 7.3. /// /// The session /// The opaque_ref of the given pool public static bool get_igmp_snooping_enabled(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_igmp_snooping_enabled(session.opaque_ref, _pool); else return (bool)session.proxy.pool_get_igmp_snooping_enabled(session.opaque_ref, _pool ?? "").parse(); } /// /// Set the name_label field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_name_label(Session session, string _pool, string _name_label) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_name_label(session.opaque_ref, _pool, _name_label); else session.proxy.pool_set_name_label(session.opaque_ref, _pool ?? "", _name_label ?? "").parse(); } /// /// Set the name_description field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_name_description(Session session, string _pool, string _name_description) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_name_description(session.opaque_ref, _pool, _name_description); else session.proxy.pool_set_name_description(session.opaque_ref, _pool ?? "", _name_description ?? "").parse(); } /// /// Set the default_SR field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_default_SR(Session session, string _pool, string _default_sr) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_default_sr(session.opaque_ref, _pool, _default_sr); else session.proxy.pool_set_default_sr(session.opaque_ref, _pool ?? "", _default_sr ?? "").parse(); } /// /// Set the suspend_image_SR field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_suspend_image_SR(Session session, string _pool, string _suspend_image_sr) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_suspend_image_sr(session.opaque_ref, _pool, _suspend_image_sr); else session.proxy.pool_set_suspend_image_sr(session.opaque_ref, _pool ?? "", _suspend_image_sr ?? "").parse(); } /// /// Set the crash_dump_SR field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_crash_dump_SR(Session session, string _pool, string _crash_dump_sr) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_crash_dump_sr(session.opaque_ref, _pool, _crash_dump_sr); else session.proxy.pool_set_crash_dump_sr(session.opaque_ref, _pool ?? "", _crash_dump_sr ?? "").parse(); } /// /// Set the other_config field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_other_config(Session session, string _pool, Dictionary _other_config) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_other_config(session.opaque_ref, _pool, _other_config); else session.proxy.pool_set_other_config(session.opaque_ref, _pool ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse(); } /// /// Add the given key-value pair to the other_config field of the given pool. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pool /// Key to add /// Value to add public static void add_to_other_config(Session session, string _pool, string _key, string _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_add_to_other_config(session.opaque_ref, _pool, _key, _value); else session.proxy.pool_add_to_other_config(session.opaque_ref, _pool ?? "", _key ?? "", _value ?? "").parse(); } /// /// Remove the given key and its corresponding value from the other_config field of the given pool. 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 pool /// Key to remove public static void remove_from_other_config(Session session, string _pool, string _key) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_remove_from_other_config(session.opaque_ref, _pool, _key); else session.proxy.pool_remove_from_other_config(session.opaque_ref, _pool ?? "", _key ?? "").parse(); } /// /// Set the ha_allow_overcommit field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_ha_allow_overcommit(Session session, string _pool, bool _ha_allow_overcommit) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_ha_allow_overcommit(session.opaque_ref, _pool, _ha_allow_overcommit); else session.proxy.pool_set_ha_allow_overcommit(session.opaque_ref, _pool ?? "", _ha_allow_overcommit).parse(); } /// /// Set the tags field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_tags(Session session, string _pool, string[] _tags) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_tags(session.opaque_ref, _pool, _tags); else session.proxy.pool_set_tags(session.opaque_ref, _pool ?? "", _tags).parse(); } /// /// Add the given value to the tags field of the given pool. 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 pool /// New value to add public static void add_tags(Session session, string _pool, string _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_add_tags(session.opaque_ref, _pool, _value); else session.proxy.pool_add_tags(session.opaque_ref, _pool ?? "", _value ?? "").parse(); } /// /// Remove the given value from the tags field of the given pool. 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 pool /// Value to remove public static void remove_tags(Session session, string _pool, string _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_remove_tags(session.opaque_ref, _pool, _value); else session.proxy.pool_remove_tags(session.opaque_ref, _pool ?? "", _value ?? "").parse(); } /// /// Set the gui_config field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_gui_config(Session session, string _pool, Dictionary _gui_config) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_gui_config(session.opaque_ref, _pool, _gui_config); else session.proxy.pool_set_gui_config(session.opaque_ref, _pool ?? "", Maps.convert_to_proxy_string_string(_gui_config)).parse(); } /// /// Add the given key-value pair to the gui_config field of the given pool. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// Key to add /// Value to add public static void add_to_gui_config(Session session, string _pool, string _key, string _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_add_to_gui_config(session.opaque_ref, _pool, _key, _value); else session.proxy.pool_add_to_gui_config(session.opaque_ref, _pool ?? "", _key ?? "", _value ?? "").parse(); } /// /// Remove the given key and its corresponding value from the gui_config field of the given pool. If the key is not in that Map, then do nothing. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// Key to remove public static void remove_from_gui_config(Session session, string _pool, string _key) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_remove_from_gui_config(session.opaque_ref, _pool, _key); else session.proxy.pool_remove_from_gui_config(session.opaque_ref, _pool ?? "", _key ?? "").parse(); } /// /// Set the health_check_config field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_health_check_config(Session session, string _pool, Dictionary _health_check_config) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_health_check_config(session.opaque_ref, _pool, _health_check_config); else session.proxy.pool_set_health_check_config(session.opaque_ref, _pool ?? "", Maps.convert_to_proxy_string_string(_health_check_config)).parse(); } /// /// Add the given key-value pair to the health_check_config field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// Key to add /// Value to add public static void add_to_health_check_config(Session session, string _pool, string _key, string _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_add_to_health_check_config(session.opaque_ref, _pool, _key, _value); else session.proxy.pool_add_to_health_check_config(session.opaque_ref, _pool ?? "", _key ?? "", _value ?? "").parse(); } /// /// Remove the given key and its corresponding value from the health_check_config field of the given pool. If the key is not in that Map, then do nothing. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// Key to remove public static void remove_from_health_check_config(Session session, string _pool, string _key) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_remove_from_health_check_config(session.opaque_ref, _pool, _key); else session.proxy.pool_remove_from_health_check_config(session.opaque_ref, _pool ?? "", _key ?? "").parse(); } /// /// Set the wlb_enabled field of the given pool. /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_wlb_enabled(Session session, string _pool, bool _wlb_enabled) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_wlb_enabled(session.opaque_ref, _pool, _wlb_enabled); else session.proxy.pool_set_wlb_enabled(session.opaque_ref, _pool ?? "", _wlb_enabled).parse(); } /// /// Set the wlb_verify_cert field of the given pool. /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_wlb_verify_cert(Session session, string _pool, bool _wlb_verify_cert) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_wlb_verify_cert(session.opaque_ref, _pool, _wlb_verify_cert); else session.proxy.pool_set_wlb_verify_cert(session.opaque_ref, _pool ?? "", _wlb_verify_cert).parse(); } /// /// Set the policy_no_vendor_device field of the given pool. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_policy_no_vendor_device(Session session, string _pool, bool _policy_no_vendor_device) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_policy_no_vendor_device(session.opaque_ref, _pool, _policy_no_vendor_device); else session.proxy.pool_set_policy_no_vendor_device(session.opaque_ref, _pool ?? "", _policy_no_vendor_device).parse(); } /// /// Set the live_patching_disabled field of the given pool. /// First published in XenServer 7.1. /// /// The session /// The opaque_ref of the given pool /// New value to set public static void set_live_patching_disabled(Session session, string _pool, bool _live_patching_disabled) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_live_patching_disabled(session.opaque_ref, _pool, _live_patching_disabled); else session.proxy.pool_set_live_patching_disabled(session.opaque_ref, _pool ?? "", _live_patching_disabled).parse(); } /// /// Instruct host to join a new pool /// First published in XenServer 4.0. /// /// The session /// The hostname of the master of the pool to join /// The username of the master (for initial authentication) /// The password for the master (for initial authentication) public static void join(Session session, string _master_address, string _master_username, string _master_password) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_join(session.opaque_ref, _master_address, _master_username, _master_password); else session.proxy.pool_join(session.opaque_ref, _master_address ?? "", _master_username ?? "", _master_password ?? "").parse(); } /// /// Instruct host to join a new pool /// First published in XenServer 4.0. /// /// The session /// The hostname of the master of the pool to join /// The username of the master (for initial authentication) /// The password for the master (for initial authentication) public static XenRef async_join(Session session, string _master_address, string _master_username, string _master_password) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_join(session.opaque_ref, _master_address, _master_username, _master_password); else return XenRef.Create(session.proxy.async_pool_join(session.opaque_ref, _master_address ?? "", _master_username ?? "", _master_password ?? "").parse()); } /// /// Instruct host to join a new pool /// First published in XenServer 4.0. /// /// The session /// The hostname of the master of the pool to join /// The username of the master (for initial authentication) /// The password for the master (for initial authentication) public static void join_force(Session session, string _master_address, string _master_username, string _master_password) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_join_force(session.opaque_ref, _master_address, _master_username, _master_password); else session.proxy.pool_join_force(session.opaque_ref, _master_address ?? "", _master_username ?? "", _master_password ?? "").parse(); } /// /// Instruct host to join a new pool /// First published in XenServer 4.0. /// /// The session /// The hostname of the master of the pool to join /// The username of the master (for initial authentication) /// The password for the master (for initial authentication) public static XenRef async_join_force(Session session, string _master_address, string _master_username, string _master_password) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_join_force(session.opaque_ref, _master_address, _master_username, _master_password); else return XenRef.Create(session.proxy.async_pool_join_force(session.opaque_ref, _master_address ?? "", _master_username ?? "", _master_password ?? "").parse()); } /// /// Instruct a pool master to eject a host from the pool /// First published in XenServer 4.0. /// /// The session /// The host to eject public static void eject(Session session, string _host) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_eject(session.opaque_ref, _host); else session.proxy.pool_eject(session.opaque_ref, _host ?? "").parse(); } /// /// Instruct a pool master to eject a host from the pool /// First published in XenServer 4.0. /// /// The session /// The host to eject public static XenRef async_eject(Session session, string _host) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_eject(session.opaque_ref, _host); else return XenRef.Create(session.proxy.async_pool_eject(session.opaque_ref, _host ?? "").parse()); } /// /// Instruct host that's currently a slave to transition to being master /// First published in XenServer 4.0. /// /// The session public static void emergency_transition_to_master(Session session) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_emergency_transition_to_master(session.opaque_ref); else session.proxy.pool_emergency_transition_to_master(session.opaque_ref).parse(); } /// /// Instruct a slave already in a pool that the master has changed /// First published in XenServer 4.0. /// /// The session /// The hostname of the master public static void emergency_reset_master(Session session, string _master_address) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_emergency_reset_master(session.opaque_ref, _master_address); else session.proxy.pool_emergency_reset_master(session.opaque_ref, _master_address ?? "").parse(); } /// /// Instruct a pool master, M, to try and contact its slaves and, if slaves are in emergency mode, reset their master address to M. /// First published in XenServer 4.0. /// /// The session public static List> recover_slaves(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_recover_slaves(session.opaque_ref); else return XenRef.Create(session.proxy.pool_recover_slaves(session.opaque_ref).parse()); } /// /// Instruct a pool master, M, to try and contact its slaves and, if slaves are in emergency mode, reset their master address to M. /// First published in XenServer 4.0. /// /// The session public static XenRef async_recover_slaves(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_recover_slaves(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_recover_slaves(session.opaque_ref).parse()); } /// /// Create PIFs, mapping a network to the same physical interface/VLAN on each host. This call is deprecated: use Pool.create_VLAN_from_PIF instead. /// First published in XenServer 4.0. /// /// The session /// physical interface on which to create the VLAN interface /// network to which this interface should be connected /// VLAN tag for the new interface public static List> create_VLAN(Session session, string _device, string _network, long _vlan) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_create_vlan(session.opaque_ref, _device, _network, _vlan); else return XenRef.Create(session.proxy.pool_create_vlan(session.opaque_ref, _device ?? "", _network ?? "", _vlan.ToString()).parse()); } /// /// Create PIFs, mapping a network to the same physical interface/VLAN on each host. This call is deprecated: use Pool.create_VLAN_from_PIF instead. /// First published in XenServer 4.0. /// /// The session /// physical interface on which to create the VLAN interface /// network to which this interface should be connected /// VLAN tag for the new interface public static XenRef async_create_VLAN(Session session, string _device, string _network, long _vlan) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_create_vlan(session.opaque_ref, _device, _network, _vlan); else return XenRef.Create(session.proxy.async_pool_create_vlan(session.opaque_ref, _device ?? "", _network ?? "", _vlan.ToString()).parse()); } /// /// Reconfigure the management network interface for all Hosts in the Pool /// First published in XenServer 7.3. /// /// The session /// The network public static void management_reconfigure(Session session, string _network) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_management_reconfigure(session.opaque_ref, _network); else session.proxy.pool_management_reconfigure(session.opaque_ref, _network ?? "").parse(); } /// /// Reconfigure the management network interface for all Hosts in the Pool /// First published in XenServer 7.3. /// /// The session /// The network public static XenRef async_management_reconfigure(Session session, string _network) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_management_reconfigure(session.opaque_ref, _network); else return XenRef.Create(session.proxy.async_pool_management_reconfigure(session.opaque_ref, _network ?? "").parse()); } /// /// Create a pool-wide VLAN by taking the PIF. /// First published in XenServer 4.0. /// /// The session /// physical interface on any particular host, that identifies the PIF on which to create the (pool-wide) VLAN interface /// network to which this interface should be connected /// VLAN tag for the new interface public static List> create_VLAN_from_PIF(Session session, string _pif, string _network, long _vlan) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_create_vlan_from_pif(session.opaque_ref, _pif, _network, _vlan); else return XenRef.Create(session.proxy.pool_create_vlan_from_pif(session.opaque_ref, _pif ?? "", _network ?? "", _vlan.ToString()).parse()); } /// /// Create a pool-wide VLAN by taking the PIF. /// First published in XenServer 4.0. /// /// The session /// physical interface on any particular host, that identifies the PIF on which to create the (pool-wide) VLAN interface /// network to which this interface should be connected /// VLAN tag for the new interface public static XenRef async_create_VLAN_from_PIF(Session session, string _pif, string _network, long _vlan) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_create_vlan_from_pif(session.opaque_ref, _pif, _network, _vlan); else return XenRef.Create(session.proxy.async_pool_create_vlan_from_pif(session.opaque_ref, _pif ?? "", _network ?? "", _vlan.ToString()).parse()); } /// /// Turn on High Availability mode /// First published in XenServer 4.1. /// /// The session /// Set of SRs to use for storage heartbeating /// Detailed HA configuration to apply public static void enable_ha(Session session, List> _heartbeat_srs, Dictionary _configuration) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_enable_ha(session.opaque_ref, _heartbeat_srs, _configuration); else session.proxy.pool_enable_ha(session.opaque_ref, (_heartbeat_srs != null) ? Helper.RefListToStringArray(_heartbeat_srs) : new string[] {}, Maps.convert_to_proxy_string_string(_configuration)).parse(); } /// /// Turn on High Availability mode /// First published in XenServer 4.1. /// /// The session /// Set of SRs to use for storage heartbeating /// Detailed HA configuration to apply public static XenRef async_enable_ha(Session session, List> _heartbeat_srs, Dictionary _configuration) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_enable_ha(session.opaque_ref, _heartbeat_srs, _configuration); else return XenRef.Create(session.proxy.async_pool_enable_ha(session.opaque_ref, (_heartbeat_srs != null) ? Helper.RefListToStringArray(_heartbeat_srs) : new string[] {}, Maps.convert_to_proxy_string_string(_configuration)).parse()); } /// /// Turn off High Availability mode /// First published in XenServer 4.1. /// /// The session public static void disable_ha(Session session) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_disable_ha(session.opaque_ref); else session.proxy.pool_disable_ha(session.opaque_ref).parse(); } /// /// Turn off High Availability mode /// First published in XenServer 4.1. /// /// The session public static XenRef async_disable_ha(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_disable_ha(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_disable_ha(session.opaque_ref).parse()); } /// /// Forcibly synchronise the database now /// First published in XenServer 4.0. /// /// The session public static void sync_database(Session session) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_sync_database(session.opaque_ref); else session.proxy.pool_sync_database(session.opaque_ref).parse(); } /// /// Forcibly synchronise the database now /// First published in XenServer 4.0. /// /// The session public static XenRef async_sync_database(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_sync_database(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_sync_database(session.opaque_ref).parse()); } /// /// Perform an orderly handover of the role of master to the referenced host. /// First published in XenServer 4.1. /// /// The session /// The host who should become the new master public static void designate_new_master(Session session, string _host) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_designate_new_master(session.opaque_ref, _host); else session.proxy.pool_designate_new_master(session.opaque_ref, _host ?? "").parse(); } /// /// Perform an orderly handover of the role of master to the referenced host. /// First published in XenServer 4.1. /// /// The session /// The host who should become the new master public static XenRef async_designate_new_master(Session session, string _host) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_designate_new_master(session.opaque_ref, _host); else return XenRef.Create(session.proxy.async_pool_designate_new_master(session.opaque_ref, _host ?? "").parse()); } /// /// When this call returns the VM restart logic will not run for the requested number of seconds. If the argument is zero then the restart thread is immediately unblocked /// First published in XenServer 5.0 Update 1. /// /// The session /// The number of seconds to block the restart thread for public static void ha_prevent_restarts_for(Session session, long _seconds) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_ha_prevent_restarts_for(session.opaque_ref, _seconds); else session.proxy.pool_ha_prevent_restarts_for(session.opaque_ref, _seconds.ToString()).parse(); } /// /// Returns true if a VM failover plan exists for up to 'n' host failures /// First published in XenServer 5.0. /// /// The session /// The number of host failures to plan for public static bool ha_failover_plan_exists(Session session, long _n) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_ha_failover_plan_exists(session.opaque_ref, _n); else return (bool)session.proxy.pool_ha_failover_plan_exists(session.opaque_ref, _n.ToString()).parse(); } /// /// Returns the maximum number of host failures we could tolerate before we would be unable to restart configured VMs /// First published in XenServer 5.0. /// /// The session public static long ha_compute_max_host_failures_to_tolerate(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_ha_compute_max_host_failures_to_tolerate(session.opaque_ref); else return long.Parse((string)session.proxy.pool_ha_compute_max_host_failures_to_tolerate(session.opaque_ref).parse()); } /// /// Returns the maximum number of host failures we could tolerate before we would be unable to restart the provided VMs /// First published in XenServer 5.0. /// /// The session /// Map of protected VM reference to restart priority public static long ha_compute_hypothetical_max_host_failures_to_tolerate(Session session, Dictionary, string> _configuration) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_ha_compute_hypothetical_max_host_failures_to_tolerate(session.opaque_ref, _configuration); else return long.Parse((string)session.proxy.pool_ha_compute_hypothetical_max_host_failures_to_tolerate(session.opaque_ref, Maps.convert_to_proxy_XenRefVM_string(_configuration)).parse()); } /// /// Return a VM failover plan assuming a given subset of hosts fail /// First published in XenServer 5.0. /// /// The session /// The set of hosts to assume have failed /// The set of VMs to restart public static Dictionary, Dictionary> ha_compute_vm_failover_plan(Session session, List> _failed_hosts, List> _failed_vms) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_ha_compute_vm_failover_plan(session.opaque_ref, _failed_hosts, _failed_vms); else return Maps.convert_from_proxy_XenRefVM_Dictionary_string_string(session.proxy.pool_ha_compute_vm_failover_plan(session.opaque_ref, (_failed_hosts != null) ? Helper.RefListToStringArray(_failed_hosts) : new string[] {}, (_failed_vms != null) ? Helper.RefListToStringArray(_failed_vms) : new string[] {}).parse()); } /// /// Set the maximum number of host failures to consider in the HA VM restart planner /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// New number of host failures to consider public static void set_ha_host_failures_to_tolerate(Session session, string _pool, long _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_ha_host_failures_to_tolerate(session.opaque_ref, _pool, _value); else session.proxy.pool_set_ha_host_failures_to_tolerate(session.opaque_ref, _pool ?? "", _value.ToString()).parse(); } /// /// Set the maximum number of host failures to consider in the HA VM restart planner /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// New number of host failures to consider public static XenRef async_set_ha_host_failures_to_tolerate(Session session, string _pool, long _value) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_set_ha_host_failures_to_tolerate(session.opaque_ref, _pool, _value); else return XenRef.Create(session.proxy.async_pool_set_ha_host_failures_to_tolerate(session.opaque_ref, _pool ?? "", _value.ToString()).parse()); } /// /// Create a placeholder for a named binary blob of data that is associated with this pool /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// The name associated with the blob /// The mime type for the data. Empty string translates to application/octet-stream public static XenRef create_new_blob(Session session, string _pool, string _name, string _mime_type) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_create_new_blob(session.opaque_ref, _pool, _name, _mime_type); else return XenRef.Create(session.proxy.pool_create_new_blob(session.opaque_ref, _pool ?? "", _name ?? "", _mime_type ?? "").parse()); } /// /// Create a placeholder for a named binary blob of data that is associated with this pool /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// The name associated with the blob /// The mime type for the data. Empty string translates to application/octet-stream public static XenRef async_create_new_blob(Session session, string _pool, string _name, string _mime_type) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_create_new_blob(session.opaque_ref, _pool, _name, _mime_type); else return XenRef.Create(session.proxy.async_pool_create_new_blob(session.opaque_ref, _pool ?? "", _name ?? "", _mime_type ?? "").parse()); } /// /// Create a placeholder for a named binary blob of data that is associated with this pool /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// The name associated with the blob /// The mime type for the data. Empty string translates to application/octet-stream /// True if the blob should be publicly available First published in XenServer 6.1. public static XenRef create_new_blob(Session session, string _pool, string _name, string _mime_type, bool _public) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_create_new_blob(session.opaque_ref, _pool, _name, _mime_type, _public); else return XenRef.Create(session.proxy.pool_create_new_blob(session.opaque_ref, _pool ?? "", _name ?? "", _mime_type ?? "", _public).parse()); } /// /// Create a placeholder for a named binary blob of data that is associated with this pool /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pool /// The name associated with the blob /// The mime type for the data. Empty string translates to application/octet-stream /// True if the blob should be publicly available First published in XenServer 6.1. public static XenRef async_create_new_blob(Session session, string _pool, string _name, string _mime_type, bool _public) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_create_new_blob(session.opaque_ref, _pool, _name, _mime_type, _public); else return XenRef.Create(session.proxy.async_pool_create_new_blob(session.opaque_ref, _pool ?? "", _name ?? "", _mime_type ?? "", _public).parse()); } /// /// This call enables external authentication on all the hosts of the pool /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool /// A list of key-values containing the configuration data /// The name of the service /// The type of authentication (e.g. AD for Active Directory) public static void enable_external_auth(Session session, string _pool, Dictionary _config, string _service_name, string _auth_type) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_enable_external_auth(session.opaque_ref, _pool, _config, _service_name, _auth_type); else session.proxy.pool_enable_external_auth(session.opaque_ref, _pool ?? "", Maps.convert_to_proxy_string_string(_config), _service_name ?? "", _auth_type ?? "").parse(); } /// /// This call disables external authentication on all the hosts of the pool /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool /// Optional parameters as a list of key-values containing the configuration data public static void disable_external_auth(Session session, string _pool, Dictionary _config) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_disable_external_auth(session.opaque_ref, _pool, _config); else session.proxy.pool_disable_external_auth(session.opaque_ref, _pool ?? "", Maps.convert_to_proxy_string_string(_config)).parse(); } /// /// This call asynchronously detects if the external authentication configuration in any slave is different from that in the master and raises appropriate alerts /// First published in XenServer 5.5. /// /// The session /// The opaque_ref of the given pool public static void detect_nonhomogeneous_external_auth(Session session, string _pool) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_detect_nonhomogeneous_external_auth(session.opaque_ref, _pool); else session.proxy.pool_detect_nonhomogeneous_external_auth(session.opaque_ref, _pool ?? "").parse(); } /// /// Initializes workload balancing monitoring on this pool with the specified wlb server /// First published in XenServer 5.5. /// /// The session /// The ip address and port to use when accessing the wlb server /// The username used to authenticate with the wlb server /// The password used to authenticate with the wlb server /// The username used by the wlb server to authenticate with the xenserver /// The password used by the wlb server to authenticate with the xenserver public static void initialize_wlb(Session session, string _wlb_url, string _wlb_username, string _wlb_password, string _xenserver_username, string _xenserver_password) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_initialize_wlb(session.opaque_ref, _wlb_url, _wlb_username, _wlb_password, _xenserver_username, _xenserver_password); else session.proxy.pool_initialize_wlb(session.opaque_ref, _wlb_url ?? "", _wlb_username ?? "", _wlb_password ?? "", _xenserver_username ?? "", _xenserver_password ?? "").parse(); } /// /// Initializes workload balancing monitoring on this pool with the specified wlb server /// First published in XenServer 5.5. /// /// The session /// The ip address and port to use when accessing the wlb server /// The username used to authenticate with the wlb server /// The password used to authenticate with the wlb server /// The username used by the wlb server to authenticate with the xenserver /// The password used by the wlb server to authenticate with the xenserver public static XenRef async_initialize_wlb(Session session, string _wlb_url, string _wlb_username, string _wlb_password, string _xenserver_username, string _xenserver_password) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_initialize_wlb(session.opaque_ref, _wlb_url, _wlb_username, _wlb_password, _xenserver_username, _xenserver_password); else return XenRef.Create(session.proxy.async_pool_initialize_wlb(session.opaque_ref, _wlb_url ?? "", _wlb_username ?? "", _wlb_password ?? "", _xenserver_username ?? "", _xenserver_password ?? "").parse()); } /// /// Permanently deconfigures workload balancing monitoring on this pool /// First published in XenServer 5.5. /// /// The session public static void deconfigure_wlb(Session session) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_deconfigure_wlb(session.opaque_ref); else session.proxy.pool_deconfigure_wlb(session.opaque_ref).parse(); } /// /// Permanently deconfigures workload balancing monitoring on this pool /// First published in XenServer 5.5. /// /// The session public static XenRef async_deconfigure_wlb(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_deconfigure_wlb(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_deconfigure_wlb(session.opaque_ref).parse()); } /// /// Sets the pool optimization criteria for the workload balancing server /// First published in XenServer 5.5. /// /// The session /// The configuration to use in optimizing this pool public static void send_wlb_configuration(Session session, Dictionary _config) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_send_wlb_configuration(session.opaque_ref, _config); else session.proxy.pool_send_wlb_configuration(session.opaque_ref, Maps.convert_to_proxy_string_string(_config)).parse(); } /// /// Sets the pool optimization criteria for the workload balancing server /// First published in XenServer 5.5. /// /// The session /// The configuration to use in optimizing this pool public static XenRef async_send_wlb_configuration(Session session, Dictionary _config) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_send_wlb_configuration(session.opaque_ref, _config); else return XenRef.Create(session.proxy.async_pool_send_wlb_configuration(session.opaque_ref, Maps.convert_to_proxy_string_string(_config)).parse()); } /// /// Retrieves the pool optimization criteria from the workload balancing server /// First published in XenServer 5.5. /// /// The session public static Dictionary retrieve_wlb_configuration(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_retrieve_wlb_configuration(session.opaque_ref); else return Maps.convert_from_proxy_string_string(session.proxy.pool_retrieve_wlb_configuration(session.opaque_ref).parse()); } /// /// Retrieves the pool optimization criteria from the workload balancing server /// First published in XenServer 5.5. /// /// The session public static XenRef async_retrieve_wlb_configuration(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_retrieve_wlb_configuration(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_retrieve_wlb_configuration(session.opaque_ref).parse()); } /// /// Retrieves vm migrate recommendations for the pool from the workload balancing server /// First published in XenServer 5.5. /// /// The session public static Dictionary, string[]> retrieve_wlb_recommendations(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_retrieve_wlb_recommendations(session.opaque_ref); else return Maps.convert_from_proxy_XenRefVM_string_array(session.proxy.pool_retrieve_wlb_recommendations(session.opaque_ref).parse()); } /// /// Retrieves vm migrate recommendations for the pool from the workload balancing server /// First published in XenServer 5.5. /// /// The session public static XenRef async_retrieve_wlb_recommendations(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_retrieve_wlb_recommendations(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_retrieve_wlb_recommendations(session.opaque_ref).parse()); } /// /// Send the given body to the given host and port, using HTTPS, and print the response. This is used for debugging the SSL layer. /// First published in XenServer 5.5. /// /// The session /// /// /// public static string send_test_post(Session session, string _host, long _port, string _body) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_send_test_post(session.opaque_ref, _host, _port, _body); else return (string)session.proxy.pool_send_test_post(session.opaque_ref, _host ?? "", _port.ToString(), _body ?? "").parse(); } /// /// Send the given body to the given host and port, using HTTPS, and print the response. This is used for debugging the SSL layer. /// First published in XenServer 5.5. /// /// The session /// /// /// public static XenRef async_send_test_post(Session session, string _host, long _port, string _body) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_send_test_post(session.opaque_ref, _host, _port, _body); else return XenRef.Create(session.proxy.async_pool_send_test_post(session.opaque_ref, _host ?? "", _port.ToString(), _body ?? "").parse()); } /// /// Install an SSL certificate pool-wide. /// First published in XenServer 5.5. /// /// The session /// A name to give the certificate /// The certificate public static void certificate_install(Session session, string _name, string _cert) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_certificate_install(session.opaque_ref, _name, _cert); else session.proxy.pool_certificate_install(session.opaque_ref, _name ?? "", _cert ?? "").parse(); } /// /// Install an SSL certificate pool-wide. /// First published in XenServer 5.5. /// /// The session /// A name to give the certificate /// The certificate public static XenRef async_certificate_install(Session session, string _name, string _cert) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_certificate_install(session.opaque_ref, _name, _cert); else return XenRef.Create(session.proxy.async_pool_certificate_install(session.opaque_ref, _name ?? "", _cert ?? "").parse()); } /// /// Remove an SSL certificate. /// First published in XenServer 5.5. /// /// The session /// The certificate name public static void certificate_uninstall(Session session, string _name) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_certificate_uninstall(session.opaque_ref, _name); else session.proxy.pool_certificate_uninstall(session.opaque_ref, _name ?? "").parse(); } /// /// Remove an SSL certificate. /// First published in XenServer 5.5. /// /// The session /// The certificate name public static XenRef async_certificate_uninstall(Session session, string _name) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_certificate_uninstall(session.opaque_ref, _name); else return XenRef.Create(session.proxy.async_pool_certificate_uninstall(session.opaque_ref, _name ?? "").parse()); } /// /// List all installed SSL certificates. /// First published in XenServer 5.5. /// /// The session public static string[] certificate_list(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_certificate_list(session.opaque_ref); else return (string [])session.proxy.pool_certificate_list(session.opaque_ref).parse(); } /// /// List all installed SSL certificates. /// First published in XenServer 5.5. /// /// The session public static XenRef async_certificate_list(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_certificate_list(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_certificate_list(session.opaque_ref).parse()); } /// /// Install an SSL certificate revocation list, pool-wide. /// First published in XenServer 5.5. /// /// The session /// A name to give the CRL /// The CRL public static void crl_install(Session session, string _name, string _cert) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_crl_install(session.opaque_ref, _name, _cert); else session.proxy.pool_crl_install(session.opaque_ref, _name ?? "", _cert ?? "").parse(); } /// /// Install an SSL certificate revocation list, pool-wide. /// First published in XenServer 5.5. /// /// The session /// A name to give the CRL /// The CRL public static XenRef async_crl_install(Session session, string _name, string _cert) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_crl_install(session.opaque_ref, _name, _cert); else return XenRef.Create(session.proxy.async_pool_crl_install(session.opaque_ref, _name ?? "", _cert ?? "").parse()); } /// /// Remove an SSL certificate revocation list. /// First published in XenServer 5.5. /// /// The session /// The CRL name public static void crl_uninstall(Session session, string _name) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_crl_uninstall(session.opaque_ref, _name); else session.proxy.pool_crl_uninstall(session.opaque_ref, _name ?? "").parse(); } /// /// Remove an SSL certificate revocation list. /// First published in XenServer 5.5. /// /// The session /// The CRL name public static XenRef async_crl_uninstall(Session session, string _name) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_crl_uninstall(session.opaque_ref, _name); else return XenRef.Create(session.proxy.async_pool_crl_uninstall(session.opaque_ref, _name ?? "").parse()); } /// /// List all installed SSL certificate revocation lists. /// First published in XenServer 5.5. /// /// The session public static string[] crl_list(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_crl_list(session.opaque_ref); else return (string [])session.proxy.pool_crl_list(session.opaque_ref).parse(); } /// /// List all installed SSL certificate revocation lists. /// First published in XenServer 5.5. /// /// The session public static XenRef async_crl_list(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_crl_list(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_crl_list(session.opaque_ref).parse()); } /// /// Sync SSL certificates from master to slaves. /// First published in XenServer 5.5. /// /// The session public static void certificate_sync(Session session) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_certificate_sync(session.opaque_ref); else session.proxy.pool_certificate_sync(session.opaque_ref).parse(); } /// /// Sync SSL certificates from master to slaves. /// First published in XenServer 5.5. /// /// The session public static XenRef async_certificate_sync(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_certificate_sync(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_certificate_sync(session.opaque_ref).parse()); } /// /// Enable the redo log on the given SR and start using it, unless HA is enabled. /// First published in XenServer 5.6. /// /// The session /// SR to hold the redo log. public static void enable_redo_log(Session session, string _sr) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_enable_redo_log(session.opaque_ref, _sr); else session.proxy.pool_enable_redo_log(session.opaque_ref, _sr ?? "").parse(); } /// /// Enable the redo log on the given SR and start using it, unless HA is enabled. /// First published in XenServer 5.6. /// /// The session /// SR to hold the redo log. public static XenRef async_enable_redo_log(Session session, string _sr) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_enable_redo_log(session.opaque_ref, _sr); else return XenRef.Create(session.proxy.async_pool_enable_redo_log(session.opaque_ref, _sr ?? "").parse()); } /// /// Disable the redo log if in use, unless HA is enabled. /// First published in XenServer 5.6. /// /// The session public static void disable_redo_log(Session session) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_disable_redo_log(session.opaque_ref); else session.proxy.pool_disable_redo_log(session.opaque_ref).parse(); } /// /// Disable the redo log if in use, unless HA is enabled. /// First published in XenServer 5.6. /// /// The session public static XenRef async_disable_redo_log(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_disable_redo_log(session.opaque_ref); else return XenRef.Create(session.proxy.async_pool_disable_redo_log(session.opaque_ref).parse()); } /// /// Set the IP address of the vswitch controller. /// First published in XenServer 5.6. /// Deprecated since XenServer 7.2. /// /// The session /// IP address of the vswitch controller. [Deprecated("XenServer 7.2")] public static void set_vswitch_controller(Session session, string _address) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_vswitch_controller(session.opaque_ref, _address); else session.proxy.pool_set_vswitch_controller(session.opaque_ref, _address ?? "").parse(); } /// /// Set the IP address of the vswitch controller. /// First published in XenServer 5.6. /// Deprecated since XenServer 7.2. /// /// The session /// IP address of the vswitch controller. [Deprecated("XenServer 7.2")] public static XenRef async_set_vswitch_controller(Session session, string _address) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_set_vswitch_controller(session.opaque_ref, _address); else return XenRef.Create(session.proxy.async_pool_set_vswitch_controller(session.opaque_ref, _address ?? "").parse()); } /// /// This call tests if a location is valid /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given pool /// Location config settings to test public static string test_archive_target(Session session, string _pool, Dictionary _config) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_test_archive_target(session.opaque_ref, _pool, _config); else return (string)session.proxy.pool_test_archive_target(session.opaque_ref, _pool ?? "", Maps.convert_to_proxy_string_string(_config)).parse(); } /// /// This call attempts to enable pool-wide local storage caching /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given pool public static void enable_local_storage_caching(Session session, string _pool) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_enable_local_storage_caching(session.opaque_ref, _pool); else session.proxy.pool_enable_local_storage_caching(session.opaque_ref, _pool ?? "").parse(); } /// /// This call attempts to enable pool-wide local storage caching /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given pool public static XenRef async_enable_local_storage_caching(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_enable_local_storage_caching(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.async_pool_enable_local_storage_caching(session.opaque_ref, _pool ?? "").parse()); } /// /// This call disables pool-wide local storage caching /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given pool public static void disable_local_storage_caching(Session session, string _pool) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_disable_local_storage_caching(session.opaque_ref, _pool); else session.proxy.pool_disable_local_storage_caching(session.opaque_ref, _pool ?? "").parse(); } /// /// This call disables pool-wide local storage caching /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given pool public static XenRef async_disable_local_storage_caching(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_disable_local_storage_caching(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.async_pool_disable_local_storage_caching(session.opaque_ref, _pool ?? "").parse()); } /// /// This call returns the license state for the pool /// First published in XenServer 6.2. /// /// The session /// The opaque_ref of the given pool public static Dictionary get_license_state(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_license_state(session.opaque_ref, _pool); else return Maps.convert_from_proxy_string_string(session.proxy.pool_get_license_state(session.opaque_ref, _pool ?? "").parse()); } /// /// This call returns the license state for the pool /// First published in XenServer 6.2. /// /// The session /// The opaque_ref of the given pool public static XenRef async_get_license_state(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_get_license_state(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.async_pool_get_license_state(session.opaque_ref, _pool ?? "").parse()); } /// /// Apply an edition to all hosts in the pool /// First published in XenServer 6.2. /// /// The session /// The opaque_ref of the given pool /// The requested edition public static void apply_edition(Session session, string _pool, string _edition) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_apply_edition(session.opaque_ref, _pool, _edition); else session.proxy.pool_apply_edition(session.opaque_ref, _pool ?? "", _edition ?? "").parse(); } /// /// Apply an edition to all hosts in the pool /// First published in XenServer 6.2. /// /// The session /// The opaque_ref of the given pool /// The requested edition public static XenRef async_apply_edition(Session session, string _pool, string _edition) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_apply_edition(session.opaque_ref, _pool, _edition); else return XenRef.Create(session.proxy.async_pool_apply_edition(session.opaque_ref, _pool ?? "", _edition ?? "").parse()); } /// /// Sets ssl_legacy true on each host, pool-master last. See Host.ssl_legacy and Host.set_ssl_legacy. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static void enable_ssl_legacy(Session session, string _pool) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_enable_ssl_legacy(session.opaque_ref, _pool); else session.proxy.pool_enable_ssl_legacy(session.opaque_ref, _pool ?? "").parse(); } /// /// Sets ssl_legacy true on each host, pool-master last. See Host.ssl_legacy and Host.set_ssl_legacy. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static XenRef async_enable_ssl_legacy(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_enable_ssl_legacy(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.async_pool_enable_ssl_legacy(session.opaque_ref, _pool ?? "").parse()); } /// /// Sets ssl_legacy true on each host, pool-master last. See Host.ssl_legacy and Host.set_ssl_legacy. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static void disable_ssl_legacy(Session session, string _pool) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_disable_ssl_legacy(session.opaque_ref, _pool); else session.proxy.pool_disable_ssl_legacy(session.opaque_ref, _pool ?? "").parse(); } /// /// Sets ssl_legacy true on each host, pool-master last. See Host.ssl_legacy and Host.set_ssl_legacy. /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool public static XenRef async_disable_ssl_legacy(Session session, string _pool) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_disable_ssl_legacy(session.opaque_ref, _pool); else return XenRef.Create(session.proxy.async_pool_disable_ssl_legacy(session.opaque_ref, _pool ?? "").parse()); } /// /// Enable or disable IGMP Snooping on the pool. /// First published in XenServer 7.3. /// /// The session /// The opaque_ref of the given pool /// Enable or disable IGMP Snooping on the pool public static void set_igmp_snooping_enabled(Session session, string _pool, bool _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_set_igmp_snooping_enabled(session.opaque_ref, _pool, _value); else session.proxy.pool_set_igmp_snooping_enabled(session.opaque_ref, _pool ?? "", _value).parse(); } /// /// Enable or disable IGMP Snooping on the pool. /// First published in XenServer 7.3. /// /// The session /// The opaque_ref of the given pool /// Enable or disable IGMP Snooping on the pool public static XenRef async_set_igmp_snooping_enabled(Session session, string _pool, bool _value) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_set_igmp_snooping_enabled(session.opaque_ref, _pool, _value); else return XenRef.Create(session.proxy.async_pool_set_igmp_snooping_enabled(session.opaque_ref, _pool ?? "", _value).parse()); } /// /// Return true if the extension is available on the pool /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// The name of the API call public static bool has_extension(Session session, string _pool, string _name) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_has_extension(session.opaque_ref, _pool, _name); else return (bool)session.proxy.pool_has_extension(session.opaque_ref, _pool ?? "", _name ?? "").parse(); } /// /// Return true if the extension is available on the pool /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// The name of the API call public static XenRef async_has_extension(Session session, string _pool, string _name) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_has_extension(session.opaque_ref, _pool, _name); else return XenRef.Create(session.proxy.async_pool_has_extension(session.opaque_ref, _pool ?? "", _name ?? "").parse()); } /// /// Add a key-value pair to the pool-wide guest agent configuration /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// The key to add /// The value to add public static void add_to_guest_agent_config(Session session, string _pool, string _key, string _value) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_add_to_guest_agent_config(session.opaque_ref, _pool, _key, _value); else session.proxy.pool_add_to_guest_agent_config(session.opaque_ref, _pool ?? "", _key ?? "", _value ?? "").parse(); } /// /// Add a key-value pair to the pool-wide guest agent configuration /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// The key to add /// The value to add public static XenRef async_add_to_guest_agent_config(Session session, string _pool, string _key, string _value) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_add_to_guest_agent_config(session.opaque_ref, _pool, _key, _value); else return XenRef.Create(session.proxy.async_pool_add_to_guest_agent_config(session.opaque_ref, _pool ?? "", _key ?? "", _value ?? "").parse()); } /// /// Remove a key-value pair from the pool-wide guest agent configuration /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// The key to remove public static void remove_from_guest_agent_config(Session session, string _pool, string _key) { if (session.JsonRpcClient != null) session.JsonRpcClient.pool_remove_from_guest_agent_config(session.opaque_ref, _pool, _key); else session.proxy.pool_remove_from_guest_agent_config(session.opaque_ref, _pool ?? "", _key ?? "").parse(); } /// /// Remove a key-value pair from the pool-wide guest agent configuration /// First published in XenServer 7.0. /// /// The session /// The opaque_ref of the given pool /// The key to remove public static XenRef async_remove_from_guest_agent_config(Session session, string _pool, string _key) { if (session.JsonRpcClient != null) return session.JsonRpcClient.async_pool_remove_from_guest_agent_config(session.opaque_ref, _pool, _key); else return XenRef.Create(session.proxy.async_pool_remove_from_guest_agent_config(session.opaque_ref, _pool ?? "", _key ?? "").parse()); } /// /// Return a list of all the pools known to the system. /// First published in XenServer 4.0. /// /// The session public static List> get_all(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_all(session.opaque_ref); else return XenRef.Create(session.proxy.pool_get_all(session.opaque_ref).parse()); } /// /// Get all the pool Records at once, in a single XML RPC call /// First published in XenServer 4.0. /// /// The session public static Dictionary, Pool> get_all_records(Session session) { if (session.JsonRpcClient != null) return session.JsonRpcClient.pool_get_all_records(session.opaque_ref); else return XenRef.Create(session.proxy.pool_get_all_records(session.opaque_ref).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 = ""; /// /// Short 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 = ""; /// /// 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 = ""; /// /// The host that is pool master /// [JsonConverter(typeof(XenRefConverter))] public virtual XenRef master { get { return _master; } set { if (!Helper.AreEqual(value, _master)) { _master = value; Changed = true; NotifyPropertyChanged("master"); } } } private XenRef _master = new XenRef(Helper.NullOpaqueRef); /// /// Default SR for VDIs /// [JsonConverter(typeof(XenRefConverter))] public virtual XenRef default_SR { get { return _default_SR; } set { if (!Helper.AreEqual(value, _default_SR)) { _default_SR = value; Changed = true; NotifyPropertyChanged("default_SR"); } } } private XenRef _default_SR = new XenRef(Helper.NullOpaqueRef); /// /// The SR in which VDIs for suspend images are created /// [JsonConverter(typeof(XenRefConverter))] public virtual XenRef suspend_image_SR { get { return _suspend_image_SR; } set { if (!Helper.AreEqual(value, _suspend_image_SR)) { _suspend_image_SR = value; Changed = true; NotifyPropertyChanged("suspend_image_SR"); } } } private XenRef _suspend_image_SR = new XenRef(Helper.NullOpaqueRef); /// /// The SR in which VDIs for crash dumps are created /// [JsonConverter(typeof(XenRefConverter))] public virtual XenRef crash_dump_SR { get { return _crash_dump_SR; } set { if (!Helper.AreEqual(value, _crash_dump_SR)) { _crash_dump_SR = value; Changed = true; NotifyPropertyChanged("crash_dump_SR"); } } } private XenRef _crash_dump_SR = new XenRef(Helper.NullOpaqueRef); /// /// additional configuration /// [JsonConverter(typeof(StringStringMapConverter))] 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 = new Dictionary() {}; /// /// true if HA is enabled on the pool, false otherwise /// First published in XenServer 5.0. /// public virtual bool ha_enabled { get { return _ha_enabled; } set { if (!Helper.AreEqual(value, _ha_enabled)) { _ha_enabled = value; Changed = true; NotifyPropertyChanged("ha_enabled"); } } } private bool _ha_enabled = false; /// /// The current HA configuration /// First published in XenServer 5.0. /// [JsonConverter(typeof(StringStringMapConverter))] public virtual Dictionary ha_configuration { get { return _ha_configuration; } set { if (!Helper.AreEqual(value, _ha_configuration)) { _ha_configuration = value; Changed = true; NotifyPropertyChanged("ha_configuration"); } } } private Dictionary _ha_configuration = new Dictionary() {}; /// /// HA statefile VDIs in use /// First published in XenServer 5.0. /// public virtual string[] ha_statefiles { get { return _ha_statefiles; } set { if (!Helper.AreEqual(value, _ha_statefiles)) { _ha_statefiles = value; Changed = true; NotifyPropertyChanged("ha_statefiles"); } } } private string[] _ha_statefiles = {}; /// /// Number of host failures to tolerate before the Pool is declared to be overcommitted /// First published in XenServer 5.0. /// public virtual long ha_host_failures_to_tolerate { get { return _ha_host_failures_to_tolerate; } set { if (!Helper.AreEqual(value, _ha_host_failures_to_tolerate)) { _ha_host_failures_to_tolerate = value; Changed = true; NotifyPropertyChanged("ha_host_failures_to_tolerate"); } } } private long _ha_host_failures_to_tolerate = 0; /// /// Number of future host failures we have managed to find a plan for. Once this reaches zero any future host failures will cause the failure of protected VMs. /// First published in XenServer 5.0. /// public virtual long ha_plan_exists_for { get { return _ha_plan_exists_for; } set { if (!Helper.AreEqual(value, _ha_plan_exists_for)) { _ha_plan_exists_for = value; Changed = true; NotifyPropertyChanged("ha_plan_exists_for"); } } } private long _ha_plan_exists_for = 0; /// /// If set to false then operations which would cause the Pool to become overcommitted will be blocked. /// First published in XenServer 5.0. /// public virtual bool ha_allow_overcommit { get { return _ha_allow_overcommit; } set { if (!Helper.AreEqual(value, _ha_allow_overcommit)) { _ha_allow_overcommit = value; Changed = true; NotifyPropertyChanged("ha_allow_overcommit"); } } } private bool _ha_allow_overcommit = false; /// /// True if the Pool is considered to be overcommitted i.e. if there exist insufficient physical resources to tolerate the configured number of host failures /// First published in XenServer 5.0. /// public virtual bool ha_overcommitted { get { return _ha_overcommitted; } set { if (!Helper.AreEqual(value, _ha_overcommitted)) { _ha_overcommitted = value; Changed = true; NotifyPropertyChanged("ha_overcommitted"); } } } private bool _ha_overcommitted = false; /// /// Binary blobs associated with this pool /// First published in XenServer 5.0. /// [JsonConverter(typeof(StringXenRefMapConverter))] public virtual Dictionary> blobs { get { return _blobs; } set { if (!Helper.AreEqual(value, _blobs)) { _blobs = value; Changed = true; NotifyPropertyChanged("blobs"); } } } private Dictionary> _blobs = new Dictionary>() {}; /// /// 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 = {}; /// /// gui-specific configuration for pool /// First published in XenServer 5.0. /// [JsonConverter(typeof(StringStringMapConverter))] public virtual Dictionary gui_config { get { return _gui_config; } set { if (!Helper.AreEqual(value, _gui_config)) { _gui_config = value; Changed = true; NotifyPropertyChanged("gui_config"); } } } private Dictionary _gui_config = new Dictionary() {}; /// /// Configuration for the automatic health check feature /// First published in XenServer 7.0. /// [JsonConverter(typeof(StringStringMapConverter))] public virtual Dictionary health_check_config { get { return _health_check_config; } set { if (!Helper.AreEqual(value, _health_check_config)) { _health_check_config = value; Changed = true; NotifyPropertyChanged("health_check_config"); } } } private Dictionary _health_check_config = new Dictionary() {}; /// /// Url for the configured workload balancing host /// First published in XenServer 5.5. /// public virtual string wlb_url { get { return _wlb_url; } set { if (!Helper.AreEqual(value, _wlb_url)) { _wlb_url = value; Changed = true; NotifyPropertyChanged("wlb_url"); } } } private string _wlb_url = ""; /// /// Username for accessing the workload balancing host /// First published in XenServer 5.5. /// public virtual string wlb_username { get { return _wlb_username; } set { if (!Helper.AreEqual(value, _wlb_username)) { _wlb_username = value; Changed = true; NotifyPropertyChanged("wlb_username"); } } } private string _wlb_username = ""; /// /// true if workload balancing is enabled on the pool, false otherwise /// First published in XenServer 5.5. /// public virtual bool wlb_enabled { get { return _wlb_enabled; } set { if (!Helper.AreEqual(value, _wlb_enabled)) { _wlb_enabled = value; Changed = true; NotifyPropertyChanged("wlb_enabled"); } } } private bool _wlb_enabled = false; /// /// true if communication with the WLB server should enforce SSL certificate verification. /// First published in XenServer 5.5. /// public virtual bool wlb_verify_cert { get { return _wlb_verify_cert; } set { if (!Helper.AreEqual(value, _wlb_verify_cert)) { _wlb_verify_cert = value; Changed = true; NotifyPropertyChanged("wlb_verify_cert"); } } } private bool _wlb_verify_cert = false; /// /// true a redo-log is to be used other than when HA is enabled, false otherwise /// First published in XenServer 5.6. /// public virtual bool redo_log_enabled { get { return _redo_log_enabled; } set { if (!Helper.AreEqual(value, _redo_log_enabled)) { _redo_log_enabled = value; Changed = true; NotifyPropertyChanged("redo_log_enabled"); } } } private bool _redo_log_enabled = false; /// /// indicates the VDI to use for the redo-log other than when HA is enabled /// First published in XenServer 5.6. /// [JsonConverter(typeof(XenRefConverter))] public virtual XenRef redo_log_vdi { get { return _redo_log_vdi; } set { if (!Helper.AreEqual(value, _redo_log_vdi)) { _redo_log_vdi = value; Changed = true; NotifyPropertyChanged("redo_log_vdi"); } } } private XenRef _redo_log_vdi = new XenRef("OpaqueRef:NULL"); /// /// address of the vswitch controller /// First published in XenServer 5.6. /// public virtual string vswitch_controller { get { return _vswitch_controller; } set { if (!Helper.AreEqual(value, _vswitch_controller)) { _vswitch_controller = value; Changed = true; NotifyPropertyChanged("vswitch_controller"); } } } private string _vswitch_controller = ""; /// /// Pool-wide restrictions currently in effect /// First published in XenServer 5.6. /// [JsonConverter(typeof(StringStringMapConverter))] public virtual Dictionary restrictions { get { return _restrictions; } set { if (!Helper.AreEqual(value, _restrictions)) { _restrictions = value; Changed = true; NotifyPropertyChanged("restrictions"); } } } private Dictionary _restrictions = new Dictionary() {}; /// /// The set of currently known metadata VDIs for this pool /// First published in XenServer 6.0. /// [JsonConverter(typeof(XenRefListConverter))] public virtual List> metadata_VDIs { get { return _metadata_VDIs; } set { if (!Helper.AreEqual(value, _metadata_VDIs)) { _metadata_VDIs = value; Changed = true; NotifyPropertyChanged("metadata_VDIs"); } } } private List> _metadata_VDIs = new List>() {}; /// /// The HA cluster stack that is currently in use. Only valid when HA is enabled. /// First published in XenServer 7.0. /// public virtual string ha_cluster_stack { get { return _ha_cluster_stack; } set { if (!Helper.AreEqual(value, _ha_cluster_stack)) { _ha_cluster_stack = value; Changed = true; NotifyPropertyChanged("ha_cluster_stack"); } } } private string _ha_cluster_stack = ""; /// /// 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 = new List() {}; /// /// 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 = new Dictionary() {}; /// /// Pool-wide guest agent configuration information /// First published in XenServer 7.0. /// [JsonConverter(typeof(StringStringMapConverter))] public virtual Dictionary guest_agent_config { get { return _guest_agent_config; } set { if (!Helper.AreEqual(value, _guest_agent_config)) { _guest_agent_config = value; Changed = true; NotifyPropertyChanged("guest_agent_config"); } } } private Dictionary _guest_agent_config = new Dictionary() {}; /// /// Details about the physical CPUs on the pool /// First published in XenServer 7.0. /// [JsonConverter(typeof(StringStringMapConverter))] public virtual Dictionary cpu_info { get { return _cpu_info; } set { if (!Helper.AreEqual(value, _cpu_info)) { _cpu_info = value; Changed = true; NotifyPropertyChanged("cpu_info"); } } } private Dictionary _cpu_info = new Dictionary() {}; /// /// The pool-wide policy for clients on whether to use the vendor device or not on newly created VMs. This field will also be consulted if the 'has_vendor_device' field is not specified in the VM.create call. /// First published in XenServer 7.0. /// public virtual bool policy_no_vendor_device { get { return _policy_no_vendor_device; } set { if (!Helper.AreEqual(value, _policy_no_vendor_device)) { _policy_no_vendor_device = value; Changed = true; NotifyPropertyChanged("policy_no_vendor_device"); } } } private bool _policy_no_vendor_device = false; /// /// The pool-wide flag to show if the live patching feauture is disabled or not. /// First published in XenServer 7.1. /// public virtual bool live_patching_disabled { get { return _live_patching_disabled; } set { if (!Helper.AreEqual(value, _live_patching_disabled)) { _live_patching_disabled = value; Changed = true; NotifyPropertyChanged("live_patching_disabled"); } } } private bool _live_patching_disabled = false; /// /// true if IGMP snooping is enabled in the pool, false otherwise. /// First published in XenServer 7.3. /// public virtual bool igmp_snooping_enabled { get { return _igmp_snooping_enabled; } set { if (!Helper.AreEqual(value, _igmp_snooping_enabled)) { _igmp_snooping_enabled = value; Changed = true; NotifyPropertyChanged("igmp_snooping_enabled"); } } } private bool _igmp_snooping_enabled = false; } }