Updated bindings with the latest API objects.

Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
This commit is contained in:
Konstantina Chremmou 2017-11-17 11:19:01 +00:00
parent c31703df3c
commit c2e71875af
70 changed files with 4598 additions and 89 deletions

View File

@ -91,6 +91,15 @@ namespace XenAPI
return false;
}
internal static List<Auth> ProxyArrayToObjectList(Proxy_Auth[] input)
{
var result = new List<Auth>();
foreach (var item in input)
result.Add(new Auth(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Auth server)
{
if (opaqueRef == null)

View File

@ -142,6 +142,15 @@ namespace XenAPI
Helper.AreEqual2(this._mime_type, other._mime_type);
}
internal static List<Blob> ProxyArrayToObjectList(Proxy_Blob[] input)
{
var result = new List<Blob>();
foreach (var item in input)
result.Add(new Blob(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Blob server)
{
if (opaqueRef == null)

View File

@ -149,6 +149,15 @@ namespace XenAPI
Helper.AreEqual2(this._links_up, other._links_up);
}
internal static List<Bond> ProxyArrayToObjectList(Proxy_Bond[] input)
{
var result = new List<Bond>();
foreach (var item in input)
result.Add(new Bond(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Bond server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Console> ProxyArrayToObjectList(Proxy_Console[] input)
{
var result = new List<Console>();
foreach (var item in input)
result.Add(new Console(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Console server)
{
if (opaqueRef == null)

View File

@ -121,6 +121,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Crashdump> ProxyArrayToObjectList(Proxy_Crashdump[] input)
{
var result = new List<Crashdump>();
foreach (var item in input)
result.Add(new Crashdump(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Crashdump server)
{
if (opaqueRef == null)

View File

@ -107,6 +107,15 @@ namespace XenAPI
Helper.AreEqual2(this._introduced_SRs, other._introduced_SRs);
}
internal static List<DR_task> ProxyArrayToObjectList(Proxy_DR_task[] input)
{
var result = new List<DR_task>();
foreach (var item in input)
result.Add(new DR_task(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, DR_task server)
{
if (opaqueRef == null)

View File

@ -149,6 +149,15 @@ namespace XenAPI
Helper.AreEqual2(this._value, other._value);
}
internal static List<Data_source> ProxyArrayToObjectList(Proxy_Data_source[] input)
{
var result = new List<Data_source>();
foreach (var item in input)
result.Add(new Data_source(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Data_source server)
{
if (opaqueRef == null)

View File

@ -142,6 +142,15 @@ namespace XenAPI
Helper.AreEqual2(this._host, other._host);
}
internal static List<Feature> ProxyArrayToObjectList(Proxy_Feature[] input)
{
var result = new List<Feature>();
foreach (var item in input)
result.Add(new Feature(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Feature server)
{
if (opaqueRef == null)

View File

@ -261,6 +261,9 @@
<data name="COULD_NOT_IMPORT_DATABASE" xml:space="preserve">
<value>An error occurred while attempting to import a database from a metadata VDI</value>
</data>
<data name="COULD_NOT_UPDATE_IGMP_SNOOPING_EVERYWHERE" xml:space="preserve">
<value>The IGMP Snooping setting cannot be applied for some of the host, network(s).</value>
</data>
<data name="CPU_FEATURE_MASKING_NOT_SUPPORTED" xml:space="preserve">
<value>The CPU does not support masking of features.</value>
</data>
@ -687,6 +690,9 @@
<data name="NETWORK_CONTAINS_VIF" xml:space="preserve">
<value>The network contains active VIFs ({0}) and cannot be deleted.</value>
</data>
<data name="NETWORK_INCOMPATIBLE_PURPOSES" xml:space="preserve">
<value>You tried to add a purpose to a network but the new purpose is not compatible with an existing purpose of the network or other networks.</value>
</data>
<data name="NETWORK_UNMANAGED" xml:space="preserve">
<value>The network is not managed by xapi.</value>
</data>
@ -711,6 +717,9 @@
<data name="NO_MORE_REDO_LOGS_ALLOWED" xml:space="preserve">
<value>The upper limit of active redo log instances was reached.</value>
</data>
<data name="NVIDIA_TOOLS_ERROR" xml:space="preserve">
<value>Nvidia tools error. Please ensure that the latest Nvidia tools are installed</value>
</data>
<data name="OBJECT_NOLONGER_EXISTS" xml:space="preserve">
<value>The specified object no longer exists.</value>
</data>
@ -735,6 +744,9 @@
<data name="OUT_OF_SPACE" xml:space="preserve">
<value>There is not enough space to upload the update</value>
</data>
<data name="PASSTHROUGH_NOT_ENABLED" xml:space="preserve">
<value>The passthrough_enabled must be true before passthrough usb to vm.</value>
</data>
<data name="PATCH_ALREADY_APPLIED" xml:space="preserve">
<value>The update {0} has already been applied</value>
</data>
@ -915,6 +927,9 @@
<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="PUSB_VDI_CONFLICT" xml:space="preserve">
<value>The VDI corresponding to this PUSB has existing VBDs.</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>
@ -1223,6 +1238,12 @@ Authorized Roles: {1}</value>
<data name="SR_BACKEND_FAILURE_226" xml:space="preserve">
<value>Invalid local path</value>
</data>
<data name="SR_BACKEND_FAILURE_227" xml:space="preserve">
<value>Given SMB version is not allowed. Choose either 1.0 or 3.0</value>
</data>
<data name="SR_BACKEND_FAILURE_228" xml:space="preserve">
<value>Require &quot;-o&quot; along with xe-mount-isosr</value>
</data>
<data name="SR_BACKEND_FAILURE_24" xml:space="preserve">
<value>The specified VDI is currently in use</value>
</data>
@ -1409,6 +1430,9 @@ Authorized Roles: {1}</value>
<data name="SR_BACKEND_FAILURE_46" xml:space="preserve">
<value>The VDI is not available</value>
</data>
<data name="SR_BACKEND_FAILURE_460" xml:space="preserve">
<value>Failed to calculate changed blocks for given VDIs.</value>
</data>
<data name="SR_BACKEND_FAILURE_47" xml:space="preserve">
<value>The storage repository is not available</value>
</data>
@ -1649,6 +1673,9 @@ Authorized Roles: {1}</value>
<data name="TOO_MANY_STORAGE_MIGRATES" xml:space="preserve">
<value>You reached the maximal number of concurrently migrating VMs.</value>
</data>
<data name="TOO_MANY_VUSBS" xml:space="preserve">
<value>The VM has too many VUSBs.</value>
</data>
<data name="TRANSPORT_PIF_NOT_CONFIGURED" xml:space="preserve">
<value>The tunnel transport PIF has no IP configuration set.</value>
</data>
@ -1694,6 +1721,21 @@ Authorized Roles: {1}</value>
<data name="UPDATE_PRECHECK_FAILED_WRONG_SERVER_VERSION" xml:space="preserve">
<value>The update precheck stage failed: the server is of an incorrect version.</value>
</data>
<data name="USB_ALREADY_ATTACHED" xml:space="preserve">
<value>The USB device is currently attached to a VM.</value>
</data>
<data name="USB_GROUP_CONFLICT" xml:space="preserve">
<value>USB_groups are currently restricted to contain no more than one VUSB.</value>
</data>
<data name="USB_GROUP_CONTAINS_NO_PUSBS" xml:space="preserve">
<value>The USB group does not contain any PUSBs.</value>
</data>
<data name="USB_GROUP_CONTAINS_PUSB" xml:space="preserve">
<value>The USB group contains active PUSBs and cannot be deleted.</value>
</data>
<data name="USB_GROUP_CONTAINS_VUSB" xml:space="preserve">
<value>The USB group contains active VUSBs and cannot be deleted.</value>
</data>
<data name="USER_IS_NOT_LOCAL_SUPERUSER" xml:space="preserve">
<value>Only the local superuser can perform this operation</value>
</data>
@ -1793,6 +1835,9 @@ Authorized Roles: {1}</value>
<data name="VDI_TOO_SMALL" xml:space="preserve">
<value>The VDI is too small. Please resize it to at least the minimum size.</value>
</data>
<data name="VGPU_DESTINATION_INCOMPATIBLE" xml:space="preserve">
<value>The VGPU is not compatible with any PGPU in the destination.</value>
</data>
<data name="VGPU_TYPE_NOT_COMPATIBLE_WITH_RUNNING_TYPE" xml:space="preserve">
<value>The VM cannot start because all GPUs are fully used or are running other types of virtual GPU</value>
</data>
@ -1845,7 +1890,7 @@ Authorized Roles: {1}</value>
<value>You attempted an operation on a VM that needed it to be in state &apos;{1}&apos; but was in state &apos;{2}&apos;.</value>
</data>
<data name="VM_BIOS_STRINGS_ALREADY_SET" xml:space="preserve">
<value>The BIOS strings for this VM have already been set and cannot be changed anymore.</value>
<value>The BIOS strings for this VM have already been set and cannot be changed.</value>
</data>
<data name="VM_CALL_PLUGIN_RATE_LIMIT" xml:space="preserve">
<value>There is a minimal interval required between consecutive plugin calls made on the same VM, please wait before retry.</value>
@ -1886,11 +1931,14 @@ Authorized Roles: {1}</value>
<data name="VM_HAS_VGPU" xml:space="preserve">
<value>This operation could not be performed, because the VM has one or more virtual GPUs.</value>
</data>
<data name="VM_HAS_VUSBS" xml:space="preserve">
<value>The operation is not allowed when the VM has VUSBs.</value>
</data>
<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>
<value>You attempted to migrate a VM to a destination host which is older than the source host.</value>
</data>
<data name="VM_HOST_INCOMPATIBLE_VIRTUAL_HARDWARE_PLATFORM_VERSION" xml:space="preserve">
<value>The VM&apos;s Virtual Hardware Platform version is incompatible with this host.</value>
@ -1994,6 +2042,9 @@ Authorized Roles: {1}</value>
<data name="VM_REQUIRES_VGPU" xml:space="preserve">
<value>The VM cannot start because no GPU is available</value>
</data>
<data name="VM_REQUIRES_VUSB" xml:space="preserve">
<value>You attempted to run a VM on a host on which the VUSB required by the VM cannot be allocated on any PUSBs in the USB_group needed by the VM.</value>
</data>
<data name="VM_REVERT_FAILED" xml:space="preserve">
<value>An error occurred while reverting the specified virtual machine to the specified snapshot</value>
</data>

View File

@ -163,6 +163,15 @@ namespace XenAPI
Helper.AreEqual2(this._enabled_VGPU_types, other._enabled_VGPU_types);
}
internal static List<GPU_group> ProxyArrayToObjectList(Proxy_GPU_group[] input)
{
var result = new List<GPU_group>();
foreach (var item in input)
result.Add(new GPU_group(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, GPU_group server)
{
if (opaqueRef == null)

View File

@ -1,19 +1,19 @@
/*
* 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
@ -140,7 +140,7 @@ namespace XenAPI
}
/// <summary>
///
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="opaqueRefs">Must not be null.</param>
@ -271,16 +271,6 @@ namespace XenAPI
return result;
}
internal static List<Data_source> Proxy_Data_sourceArrayToData_sourceList(Proxy_Data_source[] input)
{
List<Data_source> result = new List<Data_source>();
foreach (Proxy_Data_source pd in input)
{
result.Add(new Data_source(pd));
}
return result;
}
internal static Object EnumParseDefault(Type t, string s)
{
try

View File

@ -98,6 +98,7 @@ namespace XenAPI
Dictionary<string, string> chipset_info,
List<XenRef<PCI>> PCIs,
List<XenRef<PGPU>> PGPUs,
List<XenRef<PUSB>> PUSBs,
bool ssl_legacy,
Dictionary<string, string> guest_VCPUs_params,
host_display display,
@ -154,6 +155,7 @@ namespace XenAPI
this.chipset_info = chipset_info;
this.PCIs = PCIs;
this.PGPUs = PGPUs;
this.PUSBs = PUSBs;
this.ssl_legacy = ssl_legacy;
this.guest_VCPUs_params = guest_VCPUs_params;
this.display = display;
@ -222,6 +224,7 @@ namespace XenAPI
chipset_info = update.chipset_info;
PCIs = update.PCIs;
PGPUs = update.PGPUs;
PUSBs = update.PUSBs;
ssl_legacy = update.ssl_legacy;
guest_VCPUs_params = update.guest_VCPUs_params;
display = update.display;
@ -281,6 +284,7 @@ namespace XenAPI
chipset_info = proxy.chipset_info == null ? null : Maps.convert_from_proxy_string_string(proxy.chipset_info);
PCIs = proxy.PCIs == null ? null : XenRef<PCI>.Create(proxy.PCIs);
PGPUs = proxy.PGPUs == null ? null : XenRef<PGPU>.Create(proxy.PGPUs);
PUSBs = proxy.PUSBs == null ? null : XenRef<PUSB>.Create(proxy.PUSBs);
ssl_legacy = (bool)proxy.ssl_legacy;
guest_VCPUs_params = proxy.guest_VCPUs_params == null ? null : Maps.convert_from_proxy_string_string(proxy.guest_VCPUs_params);
display = proxy.display == null ? (host_display) 0 : (host_display)Helper.EnumParseDefault(typeof(host_display), (string)proxy.display);
@ -341,6 +345,7 @@ namespace XenAPI
result_.chipset_info = Maps.convert_to_proxy_string_string(chipset_info);
result_.PCIs = (PCIs != null) ? Helper.RefListToStringArray(PCIs) : new string[] {};
result_.PGPUs = (PGPUs != null) ? Helper.RefListToStringArray(PGPUs) : new string[] {};
result_.PUSBs = (PUSBs != null) ? Helper.RefListToStringArray(PUSBs) : new string[] {};
result_.ssl_legacy = ssl_legacy;
result_.guest_VCPUs_params = Maps.convert_to_proxy_string_string(guest_VCPUs_params);
result_.display = host_display_helper.ToString(display);
@ -405,6 +410,7 @@ namespace XenAPI
chipset_info = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "chipset_info"));
PCIs = Marshalling.ParseSetRef<PCI>(table, "PCIs");
PGPUs = Marshalling.ParseSetRef<PGPU>(table, "PGPUs");
PUSBs = Marshalling.ParseSetRef<PUSB>(table, "PUSBs");
ssl_legacy = Marshalling.ParseBool(table, "ssl_legacy");
guest_VCPUs_params = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "guest_VCPUs_params"));
display = (host_display)Helper.EnumParseDefault(typeof(host_display), Marshalling.ParseString(table, "display"));
@ -471,6 +477,7 @@ namespace XenAPI
Helper.AreEqual2(this._chipset_info, other._chipset_info) &&
Helper.AreEqual2(this._PCIs, other._PCIs) &&
Helper.AreEqual2(this._PGPUs, other._PGPUs) &&
Helper.AreEqual2(this._PUSBs, other._PUSBs) &&
Helper.AreEqual2(this._ssl_legacy, other._ssl_legacy) &&
Helper.AreEqual2(this._guest_VCPUs_params, other._guest_VCPUs_params) &&
Helper.AreEqual2(this._display, other._display) &&
@ -480,6 +487,15 @@ namespace XenAPI
Helper.AreEqual2(this._features, other._features);
}
internal static List<Host> ProxyArrayToObjectList(Proxy_Host[] input)
{
var result = new List<Host>();
foreach (var item in input)
result.Add(new Host(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Host server)
{
if (opaqueRef == null)
@ -1260,6 +1276,20 @@ namespace XenAPI
return XenRef<PGPU>.Create(session.proxy.host_get_pgpus(session.uuid, _host ?? "").parse());
}
/// <summary>
/// Get the PUSBs field of the given host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_host">The opaque_ref of the given host</param>
public static List<XenRef<PUSB>> get_PUSBs(Session session, string _host)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.host_get_pusbs(session.uuid, _host);
else
return XenRef<PUSB>.Create(session.proxy.host_get_pusbs(session.uuid, _host ?? "").parse());
}
/// <summary>
/// Get the ssl_legacy field of the given host.
/// First published in XenServer 7.0.
@ -2132,7 +2162,7 @@ namespace XenAPI
if (session.JsonRpcClient != null)
return session.JsonRpcClient.host_get_data_sources(session.uuid, _host);
else
return Helper.Proxy_Data_sourceArrayToData_sourceList(session.proxy.host_get_data_sources(session.uuid, _host ?? "").parse());
return Data_source.ProxyArrayToObjectList(session.proxy.host_get_data_sources(session.uuid, _host ?? "").parse());
}
/// <summary>
@ -2796,7 +2826,7 @@ namespace XenAPI
}
/// <summary>
/// Get the installed server SSL certificate.
/// Get the installed server public TLS certificate.
/// First published in XenServer 5.5.
/// </summary>
/// <param name="session">The session</param>
@ -2810,7 +2840,7 @@ namespace XenAPI
}
/// <summary>
/// Get the installed server SSL certificate.
/// Get the installed server public TLS certificate.
/// First published in XenServer 5.5.
/// </summary>
/// <param name="session">The session</param>
@ -4044,6 +4074,26 @@ namespace XenAPI
}
private List<XenRef<PGPU>> _PGPUs = new List<XenRef<PGPU>>() {};
/// <summary>
/// List of physical USBs in the host
/// First published in Unreleased.
/// </summary>
[JsonConverter(typeof(XenRefListConverter<PUSB>))]
public virtual List<XenRef<PUSB>> PUSBs
{
get { return _PUSBs; }
set
{
if (!Helper.AreEqual(value, _PUSBs))
{
_PUSBs = value;
Changed = true;
NotifyPropertyChanged("PUSBs");
}
}
}
private List<XenRef<PUSB>> _PUSBs = new List<XenRef<PUSB>>() {};
/// <summary>
/// Allow SSLv3 protocol and ciphersuites as used by older XenServers. This controls both incoming and outgoing connections. When this is set to a different value, the host immediately restarts its SSL/TLS listening service; typically this takes less than a second but existing connections to it will be broken. XenAPI login sessions will remain valid.
/// First published in XenServer 7.0.

View File

@ -184,6 +184,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Host_cpu> ProxyArrayToObjectList(Proxy_Host_cpu[] input)
{
var result = new List<Host_cpu>();
foreach (var item in input)
result.Add(new Host_cpu(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Host_cpu server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Host_crashdump> ProxyArrayToObjectList(Proxy_Host_crashdump[] input)
{
var result = new List<Host_crashdump>();
foreach (var item in input)
result.Add(new Host_crashdump(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Host_crashdump server)
{
if (opaqueRef == null)

View File

@ -135,6 +135,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Host_metrics> ProxyArrayToObjectList(Proxy_Host_metrics[] input)
{
var result = new List<Host_metrics>();
foreach (var item in input)
result.Add(new Host_metrics(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Host_metrics server)
{
if (opaqueRef == null)

View File

@ -163,6 +163,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Host_patch> ProxyArrayToObjectList(Proxy_Host_patch[] input)
{
var result = new List<Host_patch>();
foreach (var item in input)
result.Add(new Host_patch(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Host_patch server)
{
if (opaqueRef == null)

View File

@ -1020,6 +1020,13 @@ namespace XenAPI
return Rpc<bool>("pool.get_live_patching_disabled", new JArray(session, _pool ?? ""), serializer);
}
public bool pool_get_igmp_snooping_enabled(string session, string _pool)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<bool>("pool.get_igmp_snooping_enabled", new JArray(session, _pool ?? ""), serializer);
}
public void pool_set_name_label(string session, string _pool, string _name_label)
{
var converters = new List<JsonConverter> {};
@ -1755,6 +1762,20 @@ namespace XenAPI
return Rpc<XenRef<Task>>("Async.pool.disable_ssl_legacy", new JArray(session, _pool ?? ""), serializer);
}
public void pool_set_igmp_snooping_enabled(string session, string _pool, bool _value)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("pool.set_igmp_snooping_enabled", new JArray(session, _pool ?? "", _value), serializer);
}
public XenRef<Task> async_pool_set_igmp_snooping_enabled(string session, string _pool, bool _value)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.pool.set_igmp_snooping_enabled", new JArray(session, _pool ?? "", _value), serializer);
}
public bool pool_has_extension(string session, string _pool, string _name)
{
var converters = new List<JsonConverter> {};
@ -2490,6 +2511,13 @@ namespace XenAPI
return Rpc<List<XenRef<VBD>>>("VM.get_VBDs", new JArray(session, _vm ?? ""), serializer);
}
public List<XenRef<VUSB>> vm_get_vusbs(string session, string _vm)
{
var converters = new List<JsonConverter> {new XenRefListConverter<VUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<VUSB>>>("VM.get_VUSBs", new JArray(session, _vm ?? ""), serializer);
}
public List<XenRef<Crashdump>> vm_get_crash_dumps(string session, string _vm)
{
var converters = new List<JsonConverter> {new XenRefListConverter<Crashdump>()};
@ -3722,6 +3750,20 @@ namespace XenAPI
return Rpc<XenRef<Task>>("Async.VM.migrate_send", new JArray(session, _vm ?? "", _dest == null ? new JObject() : JObject.FromObject(_dest, serializer), _live, _vdi_map == null ? new JObject() : JObject.FromObject(_vdi_map, serializer), _vif_map == null ? new JObject() : JObject.FromObject(_vif_map, serializer), _options == null ? new JObject() : JObject.FromObject(_options, serializer)), serializer);
}
public XenRef<VM> vm_migrate_send(string session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
var converters = new List<JsonConverter> {new XenRefConverter<VM>(), new XenRefXenRefMapConverter<VDI, SR>(), new XenRefXenRefMapConverter<VIF, Network>(), new XenRefXenRefMapConverter<VGPU, GPU_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<VM>>("VM.migrate_send", new JArray(session, _vm ?? "", _dest == null ? new JObject() : JObject.FromObject(_dest, serializer), _live, _vdi_map == null ? new JObject() : JObject.FromObject(_vdi_map, serializer), _vif_map == null ? new JObject() : JObject.FromObject(_vif_map, serializer), _options == null ? new JObject() : JObject.FromObject(_options, serializer), _vgpu_map == null ? new JObject() : JObject.FromObject(_vgpu_map, serializer)), serializer);
}
public XenRef<Task> async_vm_migrate_send(string session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>(), new XenRefXenRefMapConverter<VDI, SR>(), new XenRefXenRefMapConverter<VIF, Network>(), new XenRefXenRefMapConverter<VGPU, GPU_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VM.migrate_send", new JArray(session, _vm ?? "", _dest == null ? new JObject() : JObject.FromObject(_dest, serializer), _live, _vdi_map == null ? new JObject() : JObject.FromObject(_vdi_map, serializer), _vif_map == null ? new JObject() : JObject.FromObject(_vif_map, serializer), _options == null ? new JObject() : JObject.FromObject(_options, serializer), _vgpu_map == null ? new JObject() : JObject.FromObject(_vgpu_map, serializer)), serializer);
}
public void vm_assert_can_migrate(string session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options)
{
var converters = new List<JsonConverter> {new XenRefXenRefMapConverter<VDI, SR>(), new XenRefXenRefMapConverter<VIF, Network>()};
@ -3736,6 +3778,20 @@ namespace XenAPI
return Rpc<XenRef<Task>>("Async.VM.assert_can_migrate", new JArray(session, _vm ?? "", _dest == null ? new JObject() : JObject.FromObject(_dest, serializer), _live, _vdi_map == null ? new JObject() : JObject.FromObject(_vdi_map, serializer), _vif_map == null ? new JObject() : JObject.FromObject(_vif_map, serializer), _options == null ? new JObject() : JObject.FromObject(_options, serializer)), serializer);
}
public void vm_assert_can_migrate(string session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
var converters = new List<JsonConverter> {new XenRefXenRefMapConverter<VDI, SR>(), new XenRefXenRefMapConverter<VIF, Network>(), new XenRefXenRefMapConverter<VGPU, GPU_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("VM.assert_can_migrate", new JArray(session, _vm ?? "", _dest == null ? new JObject() : JObject.FromObject(_dest, serializer), _live, _vdi_map == null ? new JObject() : JObject.FromObject(_vdi_map, serializer), _vif_map == null ? new JObject() : JObject.FromObject(_vif_map, serializer), _options == null ? new JObject() : JObject.FromObject(_options, serializer), _vgpu_map == null ? new JObject() : JObject.FromObject(_vgpu_map, serializer)), serializer);
}
public XenRef<Task> async_vm_assert_can_migrate(string session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>(), new XenRefXenRefMapConverter<VDI, SR>(), new XenRefXenRefMapConverter<VIF, Network>(), new XenRefXenRefMapConverter<VGPU, GPU_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VM.assert_can_migrate", new JArray(session, _vm ?? "", _dest == null ? new JObject() : JObject.FromObject(_dest, serializer), _live, _vdi_map == null ? new JObject() : JObject.FromObject(_vdi_map, serializer), _vif_map == null ? new JObject() : JObject.FromObject(_vif_map, serializer), _options == null ? new JObject() : JObject.FromObject(_options, serializer), _vgpu_map == null ? new JObject() : JObject.FromObject(_vgpu_map, serializer)), serializer);
}
public VM vm_get_boot_record(string session, string _vm)
{
var converters = new List<JsonConverter> {};
@ -3897,6 +3953,20 @@ namespace XenAPI
return Rpc<XenRef<Task>>("Async.VM.retrieve_wlb_recommendations", new JArray(session, _vm ?? ""), serializer);
}
public void vm_set_bios_strings(string session, string _vm, Dictionary<string, string> _value)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("VM.set_bios_strings", new JArray(session, _vm ?? "", _value == null ? new JObject() : JObject.FromObject(_value, serializer)), serializer);
}
public XenRef<Task> async_vm_set_bios_strings(string session, string _vm, Dictionary<string, string> _value)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VM.set_bios_strings", new JArray(session, _vm ?? "", _value == null ? new JObject() : JObject.FromObject(_value, serializer)), serializer);
}
public void vm_copy_bios_strings(string session, string _vm, string _host)
{
var converters = new List<JsonConverter> {new XenRefConverter<Host>()};
@ -5661,6 +5731,13 @@ namespace XenAPI
return Rpc<List<XenRef<PGPU>>>("host.get_PGPUs", new JArray(session, _host ?? ""), serializer);
}
public List<XenRef<PUSB>> host_get_pusbs(string session, string _host)
{
var converters = new List<JsonConverter> {new XenRefListConverter<PUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<PUSB>>>("host.get_PUSBs", new JArray(session, _host ?? ""), serializer);
}
public bool host_get_ssl_legacy(string session, string _host)
{
var converters = new List<JsonConverter> {};
@ -7215,6 +7292,13 @@ namespace XenAPI
return Rpc<Dictionary<XenRef<VIF>, string>>("network.get_assigned_ips", new JArray(session, _network ?? ""), serializer);
}
public List<network_purpose> network_get_purpose(string session, string _network)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<network_purpose>>("network.get_purpose", new JArray(session, _network ?? ""), serializer);
}
public void network_set_name_label(string session, string _network, string _label)
{
var converters = new List<JsonConverter> {};
@ -7320,6 +7404,34 @@ namespace XenAPI
return Rpc<XenRef<Task>>("Async.network.set_default_locking_mode", new JArray(session, _network ?? "", _value.StringOf()), serializer);
}
public void network_add_purpose(string session, string _network, network_purpose _value)
{
var converters = new List<JsonConverter> {new network_purposeConverter()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("network.add_purpose", new JArray(session, _network ?? "", _value.StringOf()), serializer);
}
public XenRef<Task> async_network_add_purpose(string session, string _network, network_purpose _value)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>(), new network_purposeConverter()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.network.add_purpose", new JArray(session, _network ?? "", _value.StringOf()), serializer);
}
public void network_remove_purpose(string session, string _network, network_purpose _value)
{
var converters = new List<JsonConverter> {new network_purposeConverter()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("network.remove_purpose", new JArray(session, _network ?? "", _value.StringOf()), serializer);
}
public XenRef<Task> async_network_remove_purpose(string session, string _network, network_purpose _value)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>(), new network_purposeConverter()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.network.remove_purpose", new JArray(session, _network ?? "", _value.StringOf()), serializer);
}
public List<XenRef<Network>> network_get_all(string session)
{
var converters = new List<JsonConverter> {new XenRefListConverter<Network>()};
@ -8125,6 +8237,13 @@ namespace XenAPI
return Rpc<string[]>("PIF.get_capabilities", new JArray(session, _pif ?? ""), serializer);
}
public pif_igmp_status pif_get_igmp_snooping_status(string session, string _pif)
{
var converters = new List<JsonConverter> {new pif_igmp_statusConverter()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<pif_igmp_status>("PIF.get_igmp_snooping_status", new JArray(session, _pif ?? ""), serializer);
}
public void pif_set_other_config(string session, string _pif, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {};
@ -10386,32 +10505,25 @@ namespace XenAPI
return Rpc<XenRef<Task>>("Async.VDI.data_destroy", new JArray(session, _vdi ?? ""), serializer);
}
public string vdi_export_changed_blocks(string session, string _vdi, string _vdi_to)
public string vdi_list_changed_blocks(string session, string _vdi, string _vdi_to)
{
var converters = new List<JsonConverter> {new XenRefConverter<VDI>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("VDI.export_changed_blocks", new JArray(session, _vdi ?? "", _vdi_to ?? ""), serializer);
return Rpc<string>("VDI.list_changed_blocks", new JArray(session, _vdi ?? "", _vdi_to ?? ""), serializer);
}
public XenRef<Task> async_vdi_export_changed_blocks(string session, string _vdi, string _vdi_to)
public XenRef<Task> async_vdi_list_changed_blocks(string session, string _vdi, string _vdi_to)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>(), new XenRefConverter<VDI>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VDI.export_changed_blocks", new JArray(session, _vdi ?? "", _vdi_to ?? ""), serializer);
return Rpc<XenRef<Task>>("Async.VDI.list_changed_blocks", new JArray(session, _vdi ?? "", _vdi_to ?? ""), serializer);
}
public string[] vdi_get_nbd_info(string session, string _vdi)
public List<Vdi_nbd_server_info> vdi_get_nbd_info(string session, string _vdi)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string[]>("VDI.get_nbd_info", new JArray(session, _vdi ?? ""), serializer);
}
public XenRef<Task> async_vdi_get_nbd_info(string session, string _vdi)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VDI.get_nbd_info", new JArray(session, _vdi ?? ""), serializer);
return Rpc<List<Vdi_nbd_server_info>>("VDI.get_nbd_info", new JArray(session, _vdi ?? ""), serializer);
}
public List<XenRef<VDI>> vdi_get_all(string session)
@ -12073,6 +12185,13 @@ namespace XenAPI
return Rpc<bool>("PGPU.get_is_system_display_device", new JArray(session, _pgpu ?? ""), serializer);
}
public Dictionary<string, string> pgpu_get_compatibility_metadata(string session, string _pgpu)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<string, string>>("PGPU.get_compatibility_metadata", new JArray(session, _pgpu ?? ""), serializer);
}
public void pgpu_set_other_config(string session, string _pgpu, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {};
@ -12465,6 +12584,13 @@ namespace XenAPI
return Rpc<XenRef<PGPU>>("VGPU.get_resident_on", new JArray(session, _vgpu ?? ""), serializer);
}
public XenRef<PGPU> vgpu_get_scheduled_to_be_resident_on(string session, string _vgpu)
{
var converters = new List<JsonConverter> {new XenRefConverter<PGPU>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<PGPU>>("VGPU.get_scheduled_to_be_resident_on", new JArray(session, _vgpu ?? ""), serializer);
}
public void vgpu_set_other_config(string session, string _vgpu, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {};
@ -13263,5 +13389,460 @@ namespace XenAPI
return Rpc<Dictionary<XenRef<SDN_controller>, SDN_controller>>("SDN_controller.get_all_records", new JArray(session), serializer);
}
public Dictionary<XenRef<Vdi_nbd_server_info>, Vdi_nbd_server_info> vdi_nbd_server_info_get_all_records(string session)
{
var converters = new List<JsonConverter> {new RecordConverter<Vdi_nbd_server_info>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<XenRef<Vdi_nbd_server_info>, Vdi_nbd_server_info>>("vdi_nbd_server_info.get_all_records", new JArray(session), serializer);
}
public PUSB pusb_get_record(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<PUSB>("PUSB.get_record", new JArray(session, _pusb ?? ""), serializer);
}
public XenRef<PUSB> pusb_get_by_uuid(string session, string _uuid)
{
var converters = new List<JsonConverter> {new XenRefConverter<PUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<PUSB>>("PUSB.get_by_uuid", new JArray(session, _uuid ?? ""), serializer);
}
public string pusb_get_uuid(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_uuid", new JArray(session, _pusb ?? ""), serializer);
}
public XenRef<USB_group> pusb_get_usb_group(string session, string _pusb)
{
var converters = new List<JsonConverter> {new XenRefConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<USB_group>>("PUSB.get_USB_group", new JArray(session, _pusb ?? ""), serializer);
}
public XenRef<Host> pusb_get_host(string session, string _pusb)
{
var converters = new List<JsonConverter> {new XenRefConverter<Host>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Host>>("PUSB.get_host", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_path(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_path", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_vendor_id(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_vendor_id", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_vendor_desc(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_vendor_desc", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_product_id(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_product_id", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_product_desc(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_product_desc", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_serial(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_serial", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_version(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_version", new JArray(session, _pusb ?? ""), serializer);
}
public string pusb_get_description(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("PUSB.get_description", new JArray(session, _pusb ?? ""), serializer);
}
public bool pusb_get_passthrough_enabled(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<bool>("PUSB.get_passthrough_enabled", new JArray(session, _pusb ?? ""), serializer);
}
public Dictionary<string, string> pusb_get_other_config(string session, string _pusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<string, string>>("PUSB.get_other_config", new JArray(session, _pusb ?? ""), serializer);
}
public void pusb_set_other_config(string session, string _pusb, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("PUSB.set_other_config", new JArray(session, _pusb ?? "", _other_config == null ? new JObject() : JObject.FromObject(_other_config, serializer)), serializer);
}
public void pusb_add_to_other_config(string session, string _pusb, string _key, string _value)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("PUSB.add_to_other_config", new JArray(session, _pusb ?? "", _key ?? "", _value ?? ""), serializer);
}
public void pusb_remove_from_other_config(string session, string _pusb, string _key)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("PUSB.remove_from_other_config", new JArray(session, _pusb ?? "", _key ?? ""), serializer);
}
public void pusb_scan(string session, string _host)
{
var converters = new List<JsonConverter> {new XenRefConverter<Host>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("PUSB.scan", new JArray(session, _host ?? ""), serializer);
}
public XenRef<Task> async_pusb_scan(string session, string _host)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>(), new XenRefConverter<Host>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.PUSB.scan", new JArray(session, _host ?? ""), serializer);
}
public void pusb_set_passthrough_enabled(string session, string _pusb, bool _value)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("PUSB.set_passthrough_enabled", new JArray(session, _pusb ?? "", _value), serializer);
}
public XenRef<Task> async_pusb_set_passthrough_enabled(string session, string _pusb, bool _value)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.PUSB.set_passthrough_enabled", new JArray(session, _pusb ?? "", _value), serializer);
}
public List<XenRef<PUSB>> pusb_get_all(string session)
{
var converters = new List<JsonConverter> {new XenRefListConverter<PUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<PUSB>>>("PUSB.get_all", new JArray(session), serializer);
}
public Dictionary<XenRef<PUSB>, PUSB> pusb_get_all_records(string session)
{
var converters = new List<JsonConverter> {new RecordConverter<PUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<XenRef<PUSB>, PUSB>>("PUSB.get_all_records", new JArray(session), serializer);
}
public USB_group usb_group_get_record(string session, string _usb_group)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<USB_group>("USB_group.get_record", new JArray(session, _usb_group ?? ""), serializer);
}
public XenRef<USB_group> usb_group_get_by_uuid(string session, string _uuid)
{
var converters = new List<JsonConverter> {new XenRefConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<USB_group>>("USB_group.get_by_uuid", new JArray(session, _uuid ?? ""), serializer);
}
public List<XenRef<USB_group>> usb_group_get_by_name_label(string session, string _label)
{
var converters = new List<JsonConverter> {new XenRefListConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<USB_group>>>("USB_group.get_by_name_label", new JArray(session, _label ?? ""), serializer);
}
public string usb_group_get_uuid(string session, string _usb_group)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("USB_group.get_uuid", new JArray(session, _usb_group ?? ""), serializer);
}
public string usb_group_get_name_label(string session, string _usb_group)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("USB_group.get_name_label", new JArray(session, _usb_group ?? ""), serializer);
}
public string usb_group_get_name_description(string session, string _usb_group)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("USB_group.get_name_description", new JArray(session, _usb_group ?? ""), serializer);
}
public List<XenRef<PUSB>> usb_group_get_pusbs(string session, string _usb_group)
{
var converters = new List<JsonConverter> {new XenRefListConverter<PUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<PUSB>>>("USB_group.get_PUSBs", new JArray(session, _usb_group ?? ""), serializer);
}
public List<XenRef<VUSB>> usb_group_get_vusbs(string session, string _usb_group)
{
var converters = new List<JsonConverter> {new XenRefListConverter<VUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<VUSB>>>("USB_group.get_VUSBs", new JArray(session, _usb_group ?? ""), serializer);
}
public Dictionary<string, string> usb_group_get_other_config(string session, string _usb_group)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<string, string>>("USB_group.get_other_config", new JArray(session, _usb_group ?? ""), serializer);
}
public void usb_group_set_name_label(string session, string _usb_group, string _label)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("USB_group.set_name_label", new JArray(session, _usb_group ?? "", _label ?? ""), serializer);
}
public void usb_group_set_name_description(string session, string _usb_group, string _description)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("USB_group.set_name_description", new JArray(session, _usb_group ?? "", _description ?? ""), serializer);
}
public void usb_group_set_other_config(string session, string _usb_group, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("USB_group.set_other_config", new JArray(session, _usb_group ?? "", _other_config == null ? new JObject() : JObject.FromObject(_other_config, serializer)), serializer);
}
public void usb_group_add_to_other_config(string session, string _usb_group, string _key, string _value)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("USB_group.add_to_other_config", new JArray(session, _usb_group ?? "", _key ?? "", _value ?? ""), serializer);
}
public void usb_group_remove_from_other_config(string session, string _usb_group, string _key)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("USB_group.remove_from_other_config", new JArray(session, _usb_group ?? "", _key ?? ""), serializer);
}
public XenRef<USB_group> usb_group_create(string session, string _name_label, string _name_description, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {new XenRefConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<USB_group>>("USB_group.create", new JArray(session, _name_label ?? "", _name_description ?? "", _other_config == null ? new JObject() : JObject.FromObject(_other_config, serializer)), serializer);
}
public XenRef<Task> async_usb_group_create(string session, string _name_label, string _name_description, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.USB_group.create", new JArray(session, _name_label ?? "", _name_description ?? "", _other_config == null ? new JObject() : JObject.FromObject(_other_config, serializer)), serializer);
}
public void usb_group_destroy(string session, string _usb_group)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("USB_group.destroy", new JArray(session, _usb_group ?? ""), serializer);
}
public XenRef<Task> async_usb_group_destroy(string session, string _usb_group)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.USB_group.destroy", new JArray(session, _usb_group ?? ""), serializer);
}
public List<XenRef<USB_group>> usb_group_get_all(string session)
{
var converters = new List<JsonConverter> {new XenRefListConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<USB_group>>>("USB_group.get_all", new JArray(session), serializer);
}
public Dictionary<XenRef<USB_group>, USB_group> usb_group_get_all_records(string session)
{
var converters = new List<JsonConverter> {new RecordConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<XenRef<USB_group>, USB_group>>("USB_group.get_all_records", new JArray(session), serializer);
}
public VUSB vusb_get_record(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<VUSB>("VUSB.get_record", new JArray(session, _vusb ?? ""), serializer);
}
public XenRef<VUSB> vusb_get_by_uuid(string session, string _uuid)
{
var converters = new List<JsonConverter> {new XenRefConverter<VUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<VUSB>>("VUSB.get_by_uuid", new JArray(session, _uuid ?? ""), serializer);
}
public string vusb_get_uuid(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<string>("VUSB.get_uuid", new JArray(session, _vusb ?? ""), serializer);
}
public List<vusb_operations> vusb_get_allowed_operations(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<vusb_operations>>("VUSB.get_allowed_operations", new JArray(session, _vusb ?? ""), serializer);
}
public Dictionary<string, vusb_operations> vusb_get_current_operations(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<string, vusb_operations>>("VUSB.get_current_operations", new JArray(session, _vusb ?? ""), serializer);
}
public XenRef<VM> vusb_get_vm(string session, string _vusb)
{
var converters = new List<JsonConverter> {new XenRefConverter<VM>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<VM>>("VUSB.get_VM", new JArray(session, _vusb ?? ""), serializer);
}
public XenRef<USB_group> vusb_get_usb_group(string session, string _vusb)
{
var converters = new List<JsonConverter> {new XenRefConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<USB_group>>("VUSB.get_USB_group", new JArray(session, _vusb ?? ""), serializer);
}
public Dictionary<string, string> vusb_get_other_config(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<string, string>>("VUSB.get_other_config", new JArray(session, _vusb ?? ""), serializer);
}
public bool vusb_get_currently_attached(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<bool>("VUSB.get_currently_attached", new JArray(session, _vusb ?? ""), serializer);
}
public void vusb_set_other_config(string session, string _vusb, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("VUSB.set_other_config", new JArray(session, _vusb ?? "", _other_config == null ? new JObject() : JObject.FromObject(_other_config, serializer)), serializer);
}
public void vusb_add_to_other_config(string session, string _vusb, string _key, string _value)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("VUSB.add_to_other_config", new JArray(session, _vusb ?? "", _key ?? "", _value ?? ""), serializer);
}
public void vusb_remove_from_other_config(string session, string _vusb, string _key)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("VUSB.remove_from_other_config", new JArray(session, _vusb ?? "", _key ?? ""), serializer);
}
public XenRef<VUSB> vusb_create(string session, string _vm, string _usb_group, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {new XenRefConverter<VUSB>(), new XenRefConverter<VM>(), new XenRefConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<VUSB>>("VUSB.create", new JArray(session, _vm ?? "", _usb_group ?? "", _other_config == null ? new JObject() : JObject.FromObject(_other_config, serializer)), serializer);
}
public XenRef<Task> async_vusb_create(string session, string _vm, string _usb_group, Dictionary<string, string> _other_config)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>(), new XenRefConverter<VM>(), new XenRefConverter<USB_group>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VUSB.create", new JArray(session, _vm ?? "", _usb_group ?? "", _other_config == null ? new JObject() : JObject.FromObject(_other_config, serializer)), serializer);
}
public void vusb_unplug(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("VUSB.unplug", new JArray(session, _vusb ?? ""), serializer);
}
public XenRef<Task> async_vusb_unplug(string session, string _vusb)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VUSB.unplug", new JArray(session, _vusb ?? ""), serializer);
}
public void vusb_destroy(string session, string _vusb)
{
var converters = new List<JsonConverter> {};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
Rpc("VUSB.destroy", new JArray(session, _vusb ?? ""), serializer);
}
public XenRef<Task> async_vusb_destroy(string session, string _vusb)
{
var converters = new List<JsonConverter> {new XenRefConverter<Task>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<XenRef<Task>>("Async.VUSB.destroy", new JArray(session, _vusb ?? ""), serializer);
}
public List<XenRef<VUSB>> vusb_get_all(string session)
{
var converters = new List<JsonConverter> {new XenRefListConverter<VUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<List<XenRef<VUSB>>>("VUSB.get_all", new JArray(session), serializer);
}
public Dictionary<XenRef<VUSB>, VUSB> vusb_get_all_records(string session)
{
var converters = new List<JsonConverter> {new RecordConverter<VUSB>()};
var serializer = JsonSerializer.Create(new JsonSerializerSettings {Converters = converters});
return Rpc<Dictionary<XenRef<VUSB>, VUSB>>("VUSB.get_all_records", new JArray(session), serializer);
}
}
}

View File

@ -100,6 +100,15 @@ namespace XenAPI
return Helper.AreEqual2(this._uuid, other._uuid);
}
internal static List<LVHD> ProxyArrayToObjectList(Proxy_LVHD[] input)
{
var result = new List<LVHD>();
foreach (var item in input)
result.Add(new LVHD(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, LVHD server)
{
if (opaqueRef == null)

View File

@ -83,6 +83,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, long> convert_from_proxy_string_long(Object o)
{
Hashtable table = (Hashtable)o;
@ -128,6 +129,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, host_allowed_operations> convert_from_proxy_string_host_allowed_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -173,6 +175,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, network_operations> convert_from_proxy_string_network_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -218,6 +221,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, pool_allowed_operations> convert_from_proxy_string_pool_allowed_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -263,6 +267,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, storage_operations> convert_from_proxy_string_storage_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -308,6 +313,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, task_allowed_operations> convert_from_proxy_string_task_allowed_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -353,6 +359,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, vbd_operations> convert_from_proxy_string_vbd_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -398,6 +405,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, vdi_operations> convert_from_proxy_string_vdi_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -443,6 +451,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, vif_operations> convert_from_proxy_string_vif_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -488,6 +497,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, vm_appliance_operation> convert_from_proxy_string_vm_appliance_operation(Object o)
{
Hashtable table = (Hashtable)o;
@ -533,6 +543,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, vm_operations> convert_from_proxy_string_vm_operations(Object o)
{
Hashtable table = (Hashtable)o;
@ -578,6 +589,53 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, vusb_operations> convert_from_proxy_string_vusb_operations(Object o)
{
Hashtable table = (Hashtable)o;
Dictionary<string, vusb_operations> result = new Dictionary<string, vusb_operations>();
if (table != null)
{
foreach (string key in table.Keys)
{
try
{
string k = key;
vusb_operations v = table[key] == null ? (vusb_operations) 0 : (vusb_operations)Helper.EnumParseDefault(typeof(vusb_operations), (string)table[key]);
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Hashtable convert_to_proxy_string_vusb_operations(Dictionary<string, vusb_operations> table)
{
CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct();
if (table != null)
{
foreach (string key in table.Keys)
{
try
{
string k = key ?? "";
string v = vusb_operations_helper.ToString(table[key]);
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Dictionary<string, XenRef<Blob>> convert_from_proxy_string_XenRefBlob(Object o)
{
Hashtable table = (Hashtable)o;
@ -623,6 +681,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<long, long> convert_from_proxy_long_long(Object o)
{
Hashtable table = (Hashtable)o;
@ -668,6 +727,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<long, double> convert_from_proxy_long_double(Object o)
{
Hashtable table = (Hashtable)o;
@ -713,6 +773,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<long, string[]> convert_from_proxy_long_string_array(Object o)
{
Hashtable table = (Hashtable)o;
@ -758,6 +819,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<vm_operations, string> convert_from_proxy_vm_operations_string(Object o)
{
Hashtable table = (Hashtable)o;
@ -803,6 +865,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<VDI>, XenRef<SR>> convert_from_proxy_XenRefVDI_XenRefSR(Object o)
{
Hashtable table = (Hashtable)o;
@ -848,6 +911,53 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<VGPU>, XenRef<GPU_group>> convert_from_proxy_XenRefVGPU_XenRefGPU_group(Object o)
{
Hashtable table = (Hashtable)o;
Dictionary<XenRef<VGPU>, XenRef<GPU_group>> result = new Dictionary<XenRef<VGPU>, XenRef<GPU_group>>();
if (table != null)
{
foreach (string key in table.Keys)
{
try
{
XenRef<VGPU> k = XenRef<VGPU>.Create(key);
XenRef<GPU_group> v = table[key] == null ? null : XenRef<GPU_group>.Create(table[key]);
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Hashtable convert_to_proxy_XenRefVGPU_XenRefGPU_group(Dictionary<XenRef<VGPU>, XenRef<GPU_group>> table)
{
CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct();
if (table != null)
{
foreach (XenRef<VGPU> key in table.Keys)
{
try
{
string k = key ?? "";
string v = table[key] ?? "";
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Dictionary<XenRef<VGPU_type>, long> convert_from_proxy_XenRefVGPU_type_long(Object o)
{
Hashtable table = (Hashtable)o;
@ -893,6 +1003,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<VIF>, string> convert_from_proxy_XenRefVIF_string(Object o)
{
Hashtable table = (Hashtable)o;
@ -938,6 +1049,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<VIF>, XenRef<Network>> convert_from_proxy_XenRefVIF_XenRefNetwork(Object o)
{
Hashtable table = (Hashtable)o;
@ -983,6 +1095,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<VM>, string> convert_from_proxy_XenRefVM_string(Object o)
{
Hashtable table = (Hashtable)o;
@ -1028,6 +1141,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<VM>, string[]> convert_from_proxy_XenRefVM_string_array(Object o)
{
Hashtable table = (Hashtable)o;
@ -1073,6 +1187,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<VM>, Dictionary<string, string>> convert_from_proxy_XenRefVM_Dictionary_string_string(Object o)
{
Hashtable table = (Hashtable)o;
@ -1118,6 +1233,7 @@ namespace XenAPI
return result;
}
internal static Dictionary<XenRef<Host>, string[]> convert_from_proxy_XenRefHost_string_array(Object o)
{
Hashtable table = (Hashtable)o;
@ -1163,5 +1279,6 @@ namespace XenAPI
return result;
}
}
}

View File

@ -46,7 +46,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, VMSS_SNAPSHOT_MISSED_EVENT, VMSS_XAPI_LOGON_FAILURE, VMSS_LICENSE_ERROR, VMSS_SNAPSHOT_FAILED, VMSS_SNAPSHOT_SUCCEEDED, VMSS_SNAPSHOT_LOCK_FAILED, 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_SR_OUT_OF_SPACE, PVS_PROXY_NO_SERVER_AVAILABLE, 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 enum MessageType { POOL_CPU_FEATURES_UP, POOL_CPU_FEATURES_DOWN, HOST_CPU_FEATURES_UP, HOST_CPU_FEATURES_DOWN, BOND_STATUS_CHANGED, VDI_CBT_RESIZE_FAILED, VDI_CBT_SNAPSHOT_FAILED, VDI_CBT_METADATA_INCONSISTENT, VMSS_SNAPSHOT_MISSED_EVENT, VMSS_XAPI_LOGON_FAILURE, VMSS_LICENSE_ERROR, VMSS_SNAPSHOT_FAILED, VMSS_SNAPSHOT_SUCCEEDED, VMSS_SNAPSHOT_LOCK_FAILED, 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_SR_OUT_OF_SPACE, PVS_PROXY_NO_SERVER_AVAILABLE, 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
{
@ -64,6 +64,12 @@ namespace XenAPI
return MessageType.HOST_CPU_FEATURES_DOWN;
case "BOND_STATUS_CHANGED":
return MessageType.BOND_STATUS_CHANGED;
case "VDI_CBT_RESIZE_FAILED":
return MessageType.VDI_CBT_RESIZE_FAILED;
case "VDI_CBT_SNAPSHOT_FAILED":
return MessageType.VDI_CBT_SNAPSHOT_FAILED;
case "VDI_CBT_METADATA_INCONSISTENT":
return MessageType.VDI_CBT_METADATA_INCONSISTENT;
case "VMSS_SNAPSHOT_MISSED_EVENT":
return MessageType.VMSS_SNAPSHOT_MISSED_EVENT;
case "VMSS_XAPI_LOGON_FAILURE":
@ -298,6 +304,15 @@ namespace XenAPI
Helper.AreEqual2(this._body, other._body);
}
internal static List<Message> ProxyArrayToObjectList(Proxy_Message[] input)
{
var result = new List<Message>();
foreach (var item in input)
result.Add(new Message(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Message server)
{
if (opaqueRef == null)

View File

@ -64,7 +64,8 @@ namespace XenAPI
Dictionary<string, XenRef<Blob>> blobs,
string[] tags,
network_default_locking_mode default_locking_mode,
Dictionary<XenRef<VIF>, string> assigned_ips)
Dictionary<XenRef<VIF>, string> assigned_ips,
List<network_purpose> purpose)
{
this.uuid = uuid;
this.name_label = name_label;
@ -81,6 +82,7 @@ namespace XenAPI
this.tags = tags;
this.default_locking_mode = default_locking_mode;
this.assigned_ips = assigned_ips;
this.purpose = purpose;
}
/// <summary>
@ -109,6 +111,7 @@ namespace XenAPI
tags = update.tags;
default_locking_mode = update.default_locking_mode;
assigned_ips = update.assigned_ips;
purpose = update.purpose;
}
internal void UpdateFromProxy(Proxy_Network proxy)
@ -128,6 +131,7 @@ namespace XenAPI
tags = proxy.tags == null ? new string[] {} : (string [])proxy.tags;
default_locking_mode = proxy.default_locking_mode == null ? (network_default_locking_mode) 0 : (network_default_locking_mode)Helper.EnumParseDefault(typeof(network_default_locking_mode), (string)proxy.default_locking_mode);
assigned_ips = proxy.assigned_ips == null ? null : Maps.convert_from_proxy_XenRefVIF_string(proxy.assigned_ips);
purpose = proxy.purpose == null ? null : Helper.StringArrayToEnumList<network_purpose>(proxy.purpose);
}
public Proxy_Network ToProxy()
@ -148,6 +152,7 @@ namespace XenAPI
result_.tags = tags;
result_.default_locking_mode = network_default_locking_mode_helper.ToString(default_locking_mode);
result_.assigned_ips = Maps.convert_to_proxy_XenRefVIF_string(assigned_ips);
result_.purpose = (purpose != null) ? Helper.ObjectListToStringArray(purpose) : new string[] {};
return result_;
}
@ -172,6 +177,7 @@ namespace XenAPI
tags = Marshalling.ParseStringArray(table, "tags");
default_locking_mode = (network_default_locking_mode)Helper.EnumParseDefault(typeof(network_default_locking_mode), Marshalling.ParseString(table, "default_locking_mode"));
assigned_ips = Maps.convert_from_proxy_XenRefVIF_string(Marshalling.ParseHashTable(table, "assigned_ips"));
purpose = Helper.StringArrayToEnumList<network_purpose>(Marshalling.ParseStringArray(table, "purpose"));
}
public bool DeepEquals(Network other, bool ignoreCurrentOperations)
@ -197,7 +203,17 @@ namespace XenAPI
Helper.AreEqual2(this._blobs, other._blobs) &&
Helper.AreEqual2(this._tags, other._tags) &&
Helper.AreEqual2(this._default_locking_mode, other._default_locking_mode) &&
Helper.AreEqual2(this._assigned_ips, other._assigned_ips);
Helper.AreEqual2(this._assigned_ips, other._assigned_ips) &&
Helper.AreEqual2(this._purpose, other._purpose);
}
internal static List<Network> ProxyArrayToObjectList(Proxy_Network[] input)
{
var result = new List<Network>();
foreach (var item in input)
result.Add(new Network(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Network server)
@ -541,6 +557,20 @@ namespace XenAPI
return Maps.convert_from_proxy_XenRefVIF_string(session.proxy.network_get_assigned_ips(session.uuid, _network ?? "").parse());
}
/// <summary>
/// Get the purpose field of the given network.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_network">The opaque_ref of the given network</param>
public static List<network_purpose> get_purpose(Session session, string _network)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.network_get_purpose(session.uuid, _network);
else
return Helper.StringArrayToEnumList<network_purpose>(session.proxy.network_get_purpose(session.uuid, _network ?? "").parse());
}
/// <summary>
/// Set the name/label field of the given network.
/// First published in XenServer 4.0.
@ -773,6 +803,66 @@ namespace XenAPI
return XenRef<Task>.Create(session.proxy.async_network_set_default_locking_mode(session.uuid, _network ?? "", network_default_locking_mode_helper.ToString(_value)).parse());
}
/// <summary>
/// Give a network a new purpose (if not present already)
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_network">The opaque_ref of the given network</param>
/// <param name="_value">The purpose to add</param>
public static void add_purpose(Session session, string _network, network_purpose _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.network_add_purpose(session.uuid, _network, _value);
else
session.proxy.network_add_purpose(session.uuid, _network ?? "", network_purpose_helper.ToString(_value)).parse();
}
/// <summary>
/// Give a network a new purpose (if not present already)
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_network">The opaque_ref of the given network</param>
/// <param name="_value">The purpose to add</param>
public static XenRef<Task> async_add_purpose(Session session, string _network, network_purpose _value)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_network_add_purpose(session.uuid, _network, _value);
else
return XenRef<Task>.Create(session.proxy.async_network_add_purpose(session.uuid, _network ?? "", network_purpose_helper.ToString(_value)).parse());
}
/// <summary>
/// Remove a purpose from a network (if present)
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_network">The opaque_ref of the given network</param>
/// <param name="_value">The purpose to remove</param>
public static void remove_purpose(Session session, string _network, network_purpose _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.network_remove_purpose(session.uuid, _network, _value);
else
session.proxy.network_remove_purpose(session.uuid, _network ?? "", network_purpose_helper.ToString(_value)).parse();
}
/// <summary>
/// Remove a purpose from a network (if present)
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_network">The opaque_ref of the given network</param>
/// <param name="_value">The purpose to remove</param>
public static XenRef<Task> async_remove_purpose(Session session, string _network, network_purpose _value)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_network_remove_purpose(session.uuid, _network, _value);
else
return XenRef<Task>.Create(session.proxy.async_network_remove_purpose(session.uuid, _network ?? "", network_purpose_helper.ToString(_value)).parse());
}
/// <summary>
/// Return a list of all the networks known to the system.
/// First published in XenServer 4.0.
@ -1079,5 +1169,24 @@ namespace XenAPI
}
}
private Dictionary<XenRef<VIF>, string> _assigned_ips = new Dictionary<XenRef<VIF>, string>() {};
/// <summary>
/// Set of purposes for which the server will use this network
/// First published in Unreleased.
/// </summary>
public virtual List<network_purpose> purpose
{
get { return _purpose; }
set
{
if (!Helper.AreEqual(value, _purpose))
{
_purpose = value;
Changed = true;
NotifyPropertyChanged("purpose");
}
}
}
private List<network_purpose> _purpose = new List<network_purpose>() {};
}
}

View File

@ -135,6 +135,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<PBD> ProxyArrayToObjectList(Proxy_PBD[] input)
{
var result = new List<PBD>();
foreach (var item in input)
result.Add(new PBD(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PBD server)
{
if (opaqueRef == null)

View File

@ -163,6 +163,15 @@ namespace XenAPI
Helper.AreEqual2(this._subsystem_device_name, other._subsystem_device_name);
}
internal static List<PCI> ProxyArrayToObjectList(Proxy_PCI[] input)
{
var result = new List<PCI>();
foreach (var item in input)
result.Add(new PCI(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PCI server)
{
if (opaqueRef == null)

View File

@ -60,7 +60,8 @@ namespace XenAPI
List<XenRef<VGPU>> resident_VGPUs,
Dictionary<XenRef<VGPU_type>, long> supported_VGPU_max_capacities,
pgpu_dom0_access dom0_access,
bool is_system_display_device)
bool is_system_display_device,
Dictionary<string, string> compatibility_metadata)
{
this.uuid = uuid;
this.PCI = PCI;
@ -73,6 +74,7 @@ namespace XenAPI
this.supported_VGPU_max_capacities = supported_VGPU_max_capacities;
this.dom0_access = dom0_access;
this.is_system_display_device = is_system_display_device;
this.compatibility_metadata = compatibility_metadata;
}
/// <summary>
@ -97,6 +99,7 @@ namespace XenAPI
supported_VGPU_max_capacities = update.supported_VGPU_max_capacities;
dom0_access = update.dom0_access;
is_system_display_device = update.is_system_display_device;
compatibility_metadata = update.compatibility_metadata;
}
internal void UpdateFromProxy(Proxy_PGPU proxy)
@ -112,6 +115,7 @@ namespace XenAPI
supported_VGPU_max_capacities = proxy.supported_VGPU_max_capacities == null ? null : Maps.convert_from_proxy_XenRefVGPU_type_long(proxy.supported_VGPU_max_capacities);
dom0_access = proxy.dom0_access == null ? (pgpu_dom0_access) 0 : (pgpu_dom0_access)Helper.EnumParseDefault(typeof(pgpu_dom0_access), (string)proxy.dom0_access);
is_system_display_device = (bool)proxy.is_system_display_device;
compatibility_metadata = proxy.compatibility_metadata == null ? null : Maps.convert_from_proxy_string_string(proxy.compatibility_metadata);
}
public Proxy_PGPU ToProxy()
@ -128,6 +132,7 @@ namespace XenAPI
result_.supported_VGPU_max_capacities = Maps.convert_to_proxy_XenRefVGPU_type_long(supported_VGPU_max_capacities);
result_.dom0_access = pgpu_dom0_access_helper.ToString(dom0_access);
result_.is_system_display_device = is_system_display_device;
result_.compatibility_metadata = Maps.convert_to_proxy_string_string(compatibility_metadata);
return result_;
}
@ -148,6 +153,7 @@ namespace XenAPI
supported_VGPU_max_capacities = Maps.convert_from_proxy_XenRefVGPU_type_long(Marshalling.ParseHashTable(table, "supported_VGPU_max_capacities"));
dom0_access = (pgpu_dom0_access)Helper.EnumParseDefault(typeof(pgpu_dom0_access), Marshalling.ParseString(table, "dom0_access"));
is_system_display_device = Marshalling.ParseBool(table, "is_system_display_device");
compatibility_metadata = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "compatibility_metadata"));
}
public bool DeepEquals(PGPU other)
@ -167,7 +173,17 @@ namespace XenAPI
Helper.AreEqual2(this._resident_VGPUs, other._resident_VGPUs) &&
Helper.AreEqual2(this._supported_VGPU_max_capacities, other._supported_VGPU_max_capacities) &&
Helper.AreEqual2(this._dom0_access, other._dom0_access) &&
Helper.AreEqual2(this._is_system_display_device, other._is_system_display_device);
Helper.AreEqual2(this._is_system_display_device, other._is_system_display_device) &&
Helper.AreEqual2(this._compatibility_metadata, other._compatibility_metadata);
}
internal static List<PGPU> ProxyArrayToObjectList(Proxy_PGPU[] input)
{
var result = new List<PGPU>();
foreach (var item in input)
result.Add(new PGPU(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PGPU server)
@ -372,6 +388,20 @@ namespace XenAPI
return (bool)session.proxy.pgpu_get_is_system_display_device(session.uuid, _pgpu ?? "").parse();
}
/// <summary>
/// Get the compatibility_metadata field of the given PGPU.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pgpu">The opaque_ref of the given pgpu</param>
public static Dictionary<string, string> get_compatibility_metadata(Session session, string _pgpu)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pgpu_get_compatibility_metadata(session.uuid, _pgpu);
else
return Maps.convert_from_proxy_string_string(session.proxy.pgpu_get_compatibility_metadata(session.uuid, _pgpu ?? "").parse());
}
/// <summary>
/// Set the other_config field of the given PGPU.
/// First published in XenServer 6.0.
@ -860,5 +890,24 @@ namespace XenAPI
}
}
private bool _is_system_display_device = false;
/// <summary>
/// PGPU metadata to determine whether a VGPU can migrate between two PGPUs
/// First published in Unreleased.
/// </summary>
public virtual Dictionary<string, string> compatibility_metadata
{
get { return _compatibility_metadata; }
set
{
if (!Helper.AreEqual(value, _compatibility_metadata))
{
_compatibility_metadata = value;
Changed = true;
NotifyPropertyChanged("compatibility_metadata");
}
}
}
private Dictionary<string, string> _compatibility_metadata = new Dictionary<string, string>() {};
}
}

View File

@ -80,7 +80,8 @@ namespace XenAPI
primary_address_type primary_address_type,
bool managed,
Dictionary<string, string> properties,
string[] capabilities)
string[] capabilities,
pif_igmp_status igmp_snooping_status)
{
this.uuid = uuid;
this.device = device;
@ -113,6 +114,7 @@ namespace XenAPI
this.managed = managed;
this.properties = properties;
this.capabilities = capabilities;
this.igmp_snooping_status = igmp_snooping_status;
}
/// <summary>
@ -157,6 +159,7 @@ namespace XenAPI
managed = update.managed;
properties = update.properties;
capabilities = update.capabilities;
igmp_snooping_status = update.igmp_snooping_status;
}
internal void UpdateFromProxy(Proxy_PIF proxy)
@ -192,6 +195,7 @@ namespace XenAPI
managed = (bool)proxy.managed;
properties = proxy.properties == null ? null : Maps.convert_from_proxy_string_string(proxy.properties);
capabilities = proxy.capabilities == null ? new string[] {} : (string [])proxy.capabilities;
igmp_snooping_status = proxy.igmp_snooping_status == null ? (pif_igmp_status) 0 : (pif_igmp_status)Helper.EnumParseDefault(typeof(pif_igmp_status), (string)proxy.igmp_snooping_status);
}
public Proxy_PIF ToProxy()
@ -228,6 +232,7 @@ namespace XenAPI
result_.managed = managed;
result_.properties = Maps.convert_to_proxy_string_string(properties);
result_.capabilities = capabilities;
result_.igmp_snooping_status = pif_igmp_status_helper.ToString(igmp_snooping_status);
return result_;
}
@ -268,6 +273,7 @@ namespace XenAPI
managed = Marshalling.ParseBool(table, "managed");
properties = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "properties"));
capabilities = Marshalling.ParseStringArray(table, "capabilities");
igmp_snooping_status = (pif_igmp_status)Helper.EnumParseDefault(typeof(pif_igmp_status), Marshalling.ParseString(table, "igmp_snooping_status"));
}
public bool DeepEquals(PIF other)
@ -307,7 +313,17 @@ namespace XenAPI
Helper.AreEqual2(this._primary_address_type, other._primary_address_type) &&
Helper.AreEqual2(this._managed, other._managed) &&
Helper.AreEqual2(this._properties, other._properties) &&
Helper.AreEqual2(this._capabilities, other._capabilities);
Helper.AreEqual2(this._capabilities, other._capabilities) &&
Helper.AreEqual2(this._igmp_snooping_status, other._igmp_snooping_status);
}
internal static List<PIF> ProxyArrayToObjectList(Proxy_PIF[] input)
{
var result = new List<PIF>();
foreach (var item in input)
result.Add(new PIF(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PIF server)
@ -792,6 +808,20 @@ namespace XenAPI
return (string [])session.proxy.pif_get_capabilities(session.uuid, _pif ?? "").parse();
}
/// <summary>
/// Get the igmp_snooping_status field of the given PIF.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pif">The opaque_ref of the given pif</param>
public static pif_igmp_status get_igmp_snooping_status(Session session, string _pif)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pif_get_igmp_snooping_status(session.uuid, _pif);
else
return (pif_igmp_status)Helper.EnumParseDefault(typeof(pif_igmp_status), (string)session.proxy.pif_get_igmp_snooping_status(session.uuid, _pif ?? "").parse());
}
/// <summary>
/// Set the other_config field of the given PIF.
/// First published in XenServer 4.1.
@ -2153,5 +2183,25 @@ namespace XenAPI
}
}
private string[] _capabilities = {};
/// <summary>
/// The IGMP snooping status of the corresponding network bridge
/// First published in Unreleased.
/// </summary>
[JsonConverter(typeof(pif_igmp_statusConverter))]
public virtual pif_igmp_status igmp_snooping_status
{
get { return _igmp_snooping_status; }
set
{
if (!Helper.AreEqual(value, _igmp_snooping_status))
{
_igmp_snooping_status = value;
Changed = true;
NotifyPropertyChanged("igmp_snooping_status");
}
}
}
private pif_igmp_status _igmp_snooping_status = pif_igmp_status.unknown;
}
}

View File

@ -184,6 +184,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<PIF_metrics> ProxyArrayToObjectList(Proxy_PIF_metrics[] input)
{
var result = new List<PIF_metrics>();
foreach (var item in input)
result.Add(new PIF_metrics(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PIF_metrics server)
{
if (opaqueRef == null)

788
XenModel/XenAPI/PUSB.cs Normal file
View File

@ -0,0 +1,788 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace XenAPI
{
/// <summary>
/// A physical USB device
/// First published in Unreleased.
/// </summary>
public partial class PUSB : XenObject<PUSB>
{
public PUSB()
{
}
public PUSB(string uuid,
XenRef<USB_group> USB_group,
XenRef<Host> host,
string path,
string vendor_id,
string vendor_desc,
string product_id,
string product_desc,
string serial,
string version,
string description,
bool passthrough_enabled,
Dictionary<string, string> other_config)
{
this.uuid = uuid;
this.USB_group = USB_group;
this.host = host;
this.path = path;
this.vendor_id = vendor_id;
this.vendor_desc = vendor_desc;
this.product_id = product_id;
this.product_desc = product_desc;
this.serial = serial;
this.version = version;
this.description = description;
this.passthrough_enabled = passthrough_enabled;
this.other_config = other_config;
}
/// <summary>
/// Creates a new PUSB from a Proxy_PUSB.
/// </summary>
/// <param name="proxy"></param>
public PUSB(Proxy_PUSB proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(PUSB update)
{
uuid = update.uuid;
USB_group = update.USB_group;
host = update.host;
path = update.path;
vendor_id = update.vendor_id;
vendor_desc = update.vendor_desc;
product_id = update.product_id;
product_desc = update.product_desc;
serial = update.serial;
version = update.version;
description = update.description;
passthrough_enabled = update.passthrough_enabled;
other_config = update.other_config;
}
internal void UpdateFromProxy(Proxy_PUSB proxy)
{
uuid = proxy.uuid == null ? null : (string)proxy.uuid;
USB_group = proxy.USB_group == null ? null : XenRef<USB_group>.Create(proxy.USB_group);
host = proxy.host == null ? null : XenRef<Host>.Create(proxy.host);
path = proxy.path == null ? null : (string)proxy.path;
vendor_id = proxy.vendor_id == null ? null : (string)proxy.vendor_id;
vendor_desc = proxy.vendor_desc == null ? null : (string)proxy.vendor_desc;
product_id = proxy.product_id == null ? null : (string)proxy.product_id;
product_desc = proxy.product_desc == null ? null : (string)proxy.product_desc;
serial = proxy.serial == null ? null : (string)proxy.serial;
version = proxy.version == null ? null : (string)proxy.version;
description = proxy.description == null ? null : (string)proxy.description;
passthrough_enabled = (bool)proxy.passthrough_enabled;
other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config);
}
public Proxy_PUSB ToProxy()
{
Proxy_PUSB result_ = new Proxy_PUSB();
result_.uuid = uuid ?? "";
result_.USB_group = USB_group ?? "";
result_.host = host ?? "";
result_.path = path ?? "";
result_.vendor_id = vendor_id ?? "";
result_.vendor_desc = vendor_desc ?? "";
result_.product_id = product_id ?? "";
result_.product_desc = product_desc ?? "";
result_.serial = serial ?? "";
result_.version = version ?? "";
result_.description = description ?? "";
result_.passthrough_enabled = passthrough_enabled;
result_.other_config = Maps.convert_to_proxy_string_string(other_config);
return result_;
}
/// <summary>
/// Creates a new PUSB from a Hashtable.
/// </summary>
/// <param name="table"></param>
public PUSB(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
USB_group = Marshalling.ParseRef<USB_group>(table, "USB_group");
host = Marshalling.ParseRef<Host>(table, "host");
path = Marshalling.ParseString(table, "path");
vendor_id = Marshalling.ParseString(table, "vendor_id");
vendor_desc = Marshalling.ParseString(table, "vendor_desc");
product_id = Marshalling.ParseString(table, "product_id");
product_desc = Marshalling.ParseString(table, "product_desc");
serial = Marshalling.ParseString(table, "serial");
version = Marshalling.ParseString(table, "version");
description = Marshalling.ParseString(table, "description");
passthrough_enabled = Marshalling.ParseBool(table, "passthrough_enabled");
other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config"));
}
public bool DeepEquals(PUSB other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return Helper.AreEqual2(this._uuid, other._uuid) &&
Helper.AreEqual2(this._USB_group, other._USB_group) &&
Helper.AreEqual2(this._host, other._host) &&
Helper.AreEqual2(this._path, other._path) &&
Helper.AreEqual2(this._vendor_id, other._vendor_id) &&
Helper.AreEqual2(this._vendor_desc, other._vendor_desc) &&
Helper.AreEqual2(this._product_id, other._product_id) &&
Helper.AreEqual2(this._product_desc, other._product_desc) &&
Helper.AreEqual2(this._serial, other._serial) &&
Helper.AreEqual2(this._version, other._version) &&
Helper.AreEqual2(this._description, other._description) &&
Helper.AreEqual2(this._passthrough_enabled, other._passthrough_enabled) &&
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<PUSB> ProxyArrayToObjectList(Proxy_PUSB[] input)
{
var result = new List<PUSB>();
foreach (var item in input)
result.Add(new PUSB(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PUSB 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))
{
PUSB.set_other_config(session, opaqueRef, _other_config);
}
return null;
}
}
/// <summary>
/// Get a record containing the current state of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static PUSB get_record(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_record(session.uuid, _pusb);
else
return new PUSB((Proxy_PUSB)session.proxy.pusb_get_record(session.uuid, _pusb ?? "").parse());
}
/// <summary>
/// Get a reference to the PUSB instance with the specified UUID.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<PUSB> get_by_uuid(Session session, string _uuid)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_by_uuid(session.uuid, _uuid);
else
return XenRef<PUSB>.Create(session.proxy.pusb_get_by_uuid(session.uuid, _uuid ?? "").parse());
}
/// <summary>
/// Get the uuid field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_uuid(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_uuid(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_uuid(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the USB_group field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static XenRef<USB_group> get_USB_group(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_usb_group(session.uuid, _pusb);
else
return XenRef<USB_group>.Create(session.proxy.pusb_get_usb_group(session.uuid, _pusb ?? "").parse());
}
/// <summary>
/// Get the host field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static XenRef<Host> get_host(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_host(session.uuid, _pusb);
else
return XenRef<Host>.Create(session.proxy.pusb_get_host(session.uuid, _pusb ?? "").parse());
}
/// <summary>
/// Get the path field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_path(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_path(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_path(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the vendor_id field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_vendor_id(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_vendor_id(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_vendor_id(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the vendor_desc field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_vendor_desc(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_vendor_desc(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_vendor_desc(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the product_id field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_product_id(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_product_id(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_product_id(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the product_desc field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_product_desc(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_product_desc(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_product_desc(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the serial field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_serial(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_serial(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_serial(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the version field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_version(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_version(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_version(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the description field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static string get_description(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_description(session.uuid, _pusb);
else
return (string)session.proxy.pusb_get_description(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the passthrough_enabled field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static bool get_passthrough_enabled(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_passthrough_enabled(session.uuid, _pusb);
else
return (bool)session.proxy.pusb_get_passthrough_enabled(session.uuid, _pusb ?? "").parse();
}
/// <summary>
/// Get the other_config field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
public static Dictionary<string, string> get_other_config(Session session, string _pusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_other_config(session.uuid, _pusb);
else
return Maps.convert_from_proxy_string_string(session.proxy.pusb_get_other_config(session.uuid, _pusb ?? "").parse());
}
/// <summary>
/// Set the other_config field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
/// <param name="_other_config">New value to set</param>
public static void set_other_config(Session session, string _pusb, Dictionary<string, string> _other_config)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.pusb_set_other_config(session.uuid, _pusb, _other_config);
else
session.proxy.pusb_set_other_config(session.uuid, _pusb ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse();
}
/// <summary>
/// Add the given key-value pair to the other_config field of the given PUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
/// <param name="_key">Key to add</param>
/// <param name="_value">Value to add</param>
public static void add_to_other_config(Session session, string _pusb, string _key, string _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.pusb_add_to_other_config(session.uuid, _pusb, _key, _value);
else
session.proxy.pusb_add_to_other_config(session.uuid, _pusb ?? "", _key ?? "", _value ?? "").parse();
}
/// <summary>
/// Remove the given key and its corresponding value from the other_config field of the given PUSB. If the key is not in that Map, then do nothing.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
/// <param name="_key">Key to remove</param>
public static void remove_from_other_config(Session session, string _pusb, string _key)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.pusb_remove_from_other_config(session.uuid, _pusb, _key);
else
session.proxy.pusb_remove_from_other_config(session.uuid, _pusb ?? "", _key ?? "").parse();
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_host">The host</param>
public static void scan(Session session, string _host)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.pusb_scan(session.uuid, _host);
else
session.proxy.pusb_scan(session.uuid, _host ?? "").parse();
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_host">The host</param>
public static XenRef<Task> async_scan(Session session, string _host)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_pusb_scan(session.uuid, _host);
else
return XenRef<Task>.Create(session.proxy.async_pusb_scan(session.uuid, _host ?? "").parse());
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
/// <param name="_value">passthrough is enabled when true and disabled with false</param>
public static void set_passthrough_enabled(Session session, string _pusb, bool _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.pusb_set_passthrough_enabled(session.uuid, _pusb, _value);
else
session.proxy.pusb_set_passthrough_enabled(session.uuid, _pusb ?? "", _value).parse();
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pusb">The opaque_ref of the given pusb</param>
/// <param name="_value">passthrough is enabled when true and disabled with false</param>
public static XenRef<Task> async_set_passthrough_enabled(Session session, string _pusb, bool _value)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_pusb_set_passthrough_enabled(session.uuid, _pusb, _value);
else
return XenRef<Task>.Create(session.proxy.async_pusb_set_passthrough_enabled(session.uuid, _pusb ?? "", _value).parse());
}
/// <summary>
/// Return a list of all the PUSBs known to the system.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<PUSB>> get_all(Session session)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_all(session.uuid);
else
return XenRef<PUSB>.Create(session.proxy.pusb_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the PUSB Records at once, in a single XML RPC call
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<PUSB>, PUSB> get_all_records(Session session)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pusb_get_all_records(session.uuid);
else
return XenRef<PUSB>.Create<Proxy_PUSB>(session.proxy.pusb_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid = "";
/// <summary>
/// USB group the PUSB is contained in
/// </summary>
[JsonConverter(typeof(XenRefConverter<USB_group>))]
public virtual XenRef<USB_group> USB_group
{
get { return _USB_group; }
set
{
if (!Helper.AreEqual(value, _USB_group))
{
_USB_group = value;
Changed = true;
NotifyPropertyChanged("USB_group");
}
}
}
private XenRef<USB_group> _USB_group = new XenRef<USB_group>("OpaqueRef:NULL");
/// <summary>
/// Physical machine that owns the USB device
/// </summary>
[JsonConverter(typeof(XenRefConverter<Host>))]
public virtual XenRef<Host> host
{
get { return _host; }
set
{
if (!Helper.AreEqual(value, _host))
{
_host = value;
Changed = true;
NotifyPropertyChanged("host");
}
}
}
private XenRef<Host> _host = new XenRef<Host>("OpaqueRef:NULL");
/// <summary>
/// port path of USB device
/// </summary>
public virtual string path
{
get { return _path; }
set
{
if (!Helper.AreEqual(value, _path))
{
_path = value;
Changed = true;
NotifyPropertyChanged("path");
}
}
}
private string _path = "";
/// <summary>
/// vendor id of the USB device
/// </summary>
public virtual string vendor_id
{
get { return _vendor_id; }
set
{
if (!Helper.AreEqual(value, _vendor_id))
{
_vendor_id = value;
Changed = true;
NotifyPropertyChanged("vendor_id");
}
}
}
private string _vendor_id = "";
/// <summary>
/// vendor description of the USB device
/// </summary>
public virtual string vendor_desc
{
get { return _vendor_desc; }
set
{
if (!Helper.AreEqual(value, _vendor_desc))
{
_vendor_desc = value;
Changed = true;
NotifyPropertyChanged("vendor_desc");
}
}
}
private string _vendor_desc = "";
/// <summary>
/// product id of the USB device
/// </summary>
public virtual string product_id
{
get { return _product_id; }
set
{
if (!Helper.AreEqual(value, _product_id))
{
_product_id = value;
Changed = true;
NotifyPropertyChanged("product_id");
}
}
}
private string _product_id = "";
/// <summary>
/// product description of the USB device
/// </summary>
public virtual string product_desc
{
get { return _product_desc; }
set
{
if (!Helper.AreEqual(value, _product_desc))
{
_product_desc = value;
Changed = true;
NotifyPropertyChanged("product_desc");
}
}
}
private string _product_desc = "";
/// <summary>
/// serial of the USB device
/// </summary>
public virtual string serial
{
get { return _serial; }
set
{
if (!Helper.AreEqual(value, _serial))
{
_serial = value;
Changed = true;
NotifyPropertyChanged("serial");
}
}
}
private string _serial = "";
/// <summary>
/// USB device version
/// </summary>
public virtual string version
{
get { return _version; }
set
{
if (!Helper.AreEqual(value, _version))
{
_version = value;
Changed = true;
NotifyPropertyChanged("version");
}
}
}
private string _version = "";
/// <summary>
/// USB device description
/// </summary>
public virtual string description
{
get { return _description; }
set
{
if (!Helper.AreEqual(value, _description))
{
_description = value;
Changed = true;
NotifyPropertyChanged("description");
}
}
}
private string _description = "";
/// <summary>
/// enabled for passthrough
/// </summary>
public virtual bool passthrough_enabled
{
get { return _passthrough_enabled; }
set
{
if (!Helper.AreEqual(value, _passthrough_enabled))
{
_passthrough_enabled = value;
Changed = true;
NotifyPropertyChanged("passthrough_enabled");
}
}
}
private bool _passthrough_enabled = false;
/// <summary>
/// additional configuration
/// </summary>
public virtual Dictionary<string, string> other_config
{
get { return _other_config; }
set
{
if (!Helper.AreEqual(value, _other_config))
{
_other_config = value;
Changed = true;
NotifyPropertyChanged("other_config");
}
}
}
private Dictionary<string, string> _other_config = new Dictionary<string, string>() {};
}
}

View File

@ -135,6 +135,15 @@ namespace XenAPI
Helper.AreEqual2(this._VDI, other._VDI);
}
internal static List<PVS_cache_storage> ProxyArrayToObjectList(Proxy_PVS_cache_storage[] input)
{
var result = new List<PVS_cache_storage>();
foreach (var item in input)
result.Add(new PVS_cache_storage(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PVS_cache_storage server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._status, other._status);
}
internal static List<PVS_proxy> ProxyArrayToObjectList(Proxy_PVS_proxy[] input)
{
var result = new List<PVS_proxy>();
foreach (var item in input)
result.Add(new PVS_proxy(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PVS_proxy server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._site, other._site);
}
internal static List<PVS_server> ProxyArrayToObjectList(Proxy_PVS_server[] input)
{
var result = new List<PVS_server>();
foreach (var item in input)
result.Add(new PVS_server(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PVS_server server)
{
if (opaqueRef == null)

View File

@ -142,6 +142,15 @@ namespace XenAPI
Helper.AreEqual2(this._proxies, other._proxies);
}
internal static List<PVS_site> ProxyArrayToObjectList(Proxy_PVS_site[] input)
{
var result = new List<PVS_site>();
foreach (var item in input)
result.Add(new PVS_site(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, PVS_site server)
{
if (opaqueRef == null)

View File

@ -84,7 +84,8 @@ namespace XenAPI
Dictionary<string, string> guest_agent_config,
Dictionary<string, string> cpu_info,
bool policy_no_vendor_device,
bool live_patching_disabled)
bool live_patching_disabled,
bool igmp_snooping_enabled)
{
this.uuid = uuid;
this.name_label = name_label;
@ -121,6 +122,7 @@ namespace XenAPI
this.cpu_info = cpu_info;
this.policy_no_vendor_device = policy_no_vendor_device;
this.live_patching_disabled = live_patching_disabled;
this.igmp_snooping_enabled = igmp_snooping_enabled;
}
/// <summary>
@ -169,6 +171,7 @@ namespace XenAPI
cpu_info = update.cpu_info;
policy_no_vendor_device = update.policy_no_vendor_device;
live_patching_disabled = update.live_patching_disabled;
igmp_snooping_enabled = update.igmp_snooping_enabled;
}
internal void UpdateFromProxy(Proxy_Pool proxy)
@ -208,6 +211,7 @@ namespace XenAPI
cpu_info = proxy.cpu_info == null ? null : Maps.convert_from_proxy_string_string(proxy.cpu_info);
policy_no_vendor_device = (bool)proxy.policy_no_vendor_device;
live_patching_disabled = (bool)proxy.live_patching_disabled;
igmp_snooping_enabled = (bool)proxy.igmp_snooping_enabled;
}
public Proxy_Pool ToProxy()
@ -248,6 +252,7 @@ namespace XenAPI
result_.cpu_info = Maps.convert_to_proxy_string_string(cpu_info);
result_.policy_no_vendor_device = policy_no_vendor_device;
result_.live_patching_disabled = live_patching_disabled;
result_.igmp_snooping_enabled = igmp_snooping_enabled;
return result_;
}
@ -292,6 +297,7 @@ namespace XenAPI
cpu_info = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "cpu_info"));
policy_no_vendor_device = Marshalling.ParseBool(table, "policy_no_vendor_device");
live_patching_disabled = Marshalling.ParseBool(table, "live_patching_disabled");
igmp_snooping_enabled = Marshalling.ParseBool(table, "igmp_snooping_enabled");
}
public bool DeepEquals(Pool other, bool ignoreCurrentOperations)
@ -337,7 +343,17 @@ namespace XenAPI
Helper.AreEqual2(this._guest_agent_config, other._guest_agent_config) &&
Helper.AreEqual2(this._cpu_info, other._cpu_info) &&
Helper.AreEqual2(this._policy_no_vendor_device, other._policy_no_vendor_device) &&
Helper.AreEqual2(this._live_patching_disabled, other._live_patching_disabled);
Helper.AreEqual2(this._live_patching_disabled, other._live_patching_disabled) &&
Helper.AreEqual2(this._igmp_snooping_enabled, other._igmp_snooping_enabled);
}
internal static List<Pool> ProxyArrayToObjectList(Proxy_Pool[] input)
{
var result = new List<Pool>();
foreach (var item in input)
result.Add(new Pool(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Pool server)
@ -928,6 +944,20 @@ namespace XenAPI
return (bool)session.proxy.pool_get_live_patching_disabled(session.uuid, _pool ?? "").parse();
}
/// <summary>
/// Get the igmp_snooping_enabled field of the given pool.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pool">The opaque_ref of the given pool</param>
public static bool get_igmp_snooping_enabled(Session session, string _pool)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.pool_get_igmp_snooping_enabled(session.uuid, _pool);
else
return (bool)session.proxy.pool_get_igmp_snooping_enabled(session.uuid, _pool ?? "").parse();
}
/// <summary>
/// Set the name_label field of the given pool.
/// First published in XenServer 4.0.
@ -2459,6 +2489,36 @@ namespace XenAPI
return XenRef<Task>.Create(session.proxy.async_pool_disable_ssl_legacy(session.uuid, _pool ?? "").parse());
}
/// <summary>
/// Enable or disable IGMP Snooping on the pool.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pool">The opaque_ref of the given pool</param>
/// <param name="_value">Enable or disable IGMP Snooping on the pool</param>
public static void set_igmp_snooping_enabled(Session session, string _pool, bool _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.pool_set_igmp_snooping_enabled(session.uuid, _pool, _value);
else
session.proxy.pool_set_igmp_snooping_enabled(session.uuid, _pool ?? "", _value).parse();
}
/// <summary>
/// Enable or disable IGMP Snooping on the pool.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pool">The opaque_ref of the given pool</param>
/// <param name="_value">Enable or disable IGMP Snooping on the pool</param>
public static XenRef<Task> async_set_igmp_snooping_enabled(Session session, string _pool, bool _value)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_pool_set_igmp_snooping_enabled(session.uuid, _pool, _value);
else
return XenRef<Task>.Create(session.proxy.async_pool_set_igmp_snooping_enabled(session.uuid, _pool ?? "", _value).parse());
}
/// <summary>
/// Return true if the extension is available on the pool
/// First published in XenServer 7.0.
@ -3238,5 +3298,24 @@ namespace XenAPI
}
}
private bool _live_patching_disabled = false;
/// <summary>
/// true if IGMP snooping is enabled in the pool, false otherwise.
/// First published in Unreleased.
/// </summary>
public virtual bool igmp_snooping_enabled
{
get { return _igmp_snooping_enabled; }
set
{
if (!Helper.AreEqual(value, _igmp_snooping_enabled))
{
_igmp_snooping_enabled = value;
Changed = true;
NotifyPropertyChanged("igmp_snooping_enabled");
}
}
}
private bool _igmp_snooping_enabled = false;
}
}

View File

@ -163,6 +163,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Pool_patch> ProxyArrayToObjectList(Proxy_Pool_patch[] input)
{
var result = new List<Pool_patch>();
foreach (var item in input)
result.Add(new Pool_patch(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Pool_patch server)
{
if (opaqueRef == null)

View File

@ -170,6 +170,15 @@ namespace XenAPI
Helper.AreEqual2(this._enforce_homogeneity, other._enforce_homogeneity);
}
internal static List<Pool_update> ProxyArrayToObjectList(Proxy_Pool_update[] input)
{
var result = new List<Pool_update>();
foreach (var item in input)
result.Add(new Pool_update(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Pool_update server)
{
if (opaqueRef == null)

View File

@ -604,6 +604,10 @@ namespace XenAPI
Response<bool>
pool_get_live_patching_disabled(string session, string _pool);
[XmlRpcMethod("pool.get_igmp_snooping_enabled")]
Response<bool>
pool_get_igmp_snooping_enabled(string session, string _pool);
[XmlRpcMethod("pool.set_name_label")]
Response<string>
pool_set_name_label(string session, string _pool, string _name_label);
@ -1024,6 +1028,14 @@ namespace XenAPI
Response<string>
async_pool_disable_ssl_legacy(string session, string _pool);
[XmlRpcMethod("pool.set_igmp_snooping_enabled")]
Response<string>
pool_set_igmp_snooping_enabled(string session, string _pool, bool _value);
[XmlRpcMethod("Async.pool.set_igmp_snooping_enabled")]
Response<string>
async_pool_set_igmp_snooping_enabled(string session, string _pool, bool _value);
[XmlRpcMethod("pool.has_extension")]
Response<bool>
pool_has_extension(string session, string _pool, string _name);
@ -1444,6 +1456,10 @@ namespace XenAPI
Response<string []>
vm_get_vbds(string session, string _vm);
[XmlRpcMethod("VM.get_VUSBs")]
Response<string []>
vm_get_vusbs(string session, string _vm);
[XmlRpcMethod("VM.get_crash_dumps")]
Response<string []>
vm_get_crash_dumps(string session, string _vm);
@ -2148,6 +2164,14 @@ namespace XenAPI
Response<string>
async_vm_migrate_send(string session, string _vm, Object _dest, bool _live, Object _vdi_map, Object _vif_map, Object _options);
[XmlRpcMethod("VM.migrate_send")]
Response<string>
vm_migrate_send(string session, string _vm, Object _dest, bool _live, Object _vdi_map, Object _vif_map, Object _options, Object _vgpu_map);
[XmlRpcMethod("Async.VM.migrate_send")]
Response<string>
async_vm_migrate_send(string session, string _vm, Object _dest, bool _live, Object _vdi_map, Object _vif_map, Object _options, Object _vgpu_map);
[XmlRpcMethod("VM.assert_can_migrate")]
Response<string>
vm_assert_can_migrate(string session, string _vm, Object _dest, bool _live, Object _vdi_map, Object _vif_map, Object _options);
@ -2156,6 +2180,14 @@ namespace XenAPI
Response<string>
async_vm_assert_can_migrate(string session, string _vm, Object _dest, bool _live, Object _vdi_map, Object _vif_map, Object _options);
[XmlRpcMethod("VM.assert_can_migrate")]
Response<string>
vm_assert_can_migrate(string session, string _vm, Object _dest, bool _live, Object _vdi_map, Object _vif_map, Object _options, Object _vgpu_map);
[XmlRpcMethod("Async.VM.assert_can_migrate")]
Response<string>
async_vm_assert_can_migrate(string session, string _vm, Object _dest, bool _live, Object _vdi_map, Object _vif_map, Object _options, Object _vgpu_map);
[XmlRpcMethod("VM.get_boot_record")]
Response<Proxy_VM>
vm_get_boot_record(string session, string _vm);
@ -2248,6 +2280,14 @@ namespace XenAPI
Response<string>
async_vm_retrieve_wlb_recommendations(string session, string _vm);
[XmlRpcMethod("VM.set_bios_strings")]
Response<string>
vm_set_bios_strings(string session, string _vm, Object _value);
[XmlRpcMethod("Async.VM.set_bios_strings")]
Response<string>
async_vm_set_bios_strings(string session, string _vm, Object _value);
[XmlRpcMethod("VM.copy_bios_strings")]
Response<string>
vm_copy_bios_strings(string session, string _vm, string _host);
@ -3256,6 +3296,10 @@ namespace XenAPI
Response<string []>
host_get_pgpus(string session, string _host);
[XmlRpcMethod("host.get_PUSBs")]
Response<string []>
host_get_pusbs(string session, string _host);
[XmlRpcMethod("host.get_ssl_legacy")]
Response<bool>
host_get_ssl_legacy(string session, string _host);
@ -4144,6 +4188,10 @@ namespace XenAPI
Response<Object>
network_get_assigned_ips(string session, string _network);
[XmlRpcMethod("network.get_purpose")]
Response<string []>
network_get_purpose(string session, string _network);
[XmlRpcMethod("network.set_name_label")]
Response<string>
network_set_name_label(string session, string _network, string _label);
@ -4204,6 +4252,22 @@ namespace XenAPI
Response<string>
async_network_set_default_locking_mode(string session, string _network, string _value);
[XmlRpcMethod("network.add_purpose")]
Response<string>
network_add_purpose(string session, string _network, string _value);
[XmlRpcMethod("Async.network.add_purpose")]
Response<string>
async_network_add_purpose(string session, string _network, string _value);
[XmlRpcMethod("network.remove_purpose")]
Response<string>
network_remove_purpose(string session, string _network, string _value);
[XmlRpcMethod("Async.network.remove_purpose")]
Response<string>
async_network_remove_purpose(string session, string _network, string _value);
[XmlRpcMethod("network.get_all")]
Response<string []>
network_get_all(string session);
@ -4664,6 +4728,10 @@ namespace XenAPI
Response<string []>
pif_get_capabilities(string session, string _pif);
[XmlRpcMethod("PIF.get_igmp_snooping_status")]
Response<string>
pif_get_igmp_snooping_status(string session, string _pif);
[XmlRpcMethod("PIF.set_other_config")]
Response<string>
pif_set_other_config(string session, string _pif, Object _other_config);
@ -5956,22 +6024,18 @@ namespace XenAPI
Response<string>
async_vdi_data_destroy(string session, string _vdi);
[XmlRpcMethod("VDI.export_changed_blocks")]
[XmlRpcMethod("VDI.list_changed_blocks")]
Response<string>
vdi_export_changed_blocks(string session, string _vdi, string _vdi_to);
vdi_list_changed_blocks(string session, string _vdi, string _vdi_to);
[XmlRpcMethod("Async.VDI.export_changed_blocks")]
[XmlRpcMethod("Async.VDI.list_changed_blocks")]
Response<string>
async_vdi_export_changed_blocks(string session, string _vdi, string _vdi_to);
async_vdi_list_changed_blocks(string session, string _vdi, string _vdi_to);
[XmlRpcMethod("VDI.get_nbd_info")]
Response<string []>
Response<Proxy_Vdi_nbd_server_info[]>
vdi_get_nbd_info(string session, string _vdi);
[XmlRpcMethod("Async.VDI.get_nbd_info")]
Response<string>
async_vdi_get_nbd_info(string session, string _vdi);
[XmlRpcMethod("VDI.get_all")]
Response<string []>
vdi_get_all(string session);
@ -6920,6 +6984,10 @@ namespace XenAPI
Response<bool>
pgpu_get_is_system_display_device(string session, string _pgpu);
[XmlRpcMethod("PGPU.get_compatibility_metadata")]
Response<Object>
pgpu_get_compatibility_metadata(string session, string _pgpu);
[XmlRpcMethod("PGPU.set_other_config")]
Response<string>
pgpu_set_other_config(string session, string _pgpu, Object _other_config);
@ -7144,6 +7212,10 @@ namespace XenAPI
Response<string>
vgpu_get_resident_on(string session, string _vgpu);
[XmlRpcMethod("VGPU.get_scheduled_to_be_resident_on")]
Response<string>
vgpu_get_scheduled_to_be_resident_on(string session, string _vgpu);
[XmlRpcMethod("VGPU.set_other_config")]
Response<string>
vgpu_set_other_config(string session, string _vgpu, Object _other_config);
@ -7599,6 +7671,266 @@ namespace XenAPI
[XmlRpcMethod("SDN_controller.get_all_records")]
Response<Object>
sdn_controller_get_all_records(string session);
[XmlRpcMethod("vdi_nbd_server_info.get_all_records")]
Response<Object>
vdi_nbd_server_info_get_all_records(string session);
[XmlRpcMethod("PUSB.get_record")]
Response<Proxy_PUSB>
pusb_get_record(string session, string _pusb);
[XmlRpcMethod("PUSB.get_by_uuid")]
Response<string>
pusb_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("PUSB.get_uuid")]
Response<string>
pusb_get_uuid(string session, string _pusb);
[XmlRpcMethod("PUSB.get_USB_group")]
Response<string>
pusb_get_usb_group(string session, string _pusb);
[XmlRpcMethod("PUSB.get_host")]
Response<string>
pusb_get_host(string session, string _pusb);
[XmlRpcMethod("PUSB.get_path")]
Response<string>
pusb_get_path(string session, string _pusb);
[XmlRpcMethod("PUSB.get_vendor_id")]
Response<string>
pusb_get_vendor_id(string session, string _pusb);
[XmlRpcMethod("PUSB.get_vendor_desc")]
Response<string>
pusb_get_vendor_desc(string session, string _pusb);
[XmlRpcMethod("PUSB.get_product_id")]
Response<string>
pusb_get_product_id(string session, string _pusb);
[XmlRpcMethod("PUSB.get_product_desc")]
Response<string>
pusb_get_product_desc(string session, string _pusb);
[XmlRpcMethod("PUSB.get_serial")]
Response<string>
pusb_get_serial(string session, string _pusb);
[XmlRpcMethod("PUSB.get_version")]
Response<string>
pusb_get_version(string session, string _pusb);
[XmlRpcMethod("PUSB.get_description")]
Response<string>
pusb_get_description(string session, string _pusb);
[XmlRpcMethod("PUSB.get_passthrough_enabled")]
Response<bool>
pusb_get_passthrough_enabled(string session, string _pusb);
[XmlRpcMethod("PUSB.get_other_config")]
Response<Object>
pusb_get_other_config(string session, string _pusb);
[XmlRpcMethod("PUSB.set_other_config")]
Response<string>
pusb_set_other_config(string session, string _pusb, Object _other_config);
[XmlRpcMethod("PUSB.add_to_other_config")]
Response<string>
pusb_add_to_other_config(string session, string _pusb, string _key, string _value);
[XmlRpcMethod("PUSB.remove_from_other_config")]
Response<string>
pusb_remove_from_other_config(string session, string _pusb, string _key);
[XmlRpcMethod("PUSB.scan")]
Response<string>
pusb_scan(string session, string _host);
[XmlRpcMethod("Async.PUSB.scan")]
Response<string>
async_pusb_scan(string session, string _host);
[XmlRpcMethod("PUSB.set_passthrough_enabled")]
Response<string>
pusb_set_passthrough_enabled(string session, string _pusb, bool _value);
[XmlRpcMethod("Async.PUSB.set_passthrough_enabled")]
Response<string>
async_pusb_set_passthrough_enabled(string session, string _pusb, bool _value);
[XmlRpcMethod("PUSB.get_all")]
Response<string []>
pusb_get_all(string session);
[XmlRpcMethod("PUSB.get_all_records")]
Response<Object>
pusb_get_all_records(string session);
[XmlRpcMethod("USB_group.get_record")]
Response<Proxy_USB_group>
usb_group_get_record(string session, string _usb_group);
[XmlRpcMethod("USB_group.get_by_uuid")]
Response<string>
usb_group_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("USB_group.get_by_name_label")]
Response<string []>
usb_group_get_by_name_label(string session, string _label);
[XmlRpcMethod("USB_group.get_uuid")]
Response<string>
usb_group_get_uuid(string session, string _usb_group);
[XmlRpcMethod("USB_group.get_name_label")]
Response<string>
usb_group_get_name_label(string session, string _usb_group);
[XmlRpcMethod("USB_group.get_name_description")]
Response<string>
usb_group_get_name_description(string session, string _usb_group);
[XmlRpcMethod("USB_group.get_PUSBs")]
Response<string []>
usb_group_get_pusbs(string session, string _usb_group);
[XmlRpcMethod("USB_group.get_VUSBs")]
Response<string []>
usb_group_get_vusbs(string session, string _usb_group);
[XmlRpcMethod("USB_group.get_other_config")]
Response<Object>
usb_group_get_other_config(string session, string _usb_group);
[XmlRpcMethod("USB_group.set_name_label")]
Response<string>
usb_group_set_name_label(string session, string _usb_group, string _label);
[XmlRpcMethod("USB_group.set_name_description")]
Response<string>
usb_group_set_name_description(string session, string _usb_group, string _description);
[XmlRpcMethod("USB_group.set_other_config")]
Response<string>
usb_group_set_other_config(string session, string _usb_group, Object _other_config);
[XmlRpcMethod("USB_group.add_to_other_config")]
Response<string>
usb_group_add_to_other_config(string session, string _usb_group, string _key, string _value);
[XmlRpcMethod("USB_group.remove_from_other_config")]
Response<string>
usb_group_remove_from_other_config(string session, string _usb_group, string _key);
[XmlRpcMethod("USB_group.create")]
Response<string>
usb_group_create(string session, string _name_label, string _name_description, Object _other_config);
[XmlRpcMethod("Async.USB_group.create")]
Response<string>
async_usb_group_create(string session, string _name_label, string _name_description, Object _other_config);
[XmlRpcMethod("USB_group.destroy")]
Response<string>
usb_group_destroy(string session, string _usb_group);
[XmlRpcMethod("Async.USB_group.destroy")]
Response<string>
async_usb_group_destroy(string session, string _usb_group);
[XmlRpcMethod("USB_group.get_all")]
Response<string []>
usb_group_get_all(string session);
[XmlRpcMethod("USB_group.get_all_records")]
Response<Object>
usb_group_get_all_records(string session);
[XmlRpcMethod("VUSB.get_record")]
Response<Proxy_VUSB>
vusb_get_record(string session, string _vusb);
[XmlRpcMethod("VUSB.get_by_uuid")]
Response<string>
vusb_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("VUSB.get_uuid")]
Response<string>
vusb_get_uuid(string session, string _vusb);
[XmlRpcMethod("VUSB.get_allowed_operations")]
Response<string []>
vusb_get_allowed_operations(string session, string _vusb);
[XmlRpcMethod("VUSB.get_current_operations")]
Response<Object>
vusb_get_current_operations(string session, string _vusb);
[XmlRpcMethod("VUSB.get_VM")]
Response<string>
vusb_get_vm(string session, string _vusb);
[XmlRpcMethod("VUSB.get_USB_group")]
Response<string>
vusb_get_usb_group(string session, string _vusb);
[XmlRpcMethod("VUSB.get_other_config")]
Response<Object>
vusb_get_other_config(string session, string _vusb);
[XmlRpcMethod("VUSB.get_currently_attached")]
Response<bool>
vusb_get_currently_attached(string session, string _vusb);
[XmlRpcMethod("VUSB.set_other_config")]
Response<string>
vusb_set_other_config(string session, string _vusb, Object _other_config);
[XmlRpcMethod("VUSB.add_to_other_config")]
Response<string>
vusb_add_to_other_config(string session, string _vusb, string _key, string _value);
[XmlRpcMethod("VUSB.remove_from_other_config")]
Response<string>
vusb_remove_from_other_config(string session, string _vusb, string _key);
[XmlRpcMethod("VUSB.create")]
Response<string>
vusb_create(string session, string _vm, string _usb_group, Object _other_config);
[XmlRpcMethod("Async.VUSB.create")]
Response<string>
async_vusb_create(string session, string _vm, string _usb_group, Object _other_config);
[XmlRpcMethod("VUSB.unplug")]
Response<string>
vusb_unplug(string session, string _vusb);
[XmlRpcMethod("Async.VUSB.unplug")]
Response<string>
async_vusb_unplug(string session, string _vusb);
[XmlRpcMethod("VUSB.destroy")]
Response<string>
vusb_destroy(string session, string _vusb);
[XmlRpcMethod("Async.VUSB.destroy")]
Response<string>
async_vusb_destroy(string session, string _vusb);
[XmlRpcMethod("VUSB.get_all")]
Response<string []>
vusb_get_all(string session);
[XmlRpcMethod("VUSB.get_all_records")]
Response<Object>
vusb_get_all_records(string session);
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -7704,6 +8036,7 @@ namespace XenAPI
public Object cpu_info;
public bool policy_no_vendor_device;
public bool live_patching_disabled;
public bool igmp_snooping_enabled;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -7767,6 +8100,7 @@ namespace XenAPI
public string [] consoles;
public string [] VIFs;
public string [] VBDs;
public string [] VUSBs;
public string [] crash_dumps;
public string [] VTPMs;
public string PV_bootloader;
@ -7972,6 +8306,7 @@ namespace XenAPI
public Object chipset_info;
public string [] PCIs;
public string [] PGPUs;
public string [] PUSBs;
public bool ssl_legacy;
public Object guest_VCPUs_params;
public string display;
@ -8053,6 +8388,7 @@ namespace XenAPI
public string [] tags;
public string default_locking_mode;
public Object assigned_ips;
public string [] purpose;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -8131,6 +8467,7 @@ namespace XenAPI
public bool managed;
public Object properties;
public string [] capabilities;
public string igmp_snooping_status;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -8430,6 +8767,7 @@ namespace XenAPI
public Object supported_VGPU_max_capacities;
public string dom0_access;
public bool is_system_display_device;
public Object compatibility_metadata;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -8458,6 +8796,7 @@ namespace XenAPI
public Object other_config;
public string type;
public string resident_on;
public string scheduled_to_be_resident_on;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -8544,4 +8883,55 @@ namespace XenAPI
public string port;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_Vdi_nbd_server_info
{
public string exportname;
public string address;
public string port;
public string cert;
public string subject;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_PUSB
{
public string uuid;
public string USB_group;
public string host;
public string path;
public string vendor_id;
public string vendor_desc;
public string product_id;
public string product_desc;
public string serial;
public string version;
public string description;
public bool passthrough_enabled;
public Object other_config;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_USB_group
{
public string uuid;
public string name_label;
public string name_description;
public string [] PUSBs;
public string [] VUSBs;
public Object other_config;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_VUSB
{
public string uuid;
public string [] allowed_operations;
public Object current_operations;
public string VM;
public string USB_group;
public Object other_config;
public bool currently_attached;
}
}

View File

@ -65,6 +65,11 @@ namespace XenAPI
new Relation("PGPUs", "PGPU", "GPU_group"),
});
relations.Add(typeof(Proxy_USB_group), new Relation[] {
new Relation("VUSBs", "VUSB", "USB_group"),
new Relation("PUSBs", "PUSB", "USB_group"),
});
relations.Add(typeof(Proxy_Subject), new Relation[] {
new Relation("roles", "subject", "roles"),
});
@ -134,6 +139,7 @@ namespace XenAPI
});
relations.Add(typeof(Proxy_VM), new Relation[] {
new Relation("VUSBs", "VUSB", "VM"),
new Relation("VGPUs", "VGPU", "VM"),
new Relation("consoles", "console", "VM"),
new Relation("VTPMs", "VTPM", "VM"),
@ -150,6 +156,7 @@ namespace XenAPI
relations.Add(typeof(Proxy_Host), new Relation[] {
new Relation("features", "Feature", "host"),
new Relation("PUSBs", "PUSB", "host"),
new Relation("PGPUs", "PGPU", "host"),
new Relation("PCIs", "PCI", "host"),
new Relation("patches", "host_patch", "host"),

View File

@ -121,6 +121,15 @@ namespace XenAPI
Helper.AreEqual2(this._subroles, other._subroles);
}
internal static List<Role> ProxyArrayToObjectList(Proxy_Role[] input)
{
var result = new List<Role>();
foreach (var item in input)
result.Add(new Role(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Role server)
{
if (opaqueRef == null)

View File

@ -121,6 +121,15 @@ namespace XenAPI
Helper.AreEqual2(this._port, other._port);
}
internal static List<SDN_controller> ProxyArrayToObjectList(Proxy_SDN_controller[] input)
{
var result = new List<SDN_controller>();
foreach (var item in input)
result.Add(new SDN_controller(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, SDN_controller server)
{
if (opaqueRef == null)

View File

@ -191,6 +191,15 @@ namespace XenAPI
Helper.AreEqual2(this._required_cluster_stack, other._required_cluster_stack);
}
internal static List<SM> ProxyArrayToObjectList(Proxy_SM[] input)
{
var result = new List<SM>();
foreach (var item in input)
result.Add(new SM(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, SM server)
{
if (opaqueRef == null)

View File

@ -242,6 +242,15 @@ namespace XenAPI
Helper.AreEqual2(this._is_tools_sr, other._is_tools_sr);
}
internal static List<SR> ProxyArrayToObjectList(Proxy_SR[] input)
{
var result = new List<SR>();
foreach (var item in input)
result.Add(new SR(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, SR server)
{
if (opaqueRef == null)
@ -1488,7 +1497,7 @@ namespace XenAPI
if (session.JsonRpcClient != null)
return session.JsonRpcClient.sr_get_data_sources(session.uuid, _sr);
else
return Helper.Proxy_Data_sourceArrayToData_sourceList(session.proxy.sr_get_data_sources(session.uuid, _sr ?? "").parse());
return Data_source.ProxyArrayToObjectList(session.proxy.sr_get_data_sources(session.uuid, _sr ?? "").parse());
}
/// <summary>

View File

@ -114,6 +114,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Secret> ProxyArrayToObjectList(Proxy_Secret[] input)
{
var result = new List<Secret>();
foreach (var item in input)
result.Add(new Secret(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Secret server)
{
if (opaqueRef == null)

View File

@ -121,6 +121,15 @@ namespace XenAPI
Helper.AreEqual2(this._roles, other._roles);
}
internal static List<Subject> ProxyArrayToObjectList(Proxy_Subject[] input)
{
var result = new List<Subject>();
foreach (var item in input)
result.Add(new Subject(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Subject server)
{
if (opaqueRef == null)

View File

@ -214,6 +214,15 @@ namespace XenAPI
Helper.AreEqual2(this._backtrace, other._backtrace);
}
internal static List<Task> ProxyArrayToObjectList(Proxy_Task[] input)
{
var result = new List<Task>();
foreach (var item in input)
result.Add(new Task(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Task server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<Tunnel> ProxyArrayToObjectList(Proxy_Tunnel[] input)
{
var result = new List<Tunnel>();
foreach (var item in input)
result.Add(new Tunnel(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Tunnel server)
{
if (opaqueRef == null)

View File

@ -0,0 +1,569 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace XenAPI
{
/// <summary>
/// A group of compatible USBs across the resource pool
/// First published in Unreleased.
/// </summary>
public partial class USB_group : XenObject<USB_group>
{
public USB_group()
{
}
public USB_group(string uuid,
string name_label,
string name_description,
List<XenRef<PUSB>> PUSBs,
List<XenRef<VUSB>> VUSBs,
Dictionary<string, string> other_config)
{
this.uuid = uuid;
this.name_label = name_label;
this.name_description = name_description;
this.PUSBs = PUSBs;
this.VUSBs = VUSBs;
this.other_config = other_config;
}
/// <summary>
/// Creates a new USB_group from a Proxy_USB_group.
/// </summary>
/// <param name="proxy"></param>
public USB_group(Proxy_USB_group proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(USB_group update)
{
uuid = update.uuid;
name_label = update.name_label;
name_description = update.name_description;
PUSBs = update.PUSBs;
VUSBs = update.VUSBs;
other_config = update.other_config;
}
internal void UpdateFromProxy(Proxy_USB_group 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;
PUSBs = proxy.PUSBs == null ? null : XenRef<PUSB>.Create(proxy.PUSBs);
VUSBs = proxy.VUSBs == null ? null : XenRef<VUSB>.Create(proxy.VUSBs);
other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config);
}
public Proxy_USB_group ToProxy()
{
Proxy_USB_group result_ = new Proxy_USB_group();
result_.uuid = uuid ?? "";
result_.name_label = name_label ?? "";
result_.name_description = name_description ?? "";
result_.PUSBs = (PUSBs != null) ? Helper.RefListToStringArray(PUSBs) : new string[] {};
result_.VUSBs = (VUSBs != null) ? Helper.RefListToStringArray(VUSBs) : new string[] {};
result_.other_config = Maps.convert_to_proxy_string_string(other_config);
return result_;
}
/// <summary>
/// Creates a new USB_group from a Hashtable.
/// </summary>
/// <param name="table"></param>
public USB_group(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
name_label = Marshalling.ParseString(table, "name_label");
name_description = Marshalling.ParseString(table, "name_description");
PUSBs = Marshalling.ParseSetRef<PUSB>(table, "PUSBs");
VUSBs = Marshalling.ParseSetRef<VUSB>(table, "VUSBs");
other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config"));
}
public bool DeepEquals(USB_group 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._PUSBs, other._PUSBs) &&
Helper.AreEqual2(this._VUSBs, other._VUSBs) &&
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<USB_group> ProxyArrayToObjectList(Proxy_USB_group[] input)
{
var result = new List<USB_group>();
foreach (var item in input)
result.Add(new USB_group(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, USB_group 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))
{
USB_group.set_name_label(session, opaqueRef, _name_label);
}
if (!Helper.AreEqual2(_name_description, server._name_description))
{
USB_group.set_name_description(session, opaqueRef, _name_description);
}
if (!Helper.AreEqual2(_other_config, server._other_config))
{
USB_group.set_other_config(session, opaqueRef, _other_config);
}
return null;
}
}
/// <summary>
/// Get a record containing the current state of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static USB_group get_record(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_record(session.uuid, _usb_group);
else
return new USB_group((Proxy_USB_group)session.proxy.usb_group_get_record(session.uuid, _usb_group ?? "").parse());
}
/// <summary>
/// Get a reference to the USB_group instance with the specified UUID.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<USB_group> get_by_uuid(Session session, string _uuid)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_by_uuid(session.uuid, _uuid);
else
return XenRef<USB_group>.Create(session.proxy.usb_group_get_by_uuid(session.uuid, _uuid ?? "").parse());
}
/// <summary>
/// Get all the USB_group instances with the given label.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_label">label of object to return</param>
public static List<XenRef<USB_group>> get_by_name_label(Session session, string _label)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_by_name_label(session.uuid, _label);
else
return XenRef<USB_group>.Create(session.proxy.usb_group_get_by_name_label(session.uuid, _label ?? "").parse());
}
/// <summary>
/// Get the uuid field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static string get_uuid(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_uuid(session.uuid, _usb_group);
else
return (string)session.proxy.usb_group_get_uuid(session.uuid, _usb_group ?? "").parse();
}
/// <summary>
/// Get the name/label field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static string get_name_label(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_name_label(session.uuid, _usb_group);
else
return (string)session.proxy.usb_group_get_name_label(session.uuid, _usb_group ?? "").parse();
}
/// <summary>
/// Get the name/description field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static string get_name_description(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_name_description(session.uuid, _usb_group);
else
return (string)session.proxy.usb_group_get_name_description(session.uuid, _usb_group ?? "").parse();
}
/// <summary>
/// Get the PUSBs field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static List<XenRef<PUSB>> get_PUSBs(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_pusbs(session.uuid, _usb_group);
else
return XenRef<PUSB>.Create(session.proxy.usb_group_get_pusbs(session.uuid, _usb_group ?? "").parse());
}
/// <summary>
/// Get the VUSBs field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static List<XenRef<VUSB>> get_VUSBs(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_vusbs(session.uuid, _usb_group);
else
return XenRef<VUSB>.Create(session.proxy.usb_group_get_vusbs(session.uuid, _usb_group ?? "").parse());
}
/// <summary>
/// Get the other_config field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static Dictionary<string, string> get_other_config(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_other_config(session.uuid, _usb_group);
else
return Maps.convert_from_proxy_string_string(session.proxy.usb_group_get_other_config(session.uuid, _usb_group ?? "").parse());
}
/// <summary>
/// Set the name/label field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
/// <param name="_label">New value to set</param>
public static void set_name_label(Session session, string _usb_group, string _label)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.usb_group_set_name_label(session.uuid, _usb_group, _label);
else
session.proxy.usb_group_set_name_label(session.uuid, _usb_group ?? "", _label ?? "").parse();
}
/// <summary>
/// Set the name/description field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
/// <param name="_description">New value to set</param>
public static void set_name_description(Session session, string _usb_group, string _description)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.usb_group_set_name_description(session.uuid, _usb_group, _description);
else
session.proxy.usb_group_set_name_description(session.uuid, _usb_group ?? "", _description ?? "").parse();
}
/// <summary>
/// Set the other_config field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
/// <param name="_other_config">New value to set</param>
public static void set_other_config(Session session, string _usb_group, Dictionary<string, string> _other_config)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.usb_group_set_other_config(session.uuid, _usb_group, _other_config);
else
session.proxy.usb_group_set_other_config(session.uuid, _usb_group ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse();
}
/// <summary>
/// Add the given key-value pair to the other_config field of the given USB_group.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
/// <param name="_key">Key to add</param>
/// <param name="_value">Value to add</param>
public static void add_to_other_config(Session session, string _usb_group, string _key, string _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.usb_group_add_to_other_config(session.uuid, _usb_group, _key, _value);
else
session.proxy.usb_group_add_to_other_config(session.uuid, _usb_group ?? "", _key ?? "", _value ?? "").parse();
}
/// <summary>
/// Remove the given key and its corresponding value from the other_config field of the given USB_group. If the key is not in that Map, then do nothing.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
/// <param name="_key">Key to remove</param>
public static void remove_from_other_config(Session session, string _usb_group, string _key)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.usb_group_remove_from_other_config(session.uuid, _usb_group, _key);
else
session.proxy.usb_group_remove_from_other_config(session.uuid, _usb_group ?? "", _key ?? "").parse();
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_name_label"></param>
/// <param name="_name_description"></param>
/// <param name="_other_config"></param>
public static XenRef<USB_group> create(Session session, string _name_label, string _name_description, Dictionary<string, string> _other_config)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_create(session.uuid, _name_label, _name_description, _other_config);
else
return XenRef<USB_group>.Create(session.proxy.usb_group_create(session.uuid, _name_label ?? "", _name_description ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse());
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_name_label"></param>
/// <param name="_name_description"></param>
/// <param name="_other_config"></param>
public static XenRef<Task> async_create(Session session, string _name_label, string _name_description, Dictionary<string, string> _other_config)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_usb_group_create(session.uuid, _name_label, _name_description, _other_config);
else
return XenRef<Task>.Create(session.proxy.async_usb_group_create(session.uuid, _name_label ?? "", _name_description ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse());
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static void destroy(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.usb_group_destroy(session.uuid, _usb_group);
else
session.proxy.usb_group_destroy(session.uuid, _usb_group ?? "").parse();
}
/// <summary>
///
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_usb_group">The opaque_ref of the given usb_group</param>
public static XenRef<Task> async_destroy(Session session, string _usb_group)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_usb_group_destroy(session.uuid, _usb_group);
else
return XenRef<Task>.Create(session.proxy.async_usb_group_destroy(session.uuid, _usb_group ?? "").parse());
}
/// <summary>
/// Return a list of all the USB_groups known to the system.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<USB_group>> get_all(Session session)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_all(session.uuid);
else
return XenRef<USB_group>.Create(session.proxy.usb_group_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the USB_group Records at once, in a single XML RPC call
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<USB_group>, USB_group> get_all_records(Session session)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.usb_group_get_all_records(session.uuid);
else
return XenRef<USB_group>.Create<Proxy_USB_group>(session.proxy.usb_group_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// </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
/// </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
/// </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>
/// List of PUSBs in the group
/// </summary>
[JsonConverter(typeof(XenRefListConverter<PUSB>))]
public virtual List<XenRef<PUSB>> PUSBs
{
get { return _PUSBs; }
set
{
if (!Helper.AreEqual(value, _PUSBs))
{
_PUSBs = value;
Changed = true;
NotifyPropertyChanged("PUSBs");
}
}
}
private List<XenRef<PUSB>> _PUSBs = new List<XenRef<PUSB>>() {};
/// <summary>
/// List of VUSBs using the group
/// </summary>
[JsonConverter(typeof(XenRefListConverter<VUSB>))]
public virtual List<XenRef<VUSB>> VUSBs
{
get { return _VUSBs; }
set
{
if (!Helper.AreEqual(value, _VUSBs))
{
_VUSBs = value;
Changed = true;
NotifyPropertyChanged("VUSBs");
}
}
}
private List<XenRef<VUSB>> _VUSBs = new List<XenRef<VUSB>>() {};
/// <summary>
/// Additional configuration
/// </summary>
public virtual Dictionary<string, string> other_config
{
get { return _other_config; }
set
{
if (!Helper.AreEqual(value, _other_config))
{
_other_config = value;
Changed = true;
NotifyPropertyChanged("other_config");
}
}
}
private Dictionary<string, string> _other_config = new Dictionary<string, string>() {};
}
}

View File

@ -121,6 +121,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<User> ProxyArrayToObjectList(Proxy_User[] input)
{
var result = new List<User>();
foreach (var item in input)
result.Add(new User(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, User server)
{
if (opaqueRef == null)

View File

@ -249,6 +249,15 @@ namespace XenAPI
Helper.AreEqual2(this._metrics, other._metrics);
}
internal static List<VBD> ProxyArrayToObjectList(Proxy_VBD[] input)
{
var result = new List<VBD>();
foreach (var item in input)
result.Add(new VBD(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VBD server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<VBD_metrics> ProxyArrayToObjectList(Proxy_VBD_metrics[] input)
{
var result = new List<VBD_metrics>();
foreach (var item in input)
result.Add(new VBD_metrics(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VBD_metrics server)
{
if (opaqueRef == null)

View File

@ -319,6 +319,15 @@ namespace XenAPI
Helper.AreEqual2(this._cbt_enabled, other._cbt_enabled);
}
internal static List<VDI> ProxyArrayToObjectList(Proxy_VDI[] input)
{
var result = new List<VDI>();
foreach (var item in input)
result.Add(new VDI(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VDI server)
{
if (opaqueRef == null)
@ -2094,61 +2103,47 @@ namespace XenAPI
}
/// <summary>
/// Reports which blocks differ in the two VDIs. This operation is not allowed when vdi_to is attached to a VM.
/// Compare two VDIs in 64k block increments and report which blocks differ. This operation is not allowed when vdi_to is attached to a VM.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vdi">The opaque_ref of the given vdi</param>
/// <param name="_vdi_to">The second VDI.</param>
public static string export_changed_blocks(Session session, string _vdi, string _vdi_to)
public static string list_changed_blocks(Session session, string _vdi, string _vdi_to)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vdi_export_changed_blocks(session.uuid, _vdi, _vdi_to);
return session.JsonRpcClient.vdi_list_changed_blocks(session.uuid, _vdi, _vdi_to);
else
return (string)session.proxy.vdi_export_changed_blocks(session.uuid, _vdi ?? "", _vdi_to ?? "").parse();
return (string)session.proxy.vdi_list_changed_blocks(session.uuid, _vdi ?? "", _vdi_to ?? "").parse();
}
/// <summary>
/// Reports which blocks differ in the two VDIs. This operation is not allowed when vdi_to is attached to a VM.
/// Compare two VDIs in 64k block increments and report which blocks differ. This operation is not allowed when vdi_to is attached to a VM.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vdi">The opaque_ref of the given vdi</param>
/// <param name="_vdi_to">The second VDI.</param>
public static XenRef<Task> async_export_changed_blocks(Session session, string _vdi, string _vdi_to)
public static XenRef<Task> async_list_changed_blocks(Session session, string _vdi, string _vdi_to)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vdi_export_changed_blocks(session.uuid, _vdi, _vdi_to);
return session.JsonRpcClient.async_vdi_list_changed_blocks(session.uuid, _vdi, _vdi_to);
else
return XenRef<Task>.Create(session.proxy.async_vdi_export_changed_blocks(session.uuid, _vdi ?? "", _vdi_to ?? "").parse());
return XenRef<Task>.Create(session.proxy.async_vdi_list_changed_blocks(session.uuid, _vdi ?? "", _vdi_to ?? "").parse());
}
/// <summary>
/// Get a list of URIs specifying how to access this VDI via the NBD server of XenServer. A URI will be returned for each PIF of each host that is connected to the VDI's SR. An empty list is returned in case no network has a PIF on a host with access to the relevant SR. To access the given VDI, any of the returned URIs can be passed to the NBD server running at the IP address and port specified by that URI as the export name.
/// Get details specifying how to access this VDI via a Network Block Device server. For each of a set of NBD server addresses on which the VDI is available, the return value set contains a vdi_nbd_server_info object that contains an exportname to request once the NBD connection is established, and connection details for the address. An empty list is returned if there is no network that has a PIF on a host with access to the relevant SR, or if no such network has been assigned an NBD-related purpose in its purpose field. To access the given VDI, any of the vdi_nbd_server_info objects can be used to make a connection to a server, and then the VDI will be available by requesting the exportname.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vdi">The opaque_ref of the given vdi</param>
public static string[] get_nbd_info(Session session, string _vdi)
public static List<Vdi_nbd_server_info> get_nbd_info(Session session, string _vdi)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vdi_get_nbd_info(session.uuid, _vdi);
else
return (string [])session.proxy.vdi_get_nbd_info(session.uuid, _vdi ?? "").parse();
}
/// <summary>
/// Get a list of URIs specifying how to access this VDI via the NBD server of XenServer. A URI will be returned for each PIF of each host that is connected to the VDI's SR. An empty list is returned in case no network has a PIF on a host with access to the relevant SR. To access the given VDI, any of the returned URIs can be passed to the NBD server running at the IP address and port specified by that URI as the export name.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vdi">The opaque_ref of the given vdi</param>
public static XenRef<Task> async_get_nbd_info(Session session, string _vdi)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vdi_get_nbd_info(session.uuid, _vdi);
else
return XenRef<Task>.Create(session.proxy.async_vdi_get_nbd_info(session.uuid, _vdi ?? "").parse());
return Vdi_nbd_server_info.ProxyArrayToObjectList(session.proxy.vdi_get_nbd_info(session.uuid, _vdi ?? "").parse());
}
/// <summary>

View File

@ -57,7 +57,8 @@ namespace XenAPI
bool currently_attached,
Dictionary<string, string> other_config,
XenRef<VGPU_type> type,
XenRef<PGPU> resident_on)
XenRef<PGPU> resident_on,
XenRef<PGPU> scheduled_to_be_resident_on)
{
this.uuid = uuid;
this.VM = VM;
@ -67,6 +68,7 @@ namespace XenAPI
this.other_config = other_config;
this.type = type;
this.resident_on = resident_on;
this.scheduled_to_be_resident_on = scheduled_to_be_resident_on;
}
/// <summary>
@ -88,6 +90,7 @@ namespace XenAPI
other_config = update.other_config;
type = update.type;
resident_on = update.resident_on;
scheduled_to_be_resident_on = update.scheduled_to_be_resident_on;
}
internal void UpdateFromProxy(Proxy_VGPU proxy)
@ -100,6 +103,7 @@ namespace XenAPI
other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config);
type = proxy.type == null ? null : XenRef<VGPU_type>.Create(proxy.type);
resident_on = proxy.resident_on == null ? null : XenRef<PGPU>.Create(proxy.resident_on);
scheduled_to_be_resident_on = proxy.scheduled_to_be_resident_on == null ? null : XenRef<PGPU>.Create(proxy.scheduled_to_be_resident_on);
}
public Proxy_VGPU ToProxy()
@ -113,6 +117,7 @@ namespace XenAPI
result_.other_config = Maps.convert_to_proxy_string_string(other_config);
result_.type = type ?? "";
result_.resident_on = resident_on ?? "";
result_.scheduled_to_be_resident_on = scheduled_to_be_resident_on ?? "";
return result_;
}
@ -130,6 +135,7 @@ namespace XenAPI
other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config"));
type = Marshalling.ParseRef<VGPU_type>(table, "type");
resident_on = Marshalling.ParseRef<PGPU>(table, "resident_on");
scheduled_to_be_resident_on = Marshalling.ParseRef<PGPU>(table, "scheduled_to_be_resident_on");
}
public bool DeepEquals(VGPU other)
@ -146,7 +152,17 @@ namespace XenAPI
Helper.AreEqual2(this._currently_attached, other._currently_attached) &&
Helper.AreEqual2(this._other_config, other._other_config) &&
Helper.AreEqual2(this._type, other._type) &&
Helper.AreEqual2(this._resident_on, other._resident_on);
Helper.AreEqual2(this._resident_on, other._resident_on) &&
Helper.AreEqual2(this._scheduled_to_be_resident_on, other._scheduled_to_be_resident_on);
}
internal static List<VGPU> ProxyArrayToObjectList(Proxy_VGPU[] input)
{
var result = new List<VGPU>();
foreach (var item in input)
result.Add(new VGPU(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VGPU server)
@ -305,6 +321,20 @@ namespace XenAPI
return XenRef<PGPU>.Create(session.proxy.vgpu_get_resident_on(session.uuid, _vgpu ?? "").parse());
}
/// <summary>
/// Get the scheduled_to_be_resident_on field of the given VGPU.
/// First published in XenServer 7.0.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vgpu">The opaque_ref of the given vgpu</param>
public static XenRef<PGPU> get_scheduled_to_be_resident_on(Session session, string _vgpu)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vgpu_get_scheduled_to_be_resident_on(session.uuid, _vgpu);
else
return XenRef<PGPU>.Create(session.proxy.vgpu_get_scheduled_to_be_resident_on(session.uuid, _vgpu ?? "").parse());
}
/// <summary>
/// Set the other_config field of the given VGPU.
/// First published in XenServer 6.0.
@ -624,5 +654,25 @@ namespace XenAPI
}
}
private XenRef<PGPU> _resident_on = new XenRef<PGPU>("OpaqueRef:NULL");
/// <summary>
/// The PGPU on which this VGPU is scheduled to run
/// First published in XenServer 7.0.
/// </summary>
[JsonConverter(typeof(XenRefConverter<PGPU>))]
public virtual XenRef<PGPU> scheduled_to_be_resident_on
{
get { return _scheduled_to_be_resident_on; }
set
{
if (!Helper.AreEqual(value, _scheduled_to_be_resident_on))
{
_scheduled_to_be_resident_on = value;
Changed = true;
NotifyPropertyChanged("scheduled_to_be_resident_on");
}
}
}
private XenRef<PGPU> _scheduled_to_be_resident_on = new XenRef<PGPU>("OpaqueRef:NULL");
}
}

View File

@ -198,6 +198,15 @@ namespace XenAPI
Helper.AreEqual2(this._experimental, other._experimental);
}
internal static List<VGPU_type> ProxyArrayToObjectList(Proxy_VGPU_type[] input)
{
var result = new List<VGPU_type>();
foreach (var item in input)
result.Add(new VGPU_type(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VGPU_type server)
{
if (opaqueRef == null)

View File

@ -284,6 +284,15 @@ namespace XenAPI
Helper.AreEqual2(this._ipv6_gateway, other._ipv6_gateway);
}
internal static List<VIF> ProxyArrayToObjectList(Proxy_VIF[] input)
{
var result = new List<VIF>();
foreach (var item in input)
result.Add(new VIF(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VIF server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<VIF_metrics> ProxyArrayToObjectList(Proxy_VIF_metrics[] input)
{
var result = new List<VIF_metrics>();
foreach (var item in input)
result.Add(new VIF_metrics(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VIF_metrics server)
{
if (opaqueRef == null)

View File

@ -128,6 +128,15 @@ namespace XenAPI
Helper.AreEqual2(this._other_config, other._other_config);
}
internal static List<VLAN> ProxyArrayToObjectList(Proxy_VLAN[] input)
{
var result = new List<VLAN>();
foreach (var item in input)
result.Add(new VLAN(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VLAN server)
{
if (opaqueRef == null)

View File

@ -77,6 +77,7 @@ namespace XenAPI
List<XenRef<Console>> consoles,
List<XenRef<VIF>> VIFs,
List<XenRef<VBD>> VBDs,
List<XenRef<VUSB>> VUSBs,
List<XenRef<Crashdump>> crash_dumps,
List<XenRef<VTPM>> VTPMs,
string PV_bootloader,
@ -160,6 +161,7 @@ namespace XenAPI
this.consoles = consoles;
this.VIFs = VIFs;
this.VBDs = VBDs;
this.VUSBs = VUSBs;
this.crash_dumps = crash_dumps;
this.VTPMs = VTPMs;
this.PV_bootloader = PV_bootloader;
@ -255,6 +257,7 @@ namespace XenAPI
consoles = update.consoles;
VIFs = update.VIFs;
VBDs = update.VBDs;
VUSBs = update.VUSBs;
crash_dumps = update.crash_dumps;
VTPMs = update.VTPMs;
PV_bootloader = update.PV_bootloader;
@ -341,6 +344,7 @@ namespace XenAPI
consoles = proxy.consoles == null ? null : XenRef<Console>.Create(proxy.consoles);
VIFs = proxy.VIFs == null ? null : XenRef<VIF>.Create(proxy.VIFs);
VBDs = proxy.VBDs == null ? null : XenRef<VBD>.Create(proxy.VBDs);
VUSBs = proxy.VUSBs == null ? null : XenRef<VUSB>.Create(proxy.VUSBs);
crash_dumps = proxy.crash_dumps == null ? null : XenRef<Crashdump>.Create(proxy.crash_dumps);
VTPMs = proxy.VTPMs == null ? null : XenRef<VTPM>.Create(proxy.VTPMs);
PV_bootloader = proxy.PV_bootloader == null ? null : (string)proxy.PV_bootloader;
@ -428,6 +432,7 @@ namespace XenAPI
result_.consoles = (consoles != null) ? Helper.RefListToStringArray(consoles) : new string[] {};
result_.VIFs = (VIFs != null) ? Helper.RefListToStringArray(VIFs) : new string[] {};
result_.VBDs = (VBDs != null) ? Helper.RefListToStringArray(VBDs) : new string[] {};
result_.VUSBs = (VUSBs != null) ? Helper.RefListToStringArray(VUSBs) : new string[] {};
result_.crash_dumps = (crash_dumps != null) ? Helper.RefListToStringArray(crash_dumps) : new string[] {};
result_.VTPMs = (VTPMs != null) ? Helper.RefListToStringArray(VTPMs) : new string[] {};
result_.PV_bootloader = PV_bootloader ?? "";
@ -519,6 +524,7 @@ namespace XenAPI
consoles = Marshalling.ParseSetRef<Console>(table, "consoles");
VIFs = Marshalling.ParseSetRef<VIF>(table, "VIFs");
VBDs = Marshalling.ParseSetRef<VBD>(table, "VBDs");
VUSBs = Marshalling.ParseSetRef<VUSB>(table, "VUSBs");
crash_dumps = Marshalling.ParseSetRef<Crashdump>(table, "crash_dumps");
VTPMs = Marshalling.ParseSetRef<VTPM>(table, "VTPMs");
PV_bootloader = Marshalling.ParseString(table, "PV_bootloader");
@ -612,6 +618,7 @@ namespace XenAPI
Helper.AreEqual2(this._consoles, other._consoles) &&
Helper.AreEqual2(this._VIFs, other._VIFs) &&
Helper.AreEqual2(this._VBDs, other._VBDs) &&
Helper.AreEqual2(this._VUSBs, other._VUSBs) &&
Helper.AreEqual2(this._crash_dumps, other._crash_dumps) &&
Helper.AreEqual2(this._VTPMs, other._VTPMs) &&
Helper.AreEqual2(this._PV_bootloader, other._PV_bootloader) &&
@ -669,6 +676,15 @@ namespace XenAPI
Helper.AreEqual2(this._reference_label, other._reference_label);
}
internal static List<VM> ProxyArrayToObjectList(Proxy_VM[] input)
{
var result = new List<VM>();
foreach (var item in input)
result.Add(new VM(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VM server)
{
if (opaqueRef == null)
@ -1328,6 +1344,20 @@ namespace XenAPI
return XenRef<VBD>.Create(session.proxy.vm_get_vbds(session.uuid, _vm ?? "").parse());
}
/// <summary>
/// Get the VUSBs field of the given VM.
/// First published in XenServer 4.0.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
public static List<XenRef<VUSB>> get_VUSBs(Session session, string _vm)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vm_get_vusbs(session.uuid, _vm);
else
return XenRef<VUSB>.Create(session.proxy.vm_get_vusbs(session.uuid, _vm ?? "").parse());
}
/// <summary>
/// Get the crash_dumps field of the given VM.
/// First published in XenServer 4.0.
@ -3953,6 +3983,46 @@ namespace XenAPI
return XenRef<Task>.Create(session.proxy.async_vm_migrate_send(session.uuid, _vm ?? "", Maps.convert_to_proxy_string_string(_dest), _live, Maps.convert_to_proxy_XenRefVDI_XenRefSR(_vdi_map), Maps.convert_to_proxy_XenRefVIF_XenRefNetwork(_vif_map), Maps.convert_to_proxy_string_string(_options)).parse());
}
/// <summary>
/// Migrate the VM to another host. This can only be called when the specified VM is in the Running state.
/// First published in XenServer 6.1.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
/// <param name="_dest">The result of a Host.migrate_receive call.</param>
/// <param name="_live">Live migration</param>
/// <param name="_vdi_map">Map of source VDI to destination SR</param>
/// <param name="_vif_map">Map of source VIF to destination network</param>
/// <param name="_options">Other parameters</param>
/// <param name="_vgpu_map">Map of source vGPU to destination GPU group First published in Unreleased.</param>
public static XenRef<VM> migrate_send(Session session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vm_migrate_send(session.uuid, _vm, _dest, _live, _vdi_map, _vif_map, _options, _vgpu_map);
else
return XenRef<VM>.Create(session.proxy.vm_migrate_send(session.uuid, _vm ?? "", Maps.convert_to_proxy_string_string(_dest), _live, Maps.convert_to_proxy_XenRefVDI_XenRefSR(_vdi_map), Maps.convert_to_proxy_XenRefVIF_XenRefNetwork(_vif_map), Maps.convert_to_proxy_string_string(_options), Maps.convert_to_proxy_XenRefVGPU_XenRefGPU_group(_vgpu_map)).parse());
}
/// <summary>
/// Migrate the VM to another host. This can only be called when the specified VM is in the Running state.
/// First published in XenServer 6.1.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
/// <param name="_dest">The result of a Host.migrate_receive call.</param>
/// <param name="_live">Live migration</param>
/// <param name="_vdi_map">Map of source VDI to destination SR</param>
/// <param name="_vif_map">Map of source VIF to destination network</param>
/// <param name="_options">Other parameters</param>
/// <param name="_vgpu_map">Map of source vGPU to destination GPU group First published in Unreleased.</param>
public static XenRef<Task> async_migrate_send(Session session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vm_migrate_send(session.uuid, _vm, _dest, _live, _vdi_map, _vif_map, _options, _vgpu_map);
else
return XenRef<Task>.Create(session.proxy.async_vm_migrate_send(session.uuid, _vm ?? "", Maps.convert_to_proxy_string_string(_dest), _live, Maps.convert_to_proxy_XenRefVDI_XenRefSR(_vdi_map), Maps.convert_to_proxy_XenRefVIF_XenRefNetwork(_vif_map), Maps.convert_to_proxy_string_string(_options), Maps.convert_to_proxy_XenRefVGPU_XenRefGPU_group(_vgpu_map)).parse());
}
/// <summary>
/// Assert whether a VM can be migrated to the specified destination.
/// First published in XenServer 6.1.
@ -3992,11 +4062,53 @@ namespace XenAPI
}
/// <summary>
/// Returns a record describing the VM's dynamic state, initialised when the VM boots and updated to reflect runtime configuration changes e.g. CPU hotplug
/// First published in XenServer 4.0.
/// Assert whether a VM can be migrated to the specified destination.
/// First published in XenServer 6.1.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
/// <param name="_dest">The result of a VM.migrate_receive call.</param>
/// <param name="_live">Live migration</param>
/// <param name="_vdi_map">Map of source VDI to destination SR</param>
/// <param name="_vif_map">Map of source VIF to destination network</param>
/// <param name="_options">Other parameters</param>
/// <param name="_vgpu_map">Map of source vGPU to destination GPU group First published in Unreleased.</param>
public static void assert_can_migrate(Session session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.vm_assert_can_migrate(session.uuid, _vm, _dest, _live, _vdi_map, _vif_map, _options, _vgpu_map);
else
session.proxy.vm_assert_can_migrate(session.uuid, _vm ?? "", Maps.convert_to_proxy_string_string(_dest), _live, Maps.convert_to_proxy_XenRefVDI_XenRefSR(_vdi_map), Maps.convert_to_proxy_XenRefVIF_XenRefNetwork(_vif_map), Maps.convert_to_proxy_string_string(_options), Maps.convert_to_proxy_XenRefVGPU_XenRefGPU_group(_vgpu_map)).parse();
}
/// <summary>
/// Assert whether a VM can be migrated to the specified destination.
/// First published in XenServer 6.1.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
/// <param name="_dest">The result of a VM.migrate_receive call.</param>
/// <param name="_live">Live migration</param>
/// <param name="_vdi_map">Map of source VDI to destination SR</param>
/// <param name="_vif_map">Map of source VIF to destination network</param>
/// <param name="_options">Other parameters</param>
/// <param name="_vgpu_map">Map of source vGPU to destination GPU group First published in Unreleased.</param>
public static XenRef<Task> async_assert_can_migrate(Session session, string _vm, Dictionary<string, string> _dest, bool _live, Dictionary<XenRef<VDI>, XenRef<SR>> _vdi_map, Dictionary<XenRef<VIF>, XenRef<Network>> _vif_map, Dictionary<string, string> _options, Dictionary<XenRef<VGPU>, XenRef<GPU_group>> _vgpu_map)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vm_assert_can_migrate(session.uuid, _vm, _dest, _live, _vdi_map, _vif_map, _options, _vgpu_map);
else
return XenRef<Task>.Create(session.proxy.async_vm_assert_can_migrate(session.uuid, _vm ?? "", Maps.convert_to_proxy_string_string(_dest), _live, Maps.convert_to_proxy_XenRefVDI_XenRefSR(_vdi_map), Maps.convert_to_proxy_XenRefVIF_XenRefNetwork(_vif_map), Maps.convert_to_proxy_string_string(_options), Maps.convert_to_proxy_XenRefVGPU_XenRefGPU_group(_vgpu_map)).parse());
}
/// <summary>
/// Returns a record describing the VM's dynamic state, initialised when the VM boots and updated to reflect runtime configuration changes e.g. CPU hotplug
/// First published in XenServer 4.0.
/// Deprecated since Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
[Deprecated("Unreleased")]
public static VM get_boot_record(Session session, string _vm)
{
if (session.JsonRpcClient != null)
@ -4016,7 +4128,7 @@ namespace XenAPI
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vm_get_data_sources(session.uuid, _vm);
else
return Helper.Proxy_Data_sourceArrayToData_sourceList(session.proxy.vm_get_data_sources(session.uuid, _vm ?? "").parse());
return Data_source.ProxyArrayToObjectList(session.proxy.vm_get_data_sources(session.uuid, _vm ?? "").parse());
}
/// <summary>
@ -4330,6 +4442,36 @@ namespace XenAPI
return XenRef<Task>.Create(session.proxy.async_vm_retrieve_wlb_recommendations(session.uuid, _vm ?? "").parse());
}
/// <summary>
/// Set custom BIOS strings to this VM. VM will be given a default set of BIOS strings, only some of which can be overridden by the supplied values. Allowed keys are: 'bios-vendor', 'bios-version', 'system-manufacturer', 'system-product-name', 'system-version', 'system-serial-number', 'enclosure-asset-tag'
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
/// <param name="_value">The custom BIOS strings as a list of key-value pairs</param>
public static void set_bios_strings(Session session, string _vm, Dictionary<string, string> _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.vm_set_bios_strings(session.uuid, _vm, _value);
else
session.proxy.vm_set_bios_strings(session.uuid, _vm ?? "", Maps.convert_to_proxy_string_string(_value)).parse();
}
/// <summary>
/// Set custom BIOS strings to this VM. VM will be given a default set of BIOS strings, only some of which can be overridden by the supplied values. Allowed keys are: 'bios-vendor', 'bios-version', 'system-manufacturer', 'system-product-name', 'system-version', 'system-serial-number', 'enclosure-asset-tag'
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The opaque_ref of the given vm</param>
/// <param name="_value">The custom BIOS strings as a list of key-value pairs</param>
public static XenRef<Task> async_set_bios_strings(Session session, string _vm, Dictionary<string, string> _value)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vm_set_bios_strings(session.uuid, _vm, _value);
else
return XenRef<Task>.Create(session.proxy.async_vm_set_bios_strings(session.uuid, _vm ?? "", Maps.convert_to_proxy_string_string(_value)).parse());
}
/// <summary>
/// Copy the BIOS strings from the given host to this VM
/// First published in XenServer 5.6.
@ -5317,6 +5459,25 @@ namespace XenAPI
}
private List<XenRef<VBD>> _VBDs = new List<XenRef<VBD>>() {};
/// <summary>
/// vitual usb devices
/// </summary>
[JsonConverter(typeof(XenRefListConverter<VUSB>))]
public virtual List<XenRef<VUSB>> VUSBs
{
get { return _VUSBs; }
set
{
if (!Helper.AreEqual(value, _VUSBs))
{
_VUSBs = value;
Changed = true;
NotifyPropertyChanged("VUSBs");
}
}
}
private List<XenRef<VUSB>> _VUSBs = new List<XenRef<VUSB>>() {};
/// <summary>
/// crash dumps associated with this VM
/// </summary>

View File

@ -233,6 +233,15 @@ namespace XenAPI
Helper.AreEqual2(this._recent_alerts, other._recent_alerts);
}
internal static List<VMPP> ProxyArrayToObjectList(Proxy_VMPP[] input)
{
var result = new List<VMPP>();
foreach (var item in input)
result.Add(new VMPP(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VMPP server)
{
if (opaqueRef == null)

View File

@ -163,6 +163,15 @@ namespace XenAPI
Helper.AreEqual2(this._VMs, other._VMs);
}
internal static List<VMSS> ProxyArrayToObjectList(Proxy_VMSS[] input)
{
var result = new List<VMSS>();
foreach (var item in input)
result.Add(new VMSS(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VMSS server)
{
if (opaqueRef == null)

View File

@ -137,6 +137,15 @@ namespace XenAPI
Helper.AreEqual2(this._VMs, other._VMs);
}
internal static List<VM_appliance> ProxyArrayToObjectList(Proxy_VM_appliance[] input)
{
var result = new List<VM_appliance>();
foreach (var item in input)
result.Add(new VM_appliance(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VM_appliance server)
{
if (opaqueRef == null)

View File

@ -191,6 +191,15 @@ namespace XenAPI
Helper.AreEqual2(this._PV_drivers_detected, other._PV_drivers_detected);
}
internal static List<VM_guest_metrics> ProxyArrayToObjectList(Proxy_VM_guest_metrics[] input)
{
var result = new List<VM_guest_metrics>();
foreach (var item in input)
result.Add(new VM_guest_metrics(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VM_guest_metrics server)
{
if (opaqueRef == null)

View File

@ -198,6 +198,15 @@ namespace XenAPI
Helper.AreEqual2(this._nomigrate, other._nomigrate);
}
internal static List<VM_metrics> ProxyArrayToObjectList(Proxy_VM_metrics[] input)
{
var result = new List<VM_metrics>();
foreach (var item in input)
result.Add(new VM_metrics(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VM_metrics server)
{
if (opaqueRef == null)

View File

@ -114,6 +114,15 @@ namespace XenAPI
Helper.AreEqual2(this._backend, other._backend);
}
internal static List<VTPM> ProxyArrayToObjectList(Proxy_VTPM[] input)
{
var result = new List<VTPM>();
foreach (var item in input)
result.Add(new VTPM(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VTPM server)
{
if (opaqueRef == null)

586
XenModel/XenAPI/VUSB.cs Normal file
View File

@ -0,0 +1,586 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace XenAPI
{
/// <summary>
/// Describes the vusb device
/// First published in Unreleased.
/// </summary>
public partial class VUSB : XenObject<VUSB>
{
public VUSB()
{
}
public VUSB(string uuid,
List<vusb_operations> allowed_operations,
Dictionary<string, vusb_operations> current_operations,
XenRef<VM> VM,
XenRef<USB_group> USB_group,
Dictionary<string, string> other_config,
bool currently_attached)
{
this.uuid = uuid;
this.allowed_operations = allowed_operations;
this.current_operations = current_operations;
this.VM = VM;
this.USB_group = USB_group;
this.other_config = other_config;
this.currently_attached = currently_attached;
}
/// <summary>
/// Creates a new VUSB from a Proxy_VUSB.
/// </summary>
/// <param name="proxy"></param>
public VUSB(Proxy_VUSB proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(VUSB update)
{
uuid = update.uuid;
allowed_operations = update.allowed_operations;
current_operations = update.current_operations;
VM = update.VM;
USB_group = update.USB_group;
other_config = update.other_config;
currently_attached = update.currently_attached;
}
internal void UpdateFromProxy(Proxy_VUSB proxy)
{
uuid = proxy.uuid == null ? null : (string)proxy.uuid;
allowed_operations = proxy.allowed_operations == null ? null : Helper.StringArrayToEnumList<vusb_operations>(proxy.allowed_operations);
current_operations = proxy.current_operations == null ? null : Maps.convert_from_proxy_string_vusb_operations(proxy.current_operations);
VM = proxy.VM == null ? null : XenRef<VM>.Create(proxy.VM);
USB_group = proxy.USB_group == null ? null : XenRef<USB_group>.Create(proxy.USB_group);
other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config);
currently_attached = (bool)proxy.currently_attached;
}
public Proxy_VUSB ToProxy()
{
Proxy_VUSB result_ = new Proxy_VUSB();
result_.uuid = uuid ?? "";
result_.allowed_operations = (allowed_operations != null) ? Helper.ObjectListToStringArray(allowed_operations) : new string[] {};
result_.current_operations = Maps.convert_to_proxy_string_vusb_operations(current_operations);
result_.VM = VM ?? "";
result_.USB_group = USB_group ?? "";
result_.other_config = Maps.convert_to_proxy_string_string(other_config);
result_.currently_attached = currently_attached;
return result_;
}
/// <summary>
/// Creates a new VUSB from a Hashtable.
/// </summary>
/// <param name="table"></param>
public VUSB(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
allowed_operations = Helper.StringArrayToEnumList<vusb_operations>(Marshalling.ParseStringArray(table, "allowed_operations"));
current_operations = Maps.convert_from_proxy_string_vusb_operations(Marshalling.ParseHashTable(table, "current_operations"));
VM = Marshalling.ParseRef<VM>(table, "VM");
USB_group = Marshalling.ParseRef<USB_group>(table, "USB_group");
other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config"));
currently_attached = Marshalling.ParseBool(table, "currently_attached");
}
public bool DeepEquals(VUSB other, bool ignoreCurrentOperations)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
if (!ignoreCurrentOperations && !Helper.AreEqual2(this.current_operations, other.current_operations))
return false;
return Helper.AreEqual2(this._uuid, other._uuid) &&
Helper.AreEqual2(this._allowed_operations, other._allowed_operations) &&
Helper.AreEqual2(this._VM, other._VM) &&
Helper.AreEqual2(this._USB_group, other._USB_group) &&
Helper.AreEqual2(this._other_config, other._other_config) &&
Helper.AreEqual2(this._currently_attached, other._currently_attached);
}
internal static List<VUSB> ProxyArrayToObjectList(Proxy_VUSB[] input)
{
var result = new List<VUSB>();
foreach (var item in input)
result.Add(new VUSB(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, VUSB 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))
{
VUSB.set_other_config(session, opaqueRef, _other_config);
}
return null;
}
}
/// <summary>
/// Get a record containing the current state of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static VUSB get_record(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_record(session.uuid, _vusb);
else
return new VUSB((Proxy_VUSB)session.proxy.vusb_get_record(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Get a reference to the VUSB instance with the specified UUID.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<VUSB> get_by_uuid(Session session, string _uuid)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_by_uuid(session.uuid, _uuid);
else
return XenRef<VUSB>.Create(session.proxy.vusb_get_by_uuid(session.uuid, _uuid ?? "").parse());
}
/// <summary>
/// Get the uuid field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static string get_uuid(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_uuid(session.uuid, _vusb);
else
return (string)session.proxy.vusb_get_uuid(session.uuid, _vusb ?? "").parse();
}
/// <summary>
/// Get the allowed_operations field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static List<vusb_operations> get_allowed_operations(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_allowed_operations(session.uuid, _vusb);
else
return Helper.StringArrayToEnumList<vusb_operations>(session.proxy.vusb_get_allowed_operations(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Get the current_operations field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static Dictionary<string, vusb_operations> get_current_operations(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_current_operations(session.uuid, _vusb);
else
return Maps.convert_from_proxy_string_vusb_operations(session.proxy.vusb_get_current_operations(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Get the VM field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static XenRef<VM> get_VM(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_vm(session.uuid, _vusb);
else
return XenRef<VM>.Create(session.proxy.vusb_get_vm(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Get the USB_group field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static XenRef<USB_group> get_USB_group(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_usb_group(session.uuid, _vusb);
else
return XenRef<USB_group>.Create(session.proxy.vusb_get_usb_group(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Get the other_config field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static Dictionary<string, string> get_other_config(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_other_config(session.uuid, _vusb);
else
return Maps.convert_from_proxy_string_string(session.proxy.vusb_get_other_config(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Get the currently_attached field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static bool get_currently_attached(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_currently_attached(session.uuid, _vusb);
else
return (bool)session.proxy.vusb_get_currently_attached(session.uuid, _vusb ?? "").parse();
}
/// <summary>
/// Set the other_config field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
/// <param name="_other_config">New value to set</param>
public static void set_other_config(Session session, string _vusb, Dictionary<string, string> _other_config)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.vusb_set_other_config(session.uuid, _vusb, _other_config);
else
session.proxy.vusb_set_other_config(session.uuid, _vusb ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse();
}
/// <summary>
/// Add the given key-value pair to the other_config field of the given VUSB.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
/// <param name="_key">Key to add</param>
/// <param name="_value">Value to add</param>
public static void add_to_other_config(Session session, string _vusb, string _key, string _value)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.vusb_add_to_other_config(session.uuid, _vusb, _key, _value);
else
session.proxy.vusb_add_to_other_config(session.uuid, _vusb ?? "", _key ?? "", _value ?? "").parse();
}
/// <summary>
/// Remove the given key and its corresponding value from the other_config field of the given VUSB. If the key is not in that Map, then do nothing.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
/// <param name="_key">Key to remove</param>
public static void remove_from_other_config(Session session, string _vusb, string _key)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.vusb_remove_from_other_config(session.uuid, _vusb, _key);
else
session.proxy.vusb_remove_from_other_config(session.uuid, _vusb ?? "", _key ?? "").parse();
}
/// <summary>
/// Create a new VUSB record in the database only
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The VM</param>
/// <param name="_usb_group"></param>
/// <param name="_other_config"></param>
public static XenRef<VUSB> create(Session session, string _vm, string _usb_group, Dictionary<string, string> _other_config)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_create(session.uuid, _vm, _usb_group, _other_config);
else
return XenRef<VUSB>.Create(session.proxy.vusb_create(session.uuid, _vm ?? "", _usb_group ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse());
}
/// <summary>
/// Create a new VUSB record in the database only
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vm">The VM</param>
/// <param name="_usb_group"></param>
/// <param name="_other_config"></param>
public static XenRef<Task> async_create(Session session, string _vm, string _usb_group, Dictionary<string, string> _other_config)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vusb_create(session.uuid, _vm, _usb_group, _other_config);
else
return XenRef<Task>.Create(session.proxy.async_vusb_create(session.uuid, _vm ?? "", _usb_group ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse());
}
/// <summary>
/// Unplug the vusb device from the vm.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static void unplug(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.vusb_unplug(session.uuid, _vusb);
else
session.proxy.vusb_unplug(session.uuid, _vusb ?? "").parse();
}
/// <summary>
/// Unplug the vusb device from the vm.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static XenRef<Task> async_unplug(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vusb_unplug(session.uuid, _vusb);
else
return XenRef<Task>.Create(session.proxy.async_vusb_unplug(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Removes a VUSB record from the database
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static void destroy(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
session.JsonRpcClient.vusb_destroy(session.uuid, _vusb);
else
session.proxy.vusb_destroy(session.uuid, _vusb ?? "").parse();
}
/// <summary>
/// Removes a VUSB record from the database
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vusb">The opaque_ref of the given vusb</param>
public static XenRef<Task> async_destroy(Session session, string _vusb)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.async_vusb_destroy(session.uuid, _vusb);
else
return XenRef<Task>.Create(session.proxy.async_vusb_destroy(session.uuid, _vusb ?? "").parse());
}
/// <summary>
/// Return a list of all the VUSBs known to the system.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<VUSB>> get_all(Session session)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_all(session.uuid);
else
return XenRef<VUSB>.Create(session.proxy.vusb_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the VUSB Records at once, in a single XML RPC call
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<VUSB>, VUSB> get_all_records(Session session)
{
if (session.JsonRpcClient != null)
return session.JsonRpcClient.vusb_get_all_records(session.uuid);
else
return XenRef<VUSB>.Create<Proxy_VUSB>(session.proxy.vusb_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid = "";
/// <summary>
/// list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.
/// </summary>
public virtual List<vusb_operations> allowed_operations
{
get { return _allowed_operations; }
set
{
if (!Helper.AreEqual(value, _allowed_operations))
{
_allowed_operations = value;
Changed = true;
NotifyPropertyChanged("allowed_operations");
}
}
}
private List<vusb_operations> _allowed_operations = new List<vusb_operations>() {};
/// <summary>
/// links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.
/// </summary>
public virtual Dictionary<string, vusb_operations> current_operations
{
get { return _current_operations; }
set
{
if (!Helper.AreEqual(value, _current_operations))
{
_current_operations = value;
Changed = true;
NotifyPropertyChanged("current_operations");
}
}
}
private Dictionary<string, vusb_operations> _current_operations = new Dictionary<string, vusb_operations>() {};
/// <summary>
/// VM that owns the VUSB
/// </summary>
[JsonConverter(typeof(XenRefConverter<VM>))]
public virtual XenRef<VM> VM
{
get { return _VM; }
set
{
if (!Helper.AreEqual(value, _VM))
{
_VM = value;
Changed = true;
NotifyPropertyChanged("VM");
}
}
}
private XenRef<VM> _VM = new XenRef<VM>(Helper.NullOpaqueRef);
/// <summary>
/// USB group used by the VUSB
/// </summary>
[JsonConverter(typeof(XenRefConverter<USB_group>))]
public virtual XenRef<USB_group> USB_group
{
get { return _USB_group; }
set
{
if (!Helper.AreEqual(value, _USB_group))
{
_USB_group = value;
Changed = true;
NotifyPropertyChanged("USB_group");
}
}
}
private XenRef<USB_group> _USB_group = new XenRef<USB_group>(Helper.NullOpaqueRef);
/// <summary>
/// Additional configuration
/// </summary>
public virtual Dictionary<string, string> other_config
{
get { return _other_config; }
set
{
if (!Helper.AreEqual(value, _other_config))
{
_other_config = value;
Changed = true;
NotifyPropertyChanged("other_config");
}
}
}
private Dictionary<string, string> _other_config = new Dictionary<string, string>() {};
/// <summary>
/// is the device currently attached
/// </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 = false;
}
}

View File

@ -0,0 +1,241 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace XenAPI
{
/// <summary>
/// Details for connecting to a VDI using the Network Block Device protocol
/// First published in Unreleased.
/// </summary>
public partial class Vdi_nbd_server_info : XenObject<Vdi_nbd_server_info>
{
public Vdi_nbd_server_info()
{
}
public Vdi_nbd_server_info(string exportname,
string address,
long port,
string cert,
string subject)
{
this.exportname = exportname;
this.address = address;
this.port = port;
this.cert = cert;
this.subject = subject;
}
/// <summary>
/// Creates a new Vdi_nbd_server_info from a Proxy_Vdi_nbd_server_info.
/// </summary>
/// <param name="proxy"></param>
public Vdi_nbd_server_info(Proxy_Vdi_nbd_server_info proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(Vdi_nbd_server_info update)
{
exportname = update.exportname;
address = update.address;
port = update.port;
cert = update.cert;
subject = update.subject;
}
internal void UpdateFromProxy(Proxy_Vdi_nbd_server_info proxy)
{
exportname = proxy.exportname == null ? null : (string)proxy.exportname;
address = proxy.address == null ? null : (string)proxy.address;
port = proxy.port == null ? 0 : long.Parse((string)proxy.port);
cert = proxy.cert == null ? null : (string)proxy.cert;
subject = proxy.subject == null ? null : (string)proxy.subject;
}
public Proxy_Vdi_nbd_server_info ToProxy()
{
Proxy_Vdi_nbd_server_info result_ = new Proxy_Vdi_nbd_server_info();
result_.exportname = exportname ?? "";
result_.address = address ?? "";
result_.port = port.ToString();
result_.cert = cert ?? "";
result_.subject = subject ?? "";
return result_;
}
/// <summary>
/// Creates a new Vdi_nbd_server_info from a Hashtable.
/// </summary>
/// <param name="table"></param>
public Vdi_nbd_server_info(Hashtable table)
{
exportname = Marshalling.ParseString(table, "exportname");
address = Marshalling.ParseString(table, "address");
port = Marshalling.ParseLong(table, "port");
cert = Marshalling.ParseString(table, "cert");
subject = Marshalling.ParseString(table, "subject");
}
public bool DeepEquals(Vdi_nbd_server_info other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return Helper.AreEqual2(this._exportname, other._exportname) &&
Helper.AreEqual2(this._address, other._address) &&
Helper.AreEqual2(this._port, other._port) &&
Helper.AreEqual2(this._cert, other._cert) &&
Helper.AreEqual2(this._subject, other._subject);
}
internal static List<Vdi_nbd_server_info> ProxyArrayToObjectList(Proxy_Vdi_nbd_server_info[] input)
{
var result = new List<Vdi_nbd_server_info>();
foreach (var item in input)
result.Add(new Vdi_nbd_server_info(item));
return result;
}
public override string SaveChanges(Session session, string opaqueRef, Vdi_nbd_server_info 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>
/// The exportname to request over NBD. This holds details including an authentication token, so it must be protected appropriately. Clients should regard the exportname as an opaque string or token.
/// </summary>
public virtual string exportname
{
get { return _exportname; }
set
{
if (!Helper.AreEqual(value, _exportname))
{
_exportname = value;
Changed = true;
NotifyPropertyChanged("exportname");
}
}
}
private string _exportname = "";
/// <summary>
/// An address on which the server can be reached; this can be IPv4, IPv6, or a DNS name.
/// </summary>
public virtual string address
{
get { return _address; }
set
{
if (!Helper.AreEqual(value, _address))
{
_address = value;
Changed = true;
NotifyPropertyChanged("address");
}
}
}
private string _address = "";
/// <summary>
/// The TCP port
/// </summary>
public virtual long port
{
get { return _port; }
set
{
if (!Helper.AreEqual(value, _port))
{
_port = value;
Changed = true;
NotifyPropertyChanged("port");
}
}
}
private long _port;
/// <summary>
/// The TLS certificate of the server
/// </summary>
public virtual string cert
{
get { return _cert; }
set
{
if (!Helper.AreEqual(value, _cert))
{
_cert = value;
Changed = true;
NotifyPropertyChanged("cert");
}
}
}
private string _cert = "";
/// <summary>
/// For convenience, this redundant field holds a DNS (hostname) subject of the certificate. This can be a wildcard, but only for a certificate that has a wildcard subject and no concrete hostname subjects.
/// </summary>
public virtual string subject
{
get { return _subject; }
set
{
if (!Helper.AreEqual(value, _subject))
{
_subject = value;
Changed = true;
NotifyPropertyChanged("subject");
}
}
}
private string _subject = "";
}
}

View File

@ -37,7 +37,7 @@ namespace XenAPI
[JsonConverter(typeof(clsConverter))]
public enum cls
{
VM, Host, SR, Pool, VMPP, VMSS, PVS_proxy, unknown
VM, Host, SR, Pool, VMPP, VMSS, PVS_proxy, VDI, unknown
}
public static class cls_helper
@ -68,6 +68,8 @@ namespace XenAPI
return "VMSS";
case cls.PVS_proxy:
return "PVS_proxy";
case cls.VDI:
return "VDI";
default:
return "unknown";
}

View File

@ -0,0 +1,74 @@
/*
* 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 Newtonsoft.Json;
namespace XenAPI
{
[JsonConverter(typeof(network_purposeConverter))]
public enum network_purpose
{
nbd, insecure_nbd, unknown
}
public static class network_purpose_helper
{
public static string ToString(network_purpose x)
{
return x.StringOf();
}
}
public static partial class EnumExt
{
public static string StringOf(this network_purpose x)
{
switch (x)
{
case network_purpose.nbd:
return "nbd";
case network_purpose.insecure_nbd:
return "insecure_nbd";
default:
return "unknown";
}
}
}
internal class network_purposeConverter : XenEnumConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((network_purpose)value).StringOf());
}
}
}

View File

@ -0,0 +1,76 @@
/*
* 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 Newtonsoft.Json;
namespace XenAPI
{
[JsonConverter(typeof(pif_igmp_statusConverter))]
public enum pif_igmp_status
{
enabled, disabled, unknown
}
public static class pif_igmp_status_helper
{
public static string ToString(pif_igmp_status x)
{
return x.StringOf();
}
}
public static partial class EnumExt
{
public static string StringOf(this pif_igmp_status x)
{
switch (x)
{
case pif_igmp_status.enabled:
return "enabled";
case pif_igmp_status.disabled:
return "disabled";
case pif_igmp_status.unknown:
return "unknown";
default:
return "unknown";
}
}
}
internal class pif_igmp_statusConverter : XenEnumConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((pif_igmp_status)value).StringOf());
}
}
}

View File

@ -37,7 +37,7 @@ namespace XenAPI
[JsonConverter(typeof(storage_operationsConverter))]
public enum storage_operations
{
scan, destroy, forget, plug, unplug, update, vdi_create, vdi_introduce, vdi_destroy, vdi_resize, vdi_clone, vdi_snapshot, vdi_mirror, vdi_enable_cbt, vdi_disable_cbt, vdi_data_destroy, vdi_export_changed_blocks, vdi_set_on_boot, pbd_create, pbd_destroy, unknown
scan, destroy, forget, plug, unplug, update, vdi_create, vdi_introduce, vdi_destroy, vdi_resize, vdi_clone, vdi_snapshot, vdi_mirror, vdi_enable_cbt, vdi_disable_cbt, vdi_data_destroy, vdi_list_changed_blocks, vdi_set_on_boot, pbd_create, pbd_destroy, unknown
}
public static class storage_operations_helper
@ -86,8 +86,8 @@ namespace XenAPI
return "vdi_disable_cbt";
case storage_operations.vdi_data_destroy:
return "vdi_data_destroy";
case storage_operations.vdi_export_changed_blocks:
return "vdi_export_changed_blocks";
case storage_operations.vdi_list_changed_blocks:
return "vdi_list_changed_blocks";
case storage_operations.vdi_set_on_boot:
return "vdi_set_on_boot";
case storage_operations.pbd_create:

View File

@ -37,7 +37,7 @@ namespace XenAPI
[JsonConverter(typeof(vdi_operationsConverter))]
public enum vdi_operations
{
clone, copy, resize, resize_online, snapshot, mirror, destroy, forget, update, force_unlock, generate_config, enable_cbt, disable_cbt, data_destroy, export_changed_blocks, set_on_boot, blocked, unknown
clone, copy, resize, resize_online, snapshot, mirror, destroy, forget, update, force_unlock, generate_config, enable_cbt, disable_cbt, data_destroy, list_changed_blocks, set_on_boot, blocked, unknown
}
public static class vdi_operations_helper
@ -82,8 +82,8 @@ namespace XenAPI
return "disable_cbt";
case vdi_operations.data_destroy:
return "data_destroy";
case vdi_operations.export_changed_blocks:
return "export_changed_blocks";
case vdi_operations.list_changed_blocks:
return "list_changed_blocks";
case vdi_operations.set_on_boot:
return "set_on_boot";
case vdi_operations.blocked:

View File

@ -0,0 +1,76 @@
/*
* 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 Newtonsoft.Json;
namespace XenAPI
{
[JsonConverter(typeof(vusb_operationsConverter))]
public enum vusb_operations
{
attach, plug, unplug, unknown
}
public static class vusb_operations_helper
{
public static string ToString(vusb_operations x)
{
return x.StringOf();
}
}
public static partial class EnumExt
{
public static string StringOf(this vusb_operations x)
{
switch (x)
{
case vusb_operations.attach:
return "attach";
case vusb_operations.plug:
return "plug";
case vusb_operations.unplug:
return "unplug";
default:
return "unknown";
}
}
}
internal class vusb_operationsConverter : XenEnumConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((vusb_operations)value).StringOf());
}
}
}

View File

@ -369,12 +369,15 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="XenAPI\network_default_locking_mode.cs" />
<Compile Include="XenAPI\network_purpose.cs" />
<Compile Include="XenAPI\PCI.cs" />
<Compile Include="XenAPI\PGPU.cs" />
<Compile Include="XenAPI\pgpu_dom0_access.cs" />
<Compile Include="XenAPI\pif_igmp_status.cs" />
<Compile Include="XenAPI\pool_allowed_operations.cs" />
<Compile Include="XenAPI\Pool_update.cs" />
<Compile Include="XenAPI\primary_address_type.cs" />
<Compile Include="XenAPI\PUSB.cs" />
<Compile Include="XenAPI\PVS_cache_storage.cs" />
<Compile Include="XenAPI\PVS_proxy.cs" />
<Compile Include="XenAPI\pvs_proxy_status.cs" />
@ -384,6 +387,8 @@
<Compile Include="XenAPI\sdn_controller_protocol.cs" />
<Compile Include="XenAPI\tristate_type.cs" />
<Compile Include="XenAPI\update_after_apply_guidance.cs" />
<Compile Include="XenAPI\USB_group.cs" />
<Compile Include="XenAPI\Vdi_nbd_server_info.cs" />
<Compile Include="XenAPI\VGPU.cs" />
<Compile Include="XenAPI\VGPU_type.cs" />
<Compile Include="XenAPI\vgpu_type_implementation.cs" />
@ -395,6 +400,8 @@
<Compile Include="XenAPI\vmss_type.cs" />
<Compile Include="XenAPI\VM_appliance.cs" />
<Compile Include="XenAPI\vm_appliance_operation.cs" />
<Compile Include="XenAPI\VUSB.cs" />
<Compile Include="XenAPI\vusb_operations.cs" />
<Compile Include="XenSearch\Common.cs" />
<Compile Include="XenSearch\GroupAlg.cs" />
<Compile Include="XenSearch\GroupingTypes.cs" />