Merge remote-tracking branch 'upstream/xs64bit' into cp-7527

This commit is contained in:
U-CITRITE\zhengc 2014-05-07 12:01:01 +08:00
commit 011cc4ae17
33 changed files with 292 additions and 263 deletions

View File

@ -68,12 +68,14 @@ namespace XenAdmin.Alerts
public void IncludeConnection(IXenConnection newConnection)
{
connections.Add(newConnection);
if (!connections.Contains(newConnection))
connections.Add(newConnection);
}
public void IncludeHosts(IEnumerable<Host> newHosts)
{
hosts.AddRange(newHosts);
var notContained = newHosts.Where(h => !hosts.Contains(h));
hosts.AddRange(notContained);
}
public void CopyConnectionsAndHosts(XenServerUpdateAlert alert)

View File

@ -341,7 +341,8 @@ namespace XenAdmin.Controls.NetworkingTab
List<NetworkRow> networkRowsToAdd = new List<NetworkRow>();
for (int i = 0; i < networks.Length; i++)
{
if (!networks[i].Show(XenAdmin.Properties.Settings.Default.ShowHiddenVMs))
if (!networks[i].Show(XenAdmin.Properties.Settings.Default.ShowHiddenVMs) ||
Helpers.FindPIF(networks[i], XenObject as Host) == null)
continue;
networkRowsToAdd.Add(new NetworkRow(networks[i], XenObject));
}

View File

@ -221,6 +221,11 @@ namespace XenAdmin.Dialogs
}
}
public bool HelperUrlRequired
{
get { return XenObject == null ? false : Helpers.ClearwaterOrGreater(XenObject.Connection); } // CA-115256
}
public Status RowStatus
{
get

View File

@ -200,12 +200,12 @@ namespace XenAdmin.Dialogs
Program.Invoke(this, delegate
{
LicenseDataGridViewRow lRow = row as LicenseDataGridViewRow;
if(lRow == null)
if(lRow == null || lRow.XenObject == null)
return;
summaryPanel.Title = lRow.XenObject.Name;
summaryPanel.HelperUrl = Messages.LICENSE_MANAGER_BUY_LICENSE_LINK_TEXT;
summaryPanel.HelperUrlVisible = true;
summaryPanel.HelperUrlVisible = lRow.HelperUrlRequired;
summaryPanel.WarningVisible = lRow.WarningRequired;
summaryPanel.WarningText = lRow.WarningText;
summaryPanel.SummaryText = summaryComponent;

View File

@ -433,7 +433,7 @@ namespace XenAdmin
if (action.Exception != null && !(action.Exception is CancelledException))
{
if (meddlingAction == null)
SetStatusBar(XenAdmin.Properties.Resources._000_error_h32bit_16, action.Exception.Message);
SetStatusBar(Properties.Resources._000_error_h32bit_16, action.Exception.Message);
IXenObject model =
(IXenObject)action.VM ??
@ -447,11 +447,13 @@ namespace XenAdmin
}
else if (meddlingAction == null)
{
SetStatusBar(null,
action.IsCompleted ? null :
!string.IsNullOrEmpty(action.Description) ? action.Description :
!string.IsNullOrEmpty(action.Title) ? action.Title :
null);
SetStatusBar(null, action.IsCompleted
? null
: !string.IsNullOrEmpty(action.Description)
? action.Description
: !string.IsNullOrEmpty(action.Title)
? action.Title
: null);
}
int errors = ConnectionsManager.History.Count(a => a.IsCompleted && !a.Succeeded);

View File

@ -36,7 +36,6 @@ namespace XenAdmin.SettingsPanels
//
resources.ApplyResources(this.picker, "picker");
this.picker.Name = "picker";
this.picker.VisibleChanged += new System.EventHandler(this.picker_VisibleChanged);
//
// HomeServerEditPage
//

View File

@ -135,17 +135,5 @@ namespace XenAdmin.SettingsPanels
}
#endregion
private void picker_VisibleChanged(object sender, EventArgs e)
{
if (vm != null)
{
Host currentAffinity = vm.Connection.Resolve(vm.affinity);
picker.SetAffinity(vm.Connection, currentAffinity,
vm.HasNoDisksAndNoLocalCD
? null
: vm.GetStorageHost(false));
}
}
}
}

View File

@ -105,6 +105,9 @@ namespace XenAdmin.TabPages
private void Rebuild()
{
if (!Visible)
return;
log.Debug("Rebuilding alertList");
Thread t = new Thread(_Rebuild);
t.Name = "Building alert list";

View File

@ -144,6 +144,9 @@ namespace XenAdmin.TabPages
private void BuildRowList()
{
if (!Visible)
return;
try
{
dataGridView.SuspendLayout();

View File

@ -182,6 +182,9 @@ namespace XenAdmin.TabPages
{
Program.AssertOnEventThread();
if (!Visible)
return;
if (checksQueue > 0)
return;

View File

@ -112,187 +112,194 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>XenAdmin.Controls.XenTabPage, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="networkComboBox.Location" type="System.Drawing.Point, System.Drawing">
<value>104, 3</value>
</data>
<data name="&gt;&gt;networkComboBox.Name" xml:space="preserve">
<value>networkComboBox</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>558, 65</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 10, 0</value>
</data>
<data name="&gt;&gt;networkComboBox.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Absolute,20" /&gt;&lt;Rows Styles="Percent,27.71084,Percent,72.28915,Absolute,20,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="&gt;&gt;label3.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 8</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="networkComboBox.Size" type="System.Drawing.Size, System.Drawing">
<value>432, 21</value>
</data>
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 10, 0</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 13</value>
<value>115, 17</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>Select a storage network on the destination pool or standalone server that will be used for the live migration of the
VMs virtual disks.
For optimal performance and reliability during VM migration, ensure that the network used for the live storage migration
is not being used for management or virtual machine traffic. </value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>614, 332</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="networkComboBox.IntegralHeight" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;networkComboBox.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 0</value>
</data>
<data name="&gt;&gt;networkComboBox.Type" xml:space="preserve">
<value>XenAdmin.Controls.NetworkComboBox, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.ZOrder" xml:space="preserve">
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Storage n&amp;etwork:</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>614, 332</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;label3.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Name" xml:space="preserve">
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
<data name="networkComboBox.IntegralHeight" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="networkComboBox.Location" type="System.Drawing.Point, System.Drawing">
<value>131, 3</value>
</data>
<data name="networkComboBox.Size" type="System.Drawing.Size, System.Drawing">
<value>432, 24</value>
</data>
<data name="networkComboBox.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="networkComboBox" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
<data name="&gt;&gt;networkComboBox.Name" xml:space="preserve">
<value>networkComboBox</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
<data name="&gt;&gt;networkComboBox.Type" xml:space="preserve">
<value>XenAdmin.Controls.NetworkComboBox, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;networkComboBox.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;networkComboBox.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 108</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>608, 28</value>
<value>608, 33</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Name" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 7</value>
<data name="&gt;&gt;tableLayoutPanel2.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="networkComboBox" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 0</value>
</data>
<data name="label3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 20</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>762, 105</value>
</data>
<data name="label3.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 95</value>
<data name="label3.Text" xml:space="preserve">
<value>Select a storage network on the destination pool or standalone server that will be used for the live migration of the VMs virtual disks.
For optimal performance and reliability during VM migration, ensure that the network used for the live storage migration is not being used for management or virtual machine traffic. </value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value>
</data>
<data name="&gt;&gt;label3.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label3.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>768, 415</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>120, 120</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>768, 415</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CrossPoolMigrateTransferNetworkPage</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>XenAdmin.Controls.XenTabPage, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View File

@ -79,7 +79,7 @@ namespace XenAdmin.Wizards
{
InitializeComponent();
pageNetworkType = new NetWTypeSelect {Banner = Banner};
pageNetworkType = new NetWTypeSelect();
pageName = new NetWName();
pageNetworkDetails = new NetWDetails();
pageBondDetails = new NetWBondDetails();

View File

@ -61,8 +61,6 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages
Update(Connection);
}
public DeprecationBanner Banner { set; private get; }
public NetworkTypes SelectedNetworkType
{
get
@ -120,18 +118,6 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages
}
}
public void SetDeprecationBanner(bool visible)
{
if(Banner != null)
{
Banner.AppliesToVersion = Messages.XENSERVER_6_2;
Banner.BannerType = DeprecationBanner.Type.Deprecation;
Banner.FeatureName = Messages.DVSCS;
Banner.LinkUri = new Uri(InvisibleMessages.DVSC_DEPRECATION_URL);
Banner.Visible = visible;
}
}
private void RemoveFromToolTip(ToolTipContainer container, Panel panel)
{
// We have to remove the controls from the panel (rather than just
@ -155,18 +141,5 @@ namespace XenAdmin.Wizards.NewNetworkWizard_Pages
Controls.Remove(container);
}
public override void PageLoaded(PageLoadedDirection direction)
{
Pool pool = Helpers.GetPoolOfOne(Connection);
SetDeprecationBanner(pool.vSwitchController);
base.PageLoaded(direction);
}
public override void PageLeave(PageLoadedDirection direction, ref bool cancel)
{
SetDeprecationBanner(false);
base.PageLeave(direction, ref cancel);
}
}
}

View File

@ -196,7 +196,7 @@
<value>NoControl</value>
</data>
<data name="rbtnBondedNetwork.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 236</value>
<value>20, 200</value>
</data>
<data name="rbtnBondedNetwork.Size" type="System.Drawing.Size, System.Drawing">
<value>170, 19</value>
@ -257,7 +257,7 @@
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>38, 258</value>
<value>38, 222</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>334, 31</value>
@ -294,7 +294,7 @@
<value>19, 20</value>
</data>
<data name="labelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>331, 65</value>
<value>331, 39</value>
</data>
<data name="labelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -302,9 +302,7 @@
<data name="labelCHIN.Text" xml:space="preserve">
<value>XenServer プールの外部に接続しないネットワークを作成します。
これにより、同一プール内の VM どうしを接続できます。
vSwitch コントローラが実行されている必要があります。
この機能は XenServer 6.2 で廃止され、
今後のバージョンで削除される予定です。</value>
vSwitch コントローラが実行されている必要があります。</value>
</data>
<data name="&gt;&gt;labelCHIN.Name" xml:space="preserve">
<value>labelCHIN</value>
@ -370,7 +368,7 @@ vSwitch コントローラが実行されている必要があります。
<value>19, 134</value>
</data>
<data name="toolTipContainerCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 96</value>
<value>380, 76</value>
</data>
<data name="toolTipContainerCHIN.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -406,7 +404,7 @@ vSwitch コントローラが実行されている必要があります。
<value>0, 0</value>
</data>
<data name="panelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 72</value>
<value>380, 52</value>
</data>
<data name="panelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -574,7 +572,7 @@ vSwitch コントローラが実行されている必要があります。
<value>0, 32, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>416, 309</value>
<value>416, 281</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>種類の選択</value>

View File

@ -196,7 +196,7 @@
<value>NoControl</value>
</data>
<data name="rbtnBondedNetwork.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 233</value>
<value>20, 208</value>
</data>
<data name="rbtnBondedNetwork.Size" type="System.Drawing.Size, System.Drawing">
<value>117, 17</value>
@ -257,7 +257,7 @@ This can be used as a private connection between VMs on the same host.</value>
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>38, 253</value>
<value>38, 228</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 26</value>
@ -294,7 +294,7 @@ This will create a single higher performing channel.</value>
<value>19, 20</value>
</data>
<data name="labelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>331, 65</value>
<value>331, 39</value>
</data>
<data name="labelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -302,9 +302,7 @@ This will create a single higher performing channel.</value>
<data name="labelCHIN.Text" xml:space="preserve">
<value>Create a network that does not leave the XenServer pool.
This can be used as a private connection between VMs in the pool.
This type of network requires the vSwitch Controller to be running.
This feature is deprecated in XenServer 6.2 and may be removed
in future versions.</value>
This type of network requires the vSwitch Controller to be running.</value>
</data>
<data name="&gt;&gt;labelCHIN.Name" xml:space="preserve">
<value>labelCHIN</value>
@ -370,7 +368,7 @@ in future versions.</value>
<value>19, 134</value>
</data>
<data name="toolTipContainerCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 92</value>
<value>380, 72</value>
</data>
<data name="toolTipContainerCHIN.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -406,7 +404,7 @@ in future versions.</value>
<value>0, 0</value>
</data>
<data name="panelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 92</value>
<value>380, 72</value>
</data>
<data name="panelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -574,7 +572,7 @@ in future versions.</value>
<value>0, 32, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>416, 297</value>
<value>416, 269</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Select Type</value>

View File

@ -196,7 +196,7 @@
<value>NoControl</value>
</data>
<data name="rbtnBondedNetwork.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 250</value>
<value>20, 204</value>
</data>
<data name="rbtnBondedNetwork.Size" type="System.Drawing.Size, System.Drawing">
<value>117, 17</value>
@ -257,7 +257,7 @@
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>38, 274</value>
<value>38, 228</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 26</value>
@ -294,7 +294,7 @@
<value>19, 20</value>
</data>
<data name="labelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>331, 65</value>
<value>331, 39</value>
</data>
<data name="labelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -302,9 +302,7 @@
<data name="labelCHIN.Text" xml:space="preserve">
<value>创建不离开 XenServer 池的网络。
此网络可用作池中两个 VM 之间的专用连接。
此类网络需要运行 vSwitch Controller。
此功能在 XenServer 6.2 中已弃用,在将来
的版本中可能会删除。</value>
此类网络需要运行 vSwitch Controller。</value>
</data>
<data name="&gt;&gt;labelCHIN.Name" xml:space="preserve">
<value>labelCHIN</value>
@ -370,7 +368,7 @@
<value>19, 134</value>
</data>
<data name="toolTipContainerCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 110</value>
<value>380, 90</value>
</data>
<data name="toolTipContainerCHIN.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -406,7 +404,7 @@
<value>0, 0</value>
</data>
<data name="panelCHIN.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 110</value>
<value>380, 90</value>
</data>
<data name="panelCHIN.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -574,7 +572,7 @@
<value>0, 32, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>416, 309</value>
<value>416, 281</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>选择类型</value>

View File

@ -376,7 +376,7 @@ namespace XenAdmin.Wizards.PatchingWizard
}
bool result = _worker != null && !_worker.IsBusy && !problemsFound;
panelErrorsFound.Visible = !result;
panelErrorsFound.Visible = problemsFound;
return result;
}

View File

@ -137,6 +137,7 @@ namespace XenAdmin.Wizards.PatchingWizard
if(!host.CanApplyHotfixes)
{
row.Enabled = false;
row.Cells[3].ToolTipText = Messages.PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED;
return;
}
@ -154,7 +155,10 @@ namespace XenAdmin.Wizards.PatchingWizard
if (host.isOEM)
row.Enabled = false;
if (Patch.IsAppliedTo(host,ConnectionsManager.XenConnectionsCopy))
{
row.Enabled = false;
row.Cells[3].ToolTipText = Messages.PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED;
}
break;
}
}
@ -691,9 +695,12 @@ namespace XenAdmin.Wizards.PatchingWizard
else
_poolIconHostCheckCell = new DataGridViewCheckBoxCell();
_nameCell = new DataGridViewNameCell();
_versionCell = new DataGridViewTextBoxCell();
Cells.AddRange(new[] { _expansionCell, _poolCheckBoxCell, _poolIconHostCheckCell, _nameCell, _versionCell });
this.UpdateDetails();

View File

@ -146,6 +146,11 @@ namespace XenAdminTests
return GetFieldDeep<NavigationView>(o, name);
}
public static NotificationsView GetNotificationsView(object o, string name)
{
return GetFieldDeep<NotificationsView>(o, name);
}
public static DataGridViewEx GetDataGridViewEx(object o, string name)
{
return GetFieldDeep<DataGridViewEx>(o, name);

View File

@ -36,6 +36,7 @@ using System.Windows.Forms;
using NUnit.Framework;
using XenAdmin;
using XenAdmin.Controls.MainWindowControls;
using XenAdmin.Core;
using XenAdmin.TabPages;
using XenAdmin.Controls;
@ -168,10 +169,17 @@ namespace XenAdminTests.TabsAndMenus
var rows = GetVisibleRows();
Assert.AreEqual(1, rows.Count, "No connection item found.");
Assert.IsFalse(showAllButton.Enabled);
MW(() =>
{
TestUtils.GetToolStripItem(MainWindowWrapper.Item,
"navigationPane.buttonNotifySmall").PerformClick();
TestUtils.GetNotificationsView(MainWindowWrapper.Item,
"navigationPane.notificationsView").SelectNotificationsSubMode(NotificationsSubMode.Events);
});
// this should clear all items as they are all completed.
MW(() => TestUtils.GetToolStripMenuItem(MainWindowWrapper.Item,
"eventsPage.toolStripDdbFilterStatus.toolStripMenuItemComplete").PerformClick());
"eventsPage.toolStripDdbFilterStatus.toolStripMenuItemComplete").PerformClick());
rows = GetVisibleRows();
Assert.AreEqual(0, rows.Count, "Items weren't cleared.");
Assert.IsTrue(showAllButton.Enabled);

View File

@ -56,7 +56,7 @@ namespace XenAdminTests.UnitTests.AlertTests
XenServerPatchAlert alert = new XenServerPatchAlert(p);
alert.IncludeConnection(connA.Object);
alert.IncludeConnection(connB.Object);
alert.IncludeHosts(new List<Host>() { hostA.Object, hostB.Object });
alert.IncludeHosts(new List<Host> { hostA.Object, hostB.Object });
IUnitTestVerifier validator = new VerifyGetters(alert);
@ -184,9 +184,11 @@ namespace XenAdminTests.UnitTests.AlertTests
hostA = new Mock<Host>(MockBehavior.Strict);
hostA.Setup(n => n.Name).Returns("HostAName");
hostA.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostA.Object));
hostB = new Mock<Host>(MockBehavior.Strict);
hostB.Setup(n => n.Name).Returns("HostBName");
hostB.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostB.Object));
}
[TearDown]

View File

@ -184,9 +184,11 @@ namespace XenAdminTests.UnitTests.AlertTests
hostA = new Mock<Host>(MockBehavior.Strict);
hostA.Setup(n => n.Name).Returns("HostAName");
hostA.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostA.Object));
hostB = new Mock<Host>(MockBehavior.Strict);
hostB.Setup(n => n.Name).Returns("HostBName");
hostB.Setup(n => n.Equals(It.IsAny<object>())).Returns((object o) => ReferenceEquals(o, hostB.Object));
}
[TearDown]

View File

@ -99,7 +99,9 @@ namespace XenAdmin.Actions
{
_pool = value;
SetAppliesTo(Pool);
if(Pool!=null&&Pool.Connection!=null&&Helpers.GetPool(Pool.Connection)==null&& Pool.Connection.Cache.Hosts.Length == 1)
if (Pool != null && Pool.Connection != null &&
Helpers.GetPool(Pool.Connection) == null &&
Pool.Connection.Cache.Hosts.Length == 1)
{
SetAppliesTo(Pool.Connection.Cache.Hosts[0]);
}
@ -291,7 +293,16 @@ namespace XenAdmin.Actions
public string Description
{
get { return _description; }
set { if (_description != value) { _description = value; if (LogDescriptionChanges) log.Debug(_description); OnChanged(); } }
set
{
if (_description != value)
{
_description = value;
if (LogDescriptionChanges)
log.Debug(_description);
OnChanged();
}
}
}
public bool IsCompleted

View File

@ -129,13 +129,10 @@ namespace XenAdmin.Actions
catch (Failure f)
{
// Need to check if the patch already exists.
// If it does, and we're upload multiple patches
// (ie from the wizard) then we don't care about
// throwing the error
// If it does then we use it and ignore the PATCH_ALREADY_EXISTS error (CA-110209).
if (f.ErrorDescription != null
&& f.ErrorDescription.Count > 1
&& f.ErrorDescription[0] == XenAPI.Failure.PATCH_ALREADY_EXISTS
&& embeddedHosts.Count + retailHosts.Count > 1)
&& f.ErrorDescription[0] == XenAPI.Failure.PATCH_ALREADY_EXISTS)
{
string uuid = f.ErrorDescription[1];
Session session = host.Connection.DuplicateSession();

View File

@ -105,15 +105,6 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to http://support.citrix.com/article/CTX137336.
/// </summary>
public static string DVSC_DEPRECATION_URL {
get {
return ResourceManager.GetString("DVSC_DEPRECATION_URL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to http://www.citrix.com/xenserver.
/// </summary>

View File

@ -132,9 +132,6 @@
<data name="COMMUNITY_URL" xml:space="preserve">
<value>http://xenserver.org/</value>
</data>
<data name="DVSC_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137336</value>
</data>
<data name="HOMEPAGE" xml:space="preserve">
<value>http://www.citrix.com/xenserver</value>
</data>

View File

@ -132,9 +132,6 @@
<data name="COMMUNITY_URL" xml:space="preserve">
<value>http://xenserver.org/</value>
</data>
<data name="DVSC_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137336</value>
</data>
<data name="HOMEPAGE" xml:space="preserve">
<value>http://www.citrix.com/xenserver</value>
</data>

View File

@ -132,9 +132,6 @@
<data name="COMMUNITY_URL" xml:space="preserve">
<value>http://xenserver.org/</value>
</data>
<data name="DVSC_DEPRECATION_URL" xml:space="preserve">
<value>http://support.citrix.com/article/CTX137336</value>
</data>
<data name="HOMEPAGE" xml:space="preserve">
<value>http://www.citrix.com/xenserver</value>
</data>

View File

@ -24008,6 +24008,24 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Subscription Advantage required.
/// </summary>
public static string PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED {
get {
return ResourceManager.GetString("PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Update already applied.
/// </summary>
public static string PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED {
get {
return ResourceManager.GetString("PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Select Servers.
/// </summary>

View File

@ -8310,6 +8310,12 @@ It is strongly recommended that you Cancel and apply the latest version of the p
<data name="PATCHINGWIZARD_SELECTPATCHPAGE_UPDATESEXT" xml:space="preserve">
<value>XenServer Updates|*.xsupdate;*.xsoem</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_HOST_UNLICENSED" xml:space="preserve">
<value>Subscription Advantage required</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_PATCH_ALREADY_APPLIED" xml:space="preserve">
<value>Update already applied</value>
</data>
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_TEXT" xml:space="preserve">
<value>Select Servers</value>
</data>

View File

@ -127,6 +127,8 @@ namespace XenAdmin.Network
GetServerTime();
// Now that we've successfully received a heartbeat, reset our 'second chance' for the server to timeout
if (retrying)
log.DebugFormat("Heartbeat for {0} has come back", session == null ? "null" : session.Url);
retrying = false;
}
catch (TargetInvocationException exn)

View File

@ -31,7 +31,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Net;
using System.Reflection;
@ -39,7 +38,6 @@ using System.Threading;
using CookComputing.XmlRpc;
using XenAdmin.Actions;
using XenAdmin.Core;
using XenAdmin.ServerDBs;
using XenAPI;
using System.Diagnostics;
@ -996,10 +994,9 @@ namespace XenAdmin.Network
}
log.InfoFormat("Connected to {0} ({1}:{2})", FriendlyName, taskHostname, task_port);
string name =
string.IsNullOrEmpty(FriendlyName) || FriendlyName == taskHostname ?
taskHostname :
string.Format("{0} ({1})", FriendlyName, taskHostname);
string name = string.IsNullOrEmpty(FriendlyName) || FriendlyName == taskHostname
? taskHostname
: string.Format("{0} ({1})", FriendlyName, taskHostname);
string title = string.Format(Messages.CONNECTING_NOTICE_TITLE, name);
string msg = string.Format(Messages.CONNECTING_NOTICE_TEXT, name);
log.Info(msg);
@ -1481,11 +1478,10 @@ namespace XenAdmin.Network
ExpressRestriction e = (ExpressRestriction)error;
string msg = string.Format(Messages.CONNECTION_RESTRICTED_MESSAGE, e.HostName, e.ExistingHostName);
log.Info(msg);
// Add an informational log message saying why the connection attempt failed
ActionBase action = new ActionBase(
string.Format(Messages.CONNECTION_RESTRICTED_NOTICE_TITLE, e.HostName),
msg, false, true, Messages.CONNECTION_RESTRICTED_NOTICE_TITLE);
log.Info(msg);
string title = string.Format(Messages.CONNECTION_RESTRICTED_NOTICE_TITLE, e.HostName);
ActionBase action = new ActionBase(title, msg, false, true, msg);
SetPoolAndHostInAction(action, pool, PoolOpaqueRef);
OnConnectionResult(false, Messages.CONNECTION_RESTRICTED_MESSAGE, error);
@ -1511,14 +1507,25 @@ namespace XenAdmin.Network
{
// We never connected
string reason = GetReason(error);
log.WarnFormat("IXenConnection: failed to connect to {0}: {1}", this.HostnameWithPort, reason);
// Create a new log message to say the connection attempt failed
string title = string.Format(Messages.CONNECTION_FAILED_TITLE, HostnameWithPort);
ActionBase n = new ActionBase(title, reason, false, true, title);
SetPoolAndHostInAction(n, pool, PoolOpaqueRef);
log.WarnFormat("IXenConnection: failed to connect to {0}: {1}", HostnameWithPort, reason);
Failure f = error as Failure;
if (f != null && f.ErrorDescription[0] == Failure.HOST_IS_SLAVE)
{
//do not log an event in this case
}
else if (error is ConnectionExists)
{
//do not log an event in this case
}
else
{
// Create a new log message to say the connection attempt failed
string title = string.Format(Messages.CONNECTION_FAILED_TITLE, HostnameWithPort);
ActionBase n = new ActionBase(title, reason, false, true, reason);
SetPoolAndHostInAction(n, pool, PoolOpaqueRef);
}
// We only want to continue the master search in certain circumstances
if (FindingNewMaster && (error is WebException || (f != null && f.ErrorDescription[0] != Failure.RBAC_PERMISSION_DENIED)))
{
@ -1662,7 +1669,7 @@ namespace XenAdmin.Network
string title = string.Format(Messages.CONNECTION_LOST_NOTICE_TITLE,
LastConnectionFullName);
ActionBase n = new ActionBase(title, description, false, true, title);
ActionBase n = new ActionBase(title, description, false, true, description);
SetPoolAndHostInAction(n, pool, poolopaqueref);
OnConnectionLost();
}
@ -1814,10 +1821,9 @@ namespace XenAdmin.Network
private void ReconnectMaster()
{
// Add an informational entry to the log
ActionBase action = new ActionBase(
string.Format(Messages.CONNECTION_FINDING_MASTER_TITLE, LastConnectionFullName),
string.Format(Messages.CONNECTION_FINDING_MASTER_DESCRIPTION, LastConnectionFullName, Hostname),
false, true);
string title = string.Format(Messages.CONNECTION_FINDING_MASTER_TITLE, LastConnectionFullName);
string descr = string.Format(Messages.CONNECTION_FINDING_MASTER_DESCRIPTION, LastConnectionFullName, Hostname);
ActionBase action = new ActionBase(title, descr, false, true);
SetPoolAndHostInAction(action, null, PoolOpaqueRef);
log.DebugFormat("Looking for master for {0} on {1}...", LastConnectionFullName, Hostname);

View File

@ -50,7 +50,8 @@ namespace XenAPI
API_2_0 = 11, // XenServer 6.2 (Clearwater)
API_2_1 = 12, // XenServer 6.2 with vGPU (vGPU)
API_2_2 = 13, // vdi.copy change in XS62ESP1004 (Hotfix Fox)
LATEST = 13,
API_2_3 = 14, // XenServer xs64bit
LATEST = 14,
// Don't forget to change LATEST above, and APIVersionString() below.
UNKNOWN = 99
}
@ -89,6 +90,8 @@ namespace XenAPI
return "2.1";
case API_Version.API_2_2:
return "2.2";
case API_Version.API_2_3:
return "2.3";
default:
return "Unknown";
}