CP-19303: Bring in XAPI bindings for live patching

Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
This commit is contained in:
Gabor Apati-Nagy 2016-10-20 17:18:52 +01:00
parent da0ebc467c
commit a5d92c27c5
15 changed files with 2295 additions and 8 deletions

View File

@ -207,6 +207,9 @@
<data name="CANNOT_FIND_STATE_PARTITION" xml:space="preserve">
<value>The restore could not be performed because the state partition could not be found</value>
</data>
<data name="CANNOT_FIND_UPDATE" xml:space="preserve">
<value>The requested update could not be found. Please upload the update again. This can occur when you run xe update-pool-clean before xe update-apply. </value>
</data>
<data name="CANNOT_PLUG_BOND_SLAVE" xml:space="preserve">
<value>This PIF is a bond slave and cannot be plugged.</value>
</data>
@ -559,7 +562,7 @@
<value>The uploaded update file is invalid.</value>
</data>
<data name="INVALID_UPDATE" xml:space="preserve">
<value>The uploaded update package is invalid</value>
<value>The uploaded update package is invalid.</value>
</data>
<data name="INVALID_VALUE" xml:space="preserve">
<value>The value '{1}' is invalid for field '{0}'.</value>
@ -633,6 +636,9 @@
<data name="MAP_DUPLICATE_KEY" xml:space="preserve">
<value>INTERNAL ERROR: Attempted to set '{0}'.'{1}':'{3}'='{2}', but the key '{3}' was already present in map '{1}'.</value>
</data>
<data name="MEMORY_CONSTRAINT_VIOLATION" xml:space="preserve">
<value>The dynamic memory range does not satisfy the following constraint.</value>
</data>
<data name="MEM_MAX_ALLOWED" xml:space="preserve">
<value>You have reached the maximum amount of memory allowed for this virtual machine.</value>
</data>
@ -864,6 +870,24 @@
<data name="PROVISION_ONLY_ALLOWED_ON_TEMPLATE" xml:space="preserve">
<value>The provision call can only be invoked on templates, not regular VMs.</value>
</data>
<data name="PVS_CACHE_STORAGE_ALREADY_PRESENT" xml:space="preserve">
<value>The PVS site already has cache storage configured for the host.</value>
</data>
<data name="PVS_CACHE_STORAGE_IS_IN_USE" xml:space="preserve">
<value>The PVS cache storage is in use by the site and cannot be removed.</value>
</data>
<data name="PVS_PROXY_ALREADY_PRESENT" xml:space="preserve">
<value>The VIF is already associated with a PVS proxy</value>
</data>
<data name="PVS_SERVER_ADDRESS_IN_USE" xml:space="preserve">
<value>The address specified is already in use by an existing PVS_server object</value>
</data>
<data name="PVS_SITE_CONTAINS_RUNNING_PROXIES" xml:space="preserve">
<value>The PVS site contains running proxies.</value>
</data>
<data name="PVS_SITE_CONTAINS_SERVERS" xml:space="preserve">
<value>The PVS site contains servers and cannot be forgotten.</value>
</data>
<data name="RBAC_PERMISSION_DENIED" xml:space="preserve">
<value>Your current role is not authorized to perform this action.
Action: {0}</value>
@ -1544,6 +1568,9 @@ Authorized Roles: {1}</value>
<data name="SUBJECT_CANNOT_BE_RESOLVED" xml:space="preserve">
<value>Subject cannot be resolved by the external directory service.</value>
</data>
<data name="SUSPEND_IMAGE_NOT_ACCESSIBLE" xml:space="preserve">
<value>The suspend image of a checkpoint is not accessible from the host on which the VM is running</value>
</data>
<data name="SYSTEM_STATUS_MUST_USE_TAR_ON_OEM" xml:space="preserve">
<value>You must use tar output to retrieve system status from an OEM server.</value>
</data>
@ -1571,6 +1598,15 @@ Authorized Roles: {1}</value>
<data name="UNKNOWN_BOOTLOADER" xml:space="preserve">
<value>The requested bootloader {1} for VM {0} is unknown</value>
</data>
<data name="UPDATE_ALREADY_APPLIED" xml:space="preserve">
<value>This update has already been applied.</value>
</data>
<data name="UPDATE_ALREADY_APPLIED_IN_POOL" xml:space="preserve">
<value>This update has already been applied to all hosts in the pool.</value>
</data>
<data name="UPDATE_ALREADY_EXISTS" xml:space="preserve">
<value>The uploaded update already exists</value>
</data>
<data name="UPDATE_IS_APPLIED" xml:space="preserve">
<value>The specified update has been applied and cannot be destroyed.</value>
</data>
@ -1757,6 +1793,9 @@ Authorized Roles: {1}</value>
<data name="VM_HOST_INCOMPATIBLE_VERSION" xml:space="preserve">
<value>This VM operation cannot be performed on an older-versioned host during an upgrade.</value>
</data>
<data name="VM_HOST_INCOMPATIBLE_VERSION_MIGRATE" xml:space="preserve">
<value>You attempted to migrate a VM to a destination host running a version of XenServer older than the source host.</value>
</data>
<data name="VM_HOST_INCOMPATIBLE_VIRTUAL_HARDWARE_PLATFORM_VERSION" xml:space="preserve">
<value>The VM's Virtual Hardware Platform version is incompatible with this host.</value>
</data>

View File

@ -44,7 +44,7 @@ namespace XenAPI
/// </summary>
public partial class Message : XenObject<Message>
{
public enum MessageType { POOL_CPU_FEATURES_UP, POOL_CPU_FEATURES_DOWN, HOST_CPU_FEATURES_UP, HOST_CPU_FEATURES_DOWN, BOND_STATUS_CHANGED, VMPP_SNAPSHOT_ARCHIVE_ALREADY_EXISTS, VMPP_ARCHIVE_MISSED_EVENT, VMPP_SNAPSHOT_MISSED_EVENT, VMPP_XAPI_LOGON_FAILURE, VMPP_LICENSE_ERROR, VMPP_ARCHIVE_TARGET_UNMOUNT_FAILED, VMPP_ARCHIVE_TARGET_MOUNT_FAILED, VMPP_ARCHIVE_SUCCEEDED, VMPP_ARCHIVE_FAILED_0, VMPP_ARCHIVE_LOCK_FAILED, VMPP_SNAPSHOT_FAILED, VMPP_SNAPSHOT_SUCCEEDED, VMPP_SNAPSHOT_LOCK_FAILED, LICENSE_SERVER_VERSION_OBSOLETE, LICENSE_SERVER_UNREACHABLE, LICENSE_NOT_AVAILABLE, GRACE_LICENSE, LICENSE_SERVER_UNAVAILABLE, LICENSE_SERVER_CONNECTED, LICENSE_EXPIRED, LICENSE_EXPIRES_SOON, LICENSE_DOES_NOT_SUPPORT_POOLING, MULTIPATH_PERIODIC_ALERT, EXTAUTH_IN_POOL_IS_NON_HOMOGENEOUS, EXTAUTH_INIT_IN_HOST_FAILED, WLB_OPTIMIZATION_ALERT, WLB_CONSULTATION_FAILED, ALARM, PBD_PLUG_FAILED_ON_SERVER_START, POOL_MASTER_TRANSITION, HOST_CLOCK_WENT_BACKWARDS, HOST_CLOCK_SKEW_DETECTED, HOST_SYNC_DATA_FAILED, VM_CLONED, VM_CRASHED, VM_RESUMED, VM_SUSPENDED, VM_REBOOTED, VM_SHUTDOWN, VM_STARTED, VCPU_QOS_FAILED, VBD_QOS_FAILED, VIF_QOS_FAILED, IP_CONFIGURED_PIF_CAN_UNPLUG, METADATA_LUN_BROKEN, METADATA_LUN_HEALTHY, HA_HOST_WAS_FENCED, HA_HOST_FAILED, HA_PROTECTED_VM_RESTART_FAILED, HA_POOL_DROP_IN_PLAN_EXISTS_FOR, HA_POOL_OVERCOMMITTED, HA_NETWORK_BONDING_ERROR, HA_XAPI_HEALTHCHECK_APPROACHING_TIMEOUT, HA_STATEFILE_APPROACHING_TIMEOUT, HA_HEARTBEAT_APPROACHING_TIMEOUT, HA_STATEFILE_LOST, unknown };
public enum MessageType { POOL_CPU_FEATURES_UP, POOL_CPU_FEATURES_DOWN, HOST_CPU_FEATURES_UP, HOST_CPU_FEATURES_DOWN, BOND_STATUS_CHANGED, VMPP_SNAPSHOT_ARCHIVE_ALREADY_EXISTS, VMPP_ARCHIVE_MISSED_EVENT, VMPP_SNAPSHOT_MISSED_EVENT, VMPP_XAPI_LOGON_FAILURE, VMPP_LICENSE_ERROR, VMPP_ARCHIVE_TARGET_UNMOUNT_FAILED, VMPP_ARCHIVE_TARGET_MOUNT_FAILED, VMPP_ARCHIVE_SUCCEEDED, VMPP_ARCHIVE_FAILED_0, VMPP_ARCHIVE_LOCK_FAILED, VMPP_SNAPSHOT_FAILED, VMPP_SNAPSHOT_SUCCEEDED, VMPP_SNAPSHOT_LOCK_FAILED, PVS_PROXY_SETUP_FAILED, PVS_PROXY_NO_CACHE_SR_AVAILABLE, LICENSE_SERVER_VERSION_OBSOLETE, LICENSE_SERVER_UNREACHABLE, LICENSE_NOT_AVAILABLE, GRACE_LICENSE, LICENSE_SERVER_UNAVAILABLE, LICENSE_SERVER_CONNECTED, LICENSE_EXPIRED, LICENSE_EXPIRES_SOON, LICENSE_DOES_NOT_SUPPORT_POOLING, MULTIPATH_PERIODIC_ALERT, EXTAUTH_IN_POOL_IS_NON_HOMOGENEOUS, EXTAUTH_INIT_IN_HOST_FAILED, WLB_OPTIMIZATION_ALERT, WLB_CONSULTATION_FAILED, ALARM, PBD_PLUG_FAILED_ON_SERVER_START, POOL_MASTER_TRANSITION, HOST_CLOCK_WENT_BACKWARDS, HOST_CLOCK_SKEW_DETECTED, HOST_SYNC_DATA_FAILED, VM_CLONED, VM_CRASHED, VM_RESUMED, VM_SUSPENDED, VM_REBOOTED, VM_SHUTDOWN, VM_STARTED, VCPU_QOS_FAILED, VBD_QOS_FAILED, VIF_QOS_FAILED, IP_CONFIGURED_PIF_CAN_UNPLUG, METADATA_LUN_BROKEN, METADATA_LUN_HEALTHY, HA_HOST_WAS_FENCED, HA_HOST_FAILED, HA_PROTECTED_VM_RESTART_FAILED, HA_POOL_DROP_IN_PLAN_EXISTS_FOR, HA_POOL_OVERCOMMITTED, HA_NETWORK_BONDING_ERROR, HA_XAPI_HEALTHCHECK_APPROACHING_TIMEOUT, HA_STATEFILE_APPROACHING_TIMEOUT, HA_HEARTBEAT_APPROACHING_TIMEOUT, HA_STATEFILE_LOST, unknown };
public MessageType Type
{
@ -88,6 +88,10 @@ namespace XenAPI
return MessageType.VMPP_SNAPSHOT_SUCCEEDED;
case "VMPP_SNAPSHOT_LOCK_FAILED":
return MessageType.VMPP_SNAPSHOT_LOCK_FAILED;
case "PVS_PROXY_SETUP_FAILED":
return MessageType.PVS_PROXY_SETUP_FAILED;
case "PVS_PROXY_NO_CACHE_SR_AVAILABLE":
return MessageType.PVS_PROXY_NO_CACHE_SR_AVAILABLE;
case "LICENSE_SERVER_VERSION_OBSOLETE":
return MessageType.LICENSE_SERVER_VERSION_OBSOLETE;
case "LICENSE_SERVER_UNREACHABLE":

View File

@ -0,0 +1,412 @@
/*
* 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
{
/// <summary>
/// Describes the storage that is available to a PVS site for caching purposes
/// </summary>
public partial class PVS_cache_storage : XenObject<PVS_cache_storage>
{
public PVS_cache_storage()
{
}
public PVS_cache_storage(string uuid,
XenRef<Host> host,
XenRef<SR> SR,
XenRef<PVS_site> site,
long size,
XenRef<VDI> VDI)
{
this.uuid = uuid;
this.host = host;
this.SR = SR;
this.site = site;
this.size = size;
this.VDI = VDI;
}
/// <summary>
/// Creates a new PVS_cache_storage from a Proxy_PVS_cache_storage.
/// </summary>
/// <param name="proxy"></param>
public PVS_cache_storage(Proxy_PVS_cache_storage proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(PVS_cache_storage update)
{
uuid = update.uuid;
host = update.host;
SR = update.SR;
site = update.site;
size = update.size;
VDI = update.VDI;
}
internal void UpdateFromProxy(Proxy_PVS_cache_storage proxy)
{
uuid = proxy.uuid == null ? null : (string)proxy.uuid;
host = proxy.host == null ? null : XenRef<Host>.Create(proxy.host);
SR = proxy.SR == null ? null : XenRef<SR>.Create(proxy.SR);
site = proxy.site == null ? null : XenRef<PVS_site>.Create(proxy.site);
size = proxy.size == null ? 0 : long.Parse((string)proxy.size);
VDI = proxy.VDI == null ? null : XenRef<VDI>.Create(proxy.VDI);
}
public Proxy_PVS_cache_storage ToProxy()
{
Proxy_PVS_cache_storage result_ = new Proxy_PVS_cache_storage();
result_.uuid = (uuid != null) ? uuid : "";
result_.host = (host != null) ? host : "";
result_.SR = (SR != null) ? SR : "";
result_.site = (site != null) ? site : "";
result_.size = size.ToString();
result_.VDI = (VDI != null) ? VDI : "";
return result_;
}
/// <summary>
/// Creates a new PVS_cache_storage from a Hashtable.
/// </summary>
/// <param name="table"></param>
public PVS_cache_storage(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
host = Marshalling.ParseRef<Host>(table, "host");
SR = Marshalling.ParseRef<SR>(table, "SR");
site = Marshalling.ParseRef<PVS_site>(table, "site");
size = Marshalling.ParseLong(table, "size");
VDI = Marshalling.ParseRef<VDI>(table, "VDI");
}
public bool DeepEquals(PVS_cache_storage other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return Helper.AreEqual2(this._uuid, other._uuid) &&
Helper.AreEqual2(this._host, other._host) &&
Helper.AreEqual2(this._SR, other._SR) &&
Helper.AreEqual2(this._site, other._site) &&
Helper.AreEqual2(this._size, other._size) &&
Helper.AreEqual2(this._VDI, other._VDI);
}
public override string SaveChanges(Session session, string opaqueRef, PVS_cache_storage server)
{
if (opaqueRef == null)
{
Proxy_PVS_cache_storage p = this.ToProxy();
return session.proxy.pvs_cache_storage_create(session.uuid, p).parse();
}
else
{
throw new InvalidOperationException("This type has no read/write properties");
}
}
/// <summary>
/// Get a record containing the current state of the given PVS_cache_storage.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static PVS_cache_storage get_record(Session session, string _pvs_cache_storage)
{
return new PVS_cache_storage((Proxy_PVS_cache_storage)session.proxy.pvs_cache_storage_get_record(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse());
}
/// <summary>
/// Get a reference to the PVS_cache_storage instance with the specified UUID.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<PVS_cache_storage> get_by_uuid(Session session, string _uuid)
{
return XenRef<PVS_cache_storage>.Create(session.proxy.pvs_cache_storage_get_by_uuid(session.uuid, (_uuid != null) ? _uuid : "").parse());
}
/// <summary>
/// Create a new PVS_cache_storage instance, and return its handle.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_record">All constructor arguments</param>
public static XenRef<PVS_cache_storage> create(Session session, PVS_cache_storage _record)
{
return XenRef<PVS_cache_storage>.Create(session.proxy.pvs_cache_storage_create(session.uuid, _record.ToProxy()).parse());
}
/// <summary>
/// Create a new PVS_cache_storage instance, and return its handle.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_record">All constructor arguments</param>
public static XenRef<Task> async_create(Session session, PVS_cache_storage _record)
{
return XenRef<Task>.Create(session.proxy.async_pvs_cache_storage_create(session.uuid, _record.ToProxy()).parse());
}
/// <summary>
/// Destroy the specified PVS_cache_storage instance.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static void destroy(Session session, string _pvs_cache_storage)
{
session.proxy.pvs_cache_storage_destroy(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse();
}
/// <summary>
/// Destroy the specified PVS_cache_storage instance.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static XenRef<Task> async_destroy(Session session, string _pvs_cache_storage)
{
return XenRef<Task>.Create(session.proxy.async_pvs_cache_storage_destroy(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse());
}
/// <summary>
/// Get the uuid field of the given PVS_cache_storage.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static string get_uuid(Session session, string _pvs_cache_storage)
{
return (string)session.proxy.pvs_cache_storage_get_uuid(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse();
}
/// <summary>
/// Get the host field of the given PVS_cache_storage.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static XenRef<Host> get_host(Session session, string _pvs_cache_storage)
{
return XenRef<Host>.Create(session.proxy.pvs_cache_storage_get_host(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse());
}
/// <summary>
/// Get the SR field of the given PVS_cache_storage.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static XenRef<SR> get_SR(Session session, string _pvs_cache_storage)
{
return XenRef<SR>.Create(session.proxy.pvs_cache_storage_get_sr(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse());
}
/// <summary>
/// Get the site field of the given PVS_cache_storage.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static XenRef<PVS_site> get_site(Session session, string _pvs_cache_storage)
{
return XenRef<PVS_site>.Create(session.proxy.pvs_cache_storage_get_site(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse());
}
/// <summary>
/// Get the size field of the given PVS_cache_storage.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static long get_size(Session session, string _pvs_cache_storage)
{
return long.Parse((string)session.proxy.pvs_cache_storage_get_size(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse());
}
/// <summary>
/// Get the VDI field of the given PVS_cache_storage.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_cache_storage">The opaque_ref of the given pvs_cache_storage</param>
public static XenRef<VDI> get_VDI(Session session, string _pvs_cache_storage)
{
return XenRef<VDI>.Create(session.proxy.pvs_cache_storage_get_vdi(session.uuid, (_pvs_cache_storage != null) ? _pvs_cache_storage : "").parse());
}
/// <summary>
/// Return a list of all the PVS_cache_storages known to the system.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<PVS_cache_storage>> get_all(Session session)
{
return XenRef<PVS_cache_storage>.Create(session.proxy.pvs_cache_storage_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the PVS_cache_storage Records at once, in a single XML RPC call
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<PVS_cache_storage>, PVS_cache_storage> get_all_records(Session session)
{
return XenRef<PVS_cache_storage>.Create<Proxy_PVS_cache_storage>(session.proxy.pvs_cache_storage_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// Experimental. First published in .
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid;
/// <summary>
/// The host on which this object defines PVS cache storage
/// Experimental. First published in .
/// </summary>
public virtual XenRef<Host> host
{
get { return _host; }
set
{
if (!Helper.AreEqual(value, _host))
{
_host = value;
Changed = true;
NotifyPropertyChanged("host");
}
}
}
private XenRef<Host> _host;
/// <summary>
/// SR providing storage for the PVS cache
/// Experimental. First published in .
/// </summary>
public virtual XenRef<SR> SR
{
get { return _SR; }
set
{
if (!Helper.AreEqual(value, _SR))
{
_SR = value;
Changed = true;
NotifyPropertyChanged("SR");
}
}
}
private XenRef<SR> _SR;
/// <summary>
/// The PVS_site for which this object defines the storage
/// Experimental. First published in .
/// </summary>
public virtual XenRef<PVS_site> site
{
get { return _site; }
set
{
if (!Helper.AreEqual(value, _site))
{
_site = value;
Changed = true;
NotifyPropertyChanged("site");
}
}
}
private XenRef<PVS_site> _site;
/// <summary>
/// The size of the cache VDI (in bytes)
/// Experimental. First published in .
/// </summary>
public virtual long size
{
get { return _size; }
set
{
if (!Helper.AreEqual(value, _size))
{
_size = value;
Changed = true;
NotifyPropertyChanged("size");
}
}
}
private long _size;
/// <summary>
/// The VDI used for caching
/// Experimental. First published in .
/// </summary>
public virtual XenRef<VDI> VDI
{
get { return _VDI; }
set
{
if (!Helper.AreEqual(value, _VDI))
{
_VDI = value;
Changed = true;
NotifyPropertyChanged("VDI");
}
}
}
private XenRef<VDI> _VDI;
}
}

View File

@ -0,0 +1,377 @@
/*
* 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
{
/// <summary>
/// a proxy connects a VM/VIF with a PVS site
/// </summary>
public partial class PVS_proxy : XenObject<PVS_proxy>
{
public PVS_proxy()
{
}
public PVS_proxy(string uuid,
XenRef<PVS_site> site,
XenRef<VIF> VIF,
bool currently_attached,
pvs_proxy_status status)
{
this.uuid = uuid;
this.site = site;
this.VIF = VIF;
this.currently_attached = currently_attached;
this.status = status;
}
/// <summary>
/// Creates a new PVS_proxy from a Proxy_PVS_proxy.
/// </summary>
/// <param name="proxy"></param>
public PVS_proxy(Proxy_PVS_proxy proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(PVS_proxy update)
{
uuid = update.uuid;
site = update.site;
VIF = update.VIF;
currently_attached = update.currently_attached;
status = update.status;
}
internal void UpdateFromProxy(Proxy_PVS_proxy proxy)
{
uuid = proxy.uuid == null ? null : (string)proxy.uuid;
site = proxy.site == null ? null : XenRef<PVS_site>.Create(proxy.site);
VIF = proxy.VIF == null ? null : XenRef<VIF>.Create(proxy.VIF);
currently_attached = (bool)proxy.currently_attached;
status = proxy.status == null ? (pvs_proxy_status) 0 : (pvs_proxy_status)Helper.EnumParseDefault(typeof(pvs_proxy_status), (string)proxy.status);
}
public Proxy_PVS_proxy ToProxy()
{
Proxy_PVS_proxy result_ = new Proxy_PVS_proxy();
result_.uuid = (uuid != null) ? uuid : "";
result_.site = (site != null) ? site : "";
result_.VIF = (VIF != null) ? VIF : "";
result_.currently_attached = currently_attached;
result_.status = pvs_proxy_status_helper.ToString(status);
return result_;
}
/// <summary>
/// Creates a new PVS_proxy from a Hashtable.
/// </summary>
/// <param name="table"></param>
public PVS_proxy(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
site = Marshalling.ParseRef<PVS_site>(table, "site");
VIF = Marshalling.ParseRef<VIF>(table, "VIF");
currently_attached = Marshalling.ParseBool(table, "currently_attached");
status = (pvs_proxy_status)Helper.EnumParseDefault(typeof(pvs_proxy_status), Marshalling.ParseString(table, "status"));
}
public bool DeepEquals(PVS_proxy other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return Helper.AreEqual2(this._uuid, other._uuid) &&
Helper.AreEqual2(this._site, other._site) &&
Helper.AreEqual2(this._VIF, other._VIF) &&
Helper.AreEqual2(this._currently_attached, other._currently_attached) &&
Helper.AreEqual2(this._status, other._status);
}
public override string SaveChanges(Session session, string opaqueRef, PVS_proxy server)
{
if (opaqueRef == null)
{
System.Diagnostics.Debug.Assert(false, "Cannot create instances of this type on the server");
return "";
}
else
{
throw new InvalidOperationException("This type has no read/write properties");
}
}
/// <summary>
/// Get a record containing the current state of the given PVS_proxy.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static PVS_proxy get_record(Session session, string _pvs_proxy)
{
return new PVS_proxy((Proxy_PVS_proxy)session.proxy.pvs_proxy_get_record(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse());
}
/// <summary>
/// Get a reference to the PVS_proxy instance with the specified UUID.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<PVS_proxy> get_by_uuid(Session session, string _uuid)
{
return XenRef<PVS_proxy>.Create(session.proxy.pvs_proxy_get_by_uuid(session.uuid, (_uuid != null) ? _uuid : "").parse());
}
/// <summary>
/// Get the uuid field of the given PVS_proxy.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static string get_uuid(Session session, string _pvs_proxy)
{
return (string)session.proxy.pvs_proxy_get_uuid(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse();
}
/// <summary>
/// Get the site field of the given PVS_proxy.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static XenRef<PVS_site> get_site(Session session, string _pvs_proxy)
{
return XenRef<PVS_site>.Create(session.proxy.pvs_proxy_get_site(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse());
}
/// <summary>
/// Get the VIF field of the given PVS_proxy.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static XenRef<VIF> get_VIF(Session session, string _pvs_proxy)
{
return XenRef<VIF>.Create(session.proxy.pvs_proxy_get_vif(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse());
}
/// <summary>
/// Get the currently_attached field of the given PVS_proxy.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static bool get_currently_attached(Session session, string _pvs_proxy)
{
return (bool)session.proxy.pvs_proxy_get_currently_attached(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse();
}
/// <summary>
/// Get the status field of the given PVS_proxy.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static pvs_proxy_status get_status(Session session, string _pvs_proxy)
{
return (pvs_proxy_status)Helper.EnumParseDefault(typeof(pvs_proxy_status), (string)session.proxy.pvs_proxy_get_status(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse());
}
/// <summary>
/// Configure a VM/VIF to use a PVS proxy
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_site">PVS site that we proxy for</param>
/// <param name="_vif">VIF for the VM that needs to be proxied</param>
public static XenRef<PVS_proxy> create(Session session, string _site, string _vif)
{
return XenRef<PVS_proxy>.Create(session.proxy.pvs_proxy_create(session.uuid, (_site != null) ? _site : "", (_vif != null) ? _vif : "").parse());
}
/// <summary>
/// Configure a VM/VIF to use a PVS proxy
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_site">PVS site that we proxy for</param>
/// <param name="_vif">VIF for the VM that needs to be proxied</param>
public static XenRef<Task> async_create(Session session, string _site, string _vif)
{
return XenRef<Task>.Create(session.proxy.async_pvs_proxy_create(session.uuid, (_site != null) ? _site : "", (_vif != null) ? _vif : "").parse());
}
/// <summary>
/// remove (or switch off) a PVS proxy for this VM
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static void destroy(Session session, string _pvs_proxy)
{
session.proxy.pvs_proxy_destroy(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse();
}
/// <summary>
/// remove (or switch off) a PVS proxy for this VM
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_proxy">The opaque_ref of the given pvs_proxy</param>
public static XenRef<Task> async_destroy(Session session, string _pvs_proxy)
{
return XenRef<Task>.Create(session.proxy.async_pvs_proxy_destroy(session.uuid, (_pvs_proxy != null) ? _pvs_proxy : "").parse());
}
/// <summary>
/// Return a list of all the PVS_proxys known to the system.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<PVS_proxy>> get_all(Session session)
{
return XenRef<PVS_proxy>.Create(session.proxy.pvs_proxy_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the PVS_proxy Records at once, in a single XML RPC call
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<PVS_proxy>, PVS_proxy> get_all_records(Session session)
{
return XenRef<PVS_proxy>.Create<Proxy_PVS_proxy>(session.proxy.pvs_proxy_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// Experimental. First published in .
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid;
/// <summary>
/// PVS site this proxy is part of
/// Experimental. First published in .
/// </summary>
public virtual XenRef<PVS_site> site
{
get { return _site; }
set
{
if (!Helper.AreEqual(value, _site))
{
_site = value;
Changed = true;
NotifyPropertyChanged("site");
}
}
}
private XenRef<PVS_site> _site;
/// <summary>
/// VIF of the VM using the proxy
/// Experimental. First published in .
/// </summary>
public virtual XenRef<VIF> VIF
{
get { return _VIF; }
set
{
if (!Helper.AreEqual(value, _VIF))
{
_VIF = value;
Changed = true;
NotifyPropertyChanged("VIF");
}
}
}
private XenRef<VIF> _VIF;
/// <summary>
/// true = VM is currently proxied
/// Experimental. First published in .
/// </summary>
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;
/// <summary>
/// The run-time status of the proxy
/// Experimental. First published in .
/// </summary>
public virtual pvs_proxy_status status
{
get { return _status; }
set
{
if (!Helper.AreEqual(value, _status))
{
_status = value;
Changed = true;
NotifyPropertyChanged("status");
}
}
}
private pvs_proxy_status _status;
}
}

View File

@ -0,0 +1,381 @@
/*
* 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
{
/// <summary>
/// individual machine serving provisioning (block) data
/// </summary>
public partial class PVS_server : XenObject<PVS_server>
{
public PVS_server()
{
}
public PVS_server(string uuid,
string[] addresses,
long first_port,
long last_port,
XenRef<PVS_site> site)
{
this.uuid = uuid;
this.addresses = addresses;
this.first_port = first_port;
this.last_port = last_port;
this.site = site;
}
/// <summary>
/// Creates a new PVS_server from a Proxy_PVS_server.
/// </summary>
/// <param name="proxy"></param>
public PVS_server(Proxy_PVS_server proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(PVS_server update)
{
uuid = update.uuid;
addresses = update.addresses;
first_port = update.first_port;
last_port = update.last_port;
site = update.site;
}
internal void UpdateFromProxy(Proxy_PVS_server proxy)
{
uuid = proxy.uuid == null ? null : (string)proxy.uuid;
addresses = proxy.addresses == null ? new string[] {} : (string [])proxy.addresses;
first_port = proxy.first_port == null ? 0 : long.Parse((string)proxy.first_port);
last_port = proxy.last_port == null ? 0 : long.Parse((string)proxy.last_port);
site = proxy.site == null ? null : XenRef<PVS_site>.Create(proxy.site);
}
public Proxy_PVS_server ToProxy()
{
Proxy_PVS_server result_ = new Proxy_PVS_server();
result_.uuid = (uuid != null) ? uuid : "";
result_.addresses = addresses;
result_.first_port = first_port.ToString();
result_.last_port = last_port.ToString();
result_.site = (site != null) ? site : "";
return result_;
}
/// <summary>
/// Creates a new PVS_server from a Hashtable.
/// </summary>
/// <param name="table"></param>
public PVS_server(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
addresses = Marshalling.ParseStringArray(table, "addresses");
first_port = Marshalling.ParseLong(table, "first_port");
last_port = Marshalling.ParseLong(table, "last_port");
site = Marshalling.ParseRef<PVS_site>(table, "site");
}
public bool DeepEquals(PVS_server other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return Helper.AreEqual2(this._uuid, other._uuid) &&
Helper.AreEqual2(this._addresses, other._addresses) &&
Helper.AreEqual2(this._first_port, other._first_port) &&
Helper.AreEqual2(this._last_port, other._last_port) &&
Helper.AreEqual2(this._site, other._site);
}
public override string SaveChanges(Session session, string opaqueRef, PVS_server server)
{
if (opaqueRef == null)
{
System.Diagnostics.Debug.Assert(false, "Cannot create instances of this type on the server");
return "";
}
else
{
throw new InvalidOperationException("This type has no read/write properties");
}
}
/// <summary>
/// Get a record containing the current state of the given PVS_server.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static PVS_server get_record(Session session, string _pvs_server)
{
return new PVS_server((Proxy_PVS_server)session.proxy.pvs_server_get_record(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse());
}
/// <summary>
/// Get a reference to the PVS_server instance with the specified UUID.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<PVS_server> get_by_uuid(Session session, string _uuid)
{
return XenRef<PVS_server>.Create(session.proxy.pvs_server_get_by_uuid(session.uuid, (_uuid != null) ? _uuid : "").parse());
}
/// <summary>
/// Get the uuid field of the given PVS_server.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static string get_uuid(Session session, string _pvs_server)
{
return (string)session.proxy.pvs_server_get_uuid(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse();
}
/// <summary>
/// Get the addresses field of the given PVS_server.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static string[] get_addresses(Session session, string _pvs_server)
{
return (string [])session.proxy.pvs_server_get_addresses(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse();
}
/// <summary>
/// Get the first_port field of the given PVS_server.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static long get_first_port(Session session, string _pvs_server)
{
return long.Parse((string)session.proxy.pvs_server_get_first_port(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse());
}
/// <summary>
/// Get the last_port field of the given PVS_server.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static long get_last_port(Session session, string _pvs_server)
{
return long.Parse((string)session.proxy.pvs_server_get_last_port(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse());
}
/// <summary>
/// Get the site field of the given PVS_server.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static XenRef<PVS_site> get_site(Session session, string _pvs_server)
{
return XenRef<PVS_site>.Create(session.proxy.pvs_server_get_site(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse());
}
/// <summary>
/// introduce new PVS server
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_addresses">IPv4 addresses of the server</param>
/// <param name="_first_port">first UDP port accepted by this server</param>
/// <param name="_last_port">last UDP port accepted by this server</param>
/// <param name="_site">PVS site this server is a part of</param>
public static XenRef<PVS_server> introduce(Session session, string[] _addresses, long _first_port, long _last_port, string _site)
{
return XenRef<PVS_server>.Create(session.proxy.pvs_server_introduce(session.uuid, _addresses, _first_port.ToString(), _last_port.ToString(), (_site != null) ? _site : "").parse());
}
/// <summary>
/// introduce new PVS server
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_addresses">IPv4 addresses of the server</param>
/// <param name="_first_port">first UDP port accepted by this server</param>
/// <param name="_last_port">last UDP port accepted by this server</param>
/// <param name="_site">PVS site this server is a part of</param>
public static XenRef<Task> async_introduce(Session session, string[] _addresses, long _first_port, long _last_port, string _site)
{
return XenRef<Task>.Create(session.proxy.async_pvs_server_introduce(session.uuid, _addresses, _first_port.ToString(), _last_port.ToString(), (_site != null) ? _site : "").parse());
}
/// <summary>
/// forget a PVS server
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static void forget(Session session, string _pvs_server)
{
session.proxy.pvs_server_forget(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse();
}
/// <summary>
/// forget a PVS server
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_server">The opaque_ref of the given pvs_server</param>
public static XenRef<Task> async_forget(Session session, string _pvs_server)
{
return XenRef<Task>.Create(session.proxy.async_pvs_server_forget(session.uuid, (_pvs_server != null) ? _pvs_server : "").parse());
}
/// <summary>
/// Return a list of all the PVS_servers known to the system.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<PVS_server>> get_all(Session session)
{
return XenRef<PVS_server>.Create(session.proxy.pvs_server_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the PVS_server Records at once, in a single XML RPC call
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<PVS_server>, PVS_server> get_all_records(Session session)
{
return XenRef<PVS_server>.Create<Proxy_PVS_server>(session.proxy.pvs_server_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// Experimental. First published in .
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid;
/// <summary>
/// IPv4 addresses of this server
/// Experimental. First published in .
/// </summary>
public virtual string[] addresses
{
get { return _addresses; }
set
{
if (!Helper.AreEqual(value, _addresses))
{
_addresses = value;
Changed = true;
NotifyPropertyChanged("addresses");
}
}
}
private string[] _addresses;
/// <summary>
/// First UDP port accepted by this server
/// Experimental. First published in .
/// </summary>
public virtual long first_port
{
get { return _first_port; }
set
{
if (!Helper.AreEqual(value, _first_port))
{
_first_port = value;
Changed = true;
NotifyPropertyChanged("first_port");
}
}
}
private long _first_port;
/// <summary>
/// Last UDP port accepted by this server
/// Experimental. First published in .
/// </summary>
public virtual long last_port
{
get { return _last_port; }
set
{
if (!Helper.AreEqual(value, _last_port))
{
_last_port = value;
Changed = true;
NotifyPropertyChanged("last_port");
}
}
}
private long _last_port;
/// <summary>
/// PVS site this server is part of
/// Experimental. First published in .
/// </summary>
public virtual XenRef<PVS_site> site
{
get { return _site; }
set
{
if (!Helper.AreEqual(value, _site))
{
_site = value;
Changed = true;
NotifyPropertyChanged("site");
}
}
}
private XenRef<PVS_site> _site;
}
}

525
XenModel/XenAPI/PVS_site.cs Normal file
View File

@ -0,0 +1,525 @@
/*
* 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
{
/// <summary>
/// machines serving blocks of data for provisioning VMs
/// </summary>
public partial class PVS_site : XenObject<PVS_site>
{
public PVS_site()
{
}
public PVS_site(string uuid,
string name_label,
string name_description,
string PVS_uuid,
List<XenRef<PVS_cache_storage>> cache_storage,
List<XenRef<PVS_server>> servers,
List<XenRef<PVS_proxy>> proxies)
{
this.uuid = uuid;
this.name_label = name_label;
this.name_description = name_description;
this.PVS_uuid = PVS_uuid;
this.cache_storage = cache_storage;
this.servers = servers;
this.proxies = proxies;
}
/// <summary>
/// Creates a new PVS_site from a Proxy_PVS_site.
/// </summary>
/// <param name="proxy"></param>
public PVS_site(Proxy_PVS_site proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(PVS_site update)
{
uuid = update.uuid;
name_label = update.name_label;
name_description = update.name_description;
PVS_uuid = update.PVS_uuid;
cache_storage = update.cache_storage;
servers = update.servers;
proxies = update.proxies;
}
internal void UpdateFromProxy(Proxy_PVS_site 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;
PVS_uuid = proxy.PVS_uuid == null ? null : (string)proxy.PVS_uuid;
cache_storage = proxy.cache_storage == null ? null : XenRef<PVS_cache_storage>.Create(proxy.cache_storage);
servers = proxy.servers == null ? null : XenRef<PVS_server>.Create(proxy.servers);
proxies = proxy.proxies == null ? null : XenRef<PVS_proxy>.Create(proxy.proxies);
}
public Proxy_PVS_site ToProxy()
{
Proxy_PVS_site result_ = new Proxy_PVS_site();
result_.uuid = (uuid != null) ? uuid : "";
result_.name_label = (name_label != null) ? name_label : "";
result_.name_description = (name_description != null) ? name_description : "";
result_.PVS_uuid = (PVS_uuid != null) ? PVS_uuid : "";
result_.cache_storage = (cache_storage != null) ? Helper.RefListToStringArray(cache_storage) : new string[] {};
result_.servers = (servers != null) ? Helper.RefListToStringArray(servers) : new string[] {};
result_.proxies = (proxies != null) ? Helper.RefListToStringArray(proxies) : new string[] {};
return result_;
}
/// <summary>
/// Creates a new PVS_site from a Hashtable.
/// </summary>
/// <param name="table"></param>
public PVS_site(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
name_label = Marshalling.ParseString(table, "name_label");
name_description = Marshalling.ParseString(table, "name_description");
PVS_uuid = Marshalling.ParseString(table, "PVS_uuid");
cache_storage = Marshalling.ParseSetRef<PVS_cache_storage>(table, "cache_storage");
servers = Marshalling.ParseSetRef<PVS_server>(table, "servers");
proxies = Marshalling.ParseSetRef<PVS_proxy>(table, "proxies");
}
public bool DeepEquals(PVS_site other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
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._PVS_uuid, other._PVS_uuid) &&
Helper.AreEqual2(this._cache_storage, other._cache_storage) &&
Helper.AreEqual2(this._servers, other._servers) &&
Helper.AreEqual2(this._proxies, other._proxies);
}
public override string SaveChanges(Session session, string opaqueRef, PVS_site 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))
{
PVS_site.set_name_label(session, opaqueRef, _name_label);
}
if (!Helper.AreEqual2(_name_description, server._name_description))
{
PVS_site.set_name_description(session, opaqueRef, _name_description);
}
if (!Helper.AreEqual2(_PVS_uuid, server._PVS_uuid))
{
PVS_site.set_PVS_uuid(session, opaqueRef, _PVS_uuid);
}
return null;
}
}
/// <summary>
/// Get a record containing the current state of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static PVS_site get_record(Session session, string _pvs_site)
{
return new PVS_site((Proxy_PVS_site)session.proxy.pvs_site_get_record(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse());
}
/// <summary>
/// Get a reference to the PVS_site instance with the specified UUID.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<PVS_site> get_by_uuid(Session session, string _uuid)
{
return XenRef<PVS_site>.Create(session.proxy.pvs_site_get_by_uuid(session.uuid, (_uuid != null) ? _uuid : "").parse());
}
/// <summary>
/// Get all the PVS_site instances with the given label.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_label">label of object to return</param>
public static List<XenRef<PVS_site>> get_by_name_label(Session session, string _label)
{
return XenRef<PVS_site>.Create(session.proxy.pvs_site_get_by_name_label(session.uuid, (_label != null) ? _label : "").parse());
}
/// <summary>
/// Get the uuid field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static string get_uuid(Session session, string _pvs_site)
{
return (string)session.proxy.pvs_site_get_uuid(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse();
}
/// <summary>
/// Get the name/label field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static string get_name_label(Session session, string _pvs_site)
{
return (string)session.proxy.pvs_site_get_name_label(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse();
}
/// <summary>
/// Get the name/description field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static string get_name_description(Session session, string _pvs_site)
{
return (string)session.proxy.pvs_site_get_name_description(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse();
}
/// <summary>
/// Get the PVS_uuid field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static string get_PVS_uuid(Session session, string _pvs_site)
{
return (string)session.proxy.pvs_site_get_pvs_uuid(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse();
}
/// <summary>
/// Get the cache_storage field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static List<XenRef<PVS_cache_storage>> get_cache_storage(Session session, string _pvs_site)
{
return XenRef<PVS_cache_storage>.Create(session.proxy.pvs_site_get_cache_storage(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse());
}
/// <summary>
/// Get the servers field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static List<XenRef<PVS_server>> get_servers(Session session, string _pvs_site)
{
return XenRef<PVS_server>.Create(session.proxy.pvs_site_get_servers(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse());
}
/// <summary>
/// Get the proxies field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static List<XenRef<PVS_proxy>> get_proxies(Session session, string _pvs_site)
{
return XenRef<PVS_proxy>.Create(session.proxy.pvs_site_get_proxies(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse());
}
/// <summary>
/// Set the name/label field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
/// <param name="_label">New value to set</param>
public static void set_name_label(Session session, string _pvs_site, string _label)
{
session.proxy.pvs_site_set_name_label(session.uuid, (_pvs_site != null) ? _pvs_site : "", (_label != null) ? _label : "").parse();
}
/// <summary>
/// Set the name/description field of the given PVS_site.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
/// <param name="_description">New value to set</param>
public static void set_name_description(Session session, string _pvs_site, string _description)
{
session.proxy.pvs_site_set_name_description(session.uuid, (_pvs_site != null) ? _pvs_site : "", (_description != null) ? _description : "").parse();
}
/// <summary>
/// Introduce new PVS site
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_name_label">name of the PVS site</param>
/// <param name="_name_description">description of the PVS site</param>
/// <param name="_pvs_uuid">unique identifier of the PVS site</param>
public static XenRef<PVS_site> introduce(Session session, string _name_label, string _name_description, string _pvs_uuid)
{
return XenRef<PVS_site>.Create(session.proxy.pvs_site_introduce(session.uuid, (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_pvs_uuid != null) ? _pvs_uuid : "").parse());
}
/// <summary>
/// Introduce new PVS site
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_name_label">name of the PVS site</param>
/// <param name="_name_description">description of the PVS site</param>
/// <param name="_pvs_uuid">unique identifier of the PVS site</param>
public static XenRef<Task> async_introduce(Session session, string _name_label, string _name_description, string _pvs_uuid)
{
return XenRef<Task>.Create(session.proxy.async_pvs_site_introduce(session.uuid, (_name_label != null) ? _name_label : "", (_name_description != null) ? _name_description : "", (_pvs_uuid != null) ? _pvs_uuid : "").parse());
}
/// <summary>
/// Remove a site's meta data
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static void forget(Session session, string _pvs_site)
{
session.proxy.pvs_site_forget(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse();
}
/// <summary>
/// Remove a site's meta data
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
public static XenRef<Task> async_forget(Session session, string _pvs_site)
{
return XenRef<Task>.Create(session.proxy.async_pvs_site_forget(session.uuid, (_pvs_site != null) ? _pvs_site : "").parse());
}
/// <summary>
/// Update the PVS UUID of the PVS site
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
/// <param name="_value">PVS UUID to be used</param>
public static void set_PVS_uuid(Session session, string _pvs_site, string _value)
{
session.proxy.pvs_site_set_pvs_uuid(session.uuid, (_pvs_site != null) ? _pvs_site : "", (_value != null) ? _value : "").parse();
}
/// <summary>
/// Update the PVS UUID of the PVS site
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pvs_site">The opaque_ref of the given pvs_site</param>
/// <param name="_value">PVS UUID to be used</param>
public static XenRef<Task> async_set_PVS_uuid(Session session, string _pvs_site, string _value)
{
return XenRef<Task>.Create(session.proxy.async_pvs_site_set_pvs_uuid(session.uuid, (_pvs_site != null) ? _pvs_site : "", (_value != null) ? _value : "").parse());
}
/// <summary>
/// Return a list of all the PVS_sites known to the system.
/// Experimental. First published in .
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<PVS_site>> get_all(Session session)
{
return XenRef<PVS_site>.Create(session.proxy.pvs_site_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the PVS_site Records at once, in a single XML RPC call
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<PVS_site>, PVS_site> get_all_records(Session session)
{
return XenRef<PVS_site>.Create<Proxy_PVS_site>(session.proxy.pvs_site_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// Experimental. First published in .
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid;
/// <summary>
/// a human-readable name
/// Experimental. First published in .
/// </summary>
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;
/// <summary>
/// a notes field containing human-readable description
/// Experimental. First published in .
/// </summary>
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;
/// <summary>
/// Unique identifier of the PVS site, as configured in PVS
/// Experimental. First published in .
/// </summary>
public virtual string PVS_uuid
{
get { return _PVS_uuid; }
set
{
if (!Helper.AreEqual(value, _PVS_uuid))
{
_PVS_uuid = value;
Changed = true;
NotifyPropertyChanged("PVS_uuid");
}
}
}
private string _PVS_uuid;
/// <summary>
/// The SR used by PVS proxy for the cache
/// Experimental. First published in .
/// </summary>
public virtual List<XenRef<PVS_cache_storage>> cache_storage
{
get { return _cache_storage; }
set
{
if (!Helper.AreEqual(value, _cache_storage))
{
_cache_storage = value;
Changed = true;
NotifyPropertyChanged("cache_storage");
}
}
}
private List<XenRef<PVS_cache_storage>> _cache_storage;
/// <summary>
/// The set of PVS servers in the site
/// Experimental. First published in .
/// </summary>
public virtual List<XenRef<PVS_server>> servers
{
get { return _servers; }
set
{
if (!Helper.AreEqual(value, _servers))
{
_servers = value;
Changed = true;
NotifyPropertyChanged("servers");
}
}
}
private List<XenRef<PVS_server>> _servers;
/// <summary>
/// The set of proxies associated with the site
/// Experimental. First published in .
/// </summary>
public virtual List<XenRef<PVS_proxy>> proxies
{
get { return _proxies; }
set
{
if (!Helper.AreEqual(value, _proxies))
{
_proxies = value;
Changed = true;
NotifyPropertyChanged("proxies");
}
}
}
private List<XenRef<PVS_proxy>> _proxies;
}
}

View File

@ -309,9 +309,9 @@ namespace XenAPI
/// <param name="session">The session</param>
/// <param name="_pool_update">The opaque_ref of the given pool_update</param>
/// <param name="_host">The host to run the prechecks on.</param>
public static void precheck(Session session, string _pool_update, string _host)
public static livepatch_status precheck(Session session, string _pool_update, string _host)
{
session.proxy.pool_update_precheck(session.uuid, (_pool_update != null) ? _pool_update : "", (_host != null) ? _host : "").parse();
return (livepatch_status)Helper.EnumParseDefault(typeof(livepatch_status), (string)session.proxy.pool_update_precheck(session.uuid, (_pool_update != null) ? _pool_update : "", (_host != null) ? _host : "").parse());
}
/// <summary>

View File

@ -2376,6 +2376,18 @@ namespace XenAPI
Response<Object>
vm_metrics_get_other_config(string session, string _vm_metrics);
[XmlRpcMethod("VM_metrics.get_hvm")]
Response<bool>
vm_metrics_get_hvm(string session, string _vm_metrics);
[XmlRpcMethod("VM_metrics.get_nested_virt")]
Response<bool>
vm_metrics_get_nested_virt(string session, string _vm_metrics);
[XmlRpcMethod("VM_metrics.get_nomigrate")]
Response<bool>
vm_metrics_get_nomigrate(string session, string _vm_metrics);
[XmlRpcMethod("VM_metrics.set_other_config")]
Response<string>
vm_metrics_set_other_config(string session, string _vm_metrics, Object _other_config);
@ -7015,6 +7027,246 @@ namespace XenAPI
[XmlRpcMethod("VGPU_type.get_all_records")]
Response<Object>
vgpu_type_get_all_records(string session);
[XmlRpcMethod("PVS_site.get_record")]
Response<Proxy_PVS_site>
pvs_site_get_record(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.get_by_uuid")]
Response<string>
pvs_site_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("PVS_site.get_by_name_label")]
Response<string []>
pvs_site_get_by_name_label(string session, string _label);
[XmlRpcMethod("PVS_site.get_uuid")]
Response<string>
pvs_site_get_uuid(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.get_name_label")]
Response<string>
pvs_site_get_name_label(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.get_name_description")]
Response<string>
pvs_site_get_name_description(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.get_PVS_uuid")]
Response<string>
pvs_site_get_pvs_uuid(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.get_cache_storage")]
Response<string []>
pvs_site_get_cache_storage(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.get_servers")]
Response<string []>
pvs_site_get_servers(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.get_proxies")]
Response<string []>
pvs_site_get_proxies(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.set_name_label")]
Response<string>
pvs_site_set_name_label(string session, string _pvs_site, string _label);
[XmlRpcMethod("PVS_site.set_name_description")]
Response<string>
pvs_site_set_name_description(string session, string _pvs_site, string _description);
[XmlRpcMethod("PVS_site.introduce")]
Response<string>
pvs_site_introduce(string session, string _name_label, string _name_description, string _pvs_uuid);
[XmlRpcMethod("Async.PVS_site.introduce")]
Response<string>
async_pvs_site_introduce(string session, string _name_label, string _name_description, string _pvs_uuid);
[XmlRpcMethod("PVS_site.forget")]
Response<string>
pvs_site_forget(string session, string _pvs_site);
[XmlRpcMethod("Async.PVS_site.forget")]
Response<string>
async_pvs_site_forget(string session, string _pvs_site);
[XmlRpcMethod("PVS_site.set_PVS_uuid")]
Response<string>
pvs_site_set_pvs_uuid(string session, string _pvs_site, string _value);
[XmlRpcMethod("Async.PVS_site.set_PVS_uuid")]
Response<string>
async_pvs_site_set_pvs_uuid(string session, string _pvs_site, string _value);
[XmlRpcMethod("PVS_site.get_all")]
Response<string []>
pvs_site_get_all(string session);
[XmlRpcMethod("PVS_site.get_all_records")]
Response<Object>
pvs_site_get_all_records(string session);
[XmlRpcMethod("PVS_server.get_record")]
Response<Proxy_PVS_server>
pvs_server_get_record(string session, string _pvs_server);
[XmlRpcMethod("PVS_server.get_by_uuid")]
Response<string>
pvs_server_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("PVS_server.get_uuid")]
Response<string>
pvs_server_get_uuid(string session, string _pvs_server);
[XmlRpcMethod("PVS_server.get_addresses")]
Response<string []>
pvs_server_get_addresses(string session, string _pvs_server);
[XmlRpcMethod("PVS_server.get_first_port")]
Response<string>
pvs_server_get_first_port(string session, string _pvs_server);
[XmlRpcMethod("PVS_server.get_last_port")]
Response<string>
pvs_server_get_last_port(string session, string _pvs_server);
[XmlRpcMethod("PVS_server.get_site")]
Response<string>
pvs_server_get_site(string session, string _pvs_server);
[XmlRpcMethod("PVS_server.introduce")]
Response<string>
pvs_server_introduce(string session, string [] _addresses, string _first_port, string _last_port, string _site);
[XmlRpcMethod("Async.PVS_server.introduce")]
Response<string>
async_pvs_server_introduce(string session, string [] _addresses, string _first_port, string _last_port, string _site);
[XmlRpcMethod("PVS_server.forget")]
Response<string>
pvs_server_forget(string session, string _pvs_server);
[XmlRpcMethod("Async.PVS_server.forget")]
Response<string>
async_pvs_server_forget(string session, string _pvs_server);
[XmlRpcMethod("PVS_server.get_all")]
Response<string []>
pvs_server_get_all(string session);
[XmlRpcMethod("PVS_server.get_all_records")]
Response<Object>
pvs_server_get_all_records(string session);
[XmlRpcMethod("PVS_proxy.get_record")]
Response<Proxy_PVS_proxy>
pvs_proxy_get_record(string session, string _pvs_proxy);
[XmlRpcMethod("PVS_proxy.get_by_uuid")]
Response<string>
pvs_proxy_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("PVS_proxy.get_uuid")]
Response<string>
pvs_proxy_get_uuid(string session, string _pvs_proxy);
[XmlRpcMethod("PVS_proxy.get_site")]
Response<string>
pvs_proxy_get_site(string session, string _pvs_proxy);
[XmlRpcMethod("PVS_proxy.get_VIF")]
Response<string>
pvs_proxy_get_vif(string session, string _pvs_proxy);
[XmlRpcMethod("PVS_proxy.get_currently_attached")]
Response<bool>
pvs_proxy_get_currently_attached(string session, string _pvs_proxy);
[XmlRpcMethod("PVS_proxy.get_status")]
Response<string>
pvs_proxy_get_status(string session, string _pvs_proxy);
[XmlRpcMethod("PVS_proxy.create")]
Response<string>
pvs_proxy_create(string session, string _site, string _vif);
[XmlRpcMethod("Async.PVS_proxy.create")]
Response<string>
async_pvs_proxy_create(string session, string _site, string _vif);
[XmlRpcMethod("PVS_proxy.destroy")]
Response<string>
pvs_proxy_destroy(string session, string _pvs_proxy);
[XmlRpcMethod("Async.PVS_proxy.destroy")]
Response<string>
async_pvs_proxy_destroy(string session, string _pvs_proxy);
[XmlRpcMethod("PVS_proxy.get_all")]
Response<string []>
pvs_proxy_get_all(string session);
[XmlRpcMethod("PVS_proxy.get_all_records")]
Response<Object>
pvs_proxy_get_all_records(string session);
[XmlRpcMethod("PVS_cache_storage.get_record")]
Response<Proxy_PVS_cache_storage>
pvs_cache_storage_get_record(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_by_uuid")]
Response<string>
pvs_cache_storage_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("PVS_cache_storage.create")]
Response<string>
pvs_cache_storage_create(string session, Proxy_PVS_cache_storage _record);
[XmlRpcMethod("Async.PVS_cache_storage.create")]
Response<string>
async_pvs_cache_storage_create(string session, Proxy_PVS_cache_storage _record);
[XmlRpcMethod("PVS_cache_storage.destroy")]
Response<string>
pvs_cache_storage_destroy(string session, string _pvs_cache_storage);
[XmlRpcMethod("Async.PVS_cache_storage.destroy")]
Response<string>
async_pvs_cache_storage_destroy(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_uuid")]
Response<string>
pvs_cache_storage_get_uuid(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_host")]
Response<string>
pvs_cache_storage_get_host(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_SR")]
Response<string>
pvs_cache_storage_get_sr(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_site")]
Response<string>
pvs_cache_storage_get_site(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_size")]
Response<string>
pvs_cache_storage_get_size(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_VDI")]
Response<string>
pvs_cache_storage_get_vdi(string session, string _pvs_cache_storage);
[XmlRpcMethod("PVS_cache_storage.get_all")]
Response<string []>
pvs_cache_storage_get_all(string session);
[XmlRpcMethod("PVS_cache_storage.get_all_records")]
Response<Object>
pvs_cache_storage_get_all_records(string session);
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -7248,6 +7500,9 @@ namespace XenAPI
public DateTime install_time;
public DateTime last_updated;
public Object other_config;
public bool hvm;
public bool nested_virt;
public bool nomigrate;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -7868,4 +8123,47 @@ namespace XenAPI
public bool experimental;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_PVS_site
{
public string uuid;
public string name_label;
public string name_description;
public string PVS_uuid;
public string [] cache_storage;
public string [] servers;
public string [] proxies;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_PVS_server
{
public string uuid;
public string [] addresses;
public string first_port;
public string last_port;
public string site;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_PVS_proxy
{
public string uuid;
public string site;
public string VIF;
public bool currently_attached;
public string status;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_PVS_cache_storage
{
public string uuid;
public string host;
public string SR;
public string site;
public string size;
public string VDI;
}
}

View File

@ -96,6 +96,12 @@ namespace XenAPI
new Relation("bond_master_of", "Bond", "master"),
});
relations.Add(typeof(Proxy_PVS_site), new Relation[] {
new Relation("cache_storage", "PVS_cache_storage", "site"),
new Relation("proxies", "PVS_proxy", "site"),
new Relation("servers", "PVS_server", "site"),
});
relations.Add(typeof(Proxy_DR_task), new Relation[] {
new Relation("introduced_SRs", "SR", "introduced_by"),
});

View File

@ -59,7 +59,10 @@ namespace XenAPI
DateTime start_time,
DateTime install_time,
DateTime last_updated,
Dictionary<string, string> other_config)
Dictionary<string, string> other_config,
bool hvm,
bool nested_virt,
bool nomigrate)
{
this.uuid = uuid;
this.memory_actual = memory_actual;
@ -73,6 +76,9 @@ namespace XenAPI
this.install_time = install_time;
this.last_updated = last_updated;
this.other_config = other_config;
this.hvm = hvm;
this.nested_virt = nested_virt;
this.nomigrate = nomigrate;
}
/// <summary>
@ -98,6 +104,9 @@ namespace XenAPI
install_time = update.install_time;
last_updated = update.last_updated;
other_config = update.other_config;
hvm = update.hvm;
nested_virt = update.nested_virt;
nomigrate = update.nomigrate;
}
internal void UpdateFromProxy(Proxy_VM_metrics proxy)
@ -114,6 +123,9 @@ namespace XenAPI
install_time = proxy.install_time;
last_updated = proxy.last_updated;
other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config);
hvm = (bool)proxy.hvm;
nested_virt = (bool)proxy.nested_virt;
nomigrate = (bool)proxy.nomigrate;
}
public Proxy_VM_metrics ToProxy()
@ -131,6 +143,9 @@ namespace XenAPI
result_.install_time = install_time;
result_.last_updated = last_updated;
result_.other_config = Maps.convert_to_proxy_string_string(other_config);
result_.hvm = hvm;
result_.nested_virt = nested_virt;
result_.nomigrate = nomigrate;
return result_;
}
@ -152,6 +167,9 @@ namespace XenAPI
install_time = Marshalling.ParseDateTime(table, "install_time");
last_updated = Marshalling.ParseDateTime(table, "last_updated");
other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config"));
hvm = Marshalling.ParseBool(table, "hvm");
nested_virt = Marshalling.ParseBool(table, "nested_virt");
nomigrate = Marshalling.ParseBool(table, "nomigrate");
}
public bool DeepEquals(VM_metrics other)
@ -172,7 +190,10 @@ namespace XenAPI
Helper.AreEqual2(this._start_time, other._start_time) &&
Helper.AreEqual2(this._install_time, other._install_time) &&
Helper.AreEqual2(this._last_updated, other._last_updated) &&
Helper.AreEqual2(this._other_config, other._other_config);
Helper.AreEqual2(this._other_config, other._other_config) &&
Helper.AreEqual2(this._hvm, other._hvm) &&
Helper.AreEqual2(this._nested_virt, other._nested_virt) &&
Helper.AreEqual2(this._nomigrate, other._nomigrate);
}
public override string SaveChanges(Session session, string opaqueRef, VM_metrics server)
@ -346,6 +367,39 @@ namespace XenAPI
return Maps.convert_from_proxy_string_string(session.proxy.vm_metrics_get_other_config(session.uuid, (_vm_metrics != null) ? _vm_metrics : "").parse());
}
/// <summary>
/// Get the hvm field of the given VM_metrics.
/// First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm_metrics">The opaque_ref of the given vm_metrics</param>
public static bool get_hvm(Session session, string _vm_metrics)
{
return (bool)session.proxy.vm_metrics_get_hvm(session.uuid, (_vm_metrics != null) ? _vm_metrics : "").parse();
}
/// <summary>
/// Get the nested_virt field of the given VM_metrics.
/// First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm_metrics">The opaque_ref of the given vm_metrics</param>
public static bool get_nested_virt(Session session, string _vm_metrics)
{
return (bool)session.proxy.vm_metrics_get_nested_virt(session.uuid, (_vm_metrics != null) ? _vm_metrics : "").parse();
}
/// <summary>
/// Get the nomigrate field of the given VM_metrics.
/// First published in .
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm_metrics">The opaque_ref of the given vm_metrics</param>
public static bool get_nomigrate(Session session, string _vm_metrics)
{
return (bool)session.proxy.vm_metrics_get_nomigrate(session.uuid, (_vm_metrics != null) ? _vm_metrics : "").parse();
}
/// <summary>
/// Set the other_config field of the given VM_metrics.
/// First published in XenServer 5.0.
@ -619,5 +673,62 @@ namespace XenAPI
}
}
private Dictionary<string, string> _other_config;
/// <summary>
/// hardware virtual machine
/// First published in .
/// </summary>
public virtual bool hvm
{
get { return _hvm; }
set
{
if (!Helper.AreEqual(value, _hvm))
{
_hvm = value;
Changed = true;
NotifyPropertyChanged("hvm");
}
}
}
private bool _hvm;
/// <summary>
/// VM supports nested virtualisation
/// First published in .
/// </summary>
public virtual bool nested_virt
{
get { return _nested_virt; }
set
{
if (!Helper.AreEqual(value, _nested_virt))
{
_nested_virt = value;
Changed = true;
NotifyPropertyChanged("nested_virt");
}
}
}
private bool _nested_virt;
/// <summary>
/// VM is immobile and can't migrate between hosts
/// First published in .
/// </summary>
public virtual bool nomigrate
{
get { return _nomigrate; }
set
{
if (!Helper.AreEqual(value, _nomigrate))
{
_nomigrate = value;
Changed = true;
NotifyPropertyChanged("nomigrate");
}
}
}
private bool _nomigrate;
}
}

View File

@ -37,7 +37,7 @@ namespace XenAPI
{
public enum cls
{
VM, Host, SR, Pool, VMPP, unknown
VM, Host, SR, Pool, VMPP, PVS_proxy, unknown
}
public static class cls_helper
@ -56,6 +56,8 @@ namespace XenAPI
return "Pool";
case cls.VMPP:
return "VMPP";
case cls.PVS_proxy:
return "PVS_proxy";
default:
return "unknown";
}

View File

@ -0,0 +1,60 @@
/*
* 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.Generic;
namespace XenAPI
{
public enum livepatch_status
{
ok_livepatch_complete, ok_livepatch_incomplete, ok, unknown
}
public static class livepatch_status_helper
{
public static string ToString(livepatch_status x)
{
switch (x)
{
case livepatch_status.ok_livepatch_complete:
return "ok_livepatch_complete";
case livepatch_status.ok_livepatch_incomplete:
return "ok_livepatch_incomplete";
case livepatch_status.ok:
return "ok";
default:
return "unknown";
}
}
}
}

View File

@ -0,0 +1,64 @@
/*
* 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.Generic;
namespace XenAPI
{
public enum pvs_proxy_status
{
stopped, initialised, caching, incompatible_write_cache_mode, incompatible_protocol_version, unknown
}
public static class pvs_proxy_status_helper
{
public static string ToString(pvs_proxy_status x)
{
switch (x)
{
case pvs_proxy_status.stopped:
return "stopped";
case pvs_proxy_status.initialised:
return "initialised";
case pvs_proxy_status.caching:
return "caching";
case pvs_proxy_status.incompatible_write_cache_mode:
return "incompatible_write_cache_mode";
case pvs_proxy_status.incompatible_protocol_version:
return "incompatible_protocol_version";
default:
return "unknown";
}
}
}
}

View File

@ -37,7 +37,7 @@ namespace XenAPI
{
public enum vdi_type
{
system, user, ephemeral, suspend, crashdump, ha_statefile, metadata, redo_log, rrd, unknown
system, user, ephemeral, suspend, crashdump, ha_statefile, metadata, redo_log, rrd, pvs_cache, unknown
}
public static class vdi_type_helper
@ -64,6 +64,8 @@ namespace XenAPI
return "redo_log";
case vdi_type.rrd:
return "rrd";
case vdi_type.pvs_cache:
return "pvs_cache";
default:
return "unknown";
}

View File

@ -346,6 +346,7 @@
<Compile Include="XenAPI\GPU_group.cs" />
<Compile Include="XenAPI\host_display.cs" />
<Compile Include="XenAPI\ipv6_configuration_mode.cs" />
<Compile Include="XenAPI\livepatch_status.cs" />
<Compile Include="XenAPI\LVHD.cs">
<SubType>Code</SubType>
</Compile>
@ -356,6 +357,11 @@
<Compile Include="XenAPI\pool_allowed_operations.cs" />
<Compile Include="XenAPI\Pool_update.cs" />
<Compile Include="XenAPI\primary_address_type.cs" />
<Compile Include="XenAPI\PVS_cache_storage.cs" />
<Compile Include="XenAPI\PVS_proxy.cs" />
<Compile Include="XenAPI\pvs_proxy_status.cs" />
<Compile Include="XenAPI\PVS_server.cs" />
<Compile Include="XenAPI\PVS_site.cs" />
<Compile Include="XenAPI\tristate_type.cs" />
<Compile Include="XenAPI\update_after_apply_guidance.cs" />
<Compile Include="XenAPI\VGPU.cs" />