mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2025-01-20 07:19:18 +01:00
Merge branch 'master' of https://github.com/xenserver/xenadmin into CP-10926
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com> Conflicts: XenModel/XenAPI-Extensions/VDI.cs XenModel/XenAPI-Extensions/VM.cs
This commit is contained in:
commit
8a9b2d8c70
@ -769,7 +769,7 @@ namespace XenAdmin.Actions
|
||||
VMs.Sort();
|
||||
foreach (XenAPI.VM vm in VMs)
|
||||
{
|
||||
string OSinfo = Messages.HYPHEN;
|
||||
string OSinfo = vm.GetOSName();
|
||||
string srInfo = "";
|
||||
string MacInfo = "";
|
||||
string running_on = Messages.HYPHEN;
|
||||
@ -782,12 +782,11 @@ namespace XenAdmin.Actions
|
||||
PercentComplete = Convert.ToInt32((++itemIndex) * baseIndex / itemCount);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
ComparableList<ComparableAddress> addresses = new ComparableList<ComparableAddress>();
|
||||
if (vm.guest_metrics != null && !string.IsNullOrEmpty(vm.guest_metrics.opaque_ref) && !(vm.guest_metrics.opaque_ref.ToLower().Contains("null")))
|
||||
{
|
||||
VM_guest_metrics metrics = vm.Connection.Resolve(vm.guest_metrics);
|
||||
OSinfo = metrics.os_version["name"];
|
||||
|
||||
List<VIF> vifs = vm.Connection.ResolveAll(vm.VIFs);
|
||||
foreach (VIF vif in vifs)
|
||||
|
@ -195,6 +195,8 @@ namespace XenAdmin.ConsoleView
|
||||
|
||||
UpdateParentMinimumSize();
|
||||
|
||||
UpdateButtons();
|
||||
|
||||
toggleConsoleButton.EnabledChanged += toggleConsoleButton_EnabledChanged;
|
||||
}
|
||||
|
||||
@ -526,7 +528,7 @@ namespace XenAdmin.ConsoleView
|
||||
}
|
||||
}
|
||||
else
|
||||
EnableRDPIfCapable();
|
||||
EnableRDPIfCapable();
|
||||
UpdateButtons();
|
||||
}
|
||||
}
|
||||
@ -1232,6 +1234,13 @@ namespace XenAdmin.ConsoleView
|
||||
toggleConsoleButton.Text = vncScreen.UseVNC ? (CanEnableRDPOnCreamOrGreater(source.Connection) ? enableRDP : UseRDP) : UseStandardDesktop;
|
||||
else
|
||||
toggleConsoleButton.Text = vncScreen.UseSource ? UseXVNC : UseVNC;
|
||||
|
||||
if (Helpers.CreamOrGreater(source.Connection))
|
||||
{
|
||||
if (RDPEnabled || RDPControlEnabled)
|
||||
tip.SetToolTip(this.toggleConsoleButton, null);
|
||||
}
|
||||
|
||||
scaleCheckBox.Visible = !rdp || vncScreen.UseVNC;
|
||||
sendCAD.Enabled = !rdp || vncScreen.UseVNC;
|
||||
FocusVNC();
|
||||
|
@ -38,6 +38,7 @@ using XenAdmin.Diagnostics.Problems.HostProblem;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Collections.Generic;
|
||||
using XenAdmin.Actions;
|
||||
|
||||
|
||||
namespace XenAdmin.Diagnostics.Checks
|
||||
@ -78,7 +79,7 @@ namespace XenAdmin.Diagnostics.Checks
|
||||
|
||||
try
|
||||
{
|
||||
return FindProblem(Pool_patch.precheck(session, Patch.opaque_ref, Host.opaque_ref), Host);
|
||||
return FindProblem(Pool_patch.precheck(session, Patch.opaque_ref, Host.opaque_ref));
|
||||
|
||||
}
|
||||
catch (Failure f)
|
||||
@ -90,7 +91,11 @@ namespace XenAdmin.Diagnostics.Checks
|
||||
log.Error(f.ErrorDescription[1]);
|
||||
if (f.ErrorDescription.Count > 2)
|
||||
log.Error(f.ErrorDescription[2]);
|
||||
return new PrecheckFailed(this,Host, f);
|
||||
if (f.ErrorDescription.Count > 3)
|
||||
log.Error(f.ErrorDescription[3]);
|
||||
// try and find problem from the xapi failure
|
||||
Problem problem = FindProblem(f);
|
||||
return problem ?? new PrecheckFailed(this, Host, f);
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,8 +110,19 @@ namespace XenAdmin.Diagnostics.Checks
|
||||
}
|
||||
|
||||
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private Problem FindProblem(string result, Host host)
|
||||
|
||||
/// <summary>
|
||||
/// Find problem from xml result
|
||||
/// </summary>
|
||||
/// <param name="result">xml result, as returned by Pool_patch.precheck() call.
|
||||
/// E.g.:
|
||||
/// <error errorcode="PATCH_PRECHECK_FAILED_OUT_OF_SPACE">
|
||||
/// <found>2049859584</found>
|
||||
/// <required>10000000000</required>
|
||||
/// </error>
|
||||
/// </param>
|
||||
/// <returns>Problem or null, if no problem found</returns>
|
||||
private Problem FindProblem(string result)
|
||||
{
|
||||
if (!PrecheckErrorRegex.IsMatch(result.Replace("\n", "")))
|
||||
return null;
|
||||
@ -118,61 +134,102 @@ namespace XenAdmin.Diagnostics.Checks
|
||||
log.Error(m.ToString());
|
||||
XmlNode errorNode = doc.FirstChild;
|
||||
|
||||
string errorcode = errorNode.Attributes["errorcode"] != null
|
||||
string errorcode = errorNode.Attributes != null && errorNode.Attributes["errorcode"] != null
|
||||
? errorNode.Attributes["errorcode"].Value
|
||||
: string.Empty;
|
||||
|
||||
if (errorcode == "")
|
||||
return null;
|
||||
|
||||
var found = "";
|
||||
var required = "";
|
||||
|
||||
foreach (XmlNode node in errorNode.ChildNodes)
|
||||
{
|
||||
if (node.Name == "found")
|
||||
found = node.InnerXml;
|
||||
else if (node.Name == "required")
|
||||
required = node.InnerXml;
|
||||
}
|
||||
var problem = FindProblem(errorcode, found, required);
|
||||
return problem ?? new PrecheckFailed(this, Host, new Failure(errorcode));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Find problem from xapi Failure
|
||||
/// </summary>
|
||||
/// <param name="failure">Xapi failure, thrown by Pool_patch.precheck() call.
|
||||
/// E.g.: failure.ErrorDescription.Count = 4
|
||||
/// ErrorDescription[0] = "PATCH_PRECHECK_FAILED_WRONG_SERVER_VERSION"
|
||||
/// ErrorDescription[1] = "OpaqueRef:612b5eee-03dc-bbf5-3385-6905fdc9b079"
|
||||
/// ErrorDescription[2] = "6.5.0"
|
||||
/// ErrorDescription[3] = "^6\\.2\\.0$"
|
||||
/// E.g.: failure.ErrorDescription.Count = 2
|
||||
/// ErrorDescription[0] = "OUT_OF_SPACE"
|
||||
/// ErrorDescription[1] = "/var/patch"
|
||||
/// </param>
|
||||
/// <returns>Problem or null, if no problem found</returns>
|
||||
private Problem FindProblem(Failure failure)
|
||||
{
|
||||
if (failure.ErrorDescription.Count == 0)
|
||||
return null;
|
||||
|
||||
var errorcode = failure.ErrorDescription[0];
|
||||
var found = "";
|
||||
var required = "";
|
||||
|
||||
if (failure.ErrorDescription.Count > 2)
|
||||
found = failure.ErrorDescription[2];
|
||||
if (failure.ErrorDescription.Count > 3)
|
||||
required = failure.ErrorDescription[3];
|
||||
|
||||
return FindProblem(errorcode, found, required);
|
||||
}
|
||||
|
||||
private Problem FindProblem(string errorcode, string found, string required)
|
||||
{
|
||||
switch (errorcode)
|
||||
{
|
||||
case "PATCH_PRECHECK_FAILED_WRONG_SERVER_VERSION":
|
||||
foreach (XmlNode node in errorNode.ChildNodes)
|
||||
{
|
||||
if (node.Name == "required")
|
||||
{
|
||||
return new WrongServerVersion(this, node.InnerXml,host);
|
||||
}
|
||||
}
|
||||
break;
|
||||
return new WrongServerVersion(this, required, Host);
|
||||
case "PATCH_PRECHECK_FAILED_OUT_OF_SPACE":
|
||||
long required = 0;
|
||||
long found = 0;
|
||||
foreach (XmlNode node in errorNode.ChildNodes)
|
||||
{
|
||||
if (node.Name == "found")
|
||||
{
|
||||
long.TryParse(node.InnerText, out found);
|
||||
}
|
||||
|
||||
if (node.Name == "required")
|
||||
{
|
||||
long.TryParse(node.InnerText, out required);
|
||||
}
|
||||
}
|
||||
|
||||
System.Diagnostics.Trace.Assert(Helpers.CreamOrGreater(Host.Connection)); // If not Cream or greater, we shouldn't get this error
|
||||
long requiredSpace = 0;
|
||||
long foundSpace = 0;
|
||||
long.TryParse(found, out foundSpace);
|
||||
long.TryParse(required, out requiredSpace);
|
||||
// get reclaimable disk space (excluding current patch)
|
||||
long reclaimableDiskSpace = 0;
|
||||
try
|
||||
{
|
||||
var args = new Dictionary<string, string>();
|
||||
if (Patch != null)
|
||||
args.Add("exclude", Patch.uuid);
|
||||
var resultReclaimable = Host.call_plugin(host.Connection.Session, host.opaque_ref, "disk-space", "get_reclaimable_disk_space", args);
|
||||
reclaimableDiskSpace = Convert.ToInt64(resultReclaimable);
|
||||
var args = new Dictionary<string, string> { { "exclude", Patch.uuid } };
|
||||
var resultReclaimable = Host.call_plugin(Host.Connection.Session, Host.opaque_ref, "disk-space", "get_reclaimable_disk_space", args);
|
||||
reclaimableDiskSpace = Convert.ToInt64(resultReclaimable);
|
||||
}
|
||||
catch (Failure failure)
|
||||
{
|
||||
log.WarnFormat("Plugin call disk-space.get_reclaimable_disk_space on {0} failed with {1}", Host.Name, failure.Message);
|
||||
}
|
||||
|
||||
var operation = XenAdmin.Actions.DiskSpaceRequirements.OperationTypes.install;
|
||||
var diskSpaceReq = new DiskSpaceRequirements(DiskSpaceRequirements.OperationTypes.install, Host, Patch.Name, requiredSpace, foundSpace, reclaimableDiskSpace);
|
||||
|
||||
var diskSpaceReq = new XenAdmin.Actions.DiskSpaceRequirements(operation, host, Patch.Name, required, found, reclaimableDiskSpace);
|
||||
|
||||
return new HostOutOfSpaceProblem(this, host, Patch, diskSpaceReq);
|
||||
case "":
|
||||
return null;
|
||||
default:
|
||||
return new PrecheckFailed(this, host,new Failure(errorcode));
|
||||
return new HostOutOfSpaceProblem(this, Host, Patch, diskSpaceReq);
|
||||
case "OUT_OF_SPACE":
|
||||
if (Helpers.CreamOrGreater(Host.Connection))
|
||||
{
|
||||
var action = new GetDiskSpaceRequirementsAction(Host, Patch, true);
|
||||
try
|
||||
{
|
||||
action.RunExternal(action.Session);
|
||||
}
|
||||
catch
|
||||
{
|
||||
log.WarnFormat("Could not get disk space requirements");
|
||||
}
|
||||
if (action.Succeeded)
|
||||
return new HostOutOfSpaceProblem(this, Host, Patch, action.DiskSpaceRequirements);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -58,7 +58,12 @@ namespace XenAdmin.Diagnostics.Problems.HostProblem
|
||||
|
||||
public override string Description
|
||||
{
|
||||
get { return string.Format(Messages.NOT_ENOUGH_SPACE_MESSAGE_INSTALL, Server.Name, patch.Name); }
|
||||
get
|
||||
{
|
||||
return string.Format(diskSpaceReq.Operation == DiskSpaceRequirements.OperationTypes.install
|
||||
? Messages.NOT_ENOUGH_SPACE_MESSAGE_INSTALL
|
||||
: Messages.NOT_ENOUGH_SPACE_MESSAGE_UPLOAD, Server.Name, patch.Name);
|
||||
}
|
||||
}
|
||||
|
||||
protected override AsyncAction CreateAction(out bool cancelled)
|
||||
@ -75,7 +80,7 @@ namespace XenAdmin.Diagnostics.Problems.HostProblem
|
||||
diskSpaceReq.GetSpaceRequirementsMessage()),
|
||||
new ThreeButtonDialog.TBDButton(Messages.YES, DialogResult.Yes, ThreeButtonDialog.ButtonType.ACCEPT, true),
|
||||
ThreeButtonDialog.ButtonNo
|
||||
).ShowDialog(Program.MainWindow);
|
||||
).ShowDialog();
|
||||
|
||||
|
||||
if (r == DialogResult.Yes)
|
||||
@ -110,6 +115,5 @@ namespace XenAdmin.Diagnostics.Problems.HostProblem
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
BIN
XenAdmin/Images/coreos-globe-icon.png
Normal file → Executable file
BIN
XenAdmin/Images/coreos-globe-icon.png
Normal file → Executable file
Binary file not shown.
Before Width: | Height: | Size: 952 B After Width: | Height: | Size: 673 B |
61
XenAdmin/TabPages/GeneralTabPage.Designer.cs
generated
61
XenAdmin/TabPages/GeneralTabPage.Designer.cs
generated
@ -36,6 +36,12 @@ namespace XenAdmin.TabPages
|
||||
this.linkLabelExpand = new System.Windows.Forms.LinkLabel();
|
||||
this.linkLabelCollapse = new System.Windows.Forms.LinkLabel();
|
||||
this.panel2 = new XenAdmin.Controls.PanelNoFocusScroll();
|
||||
this.panelReadCaching = new System.Windows.Forms.Panel();
|
||||
this.pdSectionReadCaching = new XenAdmin.Controls.PDSection();
|
||||
this.panelDockerInfo = new System.Windows.Forms.Panel();
|
||||
this.pdSectionDockerInfo = new XenAdmin.Controls.PDSection();
|
||||
this.panelDockerVersion = new System.Windows.Forms.Panel();
|
||||
this.pdSectionDockerVersion = new XenAdmin.Controls.PDSection();
|
||||
this.panelStorageLinkSystemCapabilities = new System.Windows.Forms.Panel();
|
||||
this.pdSectionStorageLinkSystemCapabilities = new XenAdmin.Controls.PDSection();
|
||||
this.panelMultipathBoot = new System.Windows.Forms.Panel();
|
||||
@ -72,6 +78,9 @@ namespace XenAdmin.TabPages
|
||||
this.panel1.SuspendLayout();
|
||||
this.panel3.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
this.panelReadCaching.SuspendLayout();
|
||||
this.panelDockerInfo.SuspendLayout();
|
||||
this.panelDockerVersion.SuspendLayout();
|
||||
this.panelStorageLinkSystemCapabilities.SuspendLayout();
|
||||
this.panelMultipathBoot.SuspendLayout();
|
||||
this.panelStorageLink.SuspendLayout();
|
||||
@ -134,6 +143,9 @@ namespace XenAdmin.TabPages
|
||||
// panel2
|
||||
//
|
||||
resources.ApplyResources(this.panel2, "panel2");
|
||||
this.panel2.Controls.Add(this.panelReadCaching);
|
||||
this.panel2.Controls.Add(this.panelDockerInfo);
|
||||
this.panel2.Controls.Add(this.panelDockerVersion);
|
||||
this.panel2.Controls.Add(this.panelStorageLinkSystemCapabilities);
|
||||
this.panel2.Controls.Add(this.panelMultipathBoot);
|
||||
this.panel2.Controls.Add(this.panelStorageLink);
|
||||
@ -152,6 +164,46 @@ namespace XenAdmin.TabPages
|
||||
this.panel2.Controls.Add(this.panelGeneral);
|
||||
this.panel2.Name = "panel2";
|
||||
//
|
||||
// panelReadCaching
|
||||
//
|
||||
resources.ApplyResources(this.panelReadCaching, "panelReadCaching");
|
||||
this.panelReadCaching.Controls.Add(this.pdSectionReadCaching);
|
||||
this.panelReadCaching.Name = "panelReadCaching";
|
||||
//
|
||||
// pdSectionReadCaching
|
||||
//
|
||||
this.pdSectionReadCaching.BackColor = System.Drawing.Color.Gainsboro;
|
||||
resources.ApplyResources(this.pdSectionReadCaching, "pdSectionReadCaching");
|
||||
this.pdSectionReadCaching.Name = "pdSectionReadCaching";
|
||||
this.pdSectionReadCaching.ShowCellToolTips = false;
|
||||
this.pdSectionReadCaching.ExpandedChanged += new System.Action<XenAdmin.Controls.PDSection>(this.s_ExpandedEventHandler);
|
||||
//
|
||||
// panelDockerInfo
|
||||
//
|
||||
resources.ApplyResources(this.panelDockerInfo, "panelDockerInfo");
|
||||
this.panelDockerInfo.Controls.Add(this.pdSectionDockerInfo);
|
||||
this.panelDockerInfo.Name = "panelDockerInfo";
|
||||
//
|
||||
// pdSectionDockerInfo
|
||||
//
|
||||
this.pdSectionDockerInfo.BackColor = System.Drawing.Color.Gainsboro;
|
||||
resources.ApplyResources(this.pdSectionDockerInfo, "pdSectionDockerInfo");
|
||||
this.pdSectionDockerInfo.Name = "pdSectionDockerInfo";
|
||||
this.pdSectionDockerInfo.ShowCellToolTips = false;
|
||||
//
|
||||
// panelDockerVersion
|
||||
//
|
||||
resources.ApplyResources(this.panelDockerVersion, "panelDockerVersion");
|
||||
this.panelDockerVersion.Controls.Add(this.pdSectionDockerVersion);
|
||||
this.panelDockerVersion.Name = "panelDockerVersion";
|
||||
//
|
||||
// pdSectionDockerVersion
|
||||
//
|
||||
this.pdSectionDockerVersion.BackColor = System.Drawing.Color.Gainsboro;
|
||||
resources.ApplyResources(this.pdSectionDockerVersion, "pdSectionDockerVersion");
|
||||
this.pdSectionDockerVersion.Name = "pdSectionDockerVersion";
|
||||
this.pdSectionDockerVersion.ShowCellToolTips = false;
|
||||
//
|
||||
// panelStorageLinkSystemCapabilities
|
||||
//
|
||||
resources.ApplyResources(this.panelStorageLinkSystemCapabilities, "panelStorageLinkSystemCapabilities");
|
||||
@ -386,6 +438,9 @@ namespace XenAdmin.TabPages
|
||||
this.panel3.PerformLayout();
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panel2.PerformLayout();
|
||||
this.panelReadCaching.ResumeLayout(false);
|
||||
this.panelDockerInfo.ResumeLayout(false);
|
||||
this.panelDockerVersion.ResumeLayout(false);
|
||||
this.panelStorageLinkSystemCapabilities.ResumeLayout(false);
|
||||
this.panelMultipathBoot.ResumeLayout(false);
|
||||
this.panelStorageLink.ResumeLayout(false);
|
||||
@ -447,5 +502,11 @@ namespace XenAdmin.TabPages
|
||||
private XenAdmin.Controls.PDSection pdSectionMultipathBoot;
|
||||
private System.Windows.Forms.Panel panelStorageLinkSystemCapabilities;
|
||||
private XenAdmin.Controls.PDSection pdSectionStorageLinkSystemCapabilities;
|
||||
private System.Windows.Forms.Panel panelDockerInfo;
|
||||
private System.Windows.Forms.Panel panelDockerVersion;
|
||||
private Controls.PDSection pdSectionDockerVersion;
|
||||
private Controls.PDSection pdSectionDockerInfo;
|
||||
private System.Windows.Forms.Panel panelReadCaching;
|
||||
private Controls.PDSection pdSectionReadCaching;
|
||||
}
|
||||
}
|
||||
|
@ -467,6 +467,9 @@ namespace XenAdmin.TabPages
|
||||
generateStorageLinkSystemCapabilitiesBox();
|
||||
generateMultipathBootBox();
|
||||
generateVCPUsBox();
|
||||
generateDockerInfoBox();
|
||||
generateDockerVersionBox();
|
||||
generateReadCachingBox();
|
||||
}
|
||||
|
||||
// hide all the sections which haven't been populated, those that have make sure are visible
|
||||
@ -1357,7 +1360,15 @@ namespace XenAdmin.TabPages
|
||||
DockerContainer dockerContainer = (DockerContainer)xenObject;
|
||||
s.AddEntry(Messages.NAME, dockerContainer.Name.Length != 0 ? dockerContainer.Name : Messages.NONE);
|
||||
s.AddEntry(Messages.STATUS, dockerContainer.status.Length != 0 ? dockerContainer.status : Messages.NONE);
|
||||
s.AddEntry(Messages.CONTAINER_CREATED, dockerContainer.created.Length != 0 ? dockerContainer.created : Messages.NONE);
|
||||
try
|
||||
{
|
||||
DateTime created = Util.FromUnixTime(double.Parse(dockerContainer.created)).ToLocalTime();
|
||||
s.AddEntry(Messages.CONTAINER_CREATED, HelpersGUI.DateTimeToString(created, Messages.DATEFORMAT_DMY_HMS, true));
|
||||
}
|
||||
catch
|
||||
{
|
||||
s.AddEntry(Messages.CONTAINER_CREATED, dockerContainer.created.Length != 0 ? dockerContainer.created : Messages.NONE);
|
||||
}
|
||||
s.AddEntry(Messages.CONTAINER_IMAGE, dockerContainer.image.Length != 0 ? dockerContainer.image : Messages.NONE);
|
||||
s.AddEntry(Messages.CONTAINER, dockerContainer.container.Length != 0 ? dockerContainer.container : Messages.NONE);
|
||||
s.AddEntry(Messages.CONTAINER_COMMAND, dockerContainer.command.Length != 0 ? dockerContainer.command : Messages.NONE);
|
||||
@ -1366,6 +1377,27 @@ namespace XenAdmin.TabPages
|
||||
}
|
||||
}
|
||||
|
||||
private void generateReadCachingBox()
|
||||
{
|
||||
VM vm = xenObject as VM;
|
||||
if (vm == null || !vm.IsRunning || !Helpers.CreamOrGreater(vm.Connection))
|
||||
return;
|
||||
|
||||
PDSection s = pdSectionReadCaching;
|
||||
|
||||
if (vm.ReadCachingEnabled)
|
||||
{
|
||||
s.AddEntry(FriendlyName("VM.read_caching_status"), Messages.VM_READ_CACHING_ENABLED);
|
||||
var vdiList = vm.ReadCachingVDIs.Select(vdi => vdi.NameWithLocation).ToArray();
|
||||
s.AddEntry(FriendlyName("VM.read_caching_disks"), string.Join("\n", vdiList));
|
||||
}
|
||||
else
|
||||
{
|
||||
s.AddEntry(FriendlyName("VM.read_caching_status"), Messages.VM_READ_CACHING_DISABLED);
|
||||
s.AddEntry(FriendlyName("VM.read_caching_reason"), vm.ReadCachingDisabledReason);
|
||||
}
|
||||
}
|
||||
|
||||
private void generateStorageLinkBox()
|
||||
{
|
||||
SR sr = xenObject as SR;
|
||||
@ -1507,6 +1539,67 @@ namespace XenAdmin.TabPages
|
||||
|
||||
}
|
||||
|
||||
private void addStringEntry(PDSection s, string key, string value)
|
||||
{
|
||||
s.AddEntry(key, value.Length != 0 ? value : Messages.NONE);
|
||||
}
|
||||
|
||||
private void generateDockerInfoBox()
|
||||
{
|
||||
VM vm = xenObject as VM;
|
||||
if (vm == null)
|
||||
return;
|
||||
|
||||
VM_Docker_Info info = vm.DockerInfo;
|
||||
if (info == null)
|
||||
return;
|
||||
|
||||
PDSection s = pdSectionDockerInfo;
|
||||
addStringEntry(s, Messages.DOCKER_INFO_NGOROUTINES, info.NGoroutines);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_ROOT_DIR, info.DockerRootDir);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_DRIVER_STATUS, info.DriverStatus);
|
||||
addStringEntry(s, Messages.OPERATING_SYSTEM, info.OperatingSystem); ;
|
||||
addStringEntry(s, Messages.CONTAINER, info.Containers);
|
||||
addStringEntry(s, Messages.MEMORY, Util.MemorySizeString(Convert.ToDouble(info.MemTotal)));
|
||||
addStringEntry(s, Messages.DOCKER_INFO_DRIVER, info.Driver);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_INDEX_SERVER_ADDRESS, info.IndexServerAddress);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_INITIATE_PATH, info.InitPath);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_EXECUTION_DRIVER, info.ExecutionDriver);
|
||||
addStringEntry(s, Messages.NAME, info.Name);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_NCPU, info.NCPU);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_DEBUG, info.Debug);
|
||||
addStringEntry(s, Messages.ID, info.ID);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_IPV4_FORWARDING, info.IPv4Forwarding);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_KERNEL_VERSION, info.KernelVersion);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_NFD, info.NFd);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_INITIATE_SHA1, info.InitSha1);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_LABELS, info.Labels);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_MEMORY_LIMIT, Util.MemorySizeString(Convert.ToDouble(info.MemoryLimit)));
|
||||
addStringEntry(s, Messages.DOCKER_INFO_SWAP_LIMIT, info.SwapLimit);
|
||||
addStringEntry(s, Messages.CONTAINER_IMAGE, info.Images);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_NEVENT_LISTENER, info.NEventsListener);
|
||||
}
|
||||
|
||||
private void generateDockerVersionBox()
|
||||
{
|
||||
VM vm = xenObject as VM;
|
||||
if (vm == null)
|
||||
return;
|
||||
|
||||
VM_Docker_Version version = vm.DockerVersion;
|
||||
if (version == null)
|
||||
return;
|
||||
|
||||
PDSection s = pdSectionDockerVersion;
|
||||
addStringEntry(s, Messages.DOCKER_INFO_KERNEL_VERSION, version.KernelVersion);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_ARCH, version.Arch);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_API_VERSION, version.ApiVersion);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_VERSION, version.Version);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_GIT_COMMIT, version.GitCommit);
|
||||
addStringEntry(s, Messages.OPERATING_SYSTEM, version.Os);
|
||||
addStringEntry(s, Messages.DOCKER_INFO_GO_VERSION, version.GoVersion);
|
||||
}
|
||||
|
||||
private bool CPUsIdentical(IEnumerable<Host_cpu> cpus)
|
||||
{
|
||||
String cpuText = null;
|
||||
|
@ -1377,6 +1377,139 @@
|
||||
<data name=">>pageContainerPanel.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.SectionTitle" xml:space="preserve">
|
||||
<value>Docker Version</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Name" xml:space="preserve">
|
||||
<value>pdSectionDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Type" xml:space="preserve">
|
||||
<value>XenAdmin.Controls.PDSection, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Parent" xml:space="preserve">
|
||||
<value>panelDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 39</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>19</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Name" xml:space="preserve">
|
||||
<value>panelDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Parent" xml:space="preserve">
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.ZOrder" xml:space="preserve">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pdSectionDockerInfo.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.SectionTitle" xml:space="preserve">
|
||||
<value>Docker Information</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Name" xml:space="preserve">
|
||||
<value>pdSectionDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Type" xml:space="preserve">
|
||||
<value>XenAdmin.Controls.PDSection, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Parent" xml:space="preserve">
|
||||
<value>panelDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 704</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>18</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Name" xml:space="preserve">
|
||||
<value>panelDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Parent" xml:space="preserve">
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.ZOrder" xml:space="preserve">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
@ -125,6 +125,205 @@
|
||||
<data name="panel2.AutoScroll" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelReadCaching.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelReadCaching.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="pdSectionReadCaching.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pdSectionReadCaching.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
<data name="pdSectionReadCaching.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionReadCaching.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="pdSectionReadCaching.SectionTitle" xml:space="preserve">
|
||||
<value>Read Caching</value>
|
||||
</data>
|
||||
<data name="pdSectionReadCaching.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionReadCaching.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pdSectionReadCaching.Name" xml:space="preserve">
|
||||
<value>pdSectionReadCaching</value>
|
||||
</data>
|
||||
<data name=">>pdSectionReadCaching.Type" xml:space="preserve">
|
||||
<value>XenAdmin.Controls.PDSection, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>pdSectionReadCaching.Parent" xml:space="preserve">
|
||||
<value>panelReadCaching</value>
|
||||
</data>
|
||||
<data name=">>pdSectionReadCaching.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelReadCaching.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="panelReadCaching.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 792</value>
|
||||
</data>
|
||||
<data name="panelReadCaching.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelReadCaching.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelReadCaching.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>20</value>
|
||||
</data>
|
||||
<data name=">>panelReadCaching.Name" xml:space="preserve">
|
||||
<value>panelReadCaching</value>
|
||||
</data>
|
||||
<data name=">>panelReadCaching.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>panelReadCaching.Parent" xml:space="preserve">
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelReadCaching.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.SectionTitle" xml:space="preserve">
|
||||
<value>Docker Information</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Name" xml:space="preserve">
|
||||
<value>pdSectionDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Type" xml:space="preserve">
|
||||
<value>XenAdmin.Controls.PDSection, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Parent" xml:space="preserve">
|
||||
<value>panelDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 748</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>18</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Name" xml:space="preserve">
|
||||
<value>panelDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Parent" xml:space="preserve">
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.SectionTitle" xml:space="preserve">
|
||||
<value>Docker Version</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Name" xml:space="preserve">
|
||||
<value>pdSectionDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Type" xml:space="preserve">
|
||||
<value>XenAdmin.Controls.PDSection, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Parent" xml:space="preserve">
|
||||
<value>panelDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 704</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>19</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Name" xml:space="preserve">
|
||||
<value>panelDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Parent" xml:space="preserve">
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="panelStorageLinkSystemCapabilities.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@ -134,7 +333,6 @@
|
||||
<data name="pdSectionStorageLinkSystemCapabilities.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pdSectionStorageLinkSystemCapabilities.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
@ -148,7 +346,7 @@
|
||||
<value>Capabilities</value>
|
||||
</data>
|
||||
<data name="pdSectionStorageLinkSystemCapabilities.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionStorageLinkSystemCapabilities.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -175,7 +373,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelStorageLinkSystemCapabilities.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelStorageLinkSystemCapabilities.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
@ -190,7 +388,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelStorageLinkSystemCapabilities.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="panelMultipathBoot.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -214,7 +412,7 @@
|
||||
<value>Root Disk Multipathing</value>
|
||||
</data>
|
||||
<data name="pdSectionMultipathBoot.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionMultipathBoot.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
@ -241,7 +439,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelMultipathBoot.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelMultipathBoot.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
@ -256,7 +454,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelMultipathBoot.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="panelStorageLink.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -280,7 +478,7 @@
|
||||
<value>StorageLink</value>
|
||||
</data>
|
||||
<data name="pdStorageLink.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdStorageLink.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -307,7 +505,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelStorageLink.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelStorageLink.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
@ -322,7 +520,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelStorageLink.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="panelUpdates.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -346,7 +544,7 @@
|
||||
<value>Updates</value>
|
||||
</data>
|
||||
<data name="pdSectionUpdates.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionUpdates.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -373,7 +571,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelUpdates.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelUpdates.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
@ -388,7 +586,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelUpdates.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="panelMemoryAndVCPUs.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -412,7 +610,7 @@
|
||||
<value>CPUs</value>
|
||||
</data>
|
||||
<data name="pdSectionVCPUs.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionVCPUs.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -439,7 +637,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelMemoryAndVCPUs.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelMemoryAndVCPUs.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
@ -454,7 +652,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelMemoryAndVCPUs.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="panelMultipathing.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -478,7 +676,7 @@
|
||||
<value>Multipathing</value>
|
||||
</data>
|
||||
<data name="pdSectionMultipathing.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionMultipathing.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -505,7 +703,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelMultipathing.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelMultipathing.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
@ -520,7 +718,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelMultipathing.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="panelStatus.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -544,7 +742,7 @@
|
||||
<value>Status</value>
|
||||
</data>
|
||||
<data name="pdSectionStatus.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionStatus.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -571,7 +769,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelStatus.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelStatus.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
@ -586,7 +784,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelStatus.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="panelHighAvailability.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -610,7 +808,7 @@
|
||||
<value>High Availability</value>
|
||||
</data>
|
||||
<data name="pdSectionHighAvailability.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionHighAvailability.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -637,7 +835,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelHighAvailability.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelHighAvailability.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
@ -652,7 +850,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelHighAvailability.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="panelBootOptions.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -676,7 +874,7 @@
|
||||
<value>Boot Options</value>
|
||||
</data>
|
||||
<data name="pdSectionBootOptions.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionBootOptions.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -703,7 +901,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelBootOptions.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelBootOptions.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
@ -718,7 +916,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelBootOptions.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="panelCPU.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -742,7 +940,7 @@
|
||||
<value>CPUs</value>
|
||||
</data>
|
||||
<data name="pdSectionCPU.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionCPU.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -769,7 +967,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelCPU.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelCPU.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
@ -784,7 +982,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelCPU.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="panelLicense.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -808,7 +1006,7 @@
|
||||
<value>License Details</value>
|
||||
</data>
|
||||
<data name="pdSectionLicense.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionLicense.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -835,7 +1033,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelLicense.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelLicense.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
@ -850,7 +1048,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelLicense.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="panelVersion.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -874,7 +1072,7 @@
|
||||
<value>Version Details</value>
|
||||
</data>
|
||||
<data name="pdSectionVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -901,7 +1099,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
@ -916,7 +1114,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelVersion.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="panelMemory.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -940,7 +1138,7 @@
|
||||
<value>Memory</value>
|
||||
</data>
|
||||
<data name="pdSectionMemory.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionMemory.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -967,7 +1165,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelMemory.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelMemory.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
@ -982,7 +1180,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelMemory.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name="panelManagementInterfaces.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -1006,7 +1204,7 @@
|
||||
<value>Management Interfaces</value>
|
||||
</data>
|
||||
<data name="pdSectionManagementInterfaces.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionManagementInterfaces.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -1033,7 +1231,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelManagementInterfaces.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelManagementInterfaces.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@ -1048,7 +1246,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelManagementInterfaces.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="panelCustomFields.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -1072,7 +1270,7 @@
|
||||
<value>Custom Fields</value>
|
||||
</data>
|
||||
<data name="pdSectionCustomFields.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionCustomFields.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -1099,7 +1297,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelCustomFields.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelCustomFields.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@ -1114,7 +1312,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelCustomFields.ZOrder" xml:space="preserve">
|
||||
<value>14</value>
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name="panelGeneral.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -1138,7 +1336,7 @@
|
||||
<value>General</value>
|
||||
</data>
|
||||
<data name="pdSectionGeneral.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
<value>712, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionGeneral.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -1165,7 +1363,7 @@
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelGeneral.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
<value>712, 44</value>
|
||||
</data>
|
||||
<data name="panelGeneral.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -1180,7 +1378,7 @@
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelGeneral.ZOrder" xml:space="preserve">
|
||||
<value>15</value>
|
||||
<value>18</value>
|
||||
</data>
|
||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 39</value>
|
||||
|
@ -1377,6 +1377,139 @@
|
||||
<data name=">>pageContainerPanel.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.SectionTitle" xml:space="preserve">
|
||||
<value>Docker Version</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Name" xml:space="preserve">
|
||||
<value>pdSectionDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Type" xml:space="preserve">
|
||||
<value>XenAdmin.Controls.PDSection, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.Parent" xml:space="preserve">
|
||||
<value>panelDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerVersion.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 39</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
</data>
|
||||
<data name="panelDockerVersion.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>19</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Name" xml:space="preserve">
|
||||
<value>panelDockerVersion</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.Parent" xml:space="preserve">
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelDockerVersion.ZOrder" xml:space="preserve">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pdSectionDockerInfo.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 5</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.SectionTitle" xml:space="preserve">
|
||||
<value>Docker Information</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 34</value>
|
||||
</data>
|
||||
<data name="pdSectionDockerInfo.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Name" xml:space="preserve">
|
||||
<value>pdSectionDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Type" xml:space="preserve">
|
||||
<value>XenAdmin.Controls.PDSection, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.Parent" xml:space="preserve">
|
||||
<value>panelDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>pdSectionDockerInfo.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 704</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 5, 0, 5</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>729, 44</value>
|
||||
</data>
|
||||
<data name="panelDockerInfo.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>18</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Name" xml:space="preserve">
|
||||
<value>panelDockerInfo</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.Parent" xml:space="preserve">
|
||||
<value>panel2</value>
|
||||
</data>
|
||||
<data name=">>panelDockerInfo.ZOrder" xml:space="preserve">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
@ -34,7 +34,7 @@
|
||||
this.labelProgress = new System.Windows.Forms.Label();
|
||||
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
||||
this.flickerFreeListBox1 = new XenAdmin.Controls.FlickerFreeListBox();
|
||||
this.diskSpaceErrorLinkLabel = new System.Windows.Forms.LinkLabel();
|
||||
this.errorLinkLabel = new System.Windows.Forms.LinkLabel();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@ -45,7 +45,7 @@
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelProgress, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.progressBar1, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.flickerFreeListBox1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.diskSpaceErrorLinkLabel, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.errorLinkLabel, 1, 2);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
//
|
||||
// label2
|
||||
@ -74,12 +74,12 @@
|
||||
this.flickerFreeListBox1.Name = "flickerFreeListBox1";
|
||||
this.flickerFreeListBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.flickerFreeListBox1_DrawItem);
|
||||
//
|
||||
// diskSpaceErrorLinkLabel
|
||||
// errorLinkLabel
|
||||
//
|
||||
resources.ApplyResources(this.diskSpaceErrorLinkLabel, "diskSpaceErrorLinkLabel");
|
||||
this.diskSpaceErrorLinkLabel.Name = "diskSpaceErrorLinkLabel";
|
||||
this.diskSpaceErrorLinkLabel.TabStop = true;
|
||||
this.diskSpaceErrorLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.diskspaceErrorLinkLabel_LinkClicked);
|
||||
resources.ApplyResources(this.errorLinkLabel, "errorLinkLabel");
|
||||
this.errorLinkLabel.Name = "errorLinkLabel";
|
||||
this.errorLinkLabel.TabStop = true;
|
||||
this.errorLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.errorLinkLabel_LinkClicked);
|
||||
//
|
||||
// PatchingWizard_UploadPage
|
||||
//
|
||||
@ -99,6 +99,6 @@
|
||||
private System.Windows.Forms.Label labelProgress;
|
||||
private System.Windows.Forms.ProgressBar progressBar1;
|
||||
private Controls.FlickerFreeListBox flickerFreeListBox1;
|
||||
private System.Windows.Forms.LinkLabel diskSpaceErrorLinkLabel;
|
||||
private System.Windows.Forms.LinkLabel errorLinkLabel;
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using XenAdmin.Actions;
|
||||
using XenAdmin.Controls;
|
||||
using XenAdmin.Core;
|
||||
using XenAdmin.Dialogs;
|
||||
using XenAPI;
|
||||
using XenAPI;
|
||||
|
||||
namespace XenAdmin.Wizards.PatchingWizard
|
||||
{
|
||||
@ -47,8 +47,14 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
public override void PageLoaded(PageLoadedDirection direction)
|
||||
{
|
||||
base.PageLoaded(direction);
|
||||
|
||||
canUpload = true;
|
||||
canDownload = true;
|
||||
UpdateButtons();
|
||||
|
||||
if (SelectedUpdateType == UpdateType.Existing)
|
||||
_patch = SelectedExistingPatch;
|
||||
|
||||
if (direction == PageLoadedDirection.Forward)
|
||||
{
|
||||
PrepareUploadActions();
|
||||
@ -134,7 +140,8 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private bool canUpload = true;
|
||||
private bool canUpload = true;
|
||||
private bool canDownload = true;
|
||||
private DiskSpaceRequirements diskSpaceRequirements;
|
||||
|
||||
private void TryUploading()
|
||||
@ -218,14 +225,19 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
}
|
||||
|
||||
private void UpdateButtons()
|
||||
{
|
||||
{
|
||||
if (!canUpload && diskSpaceRequirements != null)
|
||||
{
|
||||
diskSpaceErrorLinkLabel.Visible = true;
|
||||
diskSpaceErrorLinkLabel.Text = diskSpaceRequirements.GetMessageForActionLink();
|
||||
}
|
||||
errorLinkLabel.Visible = true;
|
||||
errorLinkLabel.Text = diskSpaceRequirements.GetMessageForActionLink();
|
||||
}
|
||||
else if (!canDownload)
|
||||
{
|
||||
errorLinkLabel.Visible = true;
|
||||
errorLinkLabel.Text = Messages.PATCHINGWIZARD_MORE_INFO;
|
||||
}
|
||||
else
|
||||
diskSpaceErrorLinkLabel.Visible = false;
|
||||
errorLinkLabel.Visible = false;
|
||||
}
|
||||
|
||||
private void UpdateActionProgress(AsyncAction action)
|
||||
@ -318,11 +330,14 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
if (action == null)
|
||||
return;
|
||||
|
||||
action.Completed -= multipleAction_Completed;
|
||||
action.Completed -= multipleAction_Completed;
|
||||
|
||||
canDownload = !(action.Exception is PatchDownloadFailedException);
|
||||
|
||||
Program.Invoke(this, () =>
|
||||
{
|
||||
labelProgress.Text = GetActionDescription(action);
|
||||
labelProgress.Text = GetActionDescription(action);
|
||||
UpdateButtons();
|
||||
});
|
||||
|
||||
}
|
||||
@ -362,8 +377,16 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
return textColor;
|
||||
}
|
||||
|
||||
private void diskspaceErrorLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
private void errorLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
if (!canDownload)
|
||||
{
|
||||
var msg = string.Format(Messages.PATCH_DOWNLOAD_FAILED_MORE_INFO, SelectedExistingPatch.name_label, SelectedExistingPatch.Connection.Name);
|
||||
new ThreeButtonDialog(
|
||||
new ThreeButtonDialog.Details(SystemIcons.Error, msg))
|
||||
.ShowDialog(this);
|
||||
}
|
||||
|
||||
if (diskSpaceRequirements == null)
|
||||
return;
|
||||
|
||||
|
@ -250,40 +250,40 @@ Please wait for this operation to complete, then click Next to continue with the
|
||||
<data name=">>flickerFreeListBox1.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<data name="errorLinkLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<data name="errorLinkLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>627, 354</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<data name="errorLinkLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<data name="errorLinkLabel.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>1, 1, 1, 1</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<data name="errorLinkLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 18</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<data name="errorLinkLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.Text" xml:space="preserve">
|
||||
<data name="errorLinkLabel.Text" xml:space="preserve">
|
||||
<value>&More info...</value>
|
||||
</data>
|
||||
<data name="diskSpaceErrorLinkLabel.Visible" type="System.Boolean, mscorlib">
|
||||
<data name="errorLinkLabel.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>diskSpaceErrorLinkLabel.Name" xml:space="preserve">
|
||||
<value>diskSpaceErrorLinkLabel</value>
|
||||
<data name=">>errorLinkLabel.Name" xml:space="preserve">
|
||||
<value>errorLinkLabel</value>
|
||||
</data>
|
||||
<data name=">>diskSpaceErrorLinkLabel.Type" xml:space="preserve">
|
||||
<data name=">>errorLinkLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>diskSpaceErrorLinkLabel.Parent" xml:space="preserve">
|
||||
<data name=">>errorLinkLabel.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>diskSpaceErrorLinkLabel.ZOrder" xml:space="preserve">
|
||||
<data name=">>errorLinkLabel.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
@ -317,7 +317,7 @@ Please wait for this operation to complete, then click Next to continue with the
|
||||
<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="label2" Row="0" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="labelProgress" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="progressBar1" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="flickerFreeListBox1" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="diskSpaceErrorLinkLabel" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,AutoSize,0" /><Rows Styles="AutoSize,0,Percent,100,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="label2" Row="0" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="labelProgress" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="progressBar1" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="flickerFreeListBox1" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="errorLinkLabel" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,AutoSize,0" /><Rows Styles="AutoSize,0,Percent,100,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
|
@ -2143,6 +2143,7 @@
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Wizards\PatchingWizard\PatchingWizard_UploadPage.resx">
|
||||
<DependentUpon>PatchingWizard_UploadPage.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Wizards\PatchingWizard\PatchingWizard_UploadPage.zh-CN.resx">
|
||||
<DependentUpon>PatchingWizard_UploadPage.cs</DependentUpon>
|
||||
@ -5617,6 +5618,7 @@
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="TabPages\GeneralTabPage.zh-CN.resx">
|
||||
<DependentUpon>GeneralTabPage.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="TabPages\GpuPage.ja.resx">
|
||||
<DependentUpon>GpuPage.cs</DependentUpon>
|
||||
|
@ -52,7 +52,7 @@ namespace XenAdmin.Actions
|
||||
if (patch_ref != null)
|
||||
return patch_ref;
|
||||
|
||||
Description = String.Format(Messages.DOWNLOADING_PATCH_FROM, patch.Connection.Hostname);
|
||||
Description = String.Format(Messages.DOWNLOADING_PATCH_FROM, patch.Connection.Name);
|
||||
|
||||
// 1st download patch from the pool that has it (the connection on the xenobject)
|
||||
|
||||
@ -69,6 +69,10 @@ namespace XenAdmin.Actions
|
||||
(HTTP_actions.get_sss)HTTP_actions.get_pool_patch_download,
|
||||
Session.uuid, patch.uuid);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new PatchDownloadFailedException(string.Format(Messages.PATCH_DOWNLOAD_FAILED, patch.name_label, patch.Connection.Name), e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Connection = null;
|
||||
@ -169,4 +173,10 @@ namespace XenAdmin.Actions
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class PatchDownloadFailedException : ApplicationException
|
||||
{
|
||||
public PatchDownloadFailedException(string message, Exception innerException) :
|
||||
base(message, innerException) { }
|
||||
}
|
||||
}
|
||||
|
@ -93,9 +93,20 @@ namespace XenAdmin.Actions
|
||||
{
|
||||
Description = String.Format(Messages.ACTION_GET_DISK_SPACE_REQUIREMENTS_DESCRIPTION, Host.Name);
|
||||
|
||||
long requiredDiskSpace = updateSize;
|
||||
string result;
|
||||
|
||||
// get required disk space
|
||||
long requiredDiskSpace = updateSize;
|
||||
try
|
||||
{
|
||||
result = Host.call_plugin(Session, Host.opaque_ref, "disk-space", "get_required_space", new Dictionary<string, string>());
|
||||
requiredDiskSpace = Convert.ToInt64(result);
|
||||
}
|
||||
catch (Failure failure)
|
||||
{
|
||||
log.WarnFormat("Plugin call disk-space.get_required_space on {0} failed with {1}", Host.Name, failure.Message);
|
||||
}
|
||||
|
||||
// get available disk space
|
||||
long availableDiskSpace = 0;
|
||||
try
|
||||
@ -155,7 +166,7 @@ namespace XenAdmin.Actions
|
||||
|
||||
public bool CanCleanup
|
||||
{
|
||||
get { return ReclaimableDiskSpace + AvailableDiskSpace > RequiredDiskSpace && RequiredDiskSpace > 0; }
|
||||
get { return ReclaimableDiskSpace + AvailableDiskSpace > RequiredDiskSpace && RequiredDiskSpace > 0 && ReclaimableDiskSpace > 0; }
|
||||
}
|
||||
|
||||
public string GetSpaceRequirementsMessage()
|
||||
|
27
XenModel/FriendlyNames.Designer.cs
generated
27
XenModel/FriendlyNames.Designer.cs
generated
@ -2922,6 +2922,33 @@ namespace XenAdmin {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Disks.
|
||||
/// </summary>
|
||||
public static string Label_VM_read_caching_disks {
|
||||
get {
|
||||
return ResourceManager.GetString("Label-VM.read_caching_disks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Reason.
|
||||
/// </summary>
|
||||
public static string Label_VM_read_caching_reason {
|
||||
get {
|
||||
return ResourceManager.GetString("Label-VM.read_caching_reason", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Status.
|
||||
/// </summary>
|
||||
public static string Label_VM_read_caching_status {
|
||||
get {
|
||||
return ResourceManager.GetString("Label-VM.read_caching_status", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Topology.
|
||||
/// </summary>
|
||||
|
@ -1745,4 +1745,13 @@
|
||||
<data name="Label-Supplemental_packs.installed" xml:space="preserve">
|
||||
<value>Installed supplemental packs</value>
|
||||
</data>
|
||||
<data name="Label-VM.read_caching_status" xml:space="preserve">
|
||||
<value>Status</value>
|
||||
</data>
|
||||
<data name="Label-VM.read_caching_disks" xml:space="preserve">
|
||||
<value>Disks</value>
|
||||
</data>
|
||||
<data name="Label-VM.read_caching_reason" xml:space="preserve">
|
||||
<value>Reason</value>
|
||||
</data>
|
||||
</root>
|
273
XenModel/Messages.Designer.cs
generated
273
XenModel/Messages.Designer.cs
generated
@ -10490,6 +10490,204 @@ namespace XenAdmin {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Api Version.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_API_VERSION {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_API_VERSION", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Arch.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_ARCH {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_ARCH", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Debug.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_DEBUG {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_DEBUG", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Driver.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_DRIVER {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_DRIVER", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Driver Status.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_DRIVER_STATUS {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_DRIVER_STATUS", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Execution Driver.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_EXECUTION_DRIVER {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_EXECUTION_DRIVER", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Git Commit.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_GIT_COMMIT {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_GIT_COMMIT", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Go Version.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_GO_VERSION {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_GO_VERSION", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Index Server Address.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_INDEX_SERVER_ADDRESS {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_INDEX_SERVER_ADDRESS", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Initiate Path.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_INITIATE_PATH {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_INITIATE_PATH", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Initiate Sha1.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_INITIATE_SHA1 {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_INITIATE_SHA1", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to IPv4 Forwarding.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_IPV4_FORWARDING {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_IPV4_FORWARDING", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Kernel Version.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_KERNEL_VERSION {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_KERNEL_VERSION", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Labels.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_LABELS {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_LABELS", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Memory Limit.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_MEMORY_LIMIT {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_MEMORY_LIMIT", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to NCPU.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_NCPU {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_NCPU", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to NEvents Listener.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_NEVENT_LISTENER {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_NEVENT_LISTENER", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to NFd.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_NFD {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_NFD", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to NGoroutines.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_NGOROUTINES {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_NGOROUTINES", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Root Directory.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_ROOT_DIR {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_ROOT_DIR", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Swap Limit.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_SWAP_LIMIT {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_SWAP_LIMIT", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Version.
|
||||
/// </summary>
|
||||
public static string DOCKER_INFO_VERSION {
|
||||
get {
|
||||
return ResourceManager.GetString("DOCKER_INFO_VERSION", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Docker Processes.
|
||||
/// </summary>
|
||||
@ -10617,7 +10815,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Downloading Update from Server {0}....
|
||||
/// Looks up a localized string similar to Downloading update from '{0}'....
|
||||
/// </summary>
|
||||
public static string DOWNLOADING_PATCH_FROM {
|
||||
get {
|
||||
@ -23785,7 +23983,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to You need to manually free up more space and try again..
|
||||
/// Looks up a localized string similar to Free up some space and try again..
|
||||
/// </summary>
|
||||
public static string NOT_ENOUGH_SPACE_MESSAGE_NOCLEANUP {
|
||||
get {
|
||||
@ -24443,6 +24641,28 @@ namespace XenAdmin {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Failed to download {0} from '{1}'.
|
||||
/// </summary>
|
||||
public static string PATCH_DOWNLOAD_FAILED {
|
||||
get {
|
||||
return ResourceManager.GetString("PATCH_DOWNLOAD_FAILED", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Failed to download the update {0} from '{1}'.
|
||||
///
|
||||
///The update is installed on '{1}', but the update installation file may have since been deleted.
|
||||
///
|
||||
///Upload the update from an .xsupdate file instead..
|
||||
/// </summary>
|
||||
public static string PATCH_DOWNLOAD_FAILED_MORE_INFO {
|
||||
get {
|
||||
return ResourceManager.GetString("PATCH_DOWNLOAD_FAILED_MORE_INFO", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to {0}
|
||||
///Date modified: {1}
|
||||
@ -24576,7 +24796,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to &Clean up....
|
||||
/// Looks up a localized string similar to Clean up....
|
||||
/// </summary>
|
||||
public static string PATCHINGWIZARD_CLEANUP {
|
||||
get {
|
||||
@ -24648,7 +24868,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to &More info....
|
||||
/// Looks up a localized string similar to More info....
|
||||
/// </summary>
|
||||
public static string PATCHINGWIZARD_MORE_INFO {
|
||||
get {
|
||||
@ -33487,6 +33707,51 @@ namespace XenAdmin {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to This VM is not using Read Caching.
|
||||
/// </summary>
|
||||
public static string VM_READ_CACHING_DISABLED {
|
||||
get {
|
||||
return ResourceManager.GetString("VM_READ_CACHING_DISABLED", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Not licensed for Read Caching.
|
||||
/// </summary>
|
||||
public static string VM_READ_CACHING_DISABLED_REASON_LICENSE {
|
||||
get {
|
||||
return ResourceManager.GetString("VM_READ_CACHING_DISABLED_REASON_LICENSE", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Read Caching is not supported on any of the Storage Repositories used by this VM.
|
||||
/// </summary>
|
||||
public static string VM_READ_CACHING_DISABLED_REASON_SR_TYPE {
|
||||
get {
|
||||
return ResourceManager.GetString("VM_READ_CACHING_DISABLED_REASON_SR_TYPE", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Read Caching is disabled on all supported Storage Repositories used by this VM.
|
||||
/// </summary>
|
||||
public static string VM_READ_CACHING_DISABLED_REASON_TURNED_OFF {
|
||||
get {
|
||||
return ResourceManager.GetString("VM_READ_CACHING_DISABLED_REASON_TURNED_OFF", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to This VM has Read Caching enabled.
|
||||
/// </summary>
|
||||
public static string VM_READ_CACHING_ENABLED {
|
||||
get {
|
||||
return ResourceManager.GetString("VM_READ_CACHING_ENABLED", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to VM reverted to '{0}'.
|
||||
/// </summary>
|
||||
|
@ -3649,6 +3649,72 @@ VM {2} をエクスポートしてもよろしいですか?</value>
|
||||
<data name="DOCKER_PROCESS_TAB_TITLE" xml:space="preserve">
|
||||
<value>Docker Processes</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_API_VERSION" xml:space="preserve">
|
||||
<value>Api Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_ARCH" xml:space="preserve">
|
||||
<value>Arch</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DEBUG" xml:space="preserve">
|
||||
<value>Debug</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DRIVER" xml:space="preserve">
|
||||
<value>Driver</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DRIVER_STATUS" xml:space="preserve">
|
||||
<value>Driver Status</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_EXECUTION_DRIVER" xml:space="preserve">
|
||||
<value>Execution Driver</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_GIT_COMMIT" xml:space="preserve">
|
||||
<value>Git Commit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_GO_VERSION" xml:space="preserve">
|
||||
<value>Go Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INDEX_SERVER_ADDRESS" xml:space="preserve">
|
||||
<value>Index Server Address</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INITIATE_PATH" xml:space="preserve">
|
||||
<value>Initiate Path</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INITIATE_SHA1" xml:space="preserve">
|
||||
<value>Initiate Sha1</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_IPV4_FORWARDING" xml:space="preserve">
|
||||
<value>IPv4 Forwarding</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_KERNEL_VERSION" xml:space="preserve">
|
||||
<value>Kernel Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_LABELS" xml:space="preserve">
|
||||
<value>Labels</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_MEMORY_LIMIT" xml:space="preserve">
|
||||
<value>Memory Limit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NCPU" xml:space="preserve">
|
||||
<value>NCPU</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NEVENT_LISTENER" xml:space="preserve">
|
||||
<value>NEvents Listener</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NFD" xml:space="preserve">
|
||||
<value>NFd</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NGOROUTINES" xml:space="preserve">
|
||||
<value>NGoroutines</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_ROOT_DIR" xml:space="preserve">
|
||||
<value>Root Directory</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_SWAP_LIMIT" xml:space="preserve">
|
||||
<value>Swap Limit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_VERSION" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="DONE" xml:space="preserve">
|
||||
<value>完了しました。</value>
|
||||
</data>
|
||||
|
125
XenModel/Messages.resx
Normal file → Executable file
125
XenModel/Messages.resx
Normal file → Executable file
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
@ -576,6 +576,15 @@
|
||||
<data name="ACTION_REMOVE_ALERTS_PROGRESS_DESCRIPTION" xml:space="preserve">
|
||||
<value>Removing alert {0} of {1}...</value>
|
||||
</data>
|
||||
<data name="ACTION_RESTART_CONTAINER_DESCRIPTION" xml:space="preserve">
|
||||
<value>Restarting</value>
|
||||
</data>
|
||||
<data name="ACTION_RESTART_CONTAINER_END_DESCRIPTION" xml:space="preserve">
|
||||
<value>Restarted</value>
|
||||
</data>
|
||||
<data name="ACTION_RESTART_CONTAINER_TITLE" xml:space="preserve">
|
||||
<value>Restarting Docker Container '{0}'</value>
|
||||
</data>
|
||||
<data name="ACTION_RESUMEANDSTARTVMS_PREPARING" xml:space="preserve">
|
||||
<value>Preparing to resume and start VMs...</value>
|
||||
</data>
|
||||
@ -3724,6 +3733,72 @@ This will also delete its subfolders.</value>
|
||||
<data name="DOCKER_PROCESS_TAB_TITLE" xml:space="preserve">
|
||||
<value>Docker Processes</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_API_VERSION" xml:space="preserve">
|
||||
<value>Api Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_ARCH" xml:space="preserve">
|
||||
<value>Arch</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DEBUG" xml:space="preserve">
|
||||
<value>Debug</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DRIVER" xml:space="preserve">
|
||||
<value>Driver</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DRIVER_STATUS" xml:space="preserve">
|
||||
<value>Driver Status</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_EXECUTION_DRIVER" xml:space="preserve">
|
||||
<value>Execution Driver</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_GIT_COMMIT" xml:space="preserve">
|
||||
<value>Git Commit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_GO_VERSION" xml:space="preserve">
|
||||
<value>Go Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INDEX_SERVER_ADDRESS" xml:space="preserve">
|
||||
<value>Index Server Address</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INITIATE_PATH" xml:space="preserve">
|
||||
<value>Initiate Path</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INITIATE_SHA1" xml:space="preserve">
|
||||
<value>Initiate Sha1</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_IPV4_FORWARDING" xml:space="preserve">
|
||||
<value>IPv4 Forwarding</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_KERNEL_VERSION" xml:space="preserve">
|
||||
<value>Kernel Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_LABELS" xml:space="preserve">
|
||||
<value>Labels</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_MEMORY_LIMIT" xml:space="preserve">
|
||||
<value>Memory Limit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NCPU" xml:space="preserve">
|
||||
<value>NCPU</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NEVENT_LISTENER" xml:space="preserve">
|
||||
<value>NEvents Listener</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NFD" xml:space="preserve">
|
||||
<value>NFd</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NGOROUTINES" xml:space="preserve">
|
||||
<value>NGoroutines</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_ROOT_DIR" xml:space="preserve">
|
||||
<value>Root Directory</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_SWAP_LIMIT" xml:space="preserve">
|
||||
<value>Swap Limit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_VERSION" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="DONE" xml:space="preserve">
|
||||
<value>done.</value>
|
||||
</data>
|
||||
@ -3734,7 +3809,7 @@ This will also delete its subfolders.</value>
|
||||
<value>{0} is now available</value>
|
||||
</data>
|
||||
<data name="DOWNLOADING_PATCH_FROM" xml:space="preserve">
|
||||
<value>Downloading Update from Server {0}...</value>
|
||||
<value>Downloading update from '{0}'...</value>
|
||||
</data>
|
||||
<data name="DOWNLOAD_AND_EXTRACT_ACTION_DOWNLOADING_DESC" xml:space="preserve">
|
||||
<value>Downloading {0}</value>
|
||||
@ -6771,6 +6846,9 @@ This will permanently delete and reinitialize all local storage on the servers.
|
||||
<data name="MAINWINDOW_REPAIR_SR_CONTEXT_MENU" xml:space="preserve">
|
||||
<value>Re&pair...</value>
|
||||
</data>
|
||||
<data name="MAINWINDOW_RESTART" xml:space="preserve">
|
||||
<value>Re&start</value>
|
||||
</data>
|
||||
<data name="MAINWINDOW_RESTART_TOOLSTACK" xml:space="preserve">
|
||||
<value>Restart Toolstac&k</value>
|
||||
</data>
|
||||
@ -8261,7 +8339,7 @@ It is strongly recommended that you Cancel and apply the latest version of the p
|
||||
<value>There is not enough space on '{0}' to install update '{1}'.</value>
|
||||
</data>
|
||||
<data name="NOT_ENOUGH_SPACE_MESSAGE_NOCLEANUP" xml:space="preserve">
|
||||
<value>You need to manually free up more space and try again.</value>
|
||||
<value>Free up some space and try again.</value>
|
||||
</data>
|
||||
<data name="NOT_ENOUGH_SPACE_MESSAGE_REQUIRED_SPACE" xml:space="preserve">
|
||||
<value>Space required: {0}</value>
|
||||
@ -8490,7 +8568,7 @@ It is strongly recommended that you Cancel and apply the latest version of the p
|
||||
<value>Paste</value>
|
||||
</data>
|
||||
<data name="PATCHINGWIZARD_CLEANUP" xml:space="preserve">
|
||||
<value>&Clean up...</value>
|
||||
<value>Clean up...</value>
|
||||
</data>
|
||||
<data name="PATCHINGWIZARD_MODEPAGE_NOACTION" xml:space="preserve">
|
||||
<value>No action required</value>
|
||||
@ -8514,7 +8592,7 @@ It is strongly recommended that you Cancel and apply the latest version of the p
|
||||
<value>Unknown</value>
|
||||
</data>
|
||||
<data name="PATCHINGWIZARD_MORE_INFO" xml:space="preserve">
|
||||
<value>&More info...</value>
|
||||
<value>More info...</value>
|
||||
</data>
|
||||
<data name="PATCHINGWIZARD_PATCHINGPAGE_POOL_RESOLVE" xml:space="preserve">
|
||||
<value>Resolve pool problems</value>
|
||||
@ -8653,6 +8731,16 @@ It is strongly recommended that you Cancel and apply the latest version of the p
|
||||
<data name="PATCH_DESCRIPTION_AND_INSTALLATION_SIZE" xml:space="preserve">
|
||||
<value>{0}
|
||||
Installation size: {1}</value>
|
||||
</data>
|
||||
<data name="PATCH_DOWNLOAD_FAILED" xml:space="preserve">
|
||||
<value>Failed to download {0} from '{1}'</value>
|
||||
</data>
|
||||
<data name="PATCH_DOWNLOAD_FAILED_MORE_INFO" xml:space="preserve">
|
||||
<value>Failed to download the update {0} from '{1}'.
|
||||
|
||||
The update is installed on '{1}', but the update installation file may have since been deleted.
|
||||
|
||||
Upload the update from an .xsupdate file instead.</value>
|
||||
</data>
|
||||
<data name="PATCH_EXPANDED_DESCRIPTION" xml:space="preserve">
|
||||
<value>{0}
|
||||
@ -11585,6 +11673,21 @@ To learn more about the XenServer Dynamic Workload Balancing feature or to start
|
||||
<data name="VM_PROTECTION_POLICY_SUCCEEDED" xml:space="preserve">
|
||||
<value>Succeeded</value>
|
||||
</data>
|
||||
<data name="VM_READ_CACHING_ENABLED" xml:space="preserve">
|
||||
<value>This VM has Read Caching enabled</value>
|
||||
</data>
|
||||
<data name="VM_READ_CACHING_DISABLED" xml:space="preserve">
|
||||
<value>This VM is not using Read Caching</value>
|
||||
</data>
|
||||
<data name="VM_READ_CACHING_DISABLED_REASON_LICENSE" xml:space="preserve">
|
||||
<value>Not licensed for Read Caching</value>
|
||||
</data>
|
||||
<data name="VM_READ_CACHING_DISABLED_REASON_SR_TYPE" xml:space="preserve">
|
||||
<value>Read Caching is not supported on any of the Storage Repositories used by this VM</value>
|
||||
</data>
|
||||
<data name="VM_READ_CACHING_DISABLED_REASON_TURNED_OFF" xml:space="preserve">
|
||||
<value>Read Caching is disabled on all supported Storage Repositories used by this VM</value>
|
||||
</data>
|
||||
<data name="VM_REVERTED" xml:space="preserve">
|
||||
<value>VM reverted to '{0}'</value>
|
||||
</data>
|
||||
@ -12512,16 +12615,4 @@ You will need to navigate to the Console on each of the selected VMs to complete
|
||||
<data name="YOU_ARE_HERE" xml:space="preserve">
|
||||
<value>You are here</value>
|
||||
</data>
|
||||
<data name="ACTION_RESTART_CONTAINER_DESCRIPTION" xml:space="preserve">
|
||||
<value>Restarting</value>
|
||||
</data>
|
||||
<data name="ACTION_RESTART_CONTAINER_END_DESCRIPTION" xml:space="preserve">
|
||||
<value>Restarted</value>
|
||||
</data>
|
||||
<data name="ACTION_RESTART_CONTAINER_TITLE" xml:space="preserve">
|
||||
<value>Restarting Docker Container '{0}'</value>
|
||||
</data>
|
||||
<data name="MAINWINDOW_RESTART" xml:space="preserve">
|
||||
<value>Re&start</value>
|
||||
</data>
|
||||
</root>
|
@ -3648,6 +3648,72 @@ XenServer 可以重新启动服务器并将服务器的 CPU 级别降至池中
|
||||
<data name="DOCKER_PROCESS_TAB_TITLE" xml:space="preserve">
|
||||
<value>Docker进程</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_API_VERSION" xml:space="preserve">
|
||||
<value>Api Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_ARCH" xml:space="preserve">
|
||||
<value>Arch</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DEBUG" xml:space="preserve">
|
||||
<value>Debug</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DRIVER" xml:space="preserve">
|
||||
<value>Driver</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_DRIVER_STATUS" xml:space="preserve">
|
||||
<value>Driver Status</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_EXECUTION_DRIVER" xml:space="preserve">
|
||||
<value>Execution Driver</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_GIT_COMMIT" xml:space="preserve">
|
||||
<value>Git Commit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_GO_VERSION" xml:space="preserve">
|
||||
<value>Go Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INDEX_SERVER_ADDRESS" xml:space="preserve">
|
||||
<value>Index Server Address</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INITIATE_PATH" xml:space="preserve">
|
||||
<value>Initiate Path</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_INITIATE_SHA1" xml:space="preserve">
|
||||
<value>Initiate Sha1</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_IPV4_FORWARDING" xml:space="preserve">
|
||||
<value>IPv4 Forwarding</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_KERNEL_VERSION" xml:space="preserve">
|
||||
<value>Kernel Version</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_LABELS" xml:space="preserve">
|
||||
<value>Labels</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_MEMORY_LIMIT" xml:space="preserve">
|
||||
<value>Memory Limit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NCPU" xml:space="preserve">
|
||||
<value>NCPU</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NEVENT_LISTENER" xml:space="preserve">
|
||||
<value>NEvents Listener</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NFD" xml:space="preserve">
|
||||
<value>NFd</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_NGOROUTINES" xml:space="preserve">
|
||||
<value>NGoroutines</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_ROOT_DIR" xml:space="preserve">
|
||||
<value>Root Directory</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_SWAP_LIMIT" xml:space="preserve">
|
||||
<value>Swap Limit</value>
|
||||
</data>
|
||||
<data name="DOCKER_INFO_VERSION" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="DONE" xml:space="preserve">
|
||||
<value>已完成。</value>
|
||||
</data>
|
||||
|
@ -443,6 +443,16 @@ namespace XenAPI
|
||||
return h._RestrictExportResourceData;
|
||||
}
|
||||
|
||||
private bool _RestrictReadCaching
|
||||
{
|
||||
get { return BoolKeyPreferTrue(license_params, "restrict_read_caching"); }
|
||||
}
|
||||
|
||||
public static bool RestrictReadCaching(Host h)
|
||||
{
|
||||
return h._RestrictReadCaching;
|
||||
}
|
||||
|
||||
public bool HasPBDTo(SR sr)
|
||||
{
|
||||
foreach (XenRef<PBD> pbd in PBDs)
|
||||
|
@ -323,6 +323,28 @@ namespace XenAPI
|
||||
public bool IsCloudConfigDrive
|
||||
{
|
||||
get { return other_config.ContainsKey("config-drive") && other_config["config-drive"].ToLower() == "true"; }
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Whether the read caching is enabled on this disk
|
||||
/// </summary>
|
||||
public bool ReadCachingEnabled
|
||||
{
|
||||
get { return BoolKey(sm_config, "read-caching-enabled"); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Whether the read caching is supported on this disk
|
||||
/// </summary>
|
||||
public bool ReadCachingSupported
|
||||
{
|
||||
get
|
||||
{
|
||||
var sr = Connection.Resolve(SR);
|
||||
var srType = sr != null ? sr.GetSRType(false) : XenAPI.SR.SRTypes.unknown;
|
||||
return srType == XenAPI.SR.SRTypes.ext || srType == XenAPI.SR.SRTypes.nfs;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1708,6 +1708,85 @@ namespace XenAPI
|
||||
return CloudConfigDrive != null;
|
||||
}
|
||||
}
|
||||
|
||||
public VM_Docker_Info DockerInfo
|
||||
{
|
||||
get
|
||||
{
|
||||
string xml = Get(other_config, "docker_info");
|
||||
if (string.IsNullOrEmpty(xml))
|
||||
return null;
|
||||
VM_Docker_Info info = new VM_Docker_Info(xml);
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
public VM_Docker_Version DockerVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
string xml = Get(other_config, "docker_version");
|
||||
if (string.IsNullOrEmpty(xml))
|
||||
return null;
|
||||
VM_Docker_Version info = new VM_Docker_Version(xml);
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
public bool ReadCachingEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return ReadCachingVDIs.Count > 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the list of VDIs that have Read Caching enabled
|
||||
/// </summary>
|
||||
public List<VDI> ReadCachingVDIs
|
||||
{
|
||||
get
|
||||
{
|
||||
var readCachingVdis = new List<VDI>();
|
||||
foreach (var vbd in Connection.ResolveAll(VBDs).Where(vbd => vbd != null && vbd.currently_attached))
|
||||
{
|
||||
var vdi = Connection.Resolve(vbd.VDI);
|
||||
if (vdi != null && vdi.ReadCachingEnabled)
|
||||
readCachingVdis.Add(vdi);
|
||||
}
|
||||
return readCachingVdis;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Whether the Read Caching is supported on any of the VDIs
|
||||
/// </summary>
|
||||
public bool ReadCachingSupported
|
||||
{
|
||||
get
|
||||
{
|
||||
foreach (var vbd in Connection.ResolveAll(VBDs).Where(vbd => vbd != null && vbd.currently_attached))
|
||||
{
|
||||
var vdi = Connection.Resolve(vbd.VDI);
|
||||
if (vdi != null && vdi.ReadCachingSupported)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public string ReadCachingDisabledReason
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Helpers.FeatureForbidden(Connection, Host.RestrictReadCaching))
|
||||
return Messages.VM_READ_CACHING_DISABLED_REASON_LICENSE;
|
||||
if (!ReadCachingSupported)
|
||||
return Messages.VM_READ_CACHING_DISABLED_REASON_SR_TYPE;
|
||||
return Messages.VM_READ_CACHING_DISABLED_REASON_TURNED_OFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public struct VMStartupOptions
|
||||
@ -1729,4 +1808,5 @@ namespace XenAPI
|
||||
HaRestartPriority = haRestartPriority;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
338
XenModel/XenAPI-Extensions/VM_Docker_Info.cs
Executable file
338
XenModel/XenAPI-Extensions/VM_Docker_Info.cs
Executable file
@ -0,0 +1,338 @@
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
|
||||
namespace XenAPI
|
||||
{
|
||||
public class VM_Docker_Info
|
||||
{
|
||||
private string _NGoroutines;
|
||||
public string NGoroutines
|
||||
{
|
||||
get { return _NGoroutines; }
|
||||
set {
|
||||
if (value != _NGoroutines)
|
||||
_NGoroutines = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _DockerRootDir;
|
||||
public string DockerRootDir
|
||||
{
|
||||
get { return _DockerRootDir; }
|
||||
set {
|
||||
if (value != _DockerRootDir)
|
||||
_DockerRootDir = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _DriverStatus;
|
||||
public string DriverStatus
|
||||
{
|
||||
get { return _DriverStatus; }
|
||||
set {
|
||||
if (value != _DriverStatus)
|
||||
_DriverStatus = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _OperatingSystem;
|
||||
public string OperatingSystem
|
||||
{
|
||||
get { return _OperatingSystem; }
|
||||
set {
|
||||
if (value != _OperatingSystem)
|
||||
_OperatingSystem = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Containers;
|
||||
public string Containers
|
||||
{
|
||||
get { return _Containers; }
|
||||
set {
|
||||
if (value != _Containers)
|
||||
_Containers = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _MemTotal;
|
||||
public string MemTotal
|
||||
{
|
||||
get { return _MemTotal; }
|
||||
set {
|
||||
if (value != _MemTotal)
|
||||
_MemTotal = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Driver;
|
||||
public string Driver
|
||||
{
|
||||
get { return _Driver; }
|
||||
set {
|
||||
if (value != _Driver)
|
||||
_Driver = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _IndexServerAddress;
|
||||
public string IndexServerAddress
|
||||
{
|
||||
get { return _IndexServerAddress; }
|
||||
set {
|
||||
if (value != _IndexServerAddress)
|
||||
_IndexServerAddress = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _InitPath;
|
||||
public string InitPath
|
||||
{
|
||||
get { return _InitPath; }
|
||||
set {
|
||||
if (value != _InitPath)
|
||||
_InitPath = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _ExecutionDriver;
|
||||
public string ExecutionDriver
|
||||
{
|
||||
get { return _ExecutionDriver; }
|
||||
set {
|
||||
if (value != _ExecutionDriver)
|
||||
_ExecutionDriver = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Name;
|
||||
public string Name
|
||||
{
|
||||
get { return _Name; }
|
||||
set {
|
||||
if (value != _Name)
|
||||
_Name = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _NCPU;
|
||||
public string NCPU
|
||||
{
|
||||
get { return _NCPU; }
|
||||
set {
|
||||
if (value != _NCPU)
|
||||
_NCPU = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Debug;
|
||||
public string Debug
|
||||
{
|
||||
get { return _Debug; }
|
||||
set {
|
||||
if (value != _Debug)
|
||||
_Debug = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _ID;
|
||||
public string ID
|
||||
{
|
||||
get { return _ID; }
|
||||
set {
|
||||
if (value != _ID)
|
||||
_ID = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _IPv4Forwarding;
|
||||
public string IPv4Forwarding
|
||||
{
|
||||
get { return _IPv4Forwarding; }
|
||||
set {
|
||||
if (value != _IPv4Forwarding)
|
||||
_IPv4Forwarding = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _KernelVersion;
|
||||
public string KernelVersion
|
||||
{
|
||||
get { return _KernelVersion; }
|
||||
set {
|
||||
if (value != _KernelVersion)
|
||||
_KernelVersion = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _NFd;
|
||||
public string NFd
|
||||
{
|
||||
get { return _NFd; }
|
||||
set {
|
||||
if (value != _NFd)
|
||||
_NFd = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _InitSha1;
|
||||
public string InitSha1
|
||||
{
|
||||
get { return _InitSha1; }
|
||||
set {
|
||||
if (value != _InitSha1)
|
||||
_InitSha1 = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Labels;
|
||||
public string Labels
|
||||
{
|
||||
get { return _Labels; }
|
||||
set {
|
||||
if (value != _Labels)
|
||||
_Labels = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _MemoryLimit;
|
||||
public string MemoryLimit
|
||||
{
|
||||
get { return _MemoryLimit; }
|
||||
set {
|
||||
if (value != _MemoryLimit)
|
||||
_MemoryLimit = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _SwapLimit;
|
||||
public string SwapLimit
|
||||
{
|
||||
get { return _SwapLimit; }
|
||||
set {
|
||||
if (value != _SwapLimit)
|
||||
_SwapLimit = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Images;
|
||||
public string Images
|
||||
{
|
||||
get { return _Images; }
|
||||
set {
|
||||
if (value != _Images)
|
||||
_Images = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _NEventsListener;
|
||||
public string NEventsListener
|
||||
{
|
||||
get { return _NEventsListener; }
|
||||
set {
|
||||
if (value != _NEventsListener)
|
||||
_NEventsListener = value;
|
||||
}
|
||||
}
|
||||
|
||||
public VM_Docker_Info(string dockerInfo)
|
||||
{
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.LoadXml(dockerInfo);
|
||||
foreach (XmlNode docker_info in doc.GetElementsByTagName("docker_info"))
|
||||
{
|
||||
var propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "NGoroutines");
|
||||
if (propertyNode != null)
|
||||
this.NGoroutines = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "DockerRootDir");
|
||||
if (propertyNode != null)
|
||||
DockerRootDir = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "DriverStatus");
|
||||
if (propertyNode != null)
|
||||
DriverStatus = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "OperatingSystem");
|
||||
if (propertyNode != null)
|
||||
OperatingSystem = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Containers");
|
||||
if (propertyNode != null)
|
||||
Containers = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "MemTotal");
|
||||
if (propertyNode != null)
|
||||
MemTotal = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Driver");
|
||||
if (propertyNode != null)
|
||||
Driver = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "IndexServerAddress");
|
||||
if (propertyNode != null)
|
||||
IndexServerAddress = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "InitPath");
|
||||
if (propertyNode != null)
|
||||
InitPath = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "ExecutionDriver");
|
||||
if (propertyNode != null)
|
||||
ExecutionDriver = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Name");
|
||||
if (propertyNode != null)
|
||||
Name = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "NCPU");
|
||||
if (propertyNode != null)
|
||||
NCPU = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Debug");
|
||||
if (propertyNode != null)
|
||||
Debug = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "ID");
|
||||
if (propertyNode != null)
|
||||
ID = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "IPv4Forwarding");
|
||||
if (propertyNode != null)
|
||||
IPv4Forwarding = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "KernelVersion");
|
||||
if (propertyNode != null)
|
||||
KernelVersion = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "NFd");
|
||||
if (propertyNode != null)
|
||||
NFd = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "InitSha1");
|
||||
if (propertyNode != null)
|
||||
InitSha1 = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Labels");
|
||||
if (propertyNode != null)
|
||||
Labels = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "MemoryLimit");
|
||||
if (propertyNode != null)
|
||||
MemoryLimit = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "SwapLimit");
|
||||
if (propertyNode != null)
|
||||
SwapLimit = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Images");
|
||||
if (propertyNode != null)
|
||||
Images = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_info.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "NEventsListener");
|
||||
if (propertyNode != null)
|
||||
NEventsListener = propertyNode.InnerText;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
121
XenModel/XenAPI-Extensions/VM_Docker_Version.cs
Executable file
121
XenModel/XenAPI-Extensions/VM_Docker_Version.cs
Executable file
@ -0,0 +1,121 @@
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
|
||||
namespace XenAPI
|
||||
{
|
||||
public class VM_Docker_Version
|
||||
{
|
||||
private string _KernelVersion;
|
||||
public string KernelVersion
|
||||
{
|
||||
get { return _KernelVersion; }
|
||||
set
|
||||
{
|
||||
if (value != _KernelVersion)
|
||||
_KernelVersion = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Arch;
|
||||
public string Arch
|
||||
{
|
||||
get { return _Arch; }
|
||||
set
|
||||
{
|
||||
if (value != _Arch)
|
||||
_Arch = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _ApiVersion;
|
||||
public string ApiVersion
|
||||
{
|
||||
get { return _ApiVersion; }
|
||||
set
|
||||
{
|
||||
if (value != _ApiVersion)
|
||||
_ApiVersion = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Version;
|
||||
public string Version
|
||||
{
|
||||
get { return _Version; }
|
||||
set
|
||||
{
|
||||
if (value != _Version)
|
||||
_Version = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _GitCommit;
|
||||
public string GitCommit
|
||||
{
|
||||
get { return _GitCommit; }
|
||||
set
|
||||
{
|
||||
if (value != _GitCommit)
|
||||
_GitCommit = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _Os;
|
||||
public string Os
|
||||
{
|
||||
get { return _Os; }
|
||||
set
|
||||
{
|
||||
if (value != _Os)
|
||||
_Os = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string _GoVersion;
|
||||
public string GoVersion
|
||||
{
|
||||
get { return _GoVersion; }
|
||||
set
|
||||
{
|
||||
if (value != _GoVersion)
|
||||
_GoVersion = value;
|
||||
}
|
||||
}
|
||||
|
||||
public VM_Docker_Version(string dockerVersion)
|
||||
{
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.LoadXml(dockerVersion);
|
||||
foreach (XmlNode docker_Version in doc.GetElementsByTagName("docker_version"))
|
||||
{
|
||||
var propertyNode = docker_Version.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "KernelVersion");
|
||||
if (propertyNode != null)
|
||||
this.KernelVersion = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_Version.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Arch");
|
||||
if (propertyNode != null)
|
||||
this.Arch = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_Version.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "ApiVersion");
|
||||
if (propertyNode != null)
|
||||
this.ApiVersion = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_Version.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Version");
|
||||
if (propertyNode != null)
|
||||
this.Version = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_Version.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "GitCommit");
|
||||
if (propertyNode != null)
|
||||
this.GitCommit = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_Version.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "Os");
|
||||
if (propertyNode != null)
|
||||
this.Os = propertyNode.InnerText;
|
||||
|
||||
propertyNode = docker_Version.ChildNodes.Cast<XmlNode>().FirstOrDefault(node => node.Name == "GoVersion");
|
||||
if (propertyNode != null)
|
||||
this.GoVersion = propertyNode.InnerText;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -308,11 +308,13 @@
|
||||
<Compile Include="WLB\WlbHostConfiguration.cs" />
|
||||
<Compile Include="WLB\WlbServerState.cs" />
|
||||
<Compile Include="XenAPI-Extensions\Blob.cs" />
|
||||
<Compile Include="XenAPI-Extensions\VM_Docker_Info.cs" />
|
||||
<Compile Include="XenAPI-Extensions\GPU_group.cs" />
|
||||
<Compile Include="XenAPI-Extensions\PGPU.cs" />
|
||||
<Compile Include="XenAPI-Extensions\VGPU.cs" />
|
||||
<Compile Include="XenAPI-Extensions\VGPU_type.cs" />
|
||||
<Compile Include="XenAPI-Extensions\VM_appliance.cs" />
|
||||
<Compile Include="XenAPI-Extensions\VM_Docker_Version.cs" />
|
||||
<Compile Include="XenAPI-Extensions\vm_power_state.cs" />
|
||||
<Compile Include="XenAPI\allocation_algorithm.cs" />
|
||||
<Compile Include="XenAPI\bond_mode.cs" />
|
||||
|
Loading…
Reference in New Issue
Block a user