/* * Copyright (c) Citrix Systems, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1) Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2) Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ using System; using System.Collections; using System.Collections.Generic; using CookComputing.XmlRpc; namespace XenAPI { /// /// A physical network interface (note separate VLANs are represented as several PIFs) /// First published in XenServer 4.0. /// public partial class PIF : XenObject { public PIF() { } public PIF(string uuid, string device, XenRef network, XenRef host, string MAC, long MTU, long VLAN, XenRef metrics, bool physical, bool currently_attached, ip_configuration_mode ip_configuration_mode, string IP, string netmask, string gateway, string DNS, XenRef bond_slave_of, List> bond_master_of, XenRef VLAN_master_of, List> VLAN_slave_of, bool management, Dictionary other_config, bool disallow_unplug, List> tunnel_access_PIF_of, List> tunnel_transport_PIF_of, ipv6_configuration_mode ipv6_configuration_mode, string[] IPv6, string ipv6_gateway, primary_address_type primary_address_type, bool managed, Dictionary properties) { this.uuid = uuid; this.device = device; this.network = network; this.host = host; this.MAC = MAC; this.MTU = MTU; this.VLAN = VLAN; this.metrics = metrics; this.physical = physical; this.currently_attached = currently_attached; this.ip_configuration_mode = ip_configuration_mode; this.IP = IP; this.netmask = netmask; this.gateway = gateway; this.DNS = DNS; this.bond_slave_of = bond_slave_of; this.bond_master_of = bond_master_of; this.VLAN_master_of = VLAN_master_of; this.VLAN_slave_of = VLAN_slave_of; this.management = management; this.other_config = other_config; this.disallow_unplug = disallow_unplug; this.tunnel_access_PIF_of = tunnel_access_PIF_of; this.tunnel_transport_PIF_of = tunnel_transport_PIF_of; this.ipv6_configuration_mode = ipv6_configuration_mode; this.IPv6 = IPv6; this.ipv6_gateway = ipv6_gateway; this.primary_address_type = primary_address_type; this.managed = managed; this.properties = properties; } /// /// Creates a new PIF from a Proxy_PIF. /// /// public PIF(Proxy_PIF proxy) { this.UpdateFromProxy(proxy); } public override void UpdateFrom(PIF update) { uuid = update.uuid; device = update.device; network = update.network; host = update.host; MAC = update.MAC; MTU = update.MTU; VLAN = update.VLAN; metrics = update.metrics; physical = update.physical; currently_attached = update.currently_attached; ip_configuration_mode = update.ip_configuration_mode; IP = update.IP; netmask = update.netmask; gateway = update.gateway; DNS = update.DNS; bond_slave_of = update.bond_slave_of; bond_master_of = update.bond_master_of; VLAN_master_of = update.VLAN_master_of; VLAN_slave_of = update.VLAN_slave_of; management = update.management; other_config = update.other_config; disallow_unplug = update.disallow_unplug; tunnel_access_PIF_of = update.tunnel_access_PIF_of; tunnel_transport_PIF_of = update.tunnel_transport_PIF_of; ipv6_configuration_mode = update.ipv6_configuration_mode; IPv6 = update.IPv6; ipv6_gateway = update.ipv6_gateway; primary_address_type = update.primary_address_type; managed = update.managed; properties = update.properties; } internal void UpdateFromProxy(Proxy_PIF proxy) { uuid = proxy.uuid == null ? null : (string)proxy.uuid; device = proxy.device == null ? null : (string)proxy.device; network = proxy.network == null ? null : XenRef.Create(proxy.network); host = proxy.host == null ? null : XenRef.Create(proxy.host); MAC = proxy.MAC == null ? null : (string)proxy.MAC; MTU = proxy.MTU == null ? 0 : long.Parse((string)proxy.MTU); VLAN = proxy.VLAN == null ? 0 : long.Parse((string)proxy.VLAN); metrics = proxy.metrics == null ? null : XenRef.Create(proxy.metrics); physical = (bool)proxy.physical; currently_attached = (bool)proxy.currently_attached; ip_configuration_mode = proxy.ip_configuration_mode == null ? (ip_configuration_mode) 0 : (ip_configuration_mode)Helper.EnumParseDefault(typeof(ip_configuration_mode), (string)proxy.ip_configuration_mode); IP = proxy.IP == null ? null : (string)proxy.IP; netmask = proxy.netmask == null ? null : (string)proxy.netmask; gateway = proxy.gateway == null ? null : (string)proxy.gateway; DNS = proxy.DNS == null ? null : (string)proxy.DNS; bond_slave_of = proxy.bond_slave_of == null ? null : XenRef.Create(proxy.bond_slave_of); bond_master_of = proxy.bond_master_of == null ? null : XenRef.Create(proxy.bond_master_of); VLAN_master_of = proxy.VLAN_master_of == null ? null : XenRef.Create(proxy.VLAN_master_of); VLAN_slave_of = proxy.VLAN_slave_of == null ? null : XenRef.Create(proxy.VLAN_slave_of); management = (bool)proxy.management; other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config); disallow_unplug = (bool)proxy.disallow_unplug; tunnel_access_PIF_of = proxy.tunnel_access_PIF_of == null ? null : XenRef.Create(proxy.tunnel_access_PIF_of); tunnel_transport_PIF_of = proxy.tunnel_transport_PIF_of == null ? null : XenRef.Create(proxy.tunnel_transport_PIF_of); ipv6_configuration_mode = proxy.ipv6_configuration_mode == null ? (ipv6_configuration_mode) 0 : (ipv6_configuration_mode)Helper.EnumParseDefault(typeof(ipv6_configuration_mode), (string)proxy.ipv6_configuration_mode); IPv6 = proxy.IPv6 == null ? new string[] {} : (string [])proxy.IPv6; ipv6_gateway = proxy.ipv6_gateway == null ? null : (string)proxy.ipv6_gateway; primary_address_type = proxy.primary_address_type == null ? (primary_address_type) 0 : (primary_address_type)Helper.EnumParseDefault(typeof(primary_address_type), (string)proxy.primary_address_type); managed = (bool)proxy.managed; properties = proxy.properties == null ? null : Maps.convert_from_proxy_string_string(proxy.properties); } public Proxy_PIF ToProxy() { Proxy_PIF result_ = new Proxy_PIF(); result_.uuid = (uuid != null) ? uuid : ""; result_.device = (device != null) ? device : ""; result_.network = (network != null) ? network : ""; result_.host = (host != null) ? host : ""; result_.MAC = (MAC != null) ? MAC : ""; result_.MTU = MTU.ToString(); result_.VLAN = VLAN.ToString(); result_.metrics = (metrics != null) ? metrics : ""; result_.physical = physical; result_.currently_attached = currently_attached; result_.ip_configuration_mode = ip_configuration_mode_helper.ToString(ip_configuration_mode); result_.IP = (IP != null) ? IP : ""; result_.netmask = (netmask != null) ? netmask : ""; result_.gateway = (gateway != null) ? gateway : ""; result_.DNS = (DNS != null) ? DNS : ""; result_.bond_slave_of = (bond_slave_of != null) ? bond_slave_of : ""; result_.bond_master_of = (bond_master_of != null) ? Helper.RefListToStringArray(bond_master_of) : new string[] {}; result_.VLAN_master_of = (VLAN_master_of != null) ? VLAN_master_of : ""; result_.VLAN_slave_of = (VLAN_slave_of != null) ? Helper.RefListToStringArray(VLAN_slave_of) : new string[] {}; result_.management = management; result_.other_config = Maps.convert_to_proxy_string_string(other_config); result_.disallow_unplug = disallow_unplug; result_.tunnel_access_PIF_of = (tunnel_access_PIF_of != null) ? Helper.RefListToStringArray(tunnel_access_PIF_of) : new string[] {}; result_.tunnel_transport_PIF_of = (tunnel_transport_PIF_of != null) ? Helper.RefListToStringArray(tunnel_transport_PIF_of) : new string[] {}; result_.ipv6_configuration_mode = ipv6_configuration_mode_helper.ToString(ipv6_configuration_mode); result_.IPv6 = IPv6; result_.ipv6_gateway = (ipv6_gateway != null) ? ipv6_gateway : ""; result_.primary_address_type = primary_address_type_helper.ToString(primary_address_type); result_.managed = managed; result_.properties = Maps.convert_to_proxy_string_string(properties); return result_; } /// /// Creates a new PIF from a Hashtable. /// /// public PIF(Hashtable table) { uuid = Marshalling.ParseString(table, "uuid"); device = Marshalling.ParseString(table, "device"); network = Marshalling.ParseRef(table, "network"); host = Marshalling.ParseRef(table, "host"); MAC = Marshalling.ParseString(table, "MAC"); MTU = Marshalling.ParseLong(table, "MTU"); VLAN = Marshalling.ParseLong(table, "VLAN"); metrics = Marshalling.ParseRef(table, "metrics"); physical = Marshalling.ParseBool(table, "physical"); currently_attached = Marshalling.ParseBool(table, "currently_attached"); ip_configuration_mode = (ip_configuration_mode)Helper.EnumParseDefault(typeof(ip_configuration_mode), Marshalling.ParseString(table, "ip_configuration_mode")); IP = Marshalling.ParseString(table, "IP"); netmask = Marshalling.ParseString(table, "netmask"); gateway = Marshalling.ParseString(table, "gateway"); DNS = Marshalling.ParseString(table, "DNS"); bond_slave_of = Marshalling.ParseRef(table, "bond_slave_of"); bond_master_of = Marshalling.ParseSetRef(table, "bond_master_of"); VLAN_master_of = Marshalling.ParseRef(table, "VLAN_master_of"); VLAN_slave_of = Marshalling.ParseSetRef(table, "VLAN_slave_of"); management = Marshalling.ParseBool(table, "management"); other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config")); disallow_unplug = Marshalling.ParseBool(table, "disallow_unplug"); tunnel_access_PIF_of = Marshalling.ParseSetRef(table, "tunnel_access_PIF_of"); tunnel_transport_PIF_of = Marshalling.ParseSetRef(table, "tunnel_transport_PIF_of"); ipv6_configuration_mode = (ipv6_configuration_mode)Helper.EnumParseDefault(typeof(ipv6_configuration_mode), Marshalling.ParseString(table, "ipv6_configuration_mode")); IPv6 = Marshalling.ParseStringArray(table, "IPv6"); ipv6_gateway = Marshalling.ParseString(table, "ipv6_gateway"); primary_address_type = (primary_address_type)Helper.EnumParseDefault(typeof(primary_address_type), Marshalling.ParseString(table, "primary_address_type")); managed = Marshalling.ParseBool(table, "managed"); properties = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "properties")); } public bool DeepEquals(PIF other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return Helper.AreEqual2(this._uuid, other._uuid) && Helper.AreEqual2(this._device, other._device) && Helper.AreEqual2(this._network, other._network) && Helper.AreEqual2(this._host, other._host) && Helper.AreEqual2(this._MAC, other._MAC) && Helper.AreEqual2(this._MTU, other._MTU) && Helper.AreEqual2(this._VLAN, other._VLAN) && Helper.AreEqual2(this._metrics, other._metrics) && Helper.AreEqual2(this._physical, other._physical) && Helper.AreEqual2(this._currently_attached, other._currently_attached) && Helper.AreEqual2(this._ip_configuration_mode, other._ip_configuration_mode) && Helper.AreEqual2(this._IP, other._IP) && Helper.AreEqual2(this._netmask, other._netmask) && Helper.AreEqual2(this._gateway, other._gateway) && Helper.AreEqual2(this._DNS, other._DNS) && Helper.AreEqual2(this._bond_slave_of, other._bond_slave_of) && Helper.AreEqual2(this._bond_master_of, other._bond_master_of) && Helper.AreEqual2(this._VLAN_master_of, other._VLAN_master_of) && Helper.AreEqual2(this._VLAN_slave_of, other._VLAN_slave_of) && Helper.AreEqual2(this._management, other._management) && Helper.AreEqual2(this._other_config, other._other_config) && Helper.AreEqual2(this._disallow_unplug, other._disallow_unplug) && Helper.AreEqual2(this._tunnel_access_PIF_of, other._tunnel_access_PIF_of) && Helper.AreEqual2(this._tunnel_transport_PIF_of, other._tunnel_transport_PIF_of) && Helper.AreEqual2(this._ipv6_configuration_mode, other._ipv6_configuration_mode) && Helper.AreEqual2(this._IPv6, other._IPv6) && Helper.AreEqual2(this._ipv6_gateway, other._ipv6_gateway) && Helper.AreEqual2(this._primary_address_type, other._primary_address_type) && Helper.AreEqual2(this._managed, other._managed) && Helper.AreEqual2(this._properties, other._properties); } public override string SaveChanges(Session session, string opaqueRef, PIF server) { if (opaqueRef == null) { System.Diagnostics.Debug.Assert(false, "Cannot create instances of this type on the server"); return ""; } else { if (!Helper.AreEqual2(_other_config, server._other_config)) { PIF.set_other_config(session, opaqueRef, _other_config); } if (!Helper.AreEqual2(_disallow_unplug, server._disallow_unplug)) { PIF.set_disallow_unplug(session, opaqueRef, _disallow_unplug); } return null; } } /// /// Get a record containing the current state of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static PIF get_record(Session session, string _pif) { return new PIF((Proxy_PIF)session.proxy.pif_get_record(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get a reference to the PIF instance with the specified UUID. /// First published in XenServer 4.0. /// /// The session /// UUID of object to return public static XenRef get_by_uuid(Session session, string _uuid) { return XenRef.Create(session.proxy.pif_get_by_uuid(session.uuid, (_uuid != null) ? _uuid : "").parse()); } /// /// Get the uuid field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static string get_uuid(Session session, string _pif) { return (string)session.proxy.pif_get_uuid(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the device field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static string get_device(Session session, string _pif) { return (string)session.proxy.pif_get_device(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the network field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static XenRef get_network(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_network(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the host field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static XenRef get_host(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_host(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the MAC field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static string get_MAC(Session session, string _pif) { return (string)session.proxy.pif_get_mac(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the MTU field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static long get_MTU(Session session, string _pif) { return long.Parse((string)session.proxy.pif_get_mtu(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the VLAN field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static long get_VLAN(Session session, string _pif) { return long.Parse((string)session.proxy.pif_get_vlan(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the metrics field of the given PIF. /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static XenRef get_metrics(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_metrics(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the physical field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static bool get_physical(Session session, string _pif) { return (bool)session.proxy.pif_get_physical(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the currently_attached field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static bool get_currently_attached(Session session, string _pif) { return (bool)session.proxy.pif_get_currently_attached(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the ip_configuration_mode field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static ip_configuration_mode get_ip_configuration_mode(Session session, string _pif) { return (ip_configuration_mode)Helper.EnumParseDefault(typeof(ip_configuration_mode), (string)session.proxy.pif_get_ip_configuration_mode(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the IP field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static string get_IP(Session session, string _pif) { return (string)session.proxy.pif_get_ip(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the netmask field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static string get_netmask(Session session, string _pif) { return (string)session.proxy.pif_get_netmask(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the gateway field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static string get_gateway(Session session, string _pif) { return (string)session.proxy.pif_get_gateway(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the DNS field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static string get_DNS(Session session, string _pif) { return (string)session.proxy.pif_get_dns(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the bond_slave_of field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static XenRef get_bond_slave_of(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_bond_slave_of(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the bond_master_of field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static List> get_bond_master_of(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_bond_master_of(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the VLAN_master_of field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static XenRef get_VLAN_master_of(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_vlan_master_of(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the VLAN_slave_of field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static List> get_VLAN_slave_of(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_vlan_slave_of(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the management field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static bool get_management(Session session, string _pif) { return (bool)session.proxy.pif_get_management(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the other_config field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static Dictionary get_other_config(Session session, string _pif) { return Maps.convert_from_proxy_string_string(session.proxy.pif_get_other_config(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the disallow_unplug field of the given PIF. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pif public static bool get_disallow_unplug(Session session, string _pif) { return (bool)session.proxy.pif_get_disallow_unplug(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the tunnel_access_PIF_of field of the given PIF. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given pif public static List> get_tunnel_access_PIF_of(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_tunnel_access_pif_of(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the tunnel_transport_PIF_of field of the given PIF. /// First published in XenServer 5.6 FP1. /// /// The session /// The opaque_ref of the given pif public static List> get_tunnel_transport_PIF_of(Session session, string _pif) { return XenRef.Create(session.proxy.pif_get_tunnel_transport_pif_of(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the ipv6_configuration_mode field of the given PIF. /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif public static ipv6_configuration_mode get_ipv6_configuration_mode(Session session, string _pif) { return (ipv6_configuration_mode)Helper.EnumParseDefault(typeof(ipv6_configuration_mode), (string)session.proxy.pif_get_ipv6_configuration_mode(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the IPv6 field of the given PIF. /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif public static string[] get_IPv6(Session session, string _pif) { return (string [])session.proxy.pif_get_ipv6(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the ipv6_gateway field of the given PIF. /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif public static string get_ipv6_gateway(Session session, string _pif) { return (string)session.proxy.pif_get_ipv6_gateway(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the primary_address_type field of the given PIF. /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif public static primary_address_type get_primary_address_type(Session session, string _pif) { return (primary_address_type)Helper.EnumParseDefault(typeof(primary_address_type), (string)session.proxy.pif_get_primary_address_type(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Get the managed field of the given PIF. /// First published in XenServer 6.2 SP1. /// /// The session /// The opaque_ref of the given pif public static bool get_managed(Session session, string _pif) { return (bool)session.proxy.pif_get_managed(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Get the properties field of the given PIF. /// First published in XenServer 6.5. /// /// The session /// The opaque_ref of the given pif public static Dictionary get_properties(Session session, string _pif) { return Maps.convert_from_proxy_string_string(session.proxy.pif_get_properties(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Set the other_config field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif /// New value to set public static void set_other_config(Session session, string _pif, Dictionary _other_config) { session.proxy.pif_set_other_config(session.uuid, (_pif != null) ? _pif : "", Maps.convert_to_proxy_string_string(_other_config)).parse(); } /// /// Add the given key-value pair to the other_config field of the given PIF. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif /// Key to add /// Value to add public static void add_to_other_config(Session session, string _pif, string _key, string _value) { session.proxy.pif_add_to_other_config(session.uuid, (_pif != null) ? _pif : "", (_key != null) ? _key : "", (_value != null) ? _value : "").parse(); } /// /// Remove the given key and its corresponding value from the other_config field of the given PIF. If the key is not in that Map, then do nothing. /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif /// Key to remove public static void remove_from_other_config(Session session, string _pif, string _key) { session.proxy.pif_remove_from_other_config(session.uuid, (_pif != null) ? _pif : "", (_key != null) ? _key : "").parse(); } /// /// Set the disallow_unplug field of the given PIF. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pif /// New value to set public static void set_disallow_unplug(Session session, string _pif, bool _disallow_unplug) { session.proxy.pif_set_disallow_unplug(session.uuid, (_pif != null) ? _pif : "", _disallow_unplug).parse(); } /// /// Create a VLAN interface from an existing physical interface. This call is deprecated: use VLAN.create 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 /// physical machine to which this PIF is connected /// VLAN tag for the new interface public static XenRef create_VLAN(Session session, string _device, string _network, string _host, long _vlan) { return XenRef.Create(session.proxy.pif_create_vlan(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", _vlan.ToString()).parse()); } /// /// Create a VLAN interface from an existing physical interface. This call is deprecated: use VLAN.create 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 /// physical machine to which this PIF is connected /// VLAN tag for the new interface public static XenRef async_create_VLAN(Session session, string _device, string _network, string _host, long _vlan) { return XenRef.Create(session.proxy.async_pif_create_vlan(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", _vlan.ToString()).parse()); } /// /// Destroy the PIF object (provided it is a VLAN interface). This call is deprecated: use VLAN.destroy or Bond.destroy instead /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static void destroy(Session session, string _pif) { session.proxy.pif_destroy(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Destroy the PIF object (provided it is a VLAN interface). This call is deprecated: use VLAN.destroy or Bond.destroy instead /// First published in XenServer 4.0. /// /// The session /// The opaque_ref of the given pif public static XenRef async_destroy(Session session, string _pif) { return XenRef.Create(session.proxy.async_pif_destroy(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Reconfigure the IP address settings for this interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif /// whether to use dynamic/static/no-assignment /// the new IP address /// the new netmask /// the new gateway /// the new DNS settings public static void reconfigure_ip(Session session, string _pif, ip_configuration_mode _mode, string _ip, string _netmask, string _gateway, string _dns) { session.proxy.pif_reconfigure_ip(session.uuid, (_pif != null) ? _pif : "", ip_configuration_mode_helper.ToString(_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "").parse(); } /// /// Reconfigure the IP address settings for this interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif /// whether to use dynamic/static/no-assignment /// the new IP address /// the new netmask /// the new gateway /// the new DNS settings public static XenRef async_reconfigure_ip(Session session, string _pif, ip_configuration_mode _mode, string _ip, string _netmask, string _gateway, string _dns) { return XenRef.Create(session.proxy.async_pif_reconfigure_ip(session.uuid, (_pif != null) ? _pif : "", ip_configuration_mode_helper.ToString(_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "").parse()); } /// /// Reconfigure the IPv6 address settings for this interface /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif /// whether to use dynamic/static/no-assignment /// the new IPv6 address (in / format) /// the new gateway /// the new DNS settings public static void reconfigure_ipv6(Session session, string _pif, ipv6_configuration_mode _mode, string _ipv6, string _gateway, string _dns) { session.proxy.pif_reconfigure_ipv6(session.uuid, (_pif != null) ? _pif : "", ipv6_configuration_mode_helper.ToString(_mode), (_ipv6 != null) ? _ipv6 : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "").parse(); } /// /// Reconfigure the IPv6 address settings for this interface /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif /// whether to use dynamic/static/no-assignment /// the new IPv6 address (in / format) /// the new gateway /// the new DNS settings public static XenRef async_reconfigure_ipv6(Session session, string _pif, ipv6_configuration_mode _mode, string _ipv6, string _gateway, string _dns) { return XenRef.Create(session.proxy.async_pif_reconfigure_ipv6(session.uuid, (_pif != null) ? _pif : "", ipv6_configuration_mode_helper.ToString(_mode), (_ipv6 != null) ? _ipv6 : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "").parse()); } /// /// Change the primary address type used by this PIF /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif /// Whether to prefer IPv4 or IPv6 connections public static void set_primary_address_type(Session session, string _pif, primary_address_type _primary_address_type) { session.proxy.pif_set_primary_address_type(session.uuid, (_pif != null) ? _pif : "", primary_address_type_helper.ToString(_primary_address_type)).parse(); } /// /// Change the primary address type used by this PIF /// Experimental. First published in XenServer 6.1. /// /// The session /// The opaque_ref of the given pif /// Whether to prefer IPv4 or IPv6 connections public static XenRef async_set_primary_address_type(Session session, string _pif, primary_address_type _primary_address_type) { return XenRef.Create(session.proxy.async_pif_set_primary_address_type(session.uuid, (_pif != null) ? _pif : "", primary_address_type_helper.ToString(_primary_address_type)).parse()); } /// /// Scan for physical interfaces on a host and create PIF objects to represent them /// First published in XenServer 4.1. /// /// The session /// The host on which to scan public static void scan(Session session, string _host) { session.proxy.pif_scan(session.uuid, (_host != null) ? _host : "").parse(); } /// /// Scan for physical interfaces on a host and create PIF objects to represent them /// First published in XenServer 4.1. /// /// The session /// The host on which to scan public static XenRef async_scan(Session session, string _host) { return XenRef.Create(session.proxy.async_pif_scan(session.uuid, (_host != null) ? _host : "").parse()); } /// /// Create a PIF object matching a particular network interface /// First published in XenServer 4.1. /// /// The session /// The host on which the interface exists /// The MAC address of the interface /// The device name to use for the interface public static XenRef introduce(Session session, string _host, string _mac, string _device) { return XenRef.Create(session.proxy.pif_introduce(session.uuid, (_host != null) ? _host : "", (_mac != null) ? _mac : "", (_device != null) ? _device : "").parse()); } /// /// Create a PIF object matching a particular network interface /// First published in XenServer 4.1. /// /// The session /// The host on which the interface exists /// The MAC address of the interface /// The device name to use for the interface public static XenRef async_introduce(Session session, string _host, string _mac, string _device) { return XenRef.Create(session.proxy.async_pif_introduce(session.uuid, (_host != null) ? _host : "", (_mac != null) ? _mac : "", (_device != null) ? _device : "").parse()); } /// /// Create a PIF object matching a particular network interface /// First published in XenServer 4.1. /// /// The session /// The host on which the interface exists /// The MAC address of the interface /// The device name to use for the interface /// Indicates whether the interface is managed by xapi (defaults to "true") First published in XenServer 6.2 SP1. public static XenRef introduce(Session session, string _host, string _mac, string _device, bool _managed) { return XenRef.Create(session.proxy.pif_introduce(session.uuid, (_host != null) ? _host : "", (_mac != null) ? _mac : "", (_device != null) ? _device : "", _managed).parse()); } /// /// Create a PIF object matching a particular network interface /// First published in XenServer 4.1. /// /// The session /// The host on which the interface exists /// The MAC address of the interface /// The device name to use for the interface /// Indicates whether the interface is managed by xapi (defaults to "true") First published in XenServer 6.2 SP1. public static XenRef async_introduce(Session session, string _host, string _mac, string _device, bool _managed) { return XenRef.Create(session.proxy.async_pif_introduce(session.uuid, (_host != null) ? _host : "", (_mac != null) ? _mac : "", (_device != null) ? _device : "", _managed).parse()); } /// /// Destroy the PIF object matching a particular network interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static void forget(Session session, string _pif) { session.proxy.pif_forget(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Destroy the PIF object matching a particular network interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static XenRef async_forget(Session session, string _pif) { return XenRef.Create(session.proxy.async_pif_forget(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Attempt to bring down a physical interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static void unplug(Session session, string _pif) { session.proxy.pif_unplug(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Attempt to bring down a physical interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static XenRef async_unplug(Session session, string _pif) { return XenRef.Create(session.proxy.async_pif_unplug(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Attempt to bring up a physical interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static void plug(Session session, string _pif) { session.proxy.pif_plug(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Attempt to bring up a physical interface /// First published in XenServer 4.1. /// /// The session /// The opaque_ref of the given pif public static XenRef async_plug(Session session, string _pif) { return XenRef.Create(session.proxy.async_pif_plug(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// public static XenRef db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug) { return XenRef.Create(session.proxy.pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug).parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// public static XenRef async_db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug) { return XenRef.Create(session.proxy.async_pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug).parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. public static XenRef db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug, ipv6_configuration_mode _ipv6_configuration_mode, string[] _ipv6, string _ipv6_gateway, primary_address_type _primary_address_type) { return XenRef.Create(session.proxy.pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug, ipv6_configuration_mode_helper.ToString(_ipv6_configuration_mode), _ipv6, (_ipv6_gateway != null) ? _ipv6_gateway : "", primary_address_type_helper.ToString(_primary_address_type)).parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. public static XenRef async_db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug, ipv6_configuration_mode _ipv6_configuration_mode, string[] _ipv6, string _ipv6_gateway, primary_address_type _primary_address_type) { return XenRef.Create(session.proxy.async_pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug, ipv6_configuration_mode_helper.ToString(_ipv6_configuration_mode), _ipv6, (_ipv6_gateway != null) ? _ipv6_gateway : "", primary_address_type_helper.ToString(_primary_address_type)).parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.2 SP1. public static XenRef db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug, ipv6_configuration_mode _ipv6_configuration_mode, string[] _ipv6, string _ipv6_gateway, primary_address_type _primary_address_type, bool _managed) { return XenRef.Create(session.proxy.pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug, ipv6_configuration_mode_helper.ToString(_ipv6_configuration_mode), _ipv6, (_ipv6_gateway != null) ? _ipv6_gateway : "", primary_address_type_helper.ToString(_primary_address_type), _managed).parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.2 SP1. public static XenRef async_db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug, ipv6_configuration_mode _ipv6_configuration_mode, string[] _ipv6, string _ipv6_gateway, primary_address_type _primary_address_type, bool _managed) { return XenRef.Create(session.proxy.async_pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug, ipv6_configuration_mode_helper.ToString(_ipv6_configuration_mode), _ipv6, (_ipv6_gateway != null) ? _ipv6_gateway : "", primary_address_type_helper.ToString(_primary_address_type), _managed).parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.2 SP1. /// First published in XenServer 6.5. public static XenRef db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug, ipv6_configuration_mode _ipv6_configuration_mode, string[] _ipv6, string _ipv6_gateway, primary_address_type _primary_address_type, bool _managed, Dictionary _properties) { return XenRef.Create(session.proxy.pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug, ipv6_configuration_mode_helper.ToString(_ipv6_configuration_mode), _ipv6, (_ipv6_gateway != null) ? _ipv6_gateway : "", primary_address_type_helper.ToString(_primary_address_type), _managed, Maps.convert_to_proxy_string_string(_properties)).parse()); } /// /// Create a new PIF record in the database only /// First published in XenServer 5.0. /// /// The session /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.0. /// First published in XenServer 6.2 SP1. /// First published in XenServer 6.5. public static XenRef async_db_introduce(Session session, string _device, string _network, string _host, string _mac, long _mtu, long _vlan, bool _physical, ip_configuration_mode _ip_configuration_mode, string _ip, string _netmask, string _gateway, string _dns, string _bond_slave_of, string _vlan_master_of, bool _management, Dictionary _other_config, bool _disallow_unplug, ipv6_configuration_mode _ipv6_configuration_mode, string[] _ipv6, string _ipv6_gateway, primary_address_type _primary_address_type, bool _managed, Dictionary _properties) { return XenRef.Create(session.proxy.async_pif_db_introduce(session.uuid, (_device != null) ? _device : "", (_network != null) ? _network : "", (_host != null) ? _host : "", (_mac != null) ? _mac : "", _mtu.ToString(), _vlan.ToString(), _physical, ip_configuration_mode_helper.ToString(_ip_configuration_mode), (_ip != null) ? _ip : "", (_netmask != null) ? _netmask : "", (_gateway != null) ? _gateway : "", (_dns != null) ? _dns : "", (_bond_slave_of != null) ? _bond_slave_of : "", (_vlan_master_of != null) ? _vlan_master_of : "", _management, Maps.convert_to_proxy_string_string(_other_config), _disallow_unplug, ipv6_configuration_mode_helper.ToString(_ipv6_configuration_mode), _ipv6, (_ipv6_gateway != null) ? _ipv6_gateway : "", primary_address_type_helper.ToString(_primary_address_type), _managed, Maps.convert_to_proxy_string_string(_properties)).parse()); } /// /// Destroy a PIF database record. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pif public static void db_forget(Session session, string _pif) { session.proxy.pif_db_forget(session.uuid, (_pif != null) ? _pif : "").parse(); } /// /// Destroy a PIF database record. /// First published in XenServer 5.0. /// /// The session /// The opaque_ref of the given pif public static XenRef async_db_forget(Session session, string _pif) { return XenRef.Create(session.proxy.async_pif_db_forget(session.uuid, (_pif != null) ? _pif : "").parse()); } /// /// Set the value of a property of the PIF /// First published in XenServer 6.5. /// /// The session /// The opaque_ref of the given pif /// The property name /// The property value public static void set_property(Session session, string _pif, string _name, string _value) { session.proxy.pif_set_property(session.uuid, (_pif != null) ? _pif : "", (_name != null) ? _name : "", (_value != null) ? _value : "").parse(); } /// /// Set the value of a property of the PIF /// First published in XenServer 6.5. /// /// The session /// The opaque_ref of the given pif /// The property name /// The property value public static XenRef async_set_property(Session session, string _pif, string _name, string _value) { return XenRef.Create(session.proxy.async_pif_set_property(session.uuid, (_pif != null) ? _pif : "", (_name != null) ? _name : "", (_value != null) ? _value : "").parse()); } /// /// Return a list of all the PIFs known to the system. /// First published in XenServer 4.0. /// /// The session public static List> get_all(Session session) { return XenRef.Create(session.proxy.pif_get_all(session.uuid).parse()); } /// /// Get all the PIF Records at once, in a single XML RPC call /// First published in XenServer 4.0. /// /// The session public static Dictionary, PIF> get_all_records(Session session) { return XenRef.Create(session.proxy.pif_get_all_records(session.uuid).parse()); } /// /// Unique identifier/object reference /// public virtual string uuid { get { return _uuid; } set { if (!Helper.AreEqual(value, _uuid)) { _uuid = value; Changed = true; NotifyPropertyChanged("uuid"); } } } private string _uuid; /// /// machine-readable name of the interface (e.g. eth0) /// public virtual string device { get { return _device; } set { if (!Helper.AreEqual(value, _device)) { _device = value; Changed = true; NotifyPropertyChanged("device"); } } } private string _device; /// /// virtual network to which this pif is connected /// public virtual XenRef network { get { return _network; } set { if (!Helper.AreEqual(value, _network)) { _network = value; Changed = true; NotifyPropertyChanged("network"); } } } private XenRef _network; /// /// physical machine to which this pif is connected /// public virtual XenRef host { get { return _host; } set { if (!Helper.AreEqual(value, _host)) { _host = value; Changed = true; NotifyPropertyChanged("host"); } } } private XenRef _host; /// /// ethernet MAC address of physical interface /// public virtual string MAC { get { return _MAC; } set { if (!Helper.AreEqual(value, _MAC)) { _MAC = value; Changed = true; NotifyPropertyChanged("MAC"); } } } private string _MAC; /// /// MTU in octets /// public virtual long MTU { get { return _MTU; } set { if (!Helper.AreEqual(value, _MTU)) { _MTU = value; Changed = true; NotifyPropertyChanged("MTU"); } } } private long _MTU; /// /// VLAN tag for all traffic passing through this interface /// public virtual long VLAN { get { return _VLAN; } set { if (!Helper.AreEqual(value, _VLAN)) { _VLAN = value; Changed = true; NotifyPropertyChanged("VLAN"); } } } private long _VLAN; /// /// metrics associated with this PIF /// public virtual XenRef metrics { get { return _metrics; } set { if (!Helper.AreEqual(value, _metrics)) { _metrics = value; Changed = true; NotifyPropertyChanged("metrics"); } } } private XenRef _metrics; /// /// true if this represents a physical network interface /// First published in XenServer 4.1. /// public virtual bool physical { get { return _physical; } set { if (!Helper.AreEqual(value, _physical)) { _physical = value; Changed = true; NotifyPropertyChanged("physical"); } } } private bool _physical; /// /// true if this interface is online /// First published in XenServer 4.1. /// public virtual bool currently_attached { get { return _currently_attached; } set { if (!Helper.AreEqual(value, _currently_attached)) { _currently_attached = value; Changed = true; NotifyPropertyChanged("currently_attached"); } } } private bool _currently_attached; /// /// Sets if and how this interface gets an IP address /// First published in XenServer 4.1. /// public virtual ip_configuration_mode ip_configuration_mode { get { return _ip_configuration_mode; } set { if (!Helper.AreEqual(value, _ip_configuration_mode)) { _ip_configuration_mode = value; Changed = true; NotifyPropertyChanged("ip_configuration_mode"); } } } private ip_configuration_mode _ip_configuration_mode; /// /// IP address /// First published in XenServer 4.1. /// public virtual string IP { get { return _IP; } set { if (!Helper.AreEqual(value, _IP)) { _IP = value; Changed = true; NotifyPropertyChanged("IP"); } } } private string _IP; /// /// IP netmask /// First published in XenServer 4.1. /// public virtual string netmask { get { return _netmask; } set { if (!Helper.AreEqual(value, _netmask)) { _netmask = value; Changed = true; NotifyPropertyChanged("netmask"); } } } private string _netmask; /// /// IP gateway /// First published in XenServer 4.1. /// public virtual string gateway { get { return _gateway; } set { if (!Helper.AreEqual(value, _gateway)) { _gateway = value; Changed = true; NotifyPropertyChanged("gateway"); } } } private string _gateway; /// /// IP address of DNS servers to use /// First published in XenServer 4.1. /// public virtual string DNS { get { return _DNS; } set { if (!Helper.AreEqual(value, _DNS)) { _DNS = value; Changed = true; NotifyPropertyChanged("DNS"); } } } private string _DNS; /// /// Indicates which bond this interface is part of /// First published in XenServer 4.1. /// public virtual XenRef bond_slave_of { get { return _bond_slave_of; } set { if (!Helper.AreEqual(value, _bond_slave_of)) { _bond_slave_of = value; Changed = true; NotifyPropertyChanged("bond_slave_of"); } } } private XenRef _bond_slave_of; /// /// Indicates this PIF represents the results of a bond /// First published in XenServer 4.1. /// public virtual List> bond_master_of { get { return _bond_master_of; } set { if (!Helper.AreEqual(value, _bond_master_of)) { _bond_master_of = value; Changed = true; NotifyPropertyChanged("bond_master_of"); } } } private List> _bond_master_of; /// /// Indicates wich VLAN this interface receives untagged traffic from /// First published in XenServer 4.1. /// public virtual XenRef VLAN_master_of { get { return _VLAN_master_of; } set { if (!Helper.AreEqual(value, _VLAN_master_of)) { _VLAN_master_of = value; Changed = true; NotifyPropertyChanged("VLAN_master_of"); } } } private XenRef _VLAN_master_of; /// /// Indicates which VLANs this interface transmits tagged traffic to /// First published in XenServer 4.1. /// public virtual List> VLAN_slave_of { get { return _VLAN_slave_of; } set { if (!Helper.AreEqual(value, _VLAN_slave_of)) { _VLAN_slave_of = value; Changed = true; NotifyPropertyChanged("VLAN_slave_of"); } } } private List> _VLAN_slave_of; /// /// Indicates whether the control software is listening for connections on this interface /// First published in XenServer 4.1. /// public virtual bool management { get { return _management; } set { if (!Helper.AreEqual(value, _management)) { _management = value; Changed = true; NotifyPropertyChanged("management"); } } } private bool _management; /// /// Additional configuration /// First published in XenServer 4.1. /// 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; /// /// Prevent this PIF from being unplugged; set this to notify the management tool-stack that the PIF has a special use and should not be unplugged under any circumstances (e.g. because you're running storage traffic over it) /// First published in XenServer 5.0. /// public virtual bool disallow_unplug { get { return _disallow_unplug; } set { if (!Helper.AreEqual(value, _disallow_unplug)) { _disallow_unplug = value; Changed = true; NotifyPropertyChanged("disallow_unplug"); } } } private bool _disallow_unplug; /// /// Indicates to which tunnel this PIF gives access /// First published in XenServer 5.6 FP1. /// public virtual List> tunnel_access_PIF_of { get { return _tunnel_access_PIF_of; } set { if (!Helper.AreEqual(value, _tunnel_access_PIF_of)) { _tunnel_access_PIF_of = value; Changed = true; NotifyPropertyChanged("tunnel_access_PIF_of"); } } } private List> _tunnel_access_PIF_of; /// /// Indicates to which tunnel this PIF provides transport /// First published in XenServer 5.6 FP1. /// public virtual List> tunnel_transport_PIF_of { get { return _tunnel_transport_PIF_of; } set { if (!Helper.AreEqual(value, _tunnel_transport_PIF_of)) { _tunnel_transport_PIF_of = value; Changed = true; NotifyPropertyChanged("tunnel_transport_PIF_of"); } } } private List> _tunnel_transport_PIF_of; /// /// Sets if and how this interface gets an IPv6 address /// Experimental. First published in XenServer 6.1. /// public virtual ipv6_configuration_mode ipv6_configuration_mode { get { return _ipv6_configuration_mode; } set { if (!Helper.AreEqual(value, _ipv6_configuration_mode)) { _ipv6_configuration_mode = value; Changed = true; NotifyPropertyChanged("ipv6_configuration_mode"); } } } private ipv6_configuration_mode _ipv6_configuration_mode; /// /// IPv6 address /// Experimental. First published in XenServer 6.1. /// public virtual string[] IPv6 { get { return _IPv6; } set { if (!Helper.AreEqual(value, _IPv6)) { _IPv6 = value; Changed = true; NotifyPropertyChanged("IPv6"); } } } private string[] _IPv6; /// /// IPv6 gateway /// Experimental. First published in XenServer 6.1. /// public virtual string ipv6_gateway { get { return _ipv6_gateway; } set { if (!Helper.AreEqual(value, _ipv6_gateway)) { _ipv6_gateway = value; Changed = true; NotifyPropertyChanged("ipv6_gateway"); } } } private string _ipv6_gateway; /// /// Which protocol should define the primary address of this interface /// Experimental. First published in XenServer 6.1. /// public virtual primary_address_type primary_address_type { get { return _primary_address_type; } set { if (!Helper.AreEqual(value, _primary_address_type)) { _primary_address_type = value; Changed = true; NotifyPropertyChanged("primary_address_type"); } } } private primary_address_type _primary_address_type; /// /// Indicates whether the interface is managed by xapi. If it is not, then xapi will not configure the interface, the commands PIF.plug/unplug/reconfigure_ip(v6) can not be used, nor can the interface be bonded or have VLANs based on top through xapi. /// First published in XenServer 6.2 SP1. /// public virtual bool managed { get { return _managed; } set { if (!Helper.AreEqual(value, _managed)) { _managed = value; Changed = true; NotifyPropertyChanged("managed"); } } } private bool _managed; /// /// Additional configuration properties for the interface. /// First published in XenServer 6.5. /// public virtual Dictionary properties { get { return _properties; } set { if (!Helper.AreEqual(value, _properties)) { _properties = value; Changed = true; NotifyPropertyChanged("properties"); } } } private Dictionary _properties; } }