mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2024-12-20 15:36:03 +01:00
Merge pull request #236 from stephen-turner/master
Merge xs64bit to master
This commit is contained in:
commit
f806228923
@ -71,17 +71,25 @@ namespace XenAdmin.Commands
|
||||
|
||||
protected override void ExecuteCore(SelectedItemCollection selection)
|
||||
{
|
||||
ApplyLicenseEditionAction action = new ApplyLicenseEditionAction(xos, _edition, _licenseServerAddress, _licenseServerPort, ShowLicensingFailureDialog);
|
||||
ApplyLicenseEditionAction action = new ApplyLicenseEditionAction(xos, _edition, _licenseServerAddress, _licenseServerPort, null);
|
||||
ActionProgressDialog actionProgress = new ActionProgressDialog(action, ProgressBarStyle.Marquee);
|
||||
|
||||
// close dialog even when there's an error as this action shows its own error dialog box.
|
||||
action.Completed += s => Program.Invoke(Program.MainWindow, () =>
|
||||
{
|
||||
Failure f = action.Exception as Failure;
|
||||
if (f != null && f.ErrorDescription[0] == Failure.RBAC_PERMISSION_DENIED_FRIENDLY)
|
||||
return;
|
||||
actionProgress.Close();
|
||||
});
|
||||
action.Completed += s =>
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, () =>
|
||||
{
|
||||
Failure f = action.Exception as Failure;
|
||||
if (f != null && f.ErrorDescription[0] == Failure.RBAC_PERMISSION_DENIED_FRIENDLY)
|
||||
return;
|
||||
actionProgress.Close();
|
||||
});
|
||||
|
||||
if (action.Exception != null)
|
||||
{
|
||||
ShowLicensingFailureDialog(action.LicenseFailures, action.Exception.Message, Parent);
|
||||
}
|
||||
};
|
||||
|
||||
actionProgress.ShowDialog(Parent);
|
||||
|
||||
@ -92,30 +100,35 @@ namespace XenAdmin.Commands
|
||||
}
|
||||
|
||||
public static void ShowLicensingFailureDialog(List<LicenseFailure> licenseFailures, string exceptionMessage)
|
||||
{
|
||||
ShowLicensingFailureDialog(licenseFailures, exceptionMessage, Program.MainWindow);
|
||||
}
|
||||
|
||||
public static void ShowLicensingFailureDialog(List<LicenseFailure> licenseFailures, string exceptionMessage, Control parent)
|
||||
{
|
||||
Debug.Assert(licenseFailures.Count > 0);
|
||||
|
||||
|
||||
if (licenseFailures.Count == 1)
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, () => new ThreeButtonDialog(
|
||||
new ThreeButtonDialog.Details(SystemIcons.Error, licenseFailures[0].AlertText,
|
||||
Messages.LICENSE_ERROR_TITLE),
|
||||
ThreeButtonDialog.ButtonOK).ShowDialog(Program.MainWindow));
|
||||
}
|
||||
else
|
||||
{
|
||||
var failureDic = new Dictionary<SelectedItem, string>();
|
||||
if (licenseFailures.Count == 1)
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, () => new ThreeButtonDialog(
|
||||
new ThreeButtonDialog.Details(SystemIcons.Error, licenseFailures[0].AlertText,
|
||||
Messages.LICENSE_ERROR_TITLE),
|
||||
ThreeButtonDialog.ButtonOK).ShowDialog(parent));
|
||||
}
|
||||
else
|
||||
{
|
||||
var failureDic = new Dictionary<SelectedItem, string>();
|
||||
|
||||
foreach (var f in licenseFailures)
|
||||
{
|
||||
failureDic.Add(new SelectedItem(f.Host), f.AlertText);
|
||||
}
|
||||
foreach (var f in licenseFailures)
|
||||
{
|
||||
failureDic.Add(new SelectedItem(f.Host), f.AlertText);
|
||||
}
|
||||
|
||||
Program.Invoke(Program.MainWindow, () => new CommandErrorDialog(
|
||||
Messages.LICENSE_ERROR_TITLE, exceptionMessage,
|
||||
failureDic).ShowDialog(Program.MainWindow));
|
||||
}
|
||||
Program.Invoke(Program.MainWindow, () => new CommandErrorDialog(
|
||||
Messages.LICENSE_ERROR_TITLE, exceptionMessage,
|
||||
failureDic).ShowDialog(parent));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -109,6 +109,9 @@ namespace XenAdmin.Commands
|
||||
/// </summary>
|
||||
public event EventHandler SelectionChanged;
|
||||
|
||||
public abstract void SaveAndClearSelection();
|
||||
public abstract void RestoreSavedSelection();
|
||||
|
||||
#region IDisposable Members
|
||||
|
||||
/// <summary>
|
||||
|
@ -42,6 +42,8 @@ namespace XenAdmin.Commands
|
||||
internal class SelectionManager : SelectionBroadcaster
|
||||
{
|
||||
private SelectedItemCollection _selection = new SelectedItemCollection();
|
||||
private SelectedItemCollection savedSelection = null;
|
||||
private bool saved = false;
|
||||
|
||||
/// <summary>
|
||||
/// Sets the main selection for XenCenter.
|
||||
@ -49,19 +51,25 @@ namespace XenAdmin.Commands
|
||||
/// <param name="selection">The selection.</param>
|
||||
public void SetSelection(IEnumerable<SelectedItem> selection)
|
||||
{
|
||||
Program.AssertOnEventThread();
|
||||
Util.ThrowIfParameterNull(selection, "selection");
|
||||
|
||||
int count = 0;
|
||||
foreach (SelectedItem item in selection)
|
||||
{
|
||||
if (item == null)
|
||||
{
|
||||
throw new ArgumentException("Null SelectedItem found.", "selection");
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
_selection = new SelectedItemCollection(selection);
|
||||
|
||||
OnSelectionChanged(EventArgs.Empty);
|
||||
if (saved && // We have a saved selection: update it instead (CA-147401)
|
||||
count != 0) // although if the new selection is empty, we're just refreshing the view via RefreshSelection(): don't save that
|
||||
savedSelection = new SelectedItemCollection(selection);
|
||||
else
|
||||
{
|
||||
_selection = new SelectedItemCollection(selection);
|
||||
OnSelectionChanged(EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -86,5 +94,24 @@ namespace XenAdmin.Commands
|
||||
{
|
||||
SetSelection(Selection);
|
||||
}
|
||||
|
||||
public override void SaveAndClearSelection()
|
||||
{
|
||||
Program.AssertOnEventThread();
|
||||
savedSelection = _selection;
|
||||
SetSelection(new SelectedItemCollection());
|
||||
saved = true;
|
||||
}
|
||||
|
||||
public override void RestoreSavedSelection()
|
||||
{
|
||||
Program.AssertOnEventThread();
|
||||
if (saved)
|
||||
{
|
||||
saved = false;
|
||||
SetSelection(savedSelection);
|
||||
savedSelection = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,9 @@ namespace XenAdmin.Commands
|
||||
|
||||
_host = host;
|
||||
_menuText = _host.Name.EscapeAmpersands();
|
||||
_secondImage = Resources._000_host_0_star;
|
||||
|
||||
//Default or failure case, there is no score/star rating actually, just don't display star
|
||||
_secondImage = null;
|
||||
_menuImage = Resources._000_ServerDisconnected_h32bit_16;
|
||||
_recommendation = recommendation;
|
||||
|
||||
|
@ -60,6 +60,7 @@ namespace XenAdmin.ConsoleView
|
||||
private readonly VNCView parentVNCView;
|
||||
private readonly VM source;
|
||||
private readonly Host targetHost;
|
||||
private VM_guest_metrics guestMetrics = null;
|
||||
private Form fullscreenForm = null;
|
||||
private Form fullscreenHint = null;
|
||||
private Size LastDesktopSize;
|
||||
@ -75,6 +76,8 @@ namespace XenAdmin.ConsoleView
|
||||
|
||||
internal readonly ConsoleKeyHandler KeyHandler = new ConsoleKeyHandler();
|
||||
|
||||
private bool hasRDP { get { return source != null ? source.HasRDP : false; } }
|
||||
|
||||
public VNCTabView(VNCView parent, VM source, string elevatedUsername, string elevatedPassword)
|
||||
{
|
||||
Program.AssertOnEventThread();
|
||||
@ -139,7 +142,7 @@ namespace XenAdmin.ConsoleView
|
||||
this.vncScreen = new XSVNCScreen(source, new EventHandler(RDPorVNCResizeHandler), this, elevatedUsername, elevatedPassword);
|
||||
ShowGpuWarningIfRequired();
|
||||
|
||||
if (source.is_control_domain)
|
||||
if (source.is_control_domain || source.IsHVM && !hasRDP) //Linux HVM guests should only have one console: the console switch button vanishes altogether.
|
||||
{
|
||||
toggleConsoleButton.Visible = false;
|
||||
}
|
||||
@ -250,6 +253,9 @@ namespace XenAdmin.ConsoleView
|
||||
source.PropertyChanged -= new PropertyChangedEventHandler(Server_PropertyChanged);
|
||||
source.Connection.Cache.DeregisterCollectionChanged<VM>(VM_CollectionChangedWithInvoke);
|
||||
|
||||
if (this.guestMetrics != null)
|
||||
this.guestMetrics.PropertyChanged -= guestMetrics_PropertyChanged;
|
||||
|
||||
if (source.is_control_domain)
|
||||
{
|
||||
Host host = source.Connection.Resolve<Host>(source.resident_on);
|
||||
@ -468,6 +474,21 @@ namespace XenAdmin.ConsoleView
|
||||
//The CD device may have changed
|
||||
Program.Invoke(this, setupCD);
|
||||
}
|
||||
else if (e.PropertyName == "guest_metrics")
|
||||
{
|
||||
var newGuestMetrics = source.Connection.Resolve(source.guest_metrics);
|
||||
|
||||
//unsubscribing from the previous instance's event
|
||||
if (this.guestMetrics != null)
|
||||
this.guestMetrics.PropertyChanged -= guestMetrics_PropertyChanged;
|
||||
|
||||
this.guestMetrics = newGuestMetrics;
|
||||
if (this.guestMetrics != null)
|
||||
guestMetrics.PropertyChanged += guestMetrics_PropertyChanged;
|
||||
|
||||
EnableRDPIfCapable();
|
||||
}
|
||||
|
||||
if (source.is_control_domain && e.PropertyName == "name_label")
|
||||
{
|
||||
HostLabel.Text = string.Format(Messages.CONSOLE_HOST, source.AffinityServerString);
|
||||
@ -476,6 +497,40 @@ namespace XenAdmin.ConsoleView
|
||||
}
|
||||
}
|
||||
|
||||
private void guestMetrics_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "other")
|
||||
{
|
||||
EnableRDPIfCapable();
|
||||
}
|
||||
}
|
||||
|
||||
private void EnableRDPIfCapable()
|
||||
{
|
||||
if (!toggleConsoleButton.Visible && hasRDP)
|
||||
{
|
||||
// The toogle button is not visible now, because RDP had not been enabled on the VM when we started the console.
|
||||
// However, the current guest_metrics indicates that RDP is now supported (HasRDP==true). (eg. XenTools has been installed in the meantime.)
|
||||
// This means that now we should show and enable the toogle RDP button and start polling (if allowed) RDP as well.
|
||||
|
||||
log.DebugFormat( "'{0}' console: Enabling RDP button, because RDP capability has appeared.", source);
|
||||
|
||||
if (Properties.Settings.Default.EnableRDPPolling)
|
||||
{
|
||||
log.DebugFormat("'{0}' console: Starting RDP polling. (RDP polling is enabled in settings.)", source);
|
||||
toggleConsoleButton.Visible = true;
|
||||
toggleConsoleButton.Enabled = false;
|
||||
ThreadPool.QueueUserWorkItem(TryToConnectRDP);
|
||||
}
|
||||
else
|
||||
{
|
||||
log.DebugFormat("'{0}' console: Not starting polling. (RDP polling is diabled in settings.)", source);
|
||||
toggleConsoleButton.Visible = true;
|
||||
toggleConsoleButton.Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Server_EnabledPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName != "enabled" || source.is_control_domain)
|
||||
|
@ -86,7 +86,6 @@ namespace XenAdmin.ConsoleView
|
||||
private Timer connectionPoller = null;
|
||||
|
||||
private VM sourceVM = null;
|
||||
private bool sourceIsPV = false;
|
||||
|
||||
private readonly Object hostedConsolesLock = new Object();
|
||||
private List<XenRef<Console>> hostedConsoles = null;
|
||||
@ -119,6 +118,8 @@ namespace XenAdmin.ConsoleView
|
||||
[DefaultValue(false)]
|
||||
public bool UserWantsToSwitchProtocol { get; set; }
|
||||
|
||||
private bool hasRDP { get { return Source != null ? Source.HasRDP : false; } }
|
||||
|
||||
/// <summary>
|
||||
/// Whether we have tried to login without providing a password (covers the case where the user
|
||||
/// has configured VNC not to require a login password). If no password is saved, passwordless
|
||||
@ -286,7 +287,7 @@ namespace XenAdmin.ConsoleView
|
||||
|
||||
private void PollRDPPort(Object Sender)
|
||||
{
|
||||
if (!sourceIsPV && !Properties.Settings.Default.EnableRDPPolling)
|
||||
if (hasRDP && !Properties.Settings.Default.EnableRDPPolling)
|
||||
{
|
||||
if (connectionPoller != null)
|
||||
connectionPoller.Change(Timeout.Infinite, Timeout.Infinite);
|
||||
@ -537,7 +538,7 @@ namespace XenAdmin.ConsoleView
|
||||
if (RemoteConsole != null && RemoteConsole.ConsoleControl != null)
|
||||
{
|
||||
RemoteConsole.KeyHandler = this.KeyHandler;
|
||||
RemoteConsole.SendScanCodes = !this.sourceIsPV;
|
||||
RemoteConsole.SendScanCodes = hasRDP;
|
||||
RemoteConsole.Scaling = Scaling;
|
||||
RemoteConsole.DisplayBorder = this.displayFocusRectangle;
|
||||
SetKeyboardAndMouseCapture(autoCaptureKeyboardAndMouse);
|
||||
@ -654,8 +655,6 @@ namespace XenAdmin.ConsoleView
|
||||
{
|
||||
value.PropertyChanged += new PropertyChangedEventHandler(VM_PropertyChanged);
|
||||
|
||||
sourceIsPV = !value.IsHVM;
|
||||
|
||||
startPolling();
|
||||
|
||||
lock (hostedConsolesLock)
|
||||
@ -692,10 +691,14 @@ namespace XenAdmin.ConsoleView
|
||||
//Start the polling again
|
||||
if (Source != null && !Source.is_control_domain)
|
||||
{
|
||||
connectionPoller =
|
||||
new Timer(
|
||||
sourceIsPV ? (TimerCallback)PollVNCPort : (TimerCallback)PollRDPPort,
|
||||
null, RETRY_SLEEP_TIME, RDP_POLL_INTERVAL);
|
||||
if (!Source.IsHVM)
|
||||
{
|
||||
connectionPoller = new Timer(PollVNCPort, null, RETRY_SLEEP_TIME, RDP_POLL_INTERVAL);
|
||||
}
|
||||
else if (hasRDP)
|
||||
{
|
||||
connectionPoller = new Timer(PollRDPPort, null, RETRY_SLEEP_TIME, RDP_POLL_INTERVAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1006,7 +1009,7 @@ namespace XenAdmin.ConsoleView
|
||||
}
|
||||
else
|
||||
{
|
||||
v.SendScanCodes = UseSource && !sourceIsPV;
|
||||
v.SendScanCodes = UseSource && hasRDP;
|
||||
v.SourceVM = sourceVM;
|
||||
v.Console = console;
|
||||
v.connect(stream, this.vncPassword);
|
||||
|
@ -278,11 +278,15 @@ namespace XenAdmin.Controls.MainWindowControls
|
||||
{
|
||||
if (currentMode == NavigationMode.Notifications)
|
||||
{
|
||||
SelectionManager.SaveAndClearSelection();
|
||||
|
||||
//restore the last selected view
|
||||
SwitchToNotificationsView(lastNotificationsMode);
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectionManager.RestoreSavedSelection();
|
||||
|
||||
//show the navigationView first and then hide the notificationsView
|
||||
//to avoid instantaneous appearance of empty panels
|
||||
navigationView.Visible = true;
|
||||
@ -296,6 +300,7 @@ namespace XenAdmin.Controls.MainWindowControls
|
||||
|
||||
if (navigationView.SelectionManager.Selection.Count < 1)
|
||||
navigationView.SelectObject(null, false);
|
||||
navigationView.ForceTreeViewSelectionsChanged();
|
||||
}
|
||||
|
||||
if (NavigationModeChanged != null)
|
||||
|
@ -306,6 +306,11 @@ namespace XenAdmin.Controls.MainWindowControls
|
||||
treeView.Focus();
|
||||
}
|
||||
|
||||
public void ForceTreeViewSelectionsChanged()
|
||||
{
|
||||
treeView.ForceSelectionsChanged();
|
||||
}
|
||||
|
||||
public void RequestRefreshTreeView()
|
||||
{
|
||||
Program.BeginInvoke(this, treeViewUpdateManager.RequestUpdate);
|
||||
|
@ -455,7 +455,7 @@ namespace XenAdmin.Controls
|
||||
/// <summary>
|
||||
/// Forces the SelectionsChanged event to fire.
|
||||
/// </summary>
|
||||
protected void ForceSelectionsChanged()
|
||||
public void ForceSelectionsChanged()
|
||||
{
|
||||
EventHandler handler = SelectionsChanged;
|
||||
|
||||
|
@ -1052,7 +1052,7 @@ namespace XenAdmin.Controls.Wlb
|
||||
// and this is the first section of report,
|
||||
// change the run button text back to "Run Report",
|
||||
// or disable the run report button and just keep the later report button.
|
||||
if(btnLaterReport.Visible == true)
|
||||
if(btnLaterReport.Visible)
|
||||
{
|
||||
this.btnRunReport.Enabled = false;
|
||||
}
|
||||
@ -1067,12 +1067,17 @@ namespace XenAdmin.Controls.Wlb
|
||||
{
|
||||
this.btnLaterReport.Visible = true;
|
||||
this.btnLaterReport.Enabled = true;
|
||||
if (!this.btnRunReport.Enabled)
|
||||
{
|
||||
this.btnLaterReport.Select();
|
||||
}
|
||||
}
|
||||
else if (_currentReportSection == 1 &&
|
||||
this.btnRunReport.Text == Messages.FETCH_EARLIER_DATA)
|
||||
{
|
||||
this.btnLaterReport.Visible = true;
|
||||
this.btnLaterReport.Enabled = false;
|
||||
this.btnRunReport.Select();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1526,7 +1531,10 @@ namespace XenAdmin.Controls.Wlb
|
||||
|
||||
private void comboBox_SelectionChanged(object sender, EventArgs e)
|
||||
{
|
||||
InitializeAuditReport();
|
||||
if(_isAuditReport)
|
||||
{
|
||||
InitializeAuditReport();
|
||||
}
|
||||
}
|
||||
|
||||
private void InitializeAuditReport()
|
||||
@ -1537,6 +1545,7 @@ namespace XenAdmin.Controls.Wlb
|
||||
_endLine = _lineLimit;
|
||||
_currentReportSection = 0;
|
||||
btnRunReport.Text = Messages.RUN_REPORT;
|
||||
btnRunReport.Enabled = true;
|
||||
btnLaterReport.Visible = false;
|
||||
}
|
||||
|
||||
|
@ -304,7 +304,7 @@
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="labelStartDate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 7</value>
|
||||
<value>3, 7</value>
|
||||
</data>
|
||||
<data name="labelStartDate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>61, 13</value>
|
||||
|
8
XenAdmin/Dialogs/AboutDialog.Designer.cs
generated
8
XenAdmin/Dialogs/AboutDialog.Designer.cs
generated
@ -33,7 +33,6 @@ namespace XenAdmin.Dialogs
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.VersionLabel = new System.Windows.Forms.Label();
|
||||
this.OkButton = new System.Windows.Forms.Button();
|
||||
this.labelMarathonBlurb = new System.Windows.Forms.Label();
|
||||
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
@ -68,11 +67,6 @@ namespace XenAdmin.Dialogs
|
||||
this.OkButton.UseVisualStyleBackColor = true;
|
||||
this.OkButton.Click += new System.EventHandler(this.OkButton_Click);
|
||||
//
|
||||
// labelMarathonBlurb
|
||||
//
|
||||
resources.ApplyResources(this.labelMarathonBlurb, "labelMarathonBlurb");
|
||||
this.labelMarathonBlurb.Name = "labelMarathonBlurb";
|
||||
//
|
||||
// linkLabel1
|
||||
//
|
||||
resources.ApplyResources(this.linkLabel1, "linkLabel1");
|
||||
@ -87,7 +81,6 @@ namespace XenAdmin.Dialogs
|
||||
this.tableLayoutPanel1.Controls.Add(this.OkButton, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.linkLabel1, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelMarathonBlurb, 0, 2);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
//
|
||||
// AboutDialog
|
||||
@ -115,7 +108,6 @@ namespace XenAdmin.Dialogs
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Label VersionLabel;
|
||||
private System.Windows.Forms.Button OkButton;
|
||||
private System.Windows.Forms.Label labelMarathonBlurb;
|
||||
private System.Windows.Forms.LinkLabel linkLabel1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
}
|
||||
|
@ -112,23 +112,23 @@
|
||||
<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>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="label2.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 9pt</value>
|
||||
</data>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>14, 46</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="label2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>14, 3, 14, 5</value>
|
||||
</data>
|
||||
@ -145,7 +145,7 @@
|
||||
<value>label2</value>
|
||||
</data>
|
||||
<data name=">>label2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label2.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
@ -178,7 +178,7 @@
|
||||
<value>pictureBox1</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -214,7 +214,7 @@
|
||||
<value>VersionLabel</value>
|
||||
</data>
|
||||
<data name=">>VersionLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>VersionLabel.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
@ -232,7 +232,7 @@
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="OkButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>336, 118</value>
|
||||
<value>336, 95</value>
|
||||
</data>
|
||||
<data name="OkButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 3, 12, 12</value>
|
||||
@ -250,7 +250,7 @@
|
||||
<value>OkButton</value>
|
||||
</data>
|
||||
<data name=">>OkButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>OkButton.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
@ -258,38 +258,8 @@
|
||||
<data name=">>OkButton.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="labelMarathonBlurb.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="labelMarathonBlurb.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 9pt</value>
|
||||
</data>
|
||||
<data name="labelMarathonBlurb.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>14, 69</value>
|
||||
</data>
|
||||
<data name="labelMarathonBlurb.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>14, 3, 14, 5</value>
|
||||
</data>
|
||||
<data name="labelMarathonBlurb.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>341, 15</value>
|
||||
</data>
|
||||
<data name="labelMarathonBlurb.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name="labelMarathonBlurb.Text" xml:space="preserve">
|
||||
<value>Citrix® XenServer™ High Availability is powered by Marathon®</value>
|
||||
</data>
|
||||
<data name=">>labelMarathonBlurb.Name" xml:space="preserve">
|
||||
<value>labelMarathonBlurb</value>
|
||||
</data>
|
||||
<data name=">>labelMarathonBlurb.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=">>labelMarathonBlurb.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>labelMarathonBlurb.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<data name="linkLabel1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="linkLabel1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -298,7 +268,7 @@
|
||||
<value>Segoe UI, 9pt</value>
|
||||
</data>
|
||||
<data name="linkLabel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>14, 100</value>
|
||||
<value>14, 77</value>
|
||||
</data>
|
||||
<data name="linkLabel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>14, 11, 14, 0</value>
|
||||
@ -316,7 +286,7 @@
|
||||
<value>linkLabel1</value>
|
||||
</data>
|
||||
<data name=">>linkLabel1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>linkLabel1.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
@ -330,6 +300,9 @@
|
||||
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
@ -343,7 +316,7 @@
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>423, 153</value>
|
||||
<value>423, 130</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>19</value>
|
||||
@ -352,7 +325,7 @@
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanel1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanel1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -361,9 +334,9 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="VersionLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="OkButton" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="linkLabel1" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelMarathonBlurb" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="VersionLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="OkButton" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="linkLabel1" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<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">
|
||||
@ -372,8 +345,11 @@
|
||||
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>423, 232</value>
|
||||
<value>423, 208</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 8pt</value>
|
||||
|
@ -112,20 +112,20 @@
|
||||
<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>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="label2.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 9pt</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
@ -148,7 +148,7 @@
|
||||
<value>label2</value>
|
||||
</data>
|
||||
<data name=">>label2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label2.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -181,7 +181,7 @@
|
||||
<value>label1</value>
|
||||
</data>
|
||||
<data name=">>label1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -205,19 +205,19 @@
|
||||
<value>5, 5, 5, 5</value>
|
||||
</data>
|
||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>352, 15</value>
|
||||
<value>308, 15</value>
|
||||
</data>
|
||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>This software includes the following third-party software libraries:</value>
|
||||
<value>This software includes the following third-party software:</value>
|
||||
</data>
|
||||
<data name=">>label3.Name" xml:space="preserve">
|
||||
<value>label3</value>
|
||||
</data>
|
||||
<data name=">>label3.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label3.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -244,7 +244,9 @@
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="textBox1.Text" xml:space="preserve">
|
||||
<value>XML-RPC.NET: Copyright © 2001-2006 Charles Cook.
|
||||
<value>everRun is a registered trademark of Stratus Technologies Bermuda Limited.
|
||||
|
||||
XML-RPC.NET: Copyright © 2001-2006 Charles Cook.
|
||||
|
||||
Log4Net: Developed by The Apache Software Foundation (http://www.apache.org/) as part of the Apache Logging Services project (http://logging.apache.org/log4net/), and released under the Apache software license.
|
||||
To learn more about the Apache software license, please visit http://www.apache.org/licenses/LICENSE-2.0.
|
||||
@ -332,7 +334,7 @@ Unless required by applicable law or agreed to in writing, software distributed
|
||||
<value>textBox1</value>
|
||||
</data>
|
||||
<data name=">>textBox1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>textBox1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -359,7 +361,7 @@ Unless required by applicable law or agreed to in writing, software distributed
|
||||
<value>button1</value>
|
||||
</data>
|
||||
<data name=">>button1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>button1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -367,7 +369,7 @@ Unless required by applicable law or agreed to in writing, software distributed
|
||||
<data name=">>button1.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<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">
|
||||
|
@ -119,25 +119,20 @@ namespace XenAdmin.Dialogs
|
||||
private void checkableDataGridView_RowUpdated(object sender, CheckableDataGridViewRowEventArgs e)
|
||||
{
|
||||
LicenseCheckableDataGridView senderGrid = sender as LicenseCheckableDataGridView;
|
||||
if (senderGrid == null)
|
||||
if (senderGrid == null || e.RowIndex >= senderGrid.Rows.Count || e.RowIndex < 0)
|
||||
return;
|
||||
|
||||
Program.Invoke(this, delegate
|
||||
{
|
||||
if (e.RowIndex >= senderGrid.Rows.Count || e.RowIndex < 0)
|
||||
return;
|
||||
LicenseDataGridViewRow lRow = senderGrid.Rows[e.RowIndex] as LicenseDataGridViewRow;
|
||||
if (lRow == null)
|
||||
return;
|
||||
|
||||
LicenseDataGridViewRow lRow = senderGrid.Rows[e.RowIndex] as LicenseDataGridViewRow;
|
||||
if (lRow == null)
|
||||
return;
|
||||
Controller.SetStatusIcon(e.RowIndex, lRow.RowStatus);
|
||||
|
||||
Controller.SetStatusIcon(e.RowIndex, lRow.RowStatus);
|
||||
if (!e.RefreshGrid && senderGrid.SelectedRows.Count > 0 && senderGrid.SelectedRows[0].Index == e.RowIndex)
|
||||
{
|
||||
Controller.SummariseSelectedRow(checkableDataGridView.GetCheckableRow(e.RowIndex));
|
||||
}
|
||||
|
||||
if (senderGrid.SelectedRows.Count > 0 && senderGrid.SelectedRows[0].Index == e.RowIndex)
|
||||
{
|
||||
Controller.SummariseSelectedRow(checkableDataGridView.GetCheckableRow(e.RowIndex));
|
||||
}
|
||||
});
|
||||
if (e.RefreshGrid)
|
||||
senderGrid.SortAndRefresh();
|
||||
}
|
||||
|
@ -521,7 +521,7 @@ namespace XenAdmin.Dialogs
|
||||
|
||||
public void SelectPoolGpuEditPage()
|
||||
{
|
||||
SelectPage(GpuEditPage);
|
||||
SelectPage(PoolGpuEditPage);
|
||||
}
|
||||
|
||||
public void SelectStorageLinkPage()
|
||||
|
@ -60,42 +60,6 @@ namespace XenAdmin.Dialogs.Wlb
|
||||
this.wlbThresholdsPage,
|
||||
this.wlbMetricWeightingPage,
|
||||
this.wlbHostExclusionPage,
|
||||
this.wlbAdvancedSettingsPage,
|
||||
this.wlbOptimizationModePage,
|
||||
this.wlbAutomationPage,
|
||||
this.wlbThresholdsPage,
|
||||
this.wlbMetricWeightingPage,
|
||||
this.wlbHostExclusionPage,
|
||||
this.wlbAdvancedSettingsPage,
|
||||
this.wlbOptimizationModePage,
|
||||
this.wlbAutomationPage,
|
||||
this.wlbThresholdsPage,
|
||||
this.wlbMetricWeightingPage,
|
||||
this.wlbHostExclusionPage,
|
||||
this.wlbAdvancedSettingsPage,
|
||||
this.wlbOptimizationModePage,
|
||||
this.wlbAutomationPage,
|
||||
this.wlbThresholdsPage,
|
||||
this.wlbMetricWeightingPage,
|
||||
this.wlbHostExclusionPage,
|
||||
this.wlbAdvancedSettingsPage,
|
||||
this.wlbOptimizationModePage,
|
||||
this.wlbAutomationPage,
|
||||
this.wlbThresholdsPage,
|
||||
this.wlbMetricWeightingPage,
|
||||
this.wlbHostExclusionPage,
|
||||
this.wlbAdvancedSettingsPage,
|
||||
this.wlbOptimizationModePage,
|
||||
this.wlbAutomationPage,
|
||||
this.wlbThresholdsPage,
|
||||
this.wlbMetricWeightingPage,
|
||||
this.wlbHostExclusionPage,
|
||||
this.wlbAdvancedSettingsPage,
|
||||
this.wlbOptimizationModePage,
|
||||
this.wlbAutomationPage,
|
||||
this.wlbThresholdsPage,
|
||||
this.wlbMetricWeightingPage,
|
||||
this.wlbHostExclusionPage,
|
||||
this.wlbAdvancedSettingsPage});
|
||||
resources.ApplyResources(this.verticalTabs, "verticalTabs");
|
||||
//
|
||||
@ -167,6 +131,7 @@ namespace XenAdmin.Dialogs.Wlb
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.Name = "WlbConfigurationDialog";
|
||||
this.SizeChanged += new System.EventHandler(this.WlbConfigurationDialog_SizeChanged);
|
||||
this.Controls.SetChildIndex(this.cancelButton, 0);
|
||||
this.Controls.SetChildIndex(this.okButton, 0);
|
||||
this.Controls.SetChildIndex(this.splitContainer, 0);
|
||||
|
@ -215,5 +215,15 @@ namespace XenAdmin.Dialogs.Wlb
|
||||
}
|
||||
}
|
||||
|
||||
private void WlbConfigurationDialog_SizeChanged(object sender, EventArgs e)
|
||||
{
|
||||
// When the size of configuration dialog is changed,
|
||||
// the SplitContainer panels should expand and contract correspondingly.
|
||||
// Originally the dialog height is 750, SplitContainer height is 674,
|
||||
// the difference is 76.
|
||||
// The SplitContainer height must track the change of the dialog height.
|
||||
splitContainer.Height = this.Height - 76;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -331,10 +331,10 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="cancelButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left</value>
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>738, 725</value>
|
||||
<value>738, 682</value>
|
||||
</data>
|
||||
<data name=">>cancelButton.Name" xml:space="preserve">
|
||||
<value>cancelButton</value>
|
||||
@ -349,10 +349,10 @@
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="okButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left</value>
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="okButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>647, 725</value>
|
||||
<value>647, 682</value>
|
||||
</data>
|
||||
<data name=">>okButton.Name" xml:space="preserve">
|
||||
<value>okButton</value>
|
||||
@ -535,7 +535,7 @@
|
||||
<value>96, 96</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>834, 755</value>
|
||||
<value>834, 712</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 8pt</value>
|
||||
|
@ -331,10 +331,10 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="cancelButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left</value>
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>738, 725</value>
|
||||
<value>738, 682</value>
|
||||
</data>
|
||||
<data name=">>cancelButton.Name" xml:space="preserve">
|
||||
<value>cancelButton</value>
|
||||
@ -349,10 +349,10 @@
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="okButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left</value>
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="okButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>647, 725</value>
|
||||
<value>647, 682</value>
|
||||
</data>
|
||||
<data name=">>okButton.Name" xml:space="preserve">
|
||||
<value>okButton</value>
|
||||
@ -535,7 +535,7 @@
|
||||
<value>96, 96</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>834, 755</value>
|
||||
<value>834, 712</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 8pt</value>
|
||||
|
@ -1042,6 +1042,6 @@
|
||||
<value>9901</value>
|
||||
</data>
|
||||
<data name="FileSystemUsageMessageAlert" xml:space="preserve">
|
||||
<value>9854</value>
|
||||
<value>9857</value>
|
||||
</data>
|
||||
</root>
|
Binary file not shown.
@ -434,16 +434,6 @@ namespace XenAdmin
|
||||
{
|
||||
if (meddlingAction == null)
|
||||
SetStatusBar(Properties.Resources._000_error_h32bit_16, action.Exception.Message);
|
||||
|
||||
IXenObject model =
|
||||
(IXenObject)action.VM ??
|
||||
(IXenObject)action.Host ??
|
||||
(IXenObject)action.Pool ??
|
||||
(IXenObject)action.SR;
|
||||
if (model != null)
|
||||
model.InError = true;
|
||||
|
||||
RequestRefreshTreeView();
|
||||
}
|
||||
else if (meddlingAction == null)
|
||||
{
|
||||
@ -1747,10 +1737,45 @@ namespace XenAdmin
|
||||
}
|
||||
else if (objectsView != null)
|
||||
{
|
||||
GroupingTag gt = SelectionManager.Selection.First as GroupingTag
|
||||
?? SelectionManager.Selection.GroupAncestor;
|
||||
//We are in Objects View
|
||||
GroupingTag gt = null;
|
||||
|
||||
SearchPage.Search = Search.SearchForNonVappGroup(gt.Grouping, gt.Parent, gt.Group);
|
||||
if (SelectionManager.Selection.Count == 1)
|
||||
{
|
||||
gt = SelectionManager.Selection.First as GroupingTag
|
||||
?? SelectionManager.Selection[0].GroupAncestor;
|
||||
}
|
||||
else
|
||||
{
|
||||
//If multiple items have been selected we count the number of the grouping tags in the selection
|
||||
var selectedGroups = SelectionManager.Selection.Where(s => s.GroupingTag != null);
|
||||
|
||||
//if exactly one grouping tag has been selected we show the search view for that one tag, but only if all the other items in the selection belong to this group/tag
|
||||
if (selectedGroups.Count() == 1)
|
||||
{
|
||||
var groupingTag = selectedGroups.First().GroupingTag;
|
||||
|
||||
if (SelectionManager.Selection.Where(s => s.GroupingTag == null).All(s => s.GroupAncestor == groupingTag))
|
||||
gt = groupingTag;
|
||||
else
|
||||
gt = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
gt = SelectionManager.Selection.GroupAncestor;
|
||||
}
|
||||
}
|
||||
|
||||
//if there has been a grouping tag determined above we use that
|
||||
//if not we show the search view for the root node
|
||||
if (gt != null)
|
||||
{
|
||||
SearchPage.Search = Search.SearchForNonVappGroup(gt.Grouping, gt.Parent, gt.Group);
|
||||
}
|
||||
else
|
||||
{
|
||||
SearchPage.Search = Search.SearchForNonVappGroup(rootNodeGrouping.Grouping, rootNodeGrouping.Parent, rootNodeGrouping.Group);
|
||||
}
|
||||
}
|
||||
else if (foldersView != null)
|
||||
{
|
||||
@ -1765,7 +1790,19 @@ namespace XenAdmin
|
||||
}
|
||||
else
|
||||
{
|
||||
SearchPage.XenObject = null;
|
||||
// Infrastructure View:
|
||||
// If XenCenter node or a disconnected host is selected, show the default search
|
||||
// Otherwise, find the top-level parent (= pool or standalone server) and show the search restricted to that
|
||||
// In the case of multiselect, if all the selections are within one pool (or standalone server), then show that report.
|
||||
// Otherwise show everything, as on the XenCenter node.
|
||||
var connection = SelectionManager.Selection.GetConnectionOfAllItems(); // null for cross-pool selection
|
||||
if (connection != null)
|
||||
{
|
||||
var pool = Helpers.GetPool(connection);
|
||||
SearchPage.XenObject = pool ?? (IXenObject)Helpers.GetMaster(connection); // pool or standalone server
|
||||
}
|
||||
else
|
||||
SearchPage.XenObject = null;
|
||||
}
|
||||
}
|
||||
else if (t == TabPageHA)
|
||||
@ -2692,12 +2729,7 @@ namespace XenAdmin
|
||||
|
||||
if (eventsPage.Visible)
|
||||
{
|
||||
// Unmark node if user has now seen error in log tab
|
||||
if (SelectionManager.Selection.FirstAsXenObject != null)
|
||||
SelectionManager.Selection.FirstAsXenObject.InError = false;
|
||||
|
||||
eventsPage.RefreshDisplayedEvents();
|
||||
RequestRefreshTreeView();
|
||||
}
|
||||
|
||||
loggedInLabel1.Connection = null;
|
||||
|
@ -501,7 +501,6 @@ namespace XenAdmin
|
||||
_index++;
|
||||
|
||||
IXenObject xenObject = obj as IXenObject;
|
||||
bool error = xenObject != null && xenObject.InError;
|
||||
bool highlighted = _highlightedDragTarget != null && obj != null && _highlightedDragTarget.Equals(obj);
|
||||
|
||||
if (highlighted)
|
||||
@ -510,12 +509,6 @@ namespace XenAdmin
|
||||
result.ForeColor = SystemColors.HighlightText;
|
||||
result.NodeFont = Program.DefaultFont;
|
||||
}
|
||||
else if (error)
|
||||
{
|
||||
result.BackColor = Program.ErrorBackColor;
|
||||
result.ForeColor = Program.ErrorForeColor;
|
||||
result.NodeFont = Program.DefaultFont;
|
||||
}
|
||||
else if (grayed)
|
||||
{
|
||||
result.BackColor = _treeViewBackColor;
|
||||
|
@ -214,7 +214,12 @@ namespace XenAdmin.Plugins
|
||||
{
|
||||
if (File.Exists(resources))
|
||||
{
|
||||
return new ResourceManager(Name, Assembly.LoadFile(resources));
|
||||
// We load this "unsafely" because of CA-144950: the plugin is almost certainly
|
||||
// downloaded from the web and won't install without this. I considered adding
|
||||
// a confirmation step, but as all we do with the resources is to extract some
|
||||
// strings, there is no security implication. (This doesn't affect security
|
||||
// confirmations on programs called by the plugin).
|
||||
return new ResourceManager(Name, Assembly.UnsafeLoadFrom(resources));
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -269,6 +269,7 @@ namespace XenAdmin.SettingsPanels
|
||||
private void HidePoolAuditTrailGranularitySection()
|
||||
{
|
||||
label2.Visible = false;
|
||||
label3.Visible = false;
|
||||
sectionHeaderLabelAuditTrail.Visible = false;
|
||||
labelAuditTrail.Visible = false;
|
||||
auditTrailPanel.Visible = false;
|
||||
|
@ -1615,6 +1615,9 @@
|
||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||
<value>23</value>
|
||||
</data>
|
||||
<data name="label3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
|
@ -1588,6 +1588,36 @@
|
||||
<data name=">>auditTrailPanel.ZOrder" xml:space="preserve">
|
||||
<value>22</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, 489</value>
|
||||
</data>
|
||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>632, 2</value>
|
||||
</data>
|
||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>38</value>
|
||||
</data>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>label3</value>
|
||||
</data>
|
||||
<data name=">>label3.Name" xml:space="preserve">
|
||||
<value>label3</value>
|
||||
</data>
|
||||
<data name=">>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=">>label3.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||
<value>23</value>
|
||||
</data>
|
||||
<data name="label3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
@ -1616,7 +1646,7 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelAuditTrail" Row="21" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelAuditTrail" Row="20" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label2" Row="19" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelRepSub" Row="16" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelHistData" Row="13" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelOptAgr" Row="10" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelOptAgr" Row="11" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelHistData" Row="14" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelRecSev" Row="7" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelRepSub" Row="17" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelVmMigInt" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelVmMigInt" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelRecSev" Row="8" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelVmMigInt" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelRecCnt" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelRecCnt" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelRecCnt" Row="6" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelRecSev" Row="9" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelOptAgr" Row="12" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelHistData" Row="15" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelRepSub" Row="18" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="auditTrailPanel" Row="22" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /></TableLayoutSettings></value>
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelAuditTrail" Row="23" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelAuditTrail" Row="22" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label2" Row="21" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelRepSub" Row="16" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelHistData" Row="13" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelOptAgr" Row="10" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelOptAgr" Row="11" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelHistData" Row="14" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelRecSev" Row="7" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelRepSub" Row="17" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelVmMigInt" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelVmMigInt" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelRecSev" Row="8" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelVmMigInt" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="sectionHeaderLabelRecCnt" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelRecCnt" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelRecCnt" Row="6" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelRecSev" Row="9" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelOptAgr" Row="12" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelHistData" Row="15" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelRepSub" Row="18" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="auditTrailPanel" Row="24" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label3" Row="20" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,10,Absolute,10,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
|
@ -81,6 +81,10 @@ namespace XenAdmin.SettingsPanels
|
||||
trackbarNetWritePriority.Value = GetSafeTrackbarValue(trackbarNetWritePriority, _poolConfiguration.VmNetworkWriteWeightHigh / TRACKBAR_INTERVAL);
|
||||
trackbarDiskReadPriority.Value = GetSafeTrackbarValue(trackbarDiskReadPriority, _poolConfiguration.VmDiskReadWeightHigh / TRACKBAR_INTERVAL);
|
||||
trackbarDiskWritePriority.Value = GetSafeTrackbarValue(trackbarDiskWritePriority, _poolConfiguration.VmDiskWriteWeightHigh / TRACKBAR_INTERVAL);
|
||||
//CA-134554 - Hide Disk Read/Write until the backend server side is ready
|
||||
trackbarDiskReadPriority.Visible = false;
|
||||
trackbarDiskWritePriority.Visible = false;
|
||||
|
||||
_loading = false; ;
|
||||
}
|
||||
|
||||
|
@ -222,6 +222,9 @@
|
||||
<data name="label11.Text" xml:space="preserve">
|
||||
<value>ディスク書き込み(&W)</value>
|
||||
</data>
|
||||
<data name="label11.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>label11.Name" xml:space="preserve">
|
||||
<value>label11</value>
|
||||
</data>
|
||||
@ -255,6 +258,9 @@
|
||||
<data name="label10.Text" xml:space="preserve">
|
||||
<value>ディスク読み取り(&D)</value>
|
||||
</data>
|
||||
<data name="label10.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>label10.Name" xml:space="preserve">
|
||||
<value>label10</value>
|
||||
</data>
|
||||
|
@ -225,6 +225,9 @@
|
||||
<data name=">>label11.Name" xml:space="preserve">
|
||||
<value>label11</value>
|
||||
</data>
|
||||
<data name="label11.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>label11.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@ -258,6 +261,9 @@
|
||||
<data name=">>label10.Name" xml:space="preserve">
|
||||
<value>label10</value>
|
||||
</data>
|
||||
<data name="label10.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>label10.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@ -565,7 +571,7 @@
|
||||
<value>6, 46</value>
|
||||
</data>
|
||||
<data name="decentGroupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>578, 266</value>
|
||||
<value>578, 196</value>
|
||||
</data>
|
||||
<data name="decentGroupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>32</value>
|
||||
|
@ -222,6 +222,9 @@
|
||||
<data name="label11.Text" xml:space="preserve">
|
||||
<value>磁盘写入(&W)</value>
|
||||
</data>
|
||||
<data name="label11.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>label11.Name" xml:space="preserve">
|
||||
<value>label11</value>
|
||||
</data>
|
||||
@ -255,6 +258,9 @@
|
||||
<data name="label10.Text" xml:space="preserve">
|
||||
<value>磁盘读取(&D)</value>
|
||||
</data>
|
||||
<data name="label10.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>label10.Name" xml:space="preserve">
|
||||
<value>label10</value>
|
||||
</data>
|
||||
|
@ -34,6 +34,10 @@ namespace XenAdmin.SettingsPanels
|
||||
this.decentGroupBox1 = new XenAdmin.Controls.DecentGroupBox();
|
||||
this.label1DiskWrite = new System.Windows.Forms.Label();
|
||||
this.labelDiskRead = new System.Windows.Forms.Label();
|
||||
//CA-134554 - Hide Disk Read/Write until the backend server side is ready
|
||||
this.label1DiskWrite.Visible = false;
|
||||
this.labelDiskRead.Visible = false;
|
||||
|
||||
this.labelNetworkWrite = new System.Windows.Forms.Label();
|
||||
this.labelNetworkRead = new System.Windows.Forms.Label();
|
||||
this.labelFreeMemory = new System.Windows.Forms.Label();
|
||||
|
@ -87,6 +87,12 @@ namespace XenAdmin.SettingsPanels
|
||||
labelNetworkReadUnits.Text = string.Format(labelNetworkReadUnits.Text, updownNetworkReadCriticalPoint.Minimum, updownNetworkReadCriticalPoint.Maximum);
|
||||
labelNetworkWriteUnits.Text = string.Format(labelNetworkWriteUnits.Text, updownNetworkWriteCriticalPoint.Minimum, updownNetworkWriteCriticalPoint.Maximum);
|
||||
|
||||
//CA-134554 - Hide Disk Read/Write until the backend server side is ready
|
||||
updownDiskReadCriticalPoint.Visible = false;
|
||||
updownDiskWriteCriticalPoint.Visible = false;
|
||||
labelDiskReadUnits.Visible = false;
|
||||
labelDiskWriteUnits.Visible = false;
|
||||
|
||||
_loading = false; ;
|
||||
}
|
||||
|
||||
|
4
XenAdmin/TabPages/AlertSummaryPage.Designer.cs
generated
4
XenAdmin/TabPages/AlertSummaryPage.Designer.cs
generated
@ -322,13 +322,13 @@ namespace XenAdmin.TabPages
|
||||
private System.Windows.Forms.ToolStripSplitButton toolStripSplitButtonDismiss;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiDismissAll;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiDismissSelected;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
||||
private System.Windows.Forms.DataGridViewImageColumn ColumnExpand;
|
||||
private System.Windows.Forms.DataGridViewImageColumn ColumnSeverity;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnMessage;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnLocation;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnDate;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnActions;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
||||
}
|
||||
}
|
@ -229,10 +229,10 @@
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="toolStripDropDownButtonServerFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 23</value>
|
||||
<value>97, 23</value>
|
||||
</data>
|
||||
<data name="toolStripDropDownButtonServerFilter.Text" xml:space="preserve">
|
||||
<value>Filter by Lo&cation</value>
|
||||
<value>Filter by S&erver</value>
|
||||
</data>
|
||||
<data name="toolStripDropDownButtonDateFilter.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 9pt</value>
|
||||
@ -454,7 +454,7 @@
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="ColumnLocation.HeaderText" xml:space="preserve">
|
||||
<value>Location</value>
|
||||
<value>Server / Pool</value>
|
||||
</data>
|
||||
<data name="ColumnLocation.MinimumWidth" type="System.Int32, mscorlib">
|
||||
<value>30</value>
|
||||
|
@ -152,6 +152,9 @@ namespace XenAdmin.TabPages
|
||||
{
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
return;
|
||||
|
||||
SetupAnStartLicenseStatus(value);
|
||||
if (xenObject != value)
|
||||
{
|
||||
|
12
XenAdmin/TabPages/HistoryPage.Designer.cs
generated
12
XenAdmin/TabPages/HistoryPage.Designer.cs
generated
@ -238,17 +238,17 @@ namespace XenAdmin.TabPages
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiDismissAll;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiDismissSelected;
|
||||
private XenAdmin.Controls.DataGridViewEx.DataGridViewEx dataGridView;
|
||||
private System.Windows.Forms.DataGridViewImageColumn columnExpander;
|
||||
private System.Windows.Forms.DataGridViewImageColumn columnStatus;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnMessage;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnLocation;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnDate;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnActions;
|
||||
private XenAdmin.Controls.FilterStatusToolStripDropDownButton toolStripDdbFilterStatus;
|
||||
private XenAdmin.Controls.FilterLocationToolStripDropDownButton toolStripDdbFilterLocation;
|
||||
private XenAdmin.Controls.FilterDatesToolStripDropDownButton toolStripDdbFilterDates;
|
||||
private System.Windows.Forms.ToolStripLabel toolStripLabelFiltersOnOff;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||
private System.Windows.Forms.DataGridViewImageColumn columnExpander;
|
||||
private System.Windows.Forms.DataGridViewImageColumn columnStatus;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnMessage;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnLocation;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnDate;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn columnActions;
|
||||
}
|
||||
}
|
||||
|
@ -142,10 +142,10 @@
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="toolStripDdbFilterLocation.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 23</value>
|
||||
<value>97, 23</value>
|
||||
</data>
|
||||
<data name="toolStripDdbFilterLocation.Text" xml:space="preserve">
|
||||
<value>Filter by Lo&cation</value>
|
||||
<value>Filter by S&erver</value>
|
||||
</data>
|
||||
<data name="toolStripDdbFilterDates.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
@ -290,7 +290,7 @@
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="columnLocation.HeaderText" xml:space="preserve">
|
||||
<value>Location</value>
|
||||
<value>Server / Pool</value>
|
||||
</data>
|
||||
<data name="columnLocation.MinimumWidth" type="System.Int32, mscorlib">
|
||||
<value>30</value>
|
||||
|
@ -247,10 +247,10 @@
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="toolStripDropDownButtonServerFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 23</value>
|
||||
<value>97, 23</value>
|
||||
</data>
|
||||
<data name="toolStripDropDownButtonServerFilter.Text" xml:space="preserve">
|
||||
<value>Filter by Lo&cation</value>
|
||||
<value>Filter by S&erver</value>
|
||||
</data>
|
||||
<data name="toolStripDropDownButtonDateFilter.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 9pt</value>
|
||||
@ -507,7 +507,7 @@
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="ColumnLocation.HeaderText" xml:space="preserve">
|
||||
<value>Location</value>
|
||||
<value>Server / Pool</value>
|
||||
</data>
|
||||
<data name="ColumnLocation.MinimumWidth" type="System.Int32, mscorlib">
|
||||
<value>95</value>
|
||||
|
@ -206,7 +206,7 @@ namespace XenAdmin.Wizards.NewVMWizard
|
||||
page_7_Networking.SelectedTemplate = selectedTemplate;
|
||||
|
||||
RemovePage(pageVgpu);
|
||||
if (vgpuCapability && selectedTemplate.IsHVM)
|
||||
if (vgpuCapability && selectedTemplate.CanHaveVGpu)
|
||||
AddAfterPage(page_5_CpuMem, pageVgpu);
|
||||
|
||||
RemovePage(page_1b_BiosLocking);
|
||||
|
@ -34,6 +34,7 @@ using XenAdmin.Core;
|
||||
using XenAdmin.TabPages;
|
||||
using System.Windows.Forms;
|
||||
using XenAdmin.Wizards;
|
||||
using XenAdmin.Wizards.NewNetworkWizard_Pages;
|
||||
|
||||
namespace XenAdminTests
|
||||
{
|
||||
@ -56,5 +57,26 @@ namespace XenAdminTests
|
||||
return GetBaseClassField<Button>("buttonNext");
|
||||
}
|
||||
}
|
||||
|
||||
public RadioButton SSPNButton
|
||||
{
|
||||
get
|
||||
{
|
||||
var page = new NetWTypeSelectWrapper(GetField<NetWTypeSelect>("pageNetworkType"));
|
||||
return page.SSPNButton;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class NetWTypeSelectWrapper : TestWrapper<NetWTypeSelect>
|
||||
{
|
||||
public NetWTypeSelectWrapper(NetWTypeSelect item)
|
||||
: base(item)
|
||||
{ }
|
||||
|
||||
public RadioButton SSPNButton
|
||||
{
|
||||
get { return GetField<RadioButton>("rbtnInternalNetwork"); }
|
||||
}
|
||||
}
|
||||
}
|
@ -70,6 +70,7 @@ namespace XenAdminTests.TabsAndMenus
|
||||
MainWindowWrapper.NetworkPage.AddNetworkButton.PerformClick,
|
||||
w =>
|
||||
{
|
||||
w.SSPNButton.PerformClick();
|
||||
w.NextButton.PerformClick();
|
||||
w.NextButton.PerformClick();
|
||||
w.NextButton.PerformClick();
|
||||
|
@ -51,6 +51,8 @@ namespace XenAdmin.Actions
|
||||
private readonly string _licenseServerAddress;
|
||||
private readonly string _licenseServerPort;
|
||||
|
||||
public List<LicenseFailure> LicenseFailures { get; private set; }
|
||||
|
||||
protected readonly Action<List<LicenseFailure>, string> DoOnLicensingFailure;
|
||||
|
||||
/// <summary>
|
||||
@ -65,6 +67,7 @@ namespace XenAdmin.Actions
|
||||
Action<List<LicenseFailure>, string> DoOnLicensingFailure)
|
||||
: base(null, Messages.LICENSE_UPDATING_LICENSES)
|
||||
{
|
||||
LicenseFailures = new List<LicenseFailure>();
|
||||
Util.ThrowIfEnumerableParameterNullOrEmpty(xos, "xenobjects");
|
||||
|
||||
_edition = edition;
|
||||
@ -90,8 +93,6 @@ namespace XenAdmin.Actions
|
||||
|
||||
protected override void Run()
|
||||
{
|
||||
List<LicenseFailure> licenseFailures = new List<LicenseFailure>();
|
||||
|
||||
// PR-1102: hosts that have been updated, plus the previous edition information - this data will be sent to the licensing server
|
||||
Dictionary<Host, LicensingHelper.LicenseDataStruct> updatedHosts = new Dictionary<Host, LicensingHelper.LicenseDataStruct>();
|
||||
|
||||
@ -219,7 +220,7 @@ namespace XenAdmin.Actions
|
||||
}
|
||||
}
|
||||
|
||||
licenseFailures.Add(new LicenseFailure(host, alertText ?? e.Message));
|
||||
LicenseFailures.Add(new LicenseFailure(host, alertText ?? e.Message));
|
||||
|
||||
if (pool != null)
|
||||
pool.Connection.Cache.Hosts.ToList().ForEach(h => SetLicenseServer(h, previousLicenseServerAddress, previousLicenseServerPort));
|
||||
@ -238,12 +239,12 @@ namespace XenAdmin.Actions
|
||||
LicensingHelper.SendLicenseEditionData(updatedHosts, Host.GetEditionText(_edition));
|
||||
}
|
||||
|
||||
if (licenseFailures.Count > 0)
|
||||
if (LicenseFailures.Count > 0)
|
||||
{
|
||||
string exceptionText = licenseFailures.Count == 1 ? string.Format(Messages.LICENSE_ERROR_1, licenseFailures[0].Host.Name) : string.Format(Messages.LICENSE_ERROR_MANY, licenseFailures.Count, new List<IXenObject>(xos).Count);
|
||||
string exceptionText = LicenseFailures.Count == 1 ? string.Format(Messages.LICENSE_ERROR_1, LicenseFailures[0].Host.Name) : string.Format(Messages.LICENSE_ERROR_MANY, LicenseFailures.Count, new List<IXenObject>(xos).Count);
|
||||
|
||||
if (DoOnLicensingFailure != null)
|
||||
DoOnLicensingFailure(licenseFailures, exceptionText);
|
||||
DoOnLicensingFailure(LicenseFailures, exceptionText);
|
||||
throw new InvalidOperationException(exceptionText);
|
||||
}
|
||||
}
|
||||
|
@ -163,11 +163,21 @@ namespace XenAdmin.Actions
|
||||
{
|
||||
// Destroy secret after the SR creation is complete. This is safe
|
||||
// since all PBDs will have duplicated the secret (CA-113396).
|
||||
if (!string.IsNullOrEmpty(secretuuid) && Helpers.CreedenceOrGreater(Connection))
|
||||
//
|
||||
// We do this on a best-effort basis because some types of errors
|
||||
// mean the secret was never actually created, so the operation will
|
||||
// fail, masking any earlier error (CA-145254), or causing a successful
|
||||
// SR.create to be reported as an error. The worst that can happen is
|
||||
// that an unused secret will be left lying around without warning.
|
||||
try
|
||||
{
|
||||
string opaqref = Secret.get_by_uuid(Session, secretuuid);
|
||||
Secret.destroy(Session, opaqref);
|
||||
if (!string.IsNullOrEmpty(secretuuid) && Helpers.CreedenceOrGreater(Connection))
|
||||
{
|
||||
string opaqref = Secret.get_by_uuid(Session, secretuuid);
|
||||
Secret.destroy(Session, opaqref);
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
log.Debug("Checking that SR.create() actually succeeded");
|
||||
|
11
XenModel/Messages.Designer.cs
generated
11
XenModel/Messages.Designer.cs
generated
@ -1,7 +1,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34209
|
||||
// Runtime Version:4.0.30319.18444
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
@ -13313,7 +13313,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to fetch earlier data.
|
||||
/// Looks up a localized string similar to &Next Section.
|
||||
/// </summary>
|
||||
public static string FETCH_EARLIER_DATA {
|
||||
get {
|
||||
@ -26900,7 +26900,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to run report.
|
||||
/// Looks up a localized string similar to &Run Report.
|
||||
/// </summary>
|
||||
public static string RUN_REPORT {
|
||||
get {
|
||||
@ -27143,7 +27143,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to {0}: All Servers, VMs, Custom Templates & Remote SRs.
|
||||
/// Looks up a localized string similar to {0}: Overview.
|
||||
/// </summary>
|
||||
public static string SEARCH_TITLE_HOST {
|
||||
get {
|
||||
@ -27161,7 +27161,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to {0}: All Servers, VMs, Custom Templates & Remote SRs.
|
||||
/// Looks up a localized string similar to {0}: Overview.
|
||||
/// </summary>
|
||||
public static string SEARCH_TITLE_POOL {
|
||||
get {
|
||||
@ -35470,6 +35470,5 @@ namespace XenAdmin {
|
||||
return ResourceManager.GetString("YOU_ARE_HERE", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -9444,13 +9444,13 @@ Upgrading VMs using StorageLink Gateway to XenServer 6.0 is only supported if th
|
||||
<value>Search...</value>
|
||||
</data>
|
||||
<data name="SEARCH_TITLE_HOST" xml:space="preserve">
|
||||
<value>{0}: All Servers, VMs, Custom Templates & Remote SRs</value>
|
||||
<value>{0}: Overview</value>
|
||||
</data>
|
||||
<data name="SEARCH_TITLE_OVERVIEW" xml:space="preserve">
|
||||
<value>All Servers, VMs, Custom Templates & Remote SRs</value>
|
||||
</data>
|
||||
<data name="SEARCH_TITLE_POOL" xml:space="preserve">
|
||||
<value>{0}: All Servers, VMs, Custom Templates & Remote SRs</value>
|
||||
<value>{0}: Overview</value>
|
||||
</data>
|
||||
<data name="SECRET_ACCESS_KEY_LABLE" xml:space="preserve">
|
||||
<value>&Secret access key:</value>
|
||||
|
@ -44,9 +44,6 @@ namespace XenAPI
|
||||
|
||||
string Name { get; }
|
||||
|
||||
bool InError { get; set; }
|
||||
|
||||
|
||||
IXenConnection Connection { get; set; }
|
||||
|
||||
bool Locked { get; set; }
|
||||
|
@ -223,13 +223,16 @@ namespace XenAPI
|
||||
/// <param name="validRoleList">The list of roles which can perform all the methods</param>
|
||||
public static bool CanPerform(RbacMethodList apiMethodsToRoleCheck, IXenConnection connection, out List<Role> validRoleList, bool debug)
|
||||
{
|
||||
validRoleList = ValidRoleList(apiMethodsToRoleCheck, connection, debug);
|
||||
if (!connection.IsConnected)
|
||||
{
|
||||
validRoleList = new List<Role>();
|
||||
return false;
|
||||
}
|
||||
else
|
||||
validRoleList = ValidRoleList(apiMethodsToRoleCheck, connection, debug);
|
||||
|
||||
if (Helpers.MidnightRideOrGreater(connection))
|
||||
{
|
||||
if (!connection.IsConnected)
|
||||
return false;
|
||||
|
||||
if (connection.Session.IsLocalSuperuser)
|
||||
return true;
|
||||
|
||||
|
@ -55,6 +55,7 @@ namespace XenAPI
|
||||
// [["0/ip", <IPv4 address>], ["0/ipv6/0", <IPv6 address>], ["0/ipv6/1", <IPv6 address>]]
|
||||
List<string> addresses = (from network in vmGuestMetrics.networks
|
||||
where network.Key.StartsWith(String.Format("{0}/ip", this.device))
|
||||
orderby network.Key
|
||||
select network.Value).ToList();
|
||||
|
||||
if (addresses.Count > 0)
|
||||
|
@ -57,7 +57,7 @@ namespace XenAPI
|
||||
// or different XenServer versions.
|
||||
private const int DEFAULT_NUM_VCPUS_ALLOWED = 16;
|
||||
private const int DEFAULT_NUM_VIFS_ALLOWED = 7;
|
||||
private const int DEFAULT_NUM_VBDS_ALLOWED = 7;
|
||||
private const int DEFAULT_NUM_VBDS_ALLOWED = 16;
|
||||
public const long DEFAULT_MEM_ALLOWED = 128 * Util.BINARY_GIGA;
|
||||
public const int DEFAULT_CORES_PER_SOCKET = 1;
|
||||
private SnapshotsView _snapshotView = SnapshotsView.None;
|
||||
@ -419,6 +419,51 @@ namespace XenAPI
|
||||
get { return HVM_boot_policy != ""; }
|
||||
}
|
||||
|
||||
public bool HasRDP
|
||||
{
|
||||
get
|
||||
{
|
||||
var metrics = Connection.Resolve(this.guest_metrics);
|
||||
if (metrics == null)
|
||||
return false;
|
||||
|
||||
return 0 != IntKey(metrics.other, "feature-ts", 0);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Returns true if
|
||||
/// 1) the guest is HVM and
|
||||
/// 2a) the allow-gpu-passthrough restriction is absent or
|
||||
/// 2b) the allow-gpu-passthrough restriction is non-zero
|
||||
///</summary>
|
||||
public bool CanHaveVGpu
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!IsHVM)
|
||||
return false;
|
||||
|
||||
XmlDocument xd = GetRecommendations();
|
||||
|
||||
if (xd == null)
|
||||
return true;
|
||||
|
||||
try
|
||||
{
|
||||
XmlNode xn = xd.SelectSingleNode(@"restrictions/restriction[@field='allow-gpu-passthrough']");
|
||||
if (xn == null)
|
||||
return true;
|
||||
|
||||
return
|
||||
Convert.ToInt32(xn.Attributes["value"].Value) != 0;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void set_other_config(string key, string value)
|
||||
{
|
||||
Dictionary<string, string> new_other_config =
|
||||
|
@ -100,7 +100,6 @@ namespace XenAPI
|
||||
IXenObject result = (IXenObject)MemberwiseClone();
|
||||
result.ClearEventListeners();
|
||||
result.Locked = false;
|
||||
result.InError = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -264,17 +263,9 @@ namespace XenAPI
|
||||
return s != null && int.TryParse(s, out result) ? result : def;
|
||||
}
|
||||
|
||||
private bool in_error;
|
||||
|
||||
public virtual string Name
|
||||
{
|
||||
get { return ""; }
|
||||
}
|
||||
|
||||
public bool InError
|
||||
{
|
||||
get { return in_error; }
|
||||
set { in_error = value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -271,7 +271,7 @@ namespace XenAdmin.XenSearch
|
||||
|
||||
public int CompareTo(Search other)
|
||||
{
|
||||
int i = -DefaultSearch.CompareTo(other.DefaultSearch);
|
||||
int i = DefaultSearch.CompareTo(other.DefaultSearch);
|
||||
if (i == 0)
|
||||
return Name.CompareTo(other.Name);
|
||||
|
||||
|
@ -491,6 +491,7 @@ namespace XenOvfTransport
|
||||
args.Add("vdi_uuid", vdiuuid);
|
||||
args.Add("transfer_mode", "ISCSI");
|
||||
args.Add("read_only", read_only ? "true" : "false");
|
||||
args.Add("timeout_minutes", "1");
|
||||
|
||||
//Transfer VM IP settings
|
||||
foreach (var kvp in m_networkArgs)
|
||||
|
@ -34,11 +34,11 @@
|
||||
<schema version="2.3.121.0" generator="dotNetInstaller InstallerEditor" />
|
||||
<fileattributes><fileattribute name="CompanyName" value="Citrix Systems, Inc." /><fileattribute name="FileDescription" value="Citrix XenCenter Installer" /><fileattribute name="ProductName" value="Citrix XenCenter" /><fileattribute name="LegalCopyright" /><fileattribute name="LegalTrademarks" /><fileattribute name="ProductVersion" value="." /><fileattribute name="FileVersion" value="." /></fileattributes>
|
||||
<configuration dialog_caption="Citrix XenCenter Installer" dialog_message="In order to install Citrix XenCenter you must first install these components:" dialog_message_uninstall="" dialog_bitmap="#APPPATH\banner.bmp" skip_caption="Skip" install_caption="Install" uninstall_caption="Uninstall" cancel_caption="Close" status_installed=" (Installed)" status_notinstalled="" failed_exec_command_continue="" installation_completed="Citrix XenCenter installed successfully!" uninstallation_completed="Citrix XenCenter uninstalled successfully!" installation_none="Citrix XenCenter is already installed!" uninstallation_none="Citrix XenCenter is not installed!" installing_component_wait="Installing %s. Wait, this operation could take some time ..." uninstalling_component_wait="Uninstalling %s. Wait, this operation could take some time ..." reboot_required="To continue the installation you must restart your computer. Restart now?" must_reboot_required="False" dialog_otherinfo_caption="" dialog_otherinfo_link="" complete_command="" complete_command_silent="" complete_command_basic="" wait_for_complete_command="True" prompt_for_optional_components="False" auto_close_if_installed="True" auto_close_on_error="False" reload_on_error="False" dialog_show_installed="False" dialog_show_uninstalled="False" dialog_show_required="False" cab_dialog_message="%s" cab_cancelled_message="" cab_dialog_caption="" cab_path="#TEMPPATH\#GUID" cab_path_autodelete="False" dialog_default_button="cancel" dialog_position="" dialog_components_list_position="" dialog_message_position="" dialog_bitmap_position="" dialog_otherinfo_link_position="" dialog_osinfo_position="" dialog_install_button_position="" dialog_cancel_button_position="" dialog_skip_button_position="" auto_start="True" auto_continue_on_reboot="False" reboot_cmd="" show_progress_dialog="False" show_cab_dialog="False" disable_wow64_fs_redirection="False" administrator_required="False" administrator_required_message="Citrix XenCenter installation requires administration rights." type="install" lcid_filter="" language_id="" language="" os_filter="" os_filter_min="" os_filter_max="" processor_architecture_filter="" supports_install="True" supports_uninstall="True">
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" "/norestart "" command_silent="" command_basic="" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" command_silent=""#CABPATH\dotNetFx40_Full_setup.exe" /passive /norestart" command_basic=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="dotNetFx" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
|
||||
<embedfile sourcefilepath="dotNetFx40_Full_setup.exe" targetfilepath="" />
|
||||
</component>
|
||||
<component package="#CABPATH\xencenter.msi" cmdparameters="" cmdparameters_silent="/qf" cmdparameters_basic="/qf" uninstall_package="" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qf" uninstall_cmdparameters_basic="/qb-" disable_wow64_fs_redirection="False" id="XenCenter" display_name="Citrix XenCenter" uninstall_display_name="" os_filter="" os_filter_min="" os_filter_max="" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="True" selected_install="True" selected_uninstall="True" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="True" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<component package="#CABPATH\xencenter.msi" cmdparameters=" " cmdparameters_silent="/passive" cmdparameters_basic=" " uninstall_package="" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qf" uninstall_cmdparameters_basic="/qb-" disable_wow64_fs_redirection="False" id="XenCenter" display_name="Citrix XenCenter" uninstall_display_name="" os_filter="" os_filter_min="" os_filter_max="" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="True" selected_install="True" selected_uninstall="True" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="True" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<embedfile sourcefilepath="XenCenter.msi" targetfilepath="" />
|
||||
</component>
|
||||
</configuration>
|
||||
|
@ -35,27 +35,27 @@
|
||||
<fileattributes><fileattribute name="CompanyName" value="Citrix Systems, Inc." /><fileattribute name="FileDescription" value="Citrix XenCenter Installer" /><fileattribute name="ProductName" value="Citrix XenCenter" /><fileattribute name="LegalCopyright" /><fileattribute name="LegalTrademarks" /><fileattribute name="ProductVersion" value="." /><fileattribute name="FileVersion" value="." /></fileattributes>
|
||||
<configuration dialog_caption="Citrix XenCenter Installer" dialog_message="In order to install Citrix XenCenter you must first install these components:" dialog_message_uninstall="" dialog_bitmap="#APPPATH\banner.bmp" skip_caption="Skip" install_caption="Install" uninstall_caption="Uninstall" cancel_caption="Close" status_installed=" (Installed)" status_notinstalled="" failed_exec_command_continue="" installation_completed="Citrix XenCenter installed successfully!" uninstallation_completed="Citrix XenCenter uninstalled successfully!" installation_none="Citrix XenCenter is already installed!" uninstallation_none="Citrix XenCenter is not installed!" installing_component_wait="Installing %s. Wait, this operation could take some time ..." uninstalling_component_wait="Uninstalling %s. Wait, this operation could take some time ..." reboot_required="To continue the installation you must restart your computer. Restart now?" must_reboot_required="False" dialog_otherinfo_caption="" dialog_otherinfo_link="" complete_command="" complete_command_silent="" complete_command_basic="" wait_for_complete_command="True" prompt_for_optional_components="False" auto_close_if_installed="True" auto_close_on_error="False" reload_on_error="False" dialog_show_installed="False" dialog_show_uninstalled="False" dialog_show_required="False" cab_dialog_message="%s" cab_cancelled_message="" cab_dialog_caption="" cab_path="#TEMPPATH\#GUID" cab_path_autodelete="False" dialog_default_button="cancel" dialog_position="" dialog_components_list_position="" dialog_message_position="" dialog_bitmap_position="" dialog_otherinfo_link_position="" dialog_osinfo_position="" dialog_install_button_position="" dialog_cancel_button_position="" dialog_skip_button_position="" auto_start="True" auto_continue_on_reboot="False" reboot_cmd="" show_progress_dialog="False" show_cab_dialog="False" disable_wow64_fs_redirection="False" administrator_required="False" administrator_required_message="Citrix XenCenter installation requires administration rights." type="install" lcid_filter="" language_id="" language="" os_filter="" os_filter_min="" os_filter_max="" processor_architecture_filter="" supports_install="True" supports_uninstall="True">
|
||||
<!-- ja-jp -->
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" "/norestart "" command_silent="" command_basic="" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="1041" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" command_silent=""#CABPATH\dotNetFx40_Full_setup.exe" /passive /norestart" command_basic=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="1041" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
|
||||
<embedfile sourcefilepath="dotNetFx40_Full_setup.exe" targetfilepath="" />
|
||||
</component>
|
||||
<!-- zh-cn -->
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" "/norestart "" command_silent="" command_basic="" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="2052" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" command_silent=""#CABPATH\dotNetFx40_Full_setup.exe" /passive /norestart" command_basic=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="2052" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
|
||||
<embedfile sourcefilepath="dotNetFx40_Full_setup.exe" targetfilepath="" />
|
||||
</component>
|
||||
<!-- zh-tw -->
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" "/norestart "" command_silent="" command_basic="" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="1028" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" command_silent=""#CABPATH\dotNetFx40_Full_setup.exe" /passive /norestart" command_basic=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="1028" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
|
||||
<embedfile sourcefilepath="dotNetFx40_Full_setup.exe" targetfilepath="" />
|
||||
</component>
|
||||
<!-- all others: en -->
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" "/norestart "" command_silent="" command_basic="" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="!1041,!2052,!1028" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<component command=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" command_silent=""#CABPATH\dotNetFx40_Full_setup.exe" /passive /norestart" command_basic=""#CABPATH\dotNetFx40_Full_setup.exe" /norestart" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="0" returncodes_reboot="3010" hide_window="False" disable_wow64_fs_redirection="False" execution_method="CreateProcess" id="Microsoft .NET Framework 4.0 - Full" display_name="Microsoft .NET Framework 4.0" uninstall_display_name="" os_filter="" os_filter_min="winXPsp3" os_filter_max="" os_filter_lcid="!1041,!2052,!1028" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="There was an error downloading or installing prerequisite %s. 

Please make sure that the internet is available or install Microsoft .Net Framework 4 manually." allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="English - WebSetup - .NET Framework 4.0 - Full for all operating system since Windows XP SP3 (Install check)" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="False">
|
||||
<installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
|
||||
<embedfile sourcefilepath="dotNetFx40_Full_setup.exe" targetfilepath="" />
|
||||
</component>
|
||||
<!-- XenCenter msi -->
|
||||
<component package="#CABPATH\XenCenter.msi" cmdparameters="" cmdparameters_silent="/qf" cmdparameters_basic="/qf" uninstall_package="" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qf" uninstall_cmdparameters_basic="/qb-" disable_wow64_fs_redirection="False" id="XenCenter" display_name="Citrix XenCenter" uninstall_display_name="" os_filter="" os_filter_min="" os_filter_max="" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="True" selected_install="True" selected_uninstall="True" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="True" show_progress_dialog="True" show_cab_dialog="True">
|
||||
<component package="#CABPATH\xencenter.msi" cmdparameters=" " cmdparameters_silent="/passive" cmdparameters_basic=" " uninstall_package="" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qf" uninstall_cmdparameters_basic="/qb-" disable_wow64_fs_redirection="False" id="XenCenter" display_name="Citrix XenCenter" uninstall_display_name="" os_filter="" os_filter_min="" os_filter_max="" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="True" selected_install="True" selected_uninstall="True" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="True" show_progress_dialog="True" show_cab_dialog="True">
|
||||
<embedfile sourcefilepath="XenCenter.l10n.msi" targetfilepath="XenCenter.msi" />
|
||||
</component>
|
||||
</configuration>
|
||||
|
Loading…
Reference in New Issue
Block a user