mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2025-01-22 08:10:47 +01:00
Merge pull request #1463 from geosharath/CP-17250
CP-17250: [XC] Allow host to join an existing pool with management on a VLAN
This commit is contained in:
commit
499c30dd5d
@ -95,6 +95,8 @@ namespace XenAdmin.Actions
|
|||||||
ApiMethodsToRoleCheck.Add("pif.plug");
|
ApiMethodsToRoleCheck.Add("pif.plug");
|
||||||
ApiMethodsToRoleCheck.AddRange(XenAPI.Role.CommonSessionApiList);
|
ApiMethodsToRoleCheck.AddRange(XenAPI.Role.CommonSessionApiList);
|
||||||
ApiMethodsToRoleCheck.AddRange(XenAPI.Role.CommonTaskApiList);
|
ApiMethodsToRoleCheck.AddRange(XenAPI.Role.CommonTaskApiList);
|
||||||
|
if(!Helpers.FeatureForbidden(Connection, Host.RestrictManagementOnVLAN))
|
||||||
|
ApiMethodsToRoleCheck.Add("pool.management_reconfigure");
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -135,6 +137,12 @@ namespace XenAdmin.Actions
|
|||||||
if (Pool != null)
|
if (Pool != null)
|
||||||
{
|
{
|
||||||
progress += inc;
|
progress += inc;
|
||||||
|
if (!Helpers.FeatureForbidden(Connection, Host.RestrictManagementOnVLAN))
|
||||||
|
{
|
||||||
|
PoolReconfigureManagement(progress);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ReconfigureManagement(false, progress);
|
ReconfigureManagement(false, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,6 +203,16 @@ namespace XenAdmin.Actions
|
|||||||
clearDownManagementIP);
|
clearDownManagementIP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PoolReconfigureManagement(int hi)
|
||||||
|
{
|
||||||
|
System.Diagnostics.Trace.Assert(downManagement != null);
|
||||||
|
|
||||||
|
if (newManagement == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
NetworkingActionHelpers.PoolReconfigureManagement(this, Pool, newManagement, downManagement, hi);
|
||||||
|
}
|
||||||
|
|
||||||
private void BringUp(PIF new_pif, PIF existing_pif, int hi)
|
private void BringUp(PIF new_pif, PIF existing_pif, int hi)
|
||||||
{
|
{
|
||||||
string ip = existing_pif.IP;
|
string ip = existing_pif.IP;
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
using XenAPI;
|
using XenAPI;
|
||||||
|
|
||||||
using XenAdmin.Model;
|
using XenAdmin.Model;
|
||||||
@ -269,6 +269,93 @@ namespace XenAdmin.Actions
|
|||||||
action.Description = string.Format(Messages.ACTION_CHANGE_NETWORKING_MANAGEMENT_RECONFIGURED, pif.Name);
|
action.Description = string.Format(Messages.ACTION_CHANGE_NETWORKING_MANAGEMENT_RECONFIGURED, pif.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void WaitForslavesToRecover(Pool pool)
|
||||||
|
{
|
||||||
|
|
||||||
|
int RetryLimit = 60, RetryAttempt = 0;
|
||||||
|
|
||||||
|
List<string> deadHost = new List<string>();
|
||||||
|
|
||||||
|
/* host count -1 is for excluding master */
|
||||||
|
while (deadHost.Count < (pool.Connection.Cache.HostCount -1) && (RetryAttempt <= RetryLimit))
|
||||||
|
{
|
||||||
|
foreach (Host host in pool.Connection.Cache.Hosts)
|
||||||
|
{
|
||||||
|
if (host.IsMaster())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!host.IsLive && !deadHost.Contains(host.uuid))
|
||||||
|
{
|
||||||
|
deadHost.Add(host.uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
RetryAttempt++;
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
RetryAttempt = 0;
|
||||||
|
|
||||||
|
while (deadHost.Count != 0 && (RetryAttempt <= RetryLimit))
|
||||||
|
{
|
||||||
|
foreach (Host host in pool.Connection.Cache.Hosts)
|
||||||
|
{
|
||||||
|
if (host.IsMaster())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (host.IsLive && deadHost.Contains(host.uuid))
|
||||||
|
{
|
||||||
|
deadHost.Remove(host.uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
RetryAttempt++;
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void PoolReconfigureManagement(AsyncAction action, Pool pool, PIF up_pif, PIF down_pif, int hi)
|
||||||
|
{
|
||||||
|
System.Diagnostics.Trace.Assert(down_pif.host.opaque_ref == up_pif.host.opaque_ref);
|
||||||
|
|
||||||
|
int lo = action.PercentComplete;
|
||||||
|
int inc = (hi - lo) / 3;
|
||||||
|
lo += inc;
|
||||||
|
PoolManagementReconfigure_( action, up_pif, lo);
|
||||||
|
|
||||||
|
/* pool_management_reconfigure triggers a pool_recover_slaves, which in turn spawns two tasks
|
||||||
|
* dbsync (update_env) and server_init on each slaves.
|
||||||
|
* Only after their completion master will be able to execute reconfigure_IPs.
|
||||||
|
* Hence, we check Host.IsLive metric of all slaves for a transition from true -> false -> true
|
||||||
|
*/
|
||||||
|
|
||||||
|
action.Description = string.Format(Messages.ACTION_WAIT_FOR_SLAVES_TO_RECOVER);
|
||||||
|
WaitForslavesToRecover(pool);
|
||||||
|
|
||||||
|
/* Reconfigure IP for slaves and then master */
|
||||||
|
|
||||||
|
lo += inc;
|
||||||
|
ForSomeHosts(action, down_pif, false, true, lo, ClearIP);
|
||||||
|
lo += inc;
|
||||||
|
ForSomeHosts(action, down_pif, true, true, hi, ClearIP);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Switch the Pool's management interface from its current setting over to the given PIF.
|
||||||
|
/// </summary>
|
||||||
|
private static void PoolManagementReconfigure_(AsyncAction action, PIF pif, int hi)
|
||||||
|
{
|
||||||
|
|
||||||
|
log.DebugFormat("Switching to PIF {0} {1} for management...", pif.Name, pif.uuid);
|
||||||
|
action.Description = string.Format(Messages.ACTION_CHANGE_NETWORKING_MANAGEMENT_RECONFIGURING, pif.Name);
|
||||||
|
|
||||||
|
action.RelatedTask = Pool.async_management_reconfigure(action.Session, pif.network.opaque_ref);
|
||||||
|
action.PollToCompletion(action.PercentComplete, hi);
|
||||||
|
|
||||||
|
action.Description = string.Format(Messages.ACTION_CHANGE_NETWORKING_MANAGEMENT_RECONFIGURED, pif.Name);
|
||||||
|
log.DebugFormat("Switched to PIF {0} {1} for management...", pif.Name, pif.uuid);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Remove the IP address from the given PIF.
|
/// Remove the IP address from the given PIF.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
54
XenModel/Messages.Designer.cs
generated
54
XenModel/Messages.Designer.cs
generated
@ -3390,6 +3390,15 @@ namespace XenAdmin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Waiting for slaves to recover....
|
||||||
|
/// </summary>
|
||||||
|
public static string ACTION_WAIT_FOR_SLAVES_TO_RECOVER {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ACTION_WAIT_FOR_SLAVES_TO_RECOVER", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Disconnecting Workload Balancing failed on pool {0}: {1} Workload Balancing has been paused..
|
/// Looks up a localized string similar to Disconnecting Workload Balancing failed on pool {0}: {1} Workload Balancing has been paused..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -27910,6 +27919,15 @@ namespace XenAdmin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to This server must not have any bonds, non management VLANs or cross-server private networks.
|
||||||
|
/// </summary>
|
||||||
|
public static string POOL_JOIN_NON_COMPATIBLE_MANAGEMENT_INTERFACE {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("POOL_JOIN_NON_COMPATIBLE_MANAGEMENT_INTERFACE", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to This server must not have any bonds, VLANs or cross-server private networks.
|
/// Looks up a localized string similar to This server must not have any bonds, VLANs or cross-server private networks.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -36556,15 +36574,6 @@ namespace XenAdmin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Looks up a localized string similar to Details:.
|
|
||||||
/// </summary>
|
|
||||||
public static string VMSS_ALERT_DETAILS {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("VMSS_ALERT_DETAILS", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to {0} VMs.
|
/// Looks up a localized string similar to {0} VMs.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -36574,6 +36583,24 @@ namespace XenAdmin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to 1 VM.
|
||||||
|
/// </summary>
|
||||||
|
public static string VMS_ONE {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("VMS_ONE", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Details:.
|
||||||
|
/// </summary>
|
||||||
|
public static string VMSS_ALERT_DETAILS {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("VMSS_ALERT_DETAILS", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to {0}. {1}: {2}.
|
/// Looks up a localized string similar to {0}. {1}: {2}.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -36754,15 +36781,6 @@ namespace XenAdmin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Looks up a localized string similar to 1 VM.
|
|
||||||
/// </summary>
|
|
||||||
public static string VMS_ONE {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("VMS_ONE", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Could not connect to console.
|
/// Looks up a localized string similar to Could not connect to console.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1227,6 +1227,9 @@
|
|||||||
<data name="ACTION_VM_TEMPLATIZING_TITLE" xml:space="preserve">
|
<data name="ACTION_VM_TEMPLATIZING_TITLE" xml:space="preserve">
|
||||||
<value>Converting VM '{0}' to template</value>
|
<value>Converting VM '{0}' to template</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ACTION_WAIT_FOR_SLAVES_TO_RECOVER" xml:space="preserve">
|
||||||
|
<value>Waiting for slaves to recover...</value>
|
||||||
|
</data>
|
||||||
<data name="ACTION_WLB_DECONFIGURE_FAILED" xml:space="preserve">
|
<data name="ACTION_WLB_DECONFIGURE_FAILED" xml:space="preserve">
|
||||||
<value>Disconnecting Workload Balancing failed on pool {0}: {1} Workload Balancing has been paused.</value>
|
<value>Disconnecting Workload Balancing failed on pool {0}: {1} Workload Balancing has been paused.</value>
|
||||||
</data>
|
</data>
|
||||||
@ -9736,6 +9739,9 @@ The VM protection policy for this VM does not have automatic archiving configure
|
|||||||
<data name="POOL_JOIN_IMPOSSIBLE" xml:space="preserve">
|
<data name="POOL_JOIN_IMPOSSIBLE" xml:space="preserve">
|
||||||
<value>Pool join not possible</value>
|
<value>Pool join not possible</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="POOL_JOIN_NON_COMPATIBLE_MANAGEMENT_INTERFACE" xml:space="preserve">
|
||||||
|
<value>This server must not have any bonds, non management VLANs or cross-server private networks</value>
|
||||||
|
</data>
|
||||||
<data name="POOL_JOIN_NOT_PHYSICAL_PIF" xml:space="preserve">
|
<data name="POOL_JOIN_NOT_PHYSICAL_PIF" xml:space="preserve">
|
||||||
<value>This server must not have any bonds, VLANs or cross-server private networks</value>
|
<value>This server must not have any bonds, VLANs or cross-server private networks</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -66,6 +66,7 @@ namespace XenAdmin.Core
|
|||||||
DifferentNetworkBackends,
|
DifferentNetworkBackends,
|
||||||
MasterHasHA,
|
MasterHasHA,
|
||||||
NotPhysicalPif,
|
NotPhysicalPif,
|
||||||
|
NonCompatibleManagementInterface,
|
||||||
WrongRoleOnMaster,
|
WrongRoleOnMaster,
|
||||||
WrongRoleOnSlave,
|
WrongRoleOnSlave,
|
||||||
NotConnected,
|
NotConnected,
|
||||||
@ -152,9 +153,12 @@ namespace XenAdmin.Core
|
|||||||
if (HaEnabled(masterConnection))
|
if (HaEnabled(masterConnection))
|
||||||
return Reason.MasterHasHA;
|
return Reason.MasterHasHA;
|
||||||
|
|
||||||
if (HasSlaveAnyNonPhysicalPif(slaveConnection))
|
if (Helpers.FeatureForbidden(slaveConnection, Host.RestrictManagementOnVLAN) && HasSlaveAnyNonPhysicalPif(slaveConnection))
|
||||||
return Reason.NotPhysicalPif;
|
return Reason.NotPhysicalPif;
|
||||||
|
|
||||||
|
if (!Helpers.FeatureForbidden(slaveConnection, Host.RestrictManagementOnVLAN) && !HasCompatibleManagementInterface(slaveConnection))
|
||||||
|
return Reason.NonCompatibleManagementInterface;
|
||||||
|
|
||||||
return Reason.Allowed;
|
return Reason.Allowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,6 +210,8 @@ namespace XenAdmin.Core
|
|||||||
return Messages.POOL_JOIN_FORBIDDEN_BY_HA;
|
return Messages.POOL_JOIN_FORBIDDEN_BY_HA;
|
||||||
case Reason.NotPhysicalPif :
|
case Reason.NotPhysicalPif :
|
||||||
return Messages.POOL_JOIN_NOT_PHYSICAL_PIF;
|
return Messages.POOL_JOIN_NOT_PHYSICAL_PIF;
|
||||||
|
case Reason.NonCompatibleManagementInterface :
|
||||||
|
return Messages.POOL_JOIN_NON_COMPATIBLE_MANAGEMENT_INTERFACE;
|
||||||
case Reason.WrongRoleOnMaster:
|
case Reason.WrongRoleOnMaster:
|
||||||
return Messages.NEWPOOL_MASTER_ROLE;
|
return Messages.NEWPOOL_MASTER_ROLE;
|
||||||
case Reason.WrongRoleOnSlave:
|
case Reason.WrongRoleOnSlave:
|
||||||
@ -617,5 +623,23 @@ namespace XenAdmin.Core
|
|||||||
return
|
return
|
||||||
slaveConnection.Cache.PIFs.Any(p => !p.physical);
|
slaveConnection.Cache.PIFs.Any(p => !p.physical);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool HasCompatibleManagementInterface(IXenConnection slaveConnection)
|
||||||
|
{
|
||||||
|
/* if there are non physical pifs present then the slave should have
|
||||||
|
* only one VLAN and it has to be the managment interface.
|
||||||
|
* Bonds and cross server private networks are not allowed */
|
||||||
|
|
||||||
|
int numberOfNonPhysicalPifs = slaveConnection.Cache.PIFs.Count(p => !p.physical);
|
||||||
|
|
||||||
|
/* allow the case where there are only physical pifs */
|
||||||
|
if (numberOfNonPhysicalPifs == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(numberOfNonPhysicalPifs != 1)
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return slaveConnection.Cache.PIFs.Any(p => !p.physical && p.management && p.VLAN != -1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
36
XenModel/XenAPI/FriendlyErrorNames.Designer.cs
generated
36
XenModel/XenAPI/FriendlyErrorNames.Designer.cs
generated
@ -2274,6 +2274,42 @@ namespace XenAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to The host joining the pool must not have any bonds..
|
||||||
|
/// </summary>
|
||||||
|
public static string POOL_JOINING_HOST_HAS_BONDS {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("POOL_JOINING_HOST_HAS_BONDS", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to The host joining the pool must not have any non-management vlans..
|
||||||
|
/// </summary>
|
||||||
|
public static string POOL_JOINING_HOST_HAS_NON_MANAGEMENT_VLANS {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("POOL_JOINING_HOST_HAS_NON_MANAGEMENT_VLANS", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to The host joining the pool must not have any tunnels..
|
||||||
|
/// </summary>
|
||||||
|
public static string POOL_JOINING_HOST_HAS_TUNNELS {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("POOL_JOINING_HOST_HAS_TUNNELS", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to The host joining the pool must have the same management vlan..
|
||||||
|
/// </summary>
|
||||||
|
public static string POOL_JOINING_HOST_MANAGEMENT_VLAN_DOES_NOT_MATCH {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("POOL_JOINING_HOST_MANAGEMENT_VLAN_DOES_NOT_MATCH", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to The server joining the pool must have a physical management NIC (i.e. the management NIC must not be on a VLAN or bonded PIF)..
|
/// Looks up a localized string similar to The server joining the pool must have a physical management NIC (i.e. the management NIC must not be on a VLAN or bonded PIF)..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -855,6 +855,18 @@
|
|||||||
<data name="POOL_JOINING_EXTERNAL_AUTH_MISMATCH" xml:space="preserve">
|
<data name="POOL_JOINING_EXTERNAL_AUTH_MISMATCH" xml:space="preserve">
|
||||||
<value>The external authentication configuration of the server joining the pool must match the pool's own external authentication configuration.</value>
|
<value>The external authentication configuration of the server joining the pool must match the pool's own external authentication configuration.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="POOL_JOINING_HOST_HAS_BONDS" xml:space="preserve">
|
||||||
|
<value>The host joining the pool must not have any bonds.</value>
|
||||||
|
</data>
|
||||||
|
<data name="POOL_JOINING_HOST_HAS_NON_MANAGEMENT_VLANS" xml:space="preserve">
|
||||||
|
<value>The host joining the pool must not have any non-management vlans.</value>
|
||||||
|
</data>
|
||||||
|
<data name="POOL_JOINING_HOST_HAS_TUNNELS" xml:space="preserve">
|
||||||
|
<value>The host joining the pool must not have any tunnels.</value>
|
||||||
|
</data>
|
||||||
|
<data name="POOL_JOINING_HOST_MANAGEMENT_VLAN_DOES_NOT_MATCH" xml:space="preserve">
|
||||||
|
<value>The host joining the pool must have the same management vlan.</value>
|
||||||
|
</data>
|
||||||
<data name="POOL_JOINING_HOST_MUST_HAVE_PHYSICAL_MANAGEMENT_NIC" xml:space="preserve">
|
<data name="POOL_JOINING_HOST_MUST_HAVE_PHYSICAL_MANAGEMENT_NIC" xml:space="preserve">
|
||||||
<value>The server joining the pool must have a physical management NIC (i.e. the management NIC must not be on a VLAN or bonded PIF).</value>
|
<value>The server joining the pool must have a physical management NIC (i.e. the management NIC must not be on a VLAN or bonded PIF).</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -1196,6 +1196,28 @@ namespace XenAPI
|
|||||||
return XenRef<Task>.Create(session.proxy.async_pool_recover_slaves(session.uuid).parse());
|
return XenRef<Task>.Create(session.proxy.async_pool_recover_slaves(session.uuid).parse());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reconfigure the management network interface for all Hosts in the Pool
|
||||||
|
/// First published in .
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="session">The session</param>
|
||||||
|
/// <param name="_network">The network</param>
|
||||||
|
public static void management_reconfigure(Session session, string _network)
|
||||||
|
{
|
||||||
|
session.proxy.pool_management_reconfigure(session.uuid, (_network != null) ? _network : "").parse();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reconfigure the management network interface for all Hosts in the Pool
|
||||||
|
/// First published in .
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="session">The session</param>
|
||||||
|
/// <param name="_network">The network</param>
|
||||||
|
public static XenRef<Task> async_management_reconfigure(Session session, string _network)
|
||||||
|
{
|
||||||
|
return XenRef<Task>.Create(session.proxy.async_pool_management_reconfigure(session.uuid, (_network != null) ? _network : "").parse());
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Create PIFs, mapping a network to the same physical interface/VLAN on each host. This call is deprecated: use Pool.create_VLAN_from_PIF instead.
|
/// Create PIFs, mapping a network to the same physical interface/VLAN on each host. This call is deprecated: use Pool.create_VLAN_from_PIF instead.
|
||||||
/// First published in XenServer 4.0.
|
/// First published in XenServer 4.0.
|
||||||
|
@ -3528,6 +3528,14 @@ namespace XenAPI
|
|||||||
Response<string>
|
Response<string>
|
||||||
async_host_management_reconfigure(string session, string _pif);
|
async_host_management_reconfigure(string session, string _pif);
|
||||||
|
|
||||||
|
[XmlRpcMethod("pool.management_reconfigure")]
|
||||||
|
Response<string>
|
||||||
|
pool_management_reconfigure(string session, string _network);
|
||||||
|
|
||||||
|
[XmlRpcMethod("Async.pool.management_reconfigure")]
|
||||||
|
Response<string>
|
||||||
|
async_pool_management_reconfigure(string session, string _network);
|
||||||
|
|
||||||
[XmlRpcMethod("host.local_management_reconfigure")]
|
[XmlRpcMethod("host.local_management_reconfigure")]
|
||||||
Response<string>
|
Response<string>
|
||||||
host_local_management_reconfigure(string session, string _interface);
|
host_local_management_reconfigure(string session, string _interface);
|
||||||
|
Loading…
Reference in New Issue
Block a user