Merge pull request #1873 from serencorbett1/REQ-477

CP-25551 and CP-25565
This commit is contained in:
Mihaela Stoica 2017-11-28 14:30:47 +00:00 committed by GitHub
commit d57b983dad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 2937 additions and 1517 deletions

View File

@ -1,92 +0,0 @@
namespace XenAdmin.Controls
{
partial class SrProvisioningMethod
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SrProvisioningMethod));
this.groupBoxProvisioningMethod = new System.Windows.Forms.GroupBox();
this.tableLayoutPanelBondMode = new System.Windows.Forms.TableLayoutPanel();
this.radioButtonLvm = new System.Windows.Forms.RadioButton();
this.radioButtonGfs2 = new System.Windows.Forms.RadioButton();
this.groupBoxProvisioningMethod.SuspendLayout();
this.tableLayoutPanelBondMode.SuspendLayout();
this.SuspendLayout();
//
// groupBoxProvisioningMethod
//
resources.ApplyResources(this.groupBoxProvisioningMethod, "groupBoxProvisioningMethod");
this.groupBoxProvisioningMethod.BackColor = System.Drawing.SystemColors.Control;
this.groupBoxProvisioningMethod.Controls.Add(this.tableLayoutPanelBondMode);
this.groupBoxProvisioningMethod.Name = "groupBoxProvisioningMethod";
this.groupBoxProvisioningMethod.TabStop = false;
//
// tableLayoutPanelBondMode
//
resources.ApplyResources(this.tableLayoutPanelBondMode, "tableLayoutPanelBondMode");
this.tableLayoutPanelBondMode.BackColor = System.Drawing.SystemColors.Control;
this.tableLayoutPanelBondMode.Controls.Add(this.radioButtonLvm, 0, 0);
this.tableLayoutPanelBondMode.Controls.Add(this.radioButtonGfs2, 1, 0);
this.tableLayoutPanelBondMode.Name = "tableLayoutPanelBondMode";
//
// radioButtonLvm
//
resources.ApplyResources(this.radioButtonLvm, "radioButtonLvm");
this.radioButtonLvm.Checked = true;
this.radioButtonLvm.Name = "radioButtonLvm";
this.radioButtonLvm.TabStop = true;
this.radioButtonLvm.UseVisualStyleBackColor = true;
//
// radioButtonGfs2
//
resources.ApplyResources(this.radioButtonGfs2, "radioButtonGfs2");
this.radioButtonGfs2.Name = "radioButtonGfs2";
this.radioButtonGfs2.UseVisualStyleBackColor = true;
//
// SrProvisioningMethod
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.SystemColors.Control;
this.Controls.Add(this.groupBoxProvisioningMethod);
this.Name = "SrProvisioningMethod";
this.groupBoxProvisioningMethod.ResumeLayout(false);
this.groupBoxProvisioningMethod.PerformLayout();
this.tableLayoutPanelBondMode.ResumeLayout(false);
this.tableLayoutPanelBondMode.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox groupBoxProvisioningMethod;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelBondMode;
private System.Windows.Forms.RadioButton radioButtonLvm;
private System.Windows.Forms.RadioButton radioButtonGfs2;
}
}

View File

@ -1,30 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace XenAdmin.Controls
{
public partial class SrProvisioningMethod : UserControl
{
public SrProvisioningMethod()
{
InitializeComponent();
}
internal bool Gfs2
{
get { return radioButtonGfs2.Checked; }
}
internal bool Lvm
{
get { return radioButtonLvm.Checked; }
}
}
}

View File

@ -1,288 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="groupBoxProvisioningMethod.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanelBondMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelBondMode.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelBondMode.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="radioButtonLvm.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonLvm.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="radioButtonLvm.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 3</value>
</data>
<data name="radioButtonLvm.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonLvm.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 17</value>
</data>
<data name="radioButtonLvm.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="radioButtonLvm.Text" xml:space="preserve">
<value>Fully provisioned (L&amp;VM)</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Name" xml:space="preserve">
<value>radioButtonLvm</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonLvm.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="radioButtonGfs2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonGfs2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonGfs2.Location" type="System.Drawing.Point, System.Drawing">
<value>167, 3</value>
</data>
<data name="radioButtonGfs2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>24, 3, 3, 3</value>
</data>
<data name="radioButtonGfs2.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 17</value>
</data>
<data name="radioButtonGfs2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="radioButtonGfs2.Text" xml:space="preserve">
<value>Thinly provisioned (&amp;GFS-2)</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Name" xml:space="preserve">
<value>radioButtonGfs2</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelBondMode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelBondMode.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 14</value>
</data>
<data name="tableLayoutPanelBondMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanelBondMode.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>0, 20</value>
</data>
<data name="tableLayoutPanelBondMode.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelBondMode.Size" type="System.Drawing.Size, System.Drawing">
<value>374, 28</value>
</data>
<data name="tableLayoutPanelBondMode.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Name" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Parent" xml:space="preserve">
<value>groupBoxProvisioningMethod</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelBondMode.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioButtonLvm" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonGfs2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,Absolute,28" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="groupBoxProvisioningMethod.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="groupBoxProvisioningMethod.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="groupBoxProvisioningMethod.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 6, 0, 0</value>
</data>
<data name="groupBoxProvisioningMethod.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 1, 3, 2</value>
</data>
<data name="groupBoxProvisioningMethod.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 44</value>
</data>
<data name="groupBoxProvisioningMethod.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="groupBoxProvisioningMethod.Text" xml:space="preserve">
<value>Provisioning method</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Name" xml:space="preserve">
<value>groupBoxProvisioningMethod</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>330, 44</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 44</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>SrProvisioningMethod</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -1,288 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="groupBoxProvisioningMethod.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanelBondMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelBondMode.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelBondMode.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="radioButtonLvm.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonLvm.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="radioButtonLvm.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 3</value>
</data>
<data name="radioButtonLvm.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonLvm.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 17</value>
</data>
<data name="radioButtonLvm.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="radioButtonLvm.Text" xml:space="preserve">
<value>Fully provisioned (L&amp;VM)</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Name" xml:space="preserve">
<value>radioButtonLvm</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonLvm.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="radioButtonGfs2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonGfs2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonGfs2.Location" type="System.Drawing.Point, System.Drawing">
<value>167, 3</value>
</data>
<data name="radioButtonGfs2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>24, 3, 3, 3</value>
</data>
<data name="radioButtonGfs2.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 17</value>
</data>
<data name="radioButtonGfs2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="radioButtonGfs2.Text" xml:space="preserve">
<value>Thinly provisioned (&amp;GFS-2)</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Name" xml:space="preserve">
<value>radioButtonGfs2</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelBondMode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelBondMode.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 14</value>
</data>
<data name="tableLayoutPanelBondMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanelBondMode.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>0, 20</value>
</data>
<data name="tableLayoutPanelBondMode.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelBondMode.Size" type="System.Drawing.Size, System.Drawing">
<value>374, 28</value>
</data>
<data name="tableLayoutPanelBondMode.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Name" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Parent" xml:space="preserve">
<value>groupBoxProvisioningMethod</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelBondMode.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioButtonLvm" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonGfs2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,Absolute,28" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="groupBoxProvisioningMethod.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="groupBoxProvisioningMethod.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="groupBoxProvisioningMethod.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 6, 0, 0</value>
</data>
<data name="groupBoxProvisioningMethod.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 1, 3, 2</value>
</data>
<data name="groupBoxProvisioningMethod.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 44</value>
</data>
<data name="groupBoxProvisioningMethod.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="groupBoxProvisioningMethod.Text" xml:space="preserve">
<value>Provisioning method</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Name" xml:space="preserve">
<value>groupBoxProvisioningMethod</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>330, 44</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 44</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>SrProvisioningMethod</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -1,288 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="groupBoxProvisioningMethod.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanelBondMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelBondMode.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelBondMode.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="radioButtonLvm.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonLvm.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="radioButtonLvm.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 3</value>
</data>
<data name="radioButtonLvm.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonLvm.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 17</value>
</data>
<data name="radioButtonLvm.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="radioButtonLvm.Text" xml:space="preserve">
<value>Fully provisioned (L&amp;VM)</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Name" xml:space="preserve">
<value>radioButtonLvm</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonLvm.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonLvm.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="radioButtonGfs2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonGfs2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonGfs2.Location" type="System.Drawing.Point, System.Drawing">
<value>167, 3</value>
</data>
<data name="radioButtonGfs2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>24, 3, 3, 3</value>
</data>
<data name="radioButtonGfs2.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 17</value>
</data>
<data name="radioButtonGfs2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="radioButtonGfs2.Text" xml:space="preserve">
<value>Thinly provisioned (&amp;GFS-2)</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Name" xml:space="preserve">
<value>radioButtonGfs2</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonGfs2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelBondMode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelBondMode.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 14</value>
</data>
<data name="tableLayoutPanelBondMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanelBondMode.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>0, 20</value>
</data>
<data name="tableLayoutPanelBondMode.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelBondMode.Size" type="System.Drawing.Size, System.Drawing">
<value>374, 28</value>
</data>
<data name="tableLayoutPanelBondMode.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Name" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Parent" xml:space="preserve">
<value>groupBoxProvisioningMethod</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelBondMode.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioButtonLvm" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonGfs2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,Absolute,28" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="groupBoxProvisioningMethod.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="groupBoxProvisioningMethod.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="groupBoxProvisioningMethod.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 6, 0, 0</value>
</data>
<data name="groupBoxProvisioningMethod.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 1, 3, 2</value>
</data>
<data name="groupBoxProvisioningMethod.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 44</value>
</data>
<data name="groupBoxProvisioningMethod.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="groupBoxProvisioningMethod.Text" xml:space="preserve">
<value>Provisioning method</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Name" xml:space="preserve">
<value>groupBoxProvisioningMethod</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBoxProvisioningMethod.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>330, 44</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 44</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>SrProvisioningMethod</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -66,6 +66,7 @@ namespace XenAdmin.Wizards
private readonly CslgLocation xenTabPageCslgLocation;
private readonly FilerDetails xenTabPageFilerDetails;
private readonly ChooseSrTypePage xenTabPageChooseSrType;
private readonly ChooseSrProvisioningPage xenTabPageChooseSrProv;
private readonly RBACWarningPage xenTabPageRbacWarning;
#endregion
@ -114,6 +115,7 @@ namespace XenAdmin.Wizards
xenTabPageCslgLocation = new CslgLocation();
xenTabPageFilerDetails = new FilerDetails();
xenTabPageChooseSrType = new ChooseSrTypePage();
xenTabPageChooseSrProv = new ChooseSrProvisioningPage();
xenTabPageRbacWarning = new RBACWarningPage((srToReattach == null && !disasterRecoveryTask)
? Messages.RBAC_WARNING_PAGE_DESCRIPTION_SR_CREATE
: Messages.RBAC_WARNING_PAGE_DESCRIPTION_SR_ATTACH);
@ -283,15 +285,18 @@ namespace XenAdmin.Wizards
else if (m_srWizardType is SrWizardType_Iscsi)
{
AddPage(xenTabPageLvmoIscsi);
AddPage(xenTabPageChooseSrProv);
}
else if (m_srWizardType is SrWizardType_Hba)
{
AddPage(xenTabPageLvmoHba);
AddPage(xenTabPageChooseSrProv);
AddPage(xenTabPageLvmoHbaSummary);
}
else if (m_srWizardType is SrWizardType_Fcoe)
{
AddPage(xenTabPageLvmoFcoe);
AddPage(xenTabPageChooseSrProv);
AddPage(xenTabPageLvmoHbaSummary);
}
else if (m_srWizardType is SrWizardType_Cslg)
@ -352,6 +357,13 @@ namespace XenAdmin.Wizards
xenTabPageLvmoFcoe.SrWizardType = m_srWizardType;
#endregion
}
else if (senderPagetype == typeof(ChooseSrProvisioningPage))
{
var isGfs2 = xenTabPageChooseSrProv.IsGfs2;
xenTabPageLvmoHba.SrType = isGfs2 ? SR.SRTypes.gfs2 : SR.SRTypes.lvmohba;
xenTabPageLvmoFcoe.SrType = isGfs2 ? SR.SRTypes.gfs2 : SR.SRTypes.lvmofcoe;
xenTabPageLvmoIscsi.SrType = isGfs2 ? SR.SRTypes.gfs2 : SR.SRTypes.lvmoiscsi;
}
else if (senderPagetype == typeof(CIFS_ISO))
{
m_srWizardType.DeviceConfig = xenTabPageCifsIso.DeviceConfig;
@ -369,7 +381,7 @@ namespace XenAdmin.Wizards
m_srWizardType.UUID = xenTabPageLvmoIscsi.UUID;
m_srWizardType.DeviceConfig = xenTabPageLvmoIscsi.DeviceConfig;
m_srWizardType.IsGfs2 = xenTabPageLvmoIscsi.SRType == SR.SRTypes.gfs2;
m_srWizardType.IsGfs2 = xenTabPageLvmoIscsi.SrType == SR.SRTypes.gfs2;
}
else if (senderPagetype == typeof(NFS_ISO))
{
@ -786,5 +798,6 @@ namespace XenAdmin.Wizards
{
xenTabPageChooseSrType.PreselectNewSrWizardType(typeof(SrWizardType_NfsIso));
}
}
}

View File

@ -0,0 +1,179 @@
namespace XenAdmin.Wizards.NewSRWizard_Pages
{
partial class ChooseSrProvisioningPage
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.label1 = new System.Windows.Forms.Label();
this.radioButtonGfs2 = new System.Windows.Forms.RadioButton();
this.labelGFS2 = new System.Windows.Forms.Label();
this.radioButtonLvm = new System.Windows.Forms.RadioButton();
this.label3 = new System.Windows.Forms.Label();
this.labelWarning = new System.Windows.Forms.Label();
this.pictureBoxInfo = new System.Windows.Forms.PictureBox();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxInfo)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 2;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.radioButtonGfs2, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.labelGFS2, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.radioButtonLvm, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 4);
this.tableLayoutPanel1.Controls.Add(this.labelWarning, 1, 5);
this.tableLayoutPanel1.Controls.Add(this.pictureBoxInfo, 0, 5);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(3, 10, 3, 3);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 6;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(540, 336);
this.tableLayoutPanel1.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.tableLayoutPanel1.SetColumnSpan(this.label1, 2);
this.label1.Font = new System.Drawing.Font("Segoe UI", 9F);
this.label1.Location = new System.Drawing.Point(3, 3);
this.label1.Margin = new System.Windows.Forms.Padding(3, 3, 3, 10);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(340, 15);
this.label1.TabIndex = 0;
this.label1.Text = "Select the provisioning method for the new Storage Repository.";
//
// radioButtonGfs2
//
this.radioButtonGfs2.AutoSize = true;
this.radioButtonGfs2.Checked = true;
this.tableLayoutPanel1.SetColumnSpan(this.radioButtonGfs2, 2);
this.radioButtonGfs2.Font = new System.Drawing.Font("Segoe UI", 9F);
this.radioButtonGfs2.Location = new System.Drawing.Point(3, 34);
this.radioButtonGfs2.Margin = new System.Windows.Forms.Padding(3, 6, 3, 3);
this.radioButtonGfs2.Name = "radioButtonGfs2";
this.radioButtonGfs2.Size = new System.Drawing.Size(155, 19);
this.radioButtonGfs2.TabIndex = 1;
this.radioButtonGfs2.TabStop = true;
this.radioButtonGfs2.Text = "Thin provisioning (GFS2)";
this.radioButtonGfs2.UseVisualStyleBackColor = true;
//
// labelGFS2
//
this.labelGFS2.AutoSize = true;
this.tableLayoutPanel1.SetColumnSpan(this.labelGFS2, 2);
this.labelGFS2.Font = new System.Drawing.Font("Segoe UI", 9F);
this.labelGFS2.Location = new System.Drawing.Point(20, 59);
this.labelGFS2.Margin = new System.Windows.Forms.Padding(20, 3, 3, 3);
this.labelGFS2.Name = "labelGFS2";
this.labelGFS2.Size = new System.Drawing.Size(511, 15);
this.labelGFS2.TabIndex = 2;
this.labelGFS2.Text = "The SR will be formatted with the GFS2 cluster file system for hosting thinly pro" +
"visioned images.";
//
// radioButtonLvm
//
this.radioButtonLvm.AutoSize = true;
this.tableLayoutPanel1.SetColumnSpan(this.radioButtonLvm, 2);
this.radioButtonLvm.Font = new System.Drawing.Font("Segoe UI", 9F);
this.radioButtonLvm.Location = new System.Drawing.Point(3, 83);
this.radioButtonLvm.Margin = new System.Windows.Forms.Padding(3, 6, 3, 3);
this.radioButtonLvm.Name = "radioButtonLvm";
this.radioButtonLvm.Size = new System.Drawing.Size(147, 19);
this.radioButtonLvm.TabIndex = 3;
this.radioButtonLvm.Text = "Full provisioning (LVM)";
this.radioButtonLvm.UseVisualStyleBackColor = true;
//
// label3
//
this.label3.AutoSize = true;
this.tableLayoutPanel1.SetColumnSpan(this.label3, 2);
this.label3.Font = new System.Drawing.Font("Segoe UI", 9F);
this.label3.Location = new System.Drawing.Point(20, 108);
this.label3.Margin = new System.Windows.Forms.Padding(20, 3, 3, 3);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(400, 15);
this.label3.TabIndex = 4;
this.label3.Text = "This SR will be configured to host fully provisioned virtual disks using LVM.";
//
// labelWarning
//
this.labelWarning.AutoSize = true;
this.labelWarning.Font = new System.Drawing.Font("Segoe UI", 9F);
this.labelWarning.Location = new System.Drawing.Point(25, 141);
this.labelWarning.Margin = new System.Windows.Forms.Padding(0, 15, 3, 0);
this.labelWarning.Name = "labelWarning";
this.labelWarning.Size = new System.Drawing.Size(0, 15);
this.labelWarning.TabIndex = 6;
//
// pictureBoxInfo
//
this.pictureBoxInfo.Image = global::XenAdmin.Properties.Resources._000_Info3_h32bit_16;
this.pictureBoxInfo.Location = new System.Drawing.Point(3, 141);
this.pictureBoxInfo.Margin = new System.Windows.Forms.Padding(3, 15, 3, 3);
this.pictureBoxInfo.Name = "pictureBoxInfo";
this.pictureBoxInfo.Size = new System.Drawing.Size(19, 20);
this.pictureBoxInfo.TabIndex = 5;
this.pictureBoxInfo.TabStop = false;
//
// ChooseSrProvisioningPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "ChooseSrProvisioningPage";
this.Size = new System.Drawing.Size(540, 336);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxInfo)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.RadioButton radioButtonGfs2;
private System.Windows.Forms.Label labelGFS2;
private System.Windows.Forms.RadioButton radioButtonLvm;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.PictureBox pictureBoxInfo;
private System.Windows.Forms.Label labelWarning;
}
}

View File

@ -0,0 +1,83 @@
/* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using XenAdmin.Controls;
using XenAdmin.Core;
using XenAPI;
namespace XenAdmin.Wizards.NewSRWizard_Pages
{
public partial class ChooseSrProvisioningPage : XenTabPage
{
public ChooseSrProvisioningPage()
{
InitializeComponent();
}
#region XenTabPage overrides
public override string Text { get { return Messages.PROVISIONING; } }
public override string PageTitle { get { return Messages.CHOOSE_SR_PROVISIONING_PAGE_TITLE; } }
#endregion
public bool IsGfs2
{
get
{
return radioButtonGfs2.Checked;
}
}
public override void PopulatePage()
{
var master = Helpers.GetMaster(Connection);
var gfs2Allowed = !Helpers.FeatureForbidden(Connection, Host.RestrictGfs2) && Connection.Cache.Cluster_hosts.Any(cluster => cluster.host.opaque_ref == master.opaque_ref && cluster.enabled);
radioButtonGfs2.Enabled = labelGFS2.Enabled = gfs2Allowed;
pictureBoxInfo.Visible = labelWarning.Visible = radioButtonLvm.Checked = !gfs2Allowed;
labelWarning.Text = Helpers.FeatureForbidden(Connection, Host.RestrictGfs2)
? Messages.GFS2_INCORRECT_POOL_LICENSE
: Messages.GFS2_REQUIRES_CLUSTERING_ENABLED;
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -29,100 +29,30 @@
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ChooseSrTypePage));
this.radioButtonNfs = new System.Windows.Forms.RadioButton();
this.radioButtonIscsi = new System.Windows.Forms.RadioButton();
this.radioButtonNfsIso = new System.Windows.Forms.RadioButton();
this.radioButtonCifsIso = new System.Windows.Forms.RadioButton();
this.radioButtonFibreChannel = new System.Windows.Forms.RadioButton();
this.radioButtonCslg = new System.Windows.Forms.RadioButton();
this.labelISOlibrary = new System.Windows.Forms.Label();
this.labelVirtualDiskStorage = new System.Windows.Forms.Label();
this.upsellPage1 = new XenAdmin.Controls.UpsellPage();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.upsellPage1 = new XenAdmin.Controls.UpsellPage();
this.SRBlurb = new XenAdmin.Controls.Common.AutoHeightLabel();
this.deprecationBanner = new XenAdmin.Controls.DeprecationBanner();
this.selectedStoreTypeLabel = new System.Windows.Forms.Label();
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
this.radioButtonCslg = new System.Windows.Forms.RadioButton();
this.labelISOlibrary = new System.Windows.Forms.Label();
this.radioButtonCifsIso = new System.Windows.Forms.RadioButton();
this.radioButtonNfsIso = new System.Windows.Forms.RadioButton();
this.radioButtonIscsi = new System.Windows.Forms.RadioButton();
this.radioButtonFibreChannel = new System.Windows.Forms.RadioButton();
this.radioButtonFcoe = new System.Windows.Forms.RadioButton();
this.radioButtonNfs = new System.Windows.Forms.RadioButton();
this.radioButtonCifs = new System.Windows.Forms.RadioButton();
this.labelVirtualDiskStorage = new System.Windows.Forms.Label();
this.labelFileBasedStorage = new System.Windows.Forms.Label();
this.labelBlockBasedStorage = new System.Windows.Forms.Label();
this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
this.tableLayoutPanel3.SuspendLayout();
this.SuspendLayout();
//
// radioButtonNfs
//
resources.ApplyResources(this.radioButtonNfs, "radioButtonNfs");
this.radioButtonNfs.BackColor = System.Drawing.Color.Transparent;
this.radioButtonNfs.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonNfs.Name = "radioButtonNfs";
this.radioButtonNfs.UseVisualStyleBackColor = false;
this.radioButtonNfs.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonIscsi
//
resources.ApplyResources(this.radioButtonIscsi, "radioButtonIscsi");
this.radioButtonIscsi.BackColor = System.Drawing.Color.Transparent;
this.radioButtonIscsi.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonIscsi.Name = "radioButtonIscsi";
this.radioButtonIscsi.UseVisualStyleBackColor = false;
this.radioButtonIscsi.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonNfsIso
//
resources.ApplyResources(this.radioButtonNfsIso, "radioButtonNfsIso");
this.radioButtonNfsIso.BackColor = System.Drawing.Color.Transparent;
this.radioButtonNfsIso.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonNfsIso.Name = "radioButtonNfsIso";
this.radioButtonNfsIso.UseVisualStyleBackColor = false;
this.radioButtonNfsIso.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonCifsIso
//
resources.ApplyResources(this.radioButtonCifsIso, "radioButtonCifsIso");
this.radioButtonCifsIso.BackColor = System.Drawing.Color.Transparent;
this.radioButtonCifsIso.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonCifsIso.Name = "radioButtonCifsIso";
this.radioButtonCifsIso.UseVisualStyleBackColor = false;
this.radioButtonCifsIso.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonFibreChannel
//
resources.ApplyResources(this.radioButtonFibreChannel, "radioButtonFibreChannel");
this.radioButtonFibreChannel.BackColor = System.Drawing.Color.Transparent;
this.radioButtonFibreChannel.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonFibreChannel.Name = "radioButtonFibreChannel";
this.radioButtonFibreChannel.UseVisualStyleBackColor = false;
this.radioButtonFibreChannel.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonCslg
//
resources.ApplyResources(this.radioButtonCslg, "radioButtonCslg");
this.radioButtonCslg.BackColor = System.Drawing.Color.Transparent;
this.radioButtonCslg.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonCslg.Name = "radioButtonCslg";
this.radioButtonCslg.UseVisualStyleBackColor = false;
this.radioButtonCslg.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// labelISOlibrary
//
resources.ApplyResources(this.labelISOlibrary, "labelISOlibrary");
this.labelISOlibrary.ForeColor = System.Drawing.SystemColors.WindowText;
this.labelISOlibrary.Name = "labelISOlibrary";
//
// labelVirtualDiskStorage
//
resources.ApplyResources(this.labelVirtualDiskStorage, "labelVirtualDiskStorage");
this.labelVirtualDiskStorage.ForeColor = System.Drawing.SystemColors.WindowText;
this.labelVirtualDiskStorage.Name = "labelVirtualDiskStorage";
//
// upsellPage1
//
resources.ApplyResources(this.upsellPage1, "upsellPage1");
this.upsellPage1.Image = ((System.Drawing.Image)(resources.GetObject("upsellPage1.Image")));
this.upsellPage1.Name = "upsellPage1";
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
@ -139,6 +69,12 @@
this.tableLayoutPanel2.Controls.Add(this.selectedStoreTypeLabel, 0, 2);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
//
// upsellPage1
//
resources.ApplyResources(this.upsellPage1, "upsellPage1");
this.upsellPage1.Image = ((System.Drawing.Image)(resources.GetObject("upsellPage1.Image")));
this.upsellPage1.Name = "upsellPage1";
//
// SRBlurb
//
this.SRBlurb.AutoEllipsis = true;
@ -160,17 +96,72 @@
// tableLayoutPanel3
//
resources.ApplyResources(this.tableLayoutPanel3, "tableLayoutPanel3");
this.tableLayoutPanel3.Controls.Add(this.radioButtonFcoe, 0, 5);
this.tableLayoutPanel3.Controls.Add(this.radioButtonCifs, 0, 4);
this.tableLayoutPanel3.Controls.Add(this.radioButtonCslg, 0, 6);
this.tableLayoutPanel3.Controls.Add(this.radioButtonCslg, 1, 8);
this.tableLayoutPanel3.Controls.Add(this.labelISOlibrary, 0, 9);
this.tableLayoutPanel3.Controls.Add(this.radioButtonCifsIso, 1, 10);
this.tableLayoutPanel3.Controls.Add(this.radioButtonNfsIso, 1, 11);
this.tableLayoutPanel3.Controls.Add(this.radioButtonIscsi, 1, 2);
this.tableLayoutPanel3.Controls.Add(this.radioButtonFibreChannel, 1, 3);
this.tableLayoutPanel3.Controls.Add(this.radioButtonFcoe, 1, 4);
this.tableLayoutPanel3.Controls.Add(this.radioButtonNfs, 1, 6);
this.tableLayoutPanel3.Controls.Add(this.radioButtonCifs, 1, 7);
this.tableLayoutPanel3.Controls.Add(this.labelVirtualDiskStorage, 0, 0);
this.tableLayoutPanel3.Controls.Add(this.radioButtonNfs, 0, 1);
this.tableLayoutPanel3.Controls.Add(this.radioButtonFibreChannel, 0, 3);
this.tableLayoutPanel3.Controls.Add(this.radioButtonIscsi, 0, 2);
this.tableLayoutPanel3.Controls.Add(this.labelISOlibrary, 0, 7);
this.tableLayoutPanel3.Controls.Add(this.radioButtonCifsIso, 0, 8);
this.tableLayoutPanel3.Controls.Add(this.radioButtonNfsIso, 0, 9);
this.tableLayoutPanel3.Controls.Add(this.labelFileBasedStorage, 1, 5);
this.tableLayoutPanel3.Controls.Add(this.labelBlockBasedStorage, 1, 1);
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
this.tableLayoutPanel3.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel3_Paint);
//
// radioButtonCslg
//
resources.ApplyResources(this.radioButtonCslg, "radioButtonCslg");
this.radioButtonCslg.BackColor = System.Drawing.Color.Transparent;
this.radioButtonCslg.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonCslg.Name = "radioButtonCslg";
this.radioButtonCslg.UseVisualStyleBackColor = false;
this.radioButtonCslg.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// labelISOlibrary
//
resources.ApplyResources(this.labelISOlibrary, "labelISOlibrary");
this.tableLayoutPanel3.SetColumnSpan(this.labelISOlibrary, 2);
this.labelISOlibrary.ForeColor = System.Drawing.SystemColors.WindowText;
this.labelISOlibrary.Name = "labelISOlibrary";
//
// radioButtonCifsIso
//
resources.ApplyResources(this.radioButtonCifsIso, "radioButtonCifsIso");
this.radioButtonCifsIso.BackColor = System.Drawing.Color.Transparent;
this.radioButtonCifsIso.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonCifsIso.Name = "radioButtonCifsIso";
this.radioButtonCifsIso.UseVisualStyleBackColor = false;
this.radioButtonCifsIso.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonNfsIso
//
resources.ApplyResources(this.radioButtonNfsIso, "radioButtonNfsIso");
this.radioButtonNfsIso.BackColor = System.Drawing.Color.Transparent;
this.radioButtonNfsIso.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonNfsIso.Name = "radioButtonNfsIso";
this.radioButtonNfsIso.UseVisualStyleBackColor = false;
this.radioButtonNfsIso.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonIscsi
//
resources.ApplyResources(this.radioButtonIscsi, "radioButtonIscsi");
this.radioButtonIscsi.BackColor = System.Drawing.Color.Transparent;
this.radioButtonIscsi.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonIscsi.Name = "radioButtonIscsi";
this.radioButtonIscsi.UseVisualStyleBackColor = false;
this.radioButtonIscsi.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonFibreChannel
//
resources.ApplyResources(this.radioButtonFibreChannel, "radioButtonFibreChannel");
this.radioButtonFibreChannel.BackColor = System.Drawing.Color.Transparent;
this.radioButtonFibreChannel.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonFibreChannel.Name = "radioButtonFibreChannel";
this.radioButtonFibreChannel.UseVisualStyleBackColor = false;
this.radioButtonFibreChannel.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonFcoe
//
@ -181,6 +172,15 @@
this.radioButtonFcoe.UseVisualStyleBackColor = false;
this.radioButtonFcoe.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonNfs
//
resources.ApplyResources(this.radioButtonNfs, "radioButtonNfs");
this.radioButtonNfs.BackColor = System.Drawing.Color.Transparent;
this.radioButtonNfs.ForeColor = System.Drawing.SystemColors.WindowText;
this.radioButtonNfs.Name = "radioButtonNfs";
this.radioButtonNfs.UseVisualStyleBackColor = false;
this.radioButtonNfs.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// radioButtonCifs
//
resources.ApplyResources(this.radioButtonCifs, "radioButtonCifs");
@ -190,6 +190,25 @@
this.radioButtonCifs.UseVisualStyleBackColor = false;
this.radioButtonCifs.CheckedChanged += new System.EventHandler(this.RadioButton_CheckedChanged);
//
// labelVirtualDiskStorage
//
resources.ApplyResources(this.labelVirtualDiskStorage, "labelVirtualDiskStorage");
this.tableLayoutPanel3.SetColumnSpan(this.labelVirtualDiskStorage, 2);
this.labelVirtualDiskStorage.ForeColor = System.Drawing.SystemColors.WindowText;
this.labelVirtualDiskStorage.Name = "labelVirtualDiskStorage";
//
// labelFileBasedStorage
//
resources.ApplyResources(this.labelFileBasedStorage, "labelFileBasedStorage");
this.labelFileBasedStorage.ForeColor = System.Drawing.SystemColors.WindowText;
this.labelFileBasedStorage.Name = "labelFileBasedStorage";
//
// labelBlockBasedStorage
//
resources.ApplyResources(this.labelBlockBasedStorage, "labelBlockBasedStorage");
this.labelBlockBasedStorage.ForeColor = System.Drawing.SystemColors.WindowText;
this.labelBlockBasedStorage.Name = "labelBlockBasedStorage";
//
// ChooseSrTypePage
//
resources.ApplyResources(this, "$this");
@ -213,8 +232,6 @@
private System.Windows.Forms.RadioButton radioButtonCifsIso;
private System.Windows.Forms.RadioButton radioButtonFibreChannel;
private System.Windows.Forms.RadioButton radioButtonCslg;
private System.Windows.Forms.Label labelISOlibrary;
private System.Windows.Forms.Label labelVirtualDiskStorage;
private XenAdmin.Controls.UpsellPage upsellPage1;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
@ -224,5 +241,9 @@
private System.Windows.Forms.RadioButton radioButtonCifs;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
private System.Windows.Forms.RadioButton radioButtonFcoe;
private System.Windows.Forms.Label labelBlockBasedStorage;
private System.Windows.Forms.Label labelFileBasedStorage;
private System.Windows.Forms.Label labelISOlibrary;
private System.Windows.Forms.Label labelVirtualDiskStorage;
}
}

View File

@ -30,12 +30,7 @@
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using XenAdmin.Controls;
using XenAdmin.Core;
@ -48,7 +43,7 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages
{
private bool m_allowNext = true;
private int _matchingFrontends;
private Type m_preselectedWizardType = typeof(SrWizardType_VhdoNfs);
private Type m_preselectedWizardType = typeof(SrWizardType_Iscsi);
private readonly RadioButton[] _radioButtons;
public ChooseSrTypePage()
@ -71,6 +66,7 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages
radioButtonCslg, radioButtonCifs, radioButtonFcoe,
radioButtonNfsIso, radioButtonCifsIso
};
}
private void SetupDeprecationBanner(bool visible)
@ -289,5 +285,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages
}
return sm;
}
}
}

View File

@ -118,302 +118,20 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="radioButtonNfs.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="radioButtonNfs.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="radioButtonNfs.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonNfs.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 31</value>
</data>
<data name="radioButtonNfs.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonNfs.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 19</value>
</data>
<data name="radioButtonNfs.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="radioButtonNfs.Text" xml:space="preserve">
<value>N&amp;FS</value>
</data>
<data name="&gt;&gt;radioButtonNfs.Name" xml:space="preserve">
<value>radioButtonNfs</value>
</data>
<data name="&gt;&gt;radioButtonNfs.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonNfs.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonNfs.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="radioButtonIscsi.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonIscsi.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonIscsi.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonIscsi.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 56</value>
</data>
<data name="radioButtonIscsi.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonIscsi.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 19</value>
</data>
<data name="radioButtonIscsi.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="radioButtonIscsi.Text" xml:space="preserve">
<value>i&amp;SCSI</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.Name" xml:space="preserve">
<value>radioButtonIscsi</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="radioButtonNfsIso.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonNfsIso.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonNfsIso.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonNfsIso.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 247</value>
</data>
<data name="radioButtonNfsIso.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonNfsIso.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 19</value>
</data>
<data name="radioButtonNfsIso.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="radioButtonNfsIso.Text" xml:space="preserve">
<value>NFS &amp;ISO</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.Name" xml:space="preserve">
<value>radioButtonNfsIso</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="radioButtonCifsIso.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonCifsIso.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonCifsIso.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonCifsIso.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 222</value>
</data>
<data name="radioButtonCifsIso.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonCifsIso.Size" type="System.Drawing.Size, System.Drawing">
<value>201, 19</value>
</data>
<data name="radioButtonCifsIso.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="radioButtonCifsIso.Text" xml:space="preserve">
<value>&amp;Windows File Sharing (SMB/CIFS)</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.Name" xml:space="preserve">
<value>radioButtonCifsIso</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="radioButtonFibreChannel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonFibreChannel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonFibreChannel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonFibreChannel.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 81</value>
</data>
<data name="radioButtonFibreChannel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonFibreChannel.Size" type="System.Drawing.Size, System.Drawing">
<value>103, 19</value>
</data>
<data name="radioButtonFibreChannel.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="radioButtonFibreChannel.Text" xml:space="preserve">
<value>Hardware &amp;HBA</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.Name" xml:space="preserve">
<value>radioButtonFibreChannel</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="radioButtonCslg.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonCslg.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonCslg.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonCslg.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 156</value>
</data>
<data name="radioButtonCslg.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
</data>
<data name="radioButtonCslg.Size" type="System.Drawing.Size, System.Drawing">
<value>150, 19</value>
</data>
<data name="radioButtonCslg.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="radioButtonCslg.Text" xml:space="preserve">
<value>S&amp;torageLink technology</value>
</data>
<data name="&gt;&gt;radioButtonCslg.Name" xml:space="preserve">
<value>radioButtonCslg</value>
</data>
<data name="&gt;&gt;radioButtonCslg.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonCslg.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonCslg.ZOrder" xml:space="preserve">
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="labelISOlibrary.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelISOlibrary.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Bold</value>
</data>
<data name="labelISOlibrary.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelISOlibrary.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 194</value>
</data>
<data name="labelISOlibrary.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 16, 3, 10</value>
</data>
<data name="labelISOlibrary.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 15</value>
</data>
<data name="labelISOlibrary.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="labelISOlibrary.Text" xml:space="preserve">
<value>ISO library</value>
</data>
<data name="&gt;&gt;labelISOlibrary.Name" xml:space="preserve">
<value>labelISOlibrary</value>
</data>
<data name="&gt;&gt;labelISOlibrary.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelISOlibrary.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;labelISOlibrary.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="labelVirtualDiskStorage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelVirtualDiskStorage.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Bold</value>
</data>
<data name="labelVirtualDiskStorage.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelVirtualDiskStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="labelVirtualDiskStorage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 10</value>
</data>
<data name="labelVirtualDiskStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>114, 15</value>
</data>
<data name="labelVirtualDiskStorage.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="labelVirtualDiskStorage.Text" xml:space="preserve">
<value>Virtual disk storage</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.Name" xml:space="preserve">
<value>labelVirtualDiskStorage</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.ZOrder" xml:space="preserve">
<value>3</value>
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="upsellPage1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="upsellPage1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="upsellPage1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
@ -438,7 +156,7 @@
<value>3, 51</value>
</data>
<data name="upsellPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 67</value>
<value>91, 67</value>
</data>
<data name="upsellPage1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -455,18 +173,15 @@
<data name="&gt;&gt;upsellPage1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="SRBlurb.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="SRBlurb.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="SRBlurb.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="SRBlurb.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 167</value>
</data>
@ -474,7 +189,7 @@
<value>3, 3, 3, 0</value>
</data>
<data name="SRBlurb.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 163</value>
<value>292, 163</value>
</data>
<data name="SRBlurb.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -513,7 +228,7 @@
<value>5, 5, 5, 5</value>
</data>
<data name="deprecationBanner.Size" type="System.Drawing.Size, System.Drawing">
<value>308, 38</value>
<value>288, 38</value>
</data>
<data name="deprecationBanner.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -539,6 +254,9 @@
<data name="selectedStoreTypeLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 8.25pt, style=Italic</value>
</data>
<data name="selectedStoreTypeLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="selectedStoreTypeLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 137</value>
</data>
@ -570,13 +288,13 @@
<value>Fill</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>219, 3</value>
<value>239, 3</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>318, 330</value>
<value>298, 330</value>
</data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>36</value>
@ -597,8 +315,224 @@
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="upsellPage1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="SRBlurb" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="deprecationBanner" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="selectedStoreTypeLabel" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="tableLayoutPanel3.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="radioButtonCslg.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonCslg.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonCslg.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonCslg.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 219</value>
</data>
<data name="radioButtonCslg.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonCslg.Size" type="System.Drawing.Size, System.Drawing">
<value>150, 19</value>
</data>
<data name="radioButtonCslg.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="radioButtonCslg.Text" xml:space="preserve">
<value>S&amp;torageLink technology</value>
</data>
<data name="&gt;&gt;radioButtonCslg.Name" xml:space="preserve">
<value>radioButtonCslg</value>
</data>
<data name="&gt;&gt;radioButtonCslg.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonCslg.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonCslg.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="labelISOlibrary.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelISOlibrary.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Bold</value>
</data>
<data name="labelISOlibrary.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelISOlibrary.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 257</value>
</data>
<data name="labelISOlibrary.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 16, 3, 10</value>
</data>
<data name="labelISOlibrary.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 15</value>
</data>
<data name="labelISOlibrary.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="labelISOlibrary.Text" xml:space="preserve">
<value>ISO library</value>
</data>
<data name="&gt;&gt;labelISOlibrary.Name" xml:space="preserve">
<value>labelISOlibrary</value>
</data>
<data name="&gt;&gt;labelISOlibrary.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelISOlibrary.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;labelISOlibrary.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="radioButtonCifsIso.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonCifsIso.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonCifsIso.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonCifsIso.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 285</value>
</data>
<data name="radioButtonCifsIso.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonCifsIso.Size" type="System.Drawing.Size, System.Drawing">
<value>201, 19</value>
</data>
<data name="radioButtonCifsIso.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="radioButtonCifsIso.Text" xml:space="preserve">
<value>&amp;Windows File Sharing (SMB/CIFS)</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.Name" xml:space="preserve">
<value>radioButtonCifsIso</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonCifsIso.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="radioButtonNfsIso.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonNfsIso.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonNfsIso.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonNfsIso.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 310</value>
</data>
<data name="radioButtonNfsIso.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonNfsIso.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 19</value>
</data>
<data name="radioButtonNfsIso.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="radioButtonNfsIso.Text" xml:space="preserve">
<value>NFS &amp;ISO</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.Name" xml:space="preserve">
<value>radioButtonNfsIso</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonNfsIso.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="radioButtonIscsi.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonIscsi.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonIscsi.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonIscsi.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 59</value>
</data>
<data name="radioButtonIscsi.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonIscsi.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 19</value>
</data>
<data name="radioButtonIscsi.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="radioButtonIscsi.Text" xml:space="preserve">
<value>i&amp;SCSI</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.Name" xml:space="preserve">
<value>radioButtonIscsi</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonIscsi.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="radioButtonFibreChannel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonFibreChannel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonFibreChannel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonFibreChannel.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 84</value>
</data>
<data name="radioButtonFibreChannel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonFibreChannel.Size" type="System.Drawing.Size, System.Drawing">
<value>103, 19</value>
</data>
<data name="radioButtonFibreChannel.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="radioButtonFibreChannel.Text" xml:space="preserve">
<value>Hardware &amp;HBA</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.Name" xml:space="preserve">
<value>radioButtonFibreChannel</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonFibreChannel.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="radioButtonFcoe.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@ -609,16 +543,16 @@
<value>NoControl</value>
</data>
<data name="radioButtonFcoe.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 131</value>
<value>26, 109</value>
</data>
<data name="radioButtonFcoe.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonFcoe.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 19</value>
</data>
<data name="radioButtonFcoe.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
<value>13</value>
</data>
<data name="radioButtonFcoe.Text" xml:space="preserve">
<value>Software FCo&amp;E</value>
@ -633,7 +567,43 @@
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonFcoe.ZOrder" xml:space="preserve">
<value>0</value>
<value>6</value>
</data>
<data name="radioButtonNfs.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonNfs.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="radioButtonNfs.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonNfs.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 169</value>
</data>
<data name="radioButtonNfs.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonNfs.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 19</value>
</data>
<data name="radioButtonNfs.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="radioButtonNfs.Text" xml:space="preserve">
<value>N&amp;FS</value>
</data>
<data name="&gt;&gt;radioButtonNfs.Name" xml:space="preserve">
<value>radioButtonNfs</value>
</data>
<data name="&gt;&gt;radioButtonNfs.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonNfs.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonNfs.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="radioButtonCifs.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -645,16 +615,16 @@
<value>NoControl</value>
</data>
<data name="radioButtonCifs.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 106</value>
<value>26, 194</value>
</data>
<data name="radioButtonCifs.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 3, 3, 3</value>
<value>15, 3, 3, 3</value>
</data>
<data name="radioButtonCifs.Size" type="System.Drawing.Size, System.Drawing">
<value>77, 19</value>
</data>
<data name="radioButtonCifs.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
<value>15</value>
</data>
<data name="radioButtonCifs.Text" xml:space="preserve">
<value>S&amp;MB/CIFS</value>
@ -669,16 +639,130 @@
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;radioButtonCifs.ZOrder" xml:space="preserve">
<value>1</value>
<value>8</value>
</data>
<data name="labelVirtualDiskStorage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelVirtualDiskStorage.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Bold</value>
</data>
<data name="labelVirtualDiskStorage.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelVirtualDiskStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="labelVirtualDiskStorage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 10</value>
</data>
<data name="labelVirtualDiskStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>114, 15</value>
</data>
<data name="labelVirtualDiskStorage.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="labelVirtualDiskStorage.Text" xml:space="preserve">
<value>Virtual disk storage</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.Name" xml:space="preserve">
<value>labelVirtualDiskStorage</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;labelVirtualDiskStorage.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="labelFileBasedStorage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelFileBasedStorage.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Bold</value>
</data>
<data name="labelFileBasedStorage.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelFileBasedStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 141</value>
</data>
<data name="labelFileBasedStorage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 10, 3, 10</value>
</data>
<data name="labelFileBasedStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>106, 15</value>
</data>
<data name="labelFileBasedStorage.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
</data>
<data name="labelFileBasedStorage.Text" xml:space="preserve">
<value>File based storage</value>
</data>
<data name="labelFileBasedStorage.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;labelFileBasedStorage.Name" xml:space="preserve">
<value>labelFileBasedStorage</value>
</data>
<data name="&gt;&gt;labelFileBasedStorage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelFileBasedStorage.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;labelFileBasedStorage.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="labelBlockBasedStorage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelBlockBasedStorage.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Bold</value>
</data>
<data name="labelBlockBasedStorage.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelBlockBasedStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 31</value>
</data>
<data name="labelBlockBasedStorage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 10</value>
</data>
<data name="labelBlockBasedStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>118, 15</value>
</data>
<data name="labelBlockBasedStorage.TabIndex" type="System.Int32, mscorlib">
<value>19</value>
</data>
<data name="labelBlockBasedStorage.Text" xml:space="preserve">
<value>Block based storage</value>
</data>
<data name="labelBlockBasedStorage.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;labelBlockBasedStorage.Name" xml:space="preserve">
<value>labelBlockBasedStorage</value>
</data>
<data name="&gt;&gt;labelBlockBasedStorage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelBlockBasedStorage.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;labelBlockBasedStorage.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="tableLayoutPanel3.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="tableLayoutPanel3.RowCount" type="System.Int32, mscorlib">
<value>10</value>
<value>12</value>
</data>
<data name="tableLayoutPanel3.Size" type="System.Drawing.Size, System.Drawing">
<value>210, 302</value>
<value>230, 330</value>
</data>
<data name="tableLayoutPanel3.TabIndex" type="System.Int32, mscorlib">
<value>37</value>
@ -696,7 +780,7 @@
<value>1</value>
</data>
<data name="tableLayoutPanel3.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioButtonFcoe" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonCifs" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonCslg" Row="6" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="labelVirtualDiskStorage" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonNfs" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonFibreChannel" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonIscsi" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="labelISOlibrary" Row="7" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonCifsIso" Row="8" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonNfsIso" Row="9" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,20,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioButtonCslg" Row="8" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="labelISOlibrary" Row="9" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="radioButtonCifsIso" Row="10" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonNfsIso" Row="11" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonIscsi" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonFibreChannel" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonFcoe" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonNfs" Row="6" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonCifs" Row="7" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="labelVirtualDiskStorage" Row="0" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="labelFileBasedStorage" Row="5" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="labelBlockBasedStorage" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,5,Percent,95" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>

View File

@ -42,8 +42,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
#region LVMoHBA overrides
public override SR.SRTypes SrType { get { return srProvisioningMethod.Lvm ? SR.SRTypes.lvmofcoe : SR.SRTypes.gfs2; } }
public override bool ShowNicColumn { get { return true; } }
public override string HelpID { get { return "Location_FCOE"; } }

View File

@ -56,7 +56,7 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
InitializeComponent();
}
public virtual SR.SRTypes SrType { get { return srProvisioningMethod.Lvm ? SR.SRTypes.lvmohba : SR.SRTypes.gfs2; } }
public virtual SR.SRTypes SrType { get; set; }
public virtual bool ShowNicColumn { get { return false; } }

View File

@ -41,7 +41,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
this.labelCreate = new System.Windows.Forms.Label();
this.buttonSelectAll = new System.Windows.Forms.Button();
this.buttonClearAll = new System.Windows.Forms.Button();
this.srProvisioningMethod = new XenAdmin.Controls.SrProvisioningMethod();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
@ -115,7 +114,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
this.tableLayoutPanel1.Controls.Add(this.dataGridView, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.buttonSelectAll, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.buttonClearAll, 1, 3);
this.tableLayoutPanel1.Controls.Add(this.srProvisioningMethod, 0, 4);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// labelCreate
@ -138,13 +136,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
this.buttonClearAll.UseVisualStyleBackColor = true;
this.buttonClearAll.Click += new System.EventHandler(this.buttonClearAll_Click);
//
// srProvisioningMethod
//
this.srProvisioningMethod.BackColor = System.Drawing.SystemColors.Control;
this.tableLayoutPanel1.SetColumnSpan(this.srProvisioningMethod, 2);
resources.ApplyResources(this.srProvisioningMethod, "srProvisioningMethod");
this.srProvisioningMethod.Name = "srProvisioningMethod";
//
// LVMoHBA
//
resources.ApplyResources(this, "$this");
@ -173,6 +164,5 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
private System.Windows.Forms.DataGridViewTextBoxColumn colId;
private System.Windows.Forms.DataGridViewTextBoxColumn colDetails;
private System.Windows.Forms.DataGridViewTextBoxColumn colNic;
protected Controls.SrProvisioningMethod srProvisioningMethod;
}
}

View File

@ -217,7 +217,7 @@
<value>3, 65</value>
</data>
<data name="dataGridView.Size" type="System.Drawing.Size, System.Drawing">
<value>554, 277</value>
<value>554, 327</value>
</data>
<data name="dataGridView.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -235,7 +235,7 @@
<value>2</value>
</data>
<data name="buttonSelectAll.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 348</value>
<value>3, 398</value>
</data>
<data name="buttonSelectAll.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
@ -259,7 +259,7 @@
<value>3</value>
</data>
<data name="buttonClearAll.Location" type="System.Drawing.Point, System.Drawing">
<value>84, 348</value>
<value>84, 398</value>
</data>
<data name="buttonClearAll.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
@ -282,33 +282,6 @@
<data name="&gt;&gt;buttonClearAll.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="srProvisioningMethod.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="srProvisioningMethod.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 377</value>
</data>
<data name="srProvisioningMethod.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>330, 44</value>
</data>
<data name="srProvisioningMethod.Size" type="System.Drawing.Size, System.Drawing">
<value>554, 44</value>
</data>
<data name="srProvisioningMethod.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.Name" xml:space="preserve">
<value>srProvisioningMethod</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.Type" xml:space="preserve">
<value>XenAdmin.Controls.SrProvisioningMethod, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
@ -337,7 +310,7 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelCreate" Row="0" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="labelReattach" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="dataGridView" Row="2" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="buttonSelectAll" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="buttonClearAll" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="srProvisioningMethod" Row="4" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,Percent,100,AutoSize,0,AutoSize,120" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelCreate" Row="0" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="labelReattach" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="dataGridView" Row="2" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="buttonSelectAll" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="buttonClearAll" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,Percent,100,AutoSize,0,AutoSize,120" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="labelReattach.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 34</value>

View File

@ -59,7 +59,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
this.label11 = new System.Windows.Forms.Label();
this.errorLabelAtHostname = new System.Windows.Forms.Label();
this.spinnerIconAtScanTargetHostButton = new XenAdmin.Controls.SpinnerIcon();
this.srProvisioningMethod = new XenAdmin.Controls.SrProvisioningMethod();
this.toolTipContainerIQNscan = new XenAdmin.Controls.ToolTipContainer();
this.tableLayoutPanel1.SuspendLayout();
this.iSCSITargetGroupBox.SuspendLayout();
@ -99,7 +98,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
this.tableLayoutPanel1.Controls.Add(this.label11, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.errorLabelAtHostname, 3, 2);
this.tableLayoutPanel1.Controls.Add(this.spinnerIconAtScanTargetHostButton, 2, 8);
this.tableLayoutPanel1.Controls.Add(this.srProvisioningMethod, 0, 10);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// iSCSITargetGroupBox
@ -301,13 +299,6 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
this.spinnerIconAtScanTargetHostButton.SucceededImage = global::XenAdmin.Properties.Resources._000_Tick_h32bit_16;
this.spinnerIconAtScanTargetHostButton.TabStop = false;
//
// srProvisioningMethod
//
resources.ApplyResources(this.srProvisioningMethod, "srProvisioningMethod");
this.srProvisioningMethod.BackColor = System.Drawing.SystemColors.Control;
this.tableLayoutPanel1.SetColumnSpan(this.srProvisioningMethod, 7);
this.srProvisioningMethod.Name = "srProvisioningMethod";
//
// toolTipContainerIQNscan
//
resources.ApplyResources(this.toolTipContainerIQNscan, "toolTipContainerIQNscan");
@ -369,6 +360,5 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
private XenAdmin.Controls.SpinnerIcon spinnerIconAtScanTargetHostButton;
private System.Windows.Forms.Label placeholderLabel;
private System.Windows.Forms.Label placeHolderLabel2;
private Controls.SrProvisioningMethod srProvisioningMethod;
}
}

View File

@ -914,7 +914,7 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
{
get
{
return GetDeviceConfig(SRType);
return GetDeviceConfig(SrType);
}
}
@ -927,13 +927,7 @@ namespace XenAdmin.Wizards.NewSRWizard_Pages.Frontends
}
}
public SR.SRTypes SRType
{
get
{
return srProvisioningMethod.Lvm ? SR.SRTypes.lvmoiscsi : SR.SRTypes.gfs2;
}
}
public SR.SRTypes SrType { get; set; }
#endregion
}
}

View File

@ -1167,36 +1167,6 @@
<data name="&gt;&gt;spinnerIconAtScanTargetHostButton.ZOrder" xml:space="preserve">
<value>18</value>
</data>
<data name="srProvisioningMethod.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="srProvisioningMethod.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 299</value>
</data>
<data name="srProvisioningMethod.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 6, 3, 3</value>
</data>
<data name="srProvisioningMethod.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>330, 46</value>
</data>
<data name="srProvisioningMethod.Size" type="System.Drawing.Size, System.Drawing">
<value>518, 48</value>
</data>
<data name="srProvisioningMethod.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.Name" xml:space="preserve">
<value>srProvisioningMethod</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.Type" xml:space="preserve">
<value>XenAdmin.Controls.SrProvisioningMethod, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;srProvisioningMethod.ZOrder" xml:space="preserve">
<value>19</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
@ -1210,7 +1180,7 @@
<value>11</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>524, 350</value>
<value>524, 293</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -1228,7 +1198,7 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="iSCSITargetGroupBox" Row="9" RowSpan="1" Column="0" ColumnSpan="7" /&gt;&lt;Control Name="placeHolderLabel2" Row="7" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="placeholderLabel" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="errorLabelAtCHAPPassword" Row="7" RowSpan="1" Column="3" ColumnSpan="4" /&gt;&lt;Control Name="errorIconAtCHAPPassword" Row="7" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="errorIconAtHostOrIP" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="scanTargetHostButton" Row="8" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="labelIscsiTargetHost" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="textBoxIscsiHost" Row="1" RowSpan="1" Column="2" ColumnSpan="2" /&gt;&lt;Control Name="labelColon" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="textBoxIscsiPort" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="IScsiChapUserTextBox" Row="5" RowSpan="1" Column="2" ColumnSpan="2" /&gt;&lt;Control Name="IScsiChapSecretTextBox" Row="6" RowSpan="1" Column="2" ColumnSpan="2" /&gt;&lt;Control Name="labelCHAPuser" Row="5" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="IScsiChapSecretLabel" Row="6" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="IscsiUseChapCheckBox" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="label11" Row="0" RowSpan="1" Column="0" ColumnSpan="7" /&gt;&lt;Control Name="errorLabelAtHostname" Row="2" RowSpan="1" Column="3" ColumnSpan="4" /&gt;&lt;Control Name="spinnerIconAtScanTargetHostButton" Row="8" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="srProvisioningMethod" Row="10" RowSpan="1" Column="0" ColumnSpan="7" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Absolute,17,Absolute,146,Absolute,22,Absolute,211,AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,220,AutoSize,220" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="iSCSITargetGroupBox" Row="9" RowSpan="1" Column="0" ColumnSpan="7" /&gt;&lt;Control Name="placeHolderLabel2" Row="7" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="placeholderLabel" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="errorLabelAtCHAPPassword" Row="7" RowSpan="1" Column="3" ColumnSpan="4" /&gt;&lt;Control Name="errorIconAtCHAPPassword" Row="7" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="errorIconAtHostOrIP" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="scanTargetHostButton" Row="8" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="labelIscsiTargetHost" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="textBoxIscsiHost" Row="1" RowSpan="1" Column="2" ColumnSpan="2" /&gt;&lt;Control Name="labelColon" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="textBoxIscsiPort" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="IScsiChapUserTextBox" Row="5" RowSpan="1" Column="2" ColumnSpan="2" /&gt;&lt;Control Name="IScsiChapSecretTextBox" Row="6" RowSpan="1" Column="2" ColumnSpan="2" /&gt;&lt;Control Name="labelCHAPuser" Row="5" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="IScsiChapSecretLabel" Row="6" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="IscsiUseChapCheckBox" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="label11" Row="0" RowSpan="1" Column="0" ColumnSpan="7" /&gt;&lt;Control Name="errorLabelAtHostname" Row="2" RowSpan="1" Column="3" ColumnSpan="4" /&gt;&lt;Control Name="spinnerIconAtScanTargetHostButton" Row="8" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Absolute,17,Absolute,146,Absolute,22,Absolute,211,AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,220,AutoSize,220" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="toolTipContainerIQNscan.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>

View File

@ -205,12 +205,6 @@
<Compile Include="Controls\SpinnerIcon.designer.cs">
<DependentUpon>SpinnerIcon.cs</DependentUpon>
</Compile>
<Compile Include="Controls\SrProvisioningMethod.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\SrProvisioningMethod.Designer.cs">
<DependentUpon>SrProvisioningMethod.cs</DependentUpon>
</Compile>
<Compile Include="Controls\Tags\TagList.cs" />
<Compile Include="Controls\Tags\TagButton.cs">
<SubType>UserControl</SubType>
@ -718,6 +712,12 @@
<DependentUpon>IntraPoolCopyPage.cs</DependentUpon>
</Compile>
<Compile Include="Wizards\ImportWizard\HardwareCompatibilityFilter.cs" />
<Compile Include="Wizards\NewSRWizard_Pages\ChooseSrProvisioningPage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Wizards\NewSRWizard_Pages\ChooseSrProvisioningPage.Designer.cs">
<DependentUpon>ChooseSrProvisioningPage.cs</DependentUpon>
</Compile>
<Compile Include="Wizards\NewSRWizard_Pages\Frontends\CIFSFrontend.cs">
<SubType>UserControl</SubType>
</Compile>
@ -1507,15 +1507,6 @@
<EmbeddedResource Include="Controls\PvsCacheStorageRow.zh-CN.resx">
<DependentUpon>PvsCacheStorageRow.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\SrProvisioningMethod.ja.resx">
<DependentUpon>SrProvisioningMethod.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\SrProvisioningMethod.resx">
<DependentUpon>SrProvisioningMethod.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\SrProvisioningMethod.zh-CN.resx">
<DependentUpon>SrProvisioningMethod.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\XenSearch\QueryPanel.ja.resx">
<DependentUpon>QueryPanel.cs</DependentUpon>
</EmbeddedResource>
@ -2082,6 +2073,9 @@
<SubType>Designer</SubType>
<DependentUpon>RBACWarningPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Wizards\NewSRWizard_Pages\ChooseSrProvisioningPage.resx">
<DependentUpon>ChooseSrProvisioningPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Wizards\NewSRWizard_Pages\Frontends\CIFSFrontend.ja.resx">
<DependentUpon>CIFSFrontend.cs</DependentUpon>
</EmbeddedResource>

View File

@ -6929,6 +6929,15 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Choose the provisioning method.
/// </summary>
public static string CHOOSE_SR_PROVISIONING_PAGE_TITLE {
get {
return ResourceManager.GetString("CHOOSE_SR_PROVISIONING_PAGE_TITLE", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Choose the type of new storage.
/// </summary>
@ -15835,6 +15844,24 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Your pool license does not allow GFS2..
/// </summary>
public static string GFS2_INCORRECT_POOL_LICENSE {
get {
return ResourceManager.GetString("GFS2_INCORRECT_POOL_LICENSE", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to GFS2 requires clustering to be enabled on the pool..
/// </summary>
public static string GFS2_REQUIRES_CLUSTERING_ENABLED {
get {
return ResourceManager.GetString("GFS2_REQUIRES_CLUSTERING_ENABLED", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to GPU.
/// </summary>
@ -24218,9 +24245,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to iSCSI or Fibre Channel access to a shared LUN can be configured using LVM.
///
///Using an LVM for a shared SR provides the same performance benefits as a unshared LVM for local disk storage but also enables VM agility..
/// Looks up a localized string similar to iSCSI or Fibre Channel access to a shared LUN can be configured to host fully provisioned virtual disks using LVM or be formatted with the GFS2 cluster file system for hosting thinly provisioned images..
/// </summary>
public static string NEWSR_LVMOISCSI_BLURB {
get {
@ -28381,6 +28406,15 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Provisioning.
/// </summary>
public static string PROVISIONING {
get {
return ResourceManager.GetString("PROVISIONING", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Provisioning Options.
/// </summary>

View File

@ -2516,6 +2516,9 @@ Do you want to assign it to the schedule '{2}' instead?</value>
<data name="CHOOSE_ANOTHER_DESTINATION" xml:space="preserve">
<value>Choose another &amp;destination</value>
</data>
<data name="CHOOSE_SR_PROVISIONING_PAGE_TITLE" xml:space="preserve">
<value>Choose the provisioning method</value>
</data>
<data name="CHOOSE_SR_TYPE_PAGE_TITLE" xml:space="preserve">
<value>Choose the type of new storage</value>
</data>
@ -2707,12 +2710,12 @@ This action is final and unrecoverable.</value>
<data name="CONFIRM_DISABLE_CBT_VMS" xml:space="preserve">
<value>This will disable Changed Block Tracking on the disks of the selected VMs. If you are using any third-party solutions to back up the VMs, they might be affected. Note that Changed Block Tracking cannot be enabled again from [XenCenter]. Do you want to continue?</value>
</data>
<data name="CONFIRM_DISABLE_CBT_VMs_TITLE" xml:space="preserve">
<value>Disable Changed Block Tracking on selected VMs</value>
</data>
<data name="CONFIRM_DISABLE_CBT_VM_TITLE" xml:space="preserve">
<value>Disable Changed Block Tracking on VM "{0}"</value>
</data>
<data name="CONFIRM_DISABLE_CBT_VMs_TITLE" xml:space="preserve">
<value>Disable Changed Block Tracking on selected VMs</value>
</data>
<data name="CONFIRM_DISABLE_HEALTH_CHECK_POOL" xml:space="preserve">
<value>Are you sure you want to disable Health Check on the selected pool?</value>
</data>
@ -5550,6 +5553,12 @@ Would you like to eject these ISOs before continuing?</value>
<data name="GETPASSWORD" xml:space="preserve">
<value>Get Password</value>
</data>
<data name="GFS2_INCORRECT_POOL_LICENSE" xml:space="preserve">
<value>Your pool license does not allow GFS2.</value>
</data>
<data name="GFS2_REQUIRES_CLUSTERING_ENABLED" xml:space="preserve">
<value>GFS2 requires clustering to be enabled on the pool.</value>
</data>
<data name="GPU" xml:space="preserve">
<value>GPU</value>
</data>
@ -8272,9 +8281,7 @@ Once all configuration is complete the HBA will expose a SCSI device backed by t
<value>Hardware HBA</value>
</data>
<data name="NEWSR_LVMOISCSI_BLURB" xml:space="preserve">
<value>iSCSI or Fibre Channel access to a shared LUN can be configured using LVM.
Using an LVM for a shared SR provides the same performance benefits as a unshared LVM for local disk storage but also enables VM agility.</value>
<value>iSCSI or Fibre Channel access to a shared LUN can be configured to host fully provisioned virtual disks using LVM or be formatted with the GFS2 cluster file system for hosting thinly provisioned images.</value>
</data>
<data name="NEWSR_LVMOISCSI_TYPE_NAME" xml:space="preserve">
<value>iSCSI</value>
@ -9865,6 +9872,9 @@ Press OK to continue the wizard and return to the server and follow the instruct
<data name="PROTECTED_VMS_TITLE" xml:space="preserve">
<value>Select the VMs that you want to protect with this policy</value>
</data>
<data name="PROVISIONING" xml:space="preserve">
<value>Provisioning</value>
</data>
<data name="PROVISIONING_OPTIONS" xml:space="preserve">
<value>Provisioning Options</value>
</data>

View File

@ -48,6 +48,8 @@ namespace XenAdmin.Network
// keep sorted please
private readonly ChangeableDictionary<XenRef<Bond>, Bond> _bond = new ChangeableDictionary<XenRef<Bond>, Bond>();
private readonly ChangeableDictionary<XenRef<Blob>, Blob> _blob = new ChangeableDictionary<XenRef<Blob>, Blob>();
private readonly ChangeableDictionary<XenRef<Cluster>, Cluster> _cluster = new ChangeableDictionary<XenRef<Cluster>, Cluster>();
private readonly ChangeableDictionary<XenRef<Cluster_host>, Cluster_host> _cluster_host = new ChangeableDictionary<XenRef<Cluster_host>, Cluster_host>();
private readonly ChangeableDictionary<XenRef<XenAPI.Console>, XenAPI.Console> _console = new ChangeableDictionary<XenRef<XenAPI.Console>, XenAPI.Console>();
private readonly ChangeableDictionary<XenRef<Folder>, Folder> _folders = new ChangeableDictionary<XenRef<Folder>, Folder>();
private readonly ChangeableDictionary<XenRef<DockerContainer>, DockerContainer> _dockerContainers = new ChangeableDictionary<XenRef<DockerContainer>, DockerContainer>();
@ -125,6 +127,16 @@ namespace XenAdmin.Network
get { return contents(_vm_appliance); }
}
public Cluster[] Clusters
{
get { return contents(_cluster); }
}
public Cluster_host[] Cluster_hosts
{
get { return contents(_cluster_host); }
}
public Folder[] Folders
{
get { return contents(_folders); }

View File

@ -89,5 +89,7 @@ namespace XenAdmin.Network
PVS_cache_storage[] PVS_cache_storages { get; }
void UpdateDockerContainersForVM(IList<DockerContainer> d, VM v);
void CheckDockerContainersBatchChange();
Cluster[] Clusters { get; }
Cluster_host[] Cluster_hosts { get; }
}
}

View File

@ -425,6 +425,11 @@ namespace XenAPI
: h.IsFreeLicenseOrExpired(); // restrict on Free edition or if the license has expired
}
public static bool RestrictGfs2(Host h)
{
return false; //BoolKeyPreferTrue(h.license_params, "restrict_gfs2");
}
public bool HasPBDTo(SR sr)
{
foreach (XenRef<PBD> pbd in PBDs)

646
XenModel/XenAPI/Cluster.cs Normal file
View File

@ -0,0 +1,646 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
namespace XenAPI
{
/// <summary>
/// Cluster-wide Cluster metadata
/// First published in Unreleased.
/// </summary>
public partial class Cluster : XenObject<Cluster>
{
public Cluster()
{
}
public Cluster(string uuid,
List<XenRef<Cluster_host>> cluster_hosts,
XenRef<Network> network,
string cluster_token,
string cluster_stack,
List<cluster_operation> allowed_operations,
Dictionary<string, cluster_operation> current_operations,
bool pool_auto_join,
Dictionary<string, string> cluster_config,
Dictionary<string, string> other_config)
{
this.uuid = uuid;
this.cluster_hosts = cluster_hosts;
this.network = network;
this.cluster_token = cluster_token;
this.cluster_stack = cluster_stack;
this.allowed_operations = allowed_operations;
this.current_operations = current_operations;
this.pool_auto_join = pool_auto_join;
this.cluster_config = cluster_config;
this.other_config = other_config;
}
/// <summary>
/// Creates a new Cluster from a Proxy_Cluster.
/// </summary>
/// <param name="proxy"></param>
public Cluster(Proxy_Cluster proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(Cluster update)
{
uuid = update.uuid;
cluster_hosts = update.cluster_hosts;
network = update.network;
cluster_token = update.cluster_token;
cluster_stack = update.cluster_stack;
allowed_operations = update.allowed_operations;
current_operations = update.current_operations;
pool_auto_join = update.pool_auto_join;
cluster_config = update.cluster_config;
other_config = update.other_config;
}
internal void UpdateFromProxy(Proxy_Cluster proxy)
{
uuid = proxy.uuid == null ? null : (string)proxy.uuid;
cluster_hosts = proxy.cluster_hosts == null ? null : XenRef<Cluster_host>.Create(proxy.cluster_hosts);
network = proxy.network == null ? null : XenRef<Network>.Create(proxy.network);
cluster_token = proxy.cluster_token == null ? null : (string)proxy.cluster_token;
cluster_stack = proxy.cluster_stack == null ? null : (string)proxy.cluster_stack;
allowed_operations = proxy.allowed_operations == null ? null : Helper.StringArrayToEnumList<cluster_operation>(proxy.allowed_operations);
current_operations = proxy.current_operations == null ? null : Maps.convert_from_proxy_string_cluster_operation(proxy.current_operations);
pool_auto_join = (bool)proxy.pool_auto_join;
cluster_config = proxy.cluster_config == null ? null : Maps.convert_from_proxy_string_string(proxy.cluster_config);
other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config);
}
public Proxy_Cluster ToProxy()
{
Proxy_Cluster result_ = new Proxy_Cluster();
result_.uuid = uuid ?? "";
result_.cluster_hosts = (cluster_hosts != null) ? Helper.RefListToStringArray(cluster_hosts) : new string[] {};
result_.network = network ?? "";
result_.cluster_token = cluster_token ?? "";
result_.cluster_stack = cluster_stack ?? "";
result_.allowed_operations = (allowed_operations != null) ? Helper.ObjectListToStringArray(allowed_operations) : new string[] {};
result_.current_operations = Maps.convert_to_proxy_string_cluster_operation(current_operations);
result_.pool_auto_join = pool_auto_join;
result_.cluster_config = Maps.convert_to_proxy_string_string(cluster_config);
result_.other_config = Maps.convert_to_proxy_string_string(other_config);
return result_;
}
/// <summary>
/// Creates a new Cluster from a Hashtable.
/// </summary>
/// <param name="table"></param>
public Cluster(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
cluster_hosts = Marshalling.ParseSetRef<Cluster_host>(table, "cluster_hosts");
network = Marshalling.ParseRef<Network>(table, "network");
cluster_token = Marshalling.ParseString(table, "cluster_token");
cluster_stack = Marshalling.ParseString(table, "cluster_stack");
allowed_operations = Helper.StringArrayToEnumList<cluster_operation>(Marshalling.ParseStringArray(table, "allowed_operations"));
current_operations = Maps.convert_from_proxy_string_cluster_operation(Marshalling.ParseHashTable(table, "current_operations"));
pool_auto_join = Marshalling.ParseBool(table, "pool_auto_join");
cluster_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "cluster_config"));
other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config"));
}
public bool DeepEquals(Cluster other, bool ignoreCurrentOperations)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
if (!ignoreCurrentOperations && !Helper.AreEqual2(this.current_operations, other.current_operations))
return false;
return Helper.AreEqual2(this._uuid, other._uuid) &&
Helper.AreEqual2(this._cluster_hosts, other._cluster_hosts) &&
Helper.AreEqual2(this._network, other._network) &&
Helper.AreEqual2(this._cluster_token, other._cluster_token) &&
Helper.AreEqual2(this._cluster_stack, other._cluster_stack) &&
Helper.AreEqual2(this._allowed_operations, other._allowed_operations) &&
Helper.AreEqual2(this._pool_auto_join, other._pool_auto_join) &&
Helper.AreEqual2(this._cluster_config, other._cluster_config) &&
Helper.AreEqual2(this._other_config, other._other_config);
}
public override string SaveChanges(Session session, string opaqueRef, Cluster server)
{
if (opaqueRef == null)
{
System.Diagnostics.Debug.Assert(false, "Cannot create instances of this type on the server");
return "";
}
else
{
if (!Helper.AreEqual2(_other_config, server._other_config))
{
Cluster.set_other_config(session, opaqueRef, _other_config);
}
return null;
}
}
/// <summary>
/// Get a record containing the current state of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static Cluster get_record(Session session, string _cluster)
{
return new Cluster((Proxy_Cluster)session.proxy.cluster_get_record(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Get a reference to the Cluster instance with the specified UUID.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<Cluster> get_by_uuid(Session session, string _uuid)
{
return XenRef<Cluster>.Create(session.proxy.cluster_get_by_uuid(session.uuid, _uuid ?? "").parse());
}
/// <summary>
/// Get the uuid field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static string get_uuid(Session session, string _cluster)
{
return (string)session.proxy.cluster_get_uuid(session.uuid, _cluster ?? "").parse();
}
/// <summary>
/// Get the cluster_hosts field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static List<XenRef<Cluster_host>> get_cluster_hosts(Session session, string _cluster)
{
return XenRef<Cluster_host>.Create(session.proxy.cluster_get_cluster_hosts(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Get the network field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static XenRef<Network> get_network(Session session, string _cluster)
{
return XenRef<Network>.Create(session.proxy.cluster_get_network(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Get the cluster_token field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static string get_cluster_token(Session session, string _cluster)
{
return (string)session.proxy.cluster_get_cluster_token(session.uuid, _cluster ?? "").parse();
}
/// <summary>
/// Get the cluster_stack field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static string get_cluster_stack(Session session, string _cluster)
{
return (string)session.proxy.cluster_get_cluster_stack(session.uuid, _cluster ?? "").parse();
}
/// <summary>
/// Get the allowed_operations field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static List<cluster_operation> get_allowed_operations(Session session, string _cluster)
{
return Helper.StringArrayToEnumList<cluster_operation>(session.proxy.cluster_get_allowed_operations(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Get the current_operations field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static Dictionary<string, cluster_operation> get_current_operations(Session session, string _cluster)
{
return Maps.convert_from_proxy_string_cluster_operation(session.proxy.cluster_get_current_operations(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Get the pool_auto_join field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static bool get_pool_auto_join(Session session, string _cluster)
{
return (bool)session.proxy.cluster_get_pool_auto_join(session.uuid, _cluster ?? "").parse();
}
/// <summary>
/// Get the cluster_config field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static Dictionary<string, string> get_cluster_config(Session session, string _cluster)
{
return Maps.convert_from_proxy_string_string(session.proxy.cluster_get_cluster_config(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Get the other_config field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static Dictionary<string, string> get_other_config(Session session, string _cluster)
{
return Maps.convert_from_proxy_string_string(session.proxy.cluster_get_other_config(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Set the other_config field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
/// <param name="_other_config">New value to set</param>
public static void set_other_config(Session session, string _cluster, Dictionary<string, string> _other_config)
{
session.proxy.cluster_set_other_config(session.uuid, _cluster ?? "", Maps.convert_to_proxy_string_string(_other_config)).parse();
}
/// <summary>
/// Add the given key-value pair to the other_config field of the given Cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
/// <param name="_key">Key to add</param>
/// <param name="_value">Value to add</param>
public static void add_to_other_config(Session session, string _cluster, string _key, string _value)
{
session.proxy.cluster_add_to_other_config(session.uuid, _cluster ?? "", _key ?? "", _value ?? "").parse();
}
/// <summary>
/// Remove the given key and its corresponding value from the other_config field of the given Cluster. If the key is not in that Map, then do nothing.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
/// <param name="_key">Key to remove</param>
public static void remove_from_other_config(Session session, string _cluster, string _key)
{
session.proxy.cluster_remove_from_other_config(session.uuid, _cluster ?? "", _key ?? "").parse();
}
/// <summary>
/// Creates a Cluster object and one Cluster_host object as its first member
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_network">the single network on which corosync carries out its inter-host communications</param>
/// <param name="_cluster_stack">simply the string 'corosync'. No other cluster stacks are currently supported</param>
/// <param name="_pool_auto_join">true if xapi is automatically joining new pool members to the cluster</param>
public static XenRef<Cluster> create(Session session, string _network, string _cluster_stack, bool _pool_auto_join)
{
return XenRef<Cluster>.Create(session.proxy.cluster_create(session.uuid, _network ?? "", _cluster_stack ?? "", _pool_auto_join).parse());
}
/// <summary>
/// Creates a Cluster object and one Cluster_host object as its first member
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_network">the single network on which corosync carries out its inter-host communications</param>
/// <param name="_cluster_stack">simply the string 'corosync'. No other cluster stacks are currently supported</param>
/// <param name="_pool_auto_join">true if xapi is automatically joining new pool members to the cluster</param>
public static XenRef<Task> async_create(Session session, string _network, string _cluster_stack, bool _pool_auto_join)
{
return XenRef<Task>.Create(session.proxy.async_cluster_create(session.uuid, _network ?? "", _cluster_stack ?? "", _pool_auto_join).parse());
}
/// <summary>
/// Destroys a Cluster object and the one remaining Cluster_host member
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static void destroy(Session session, string _cluster)
{
session.proxy.cluster_destroy(session.uuid, _cluster ?? "").parse();
}
/// <summary>
/// Destroys a Cluster object and the one remaining Cluster_host member
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static XenRef<Task> async_destroy(Session session, string _cluster)
{
return XenRef<Task>.Create(session.proxy.async_cluster_destroy(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Attempt to create a Cluster from the entire pool
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pool">The pool to create a Cluster from</param>
/// <param name="_cluster_stack">simply the string 'corosync'. No other cluster stacks are currently supported</param>
/// <param name="_network">the single network on which corosync carries out its inter-host communications</param>
public static XenRef<Cluster> pool_create(Session session, string _pool, string _cluster_stack, string _network)
{
return XenRef<Cluster>.Create(session.proxy.cluster_pool_create(session.uuid, _pool ?? "", _cluster_stack ?? "", _network ?? "").parse());
}
/// <summary>
/// Attempt to create a Cluster from the entire pool
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_pool">The pool to create a Cluster from</param>
/// <param name="_cluster_stack">simply the string 'corosync'. No other cluster stacks are currently supported</param>
/// <param name="_network">the single network on which corosync carries out its inter-host communications</param>
public static XenRef<Task> async_pool_create(Session session, string _pool, string _cluster_stack, string _network)
{
return XenRef<Task>.Create(session.proxy.async_cluster_pool_create(session.uuid, _pool ?? "", _cluster_stack ?? "", _network ?? "").parse());
}
/// <summary>
/// Resynchronise the cluster_host objects across the pool. Creates them where they need creating and then plugs them
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static void pool_resync(Session session, string _cluster)
{
session.proxy.cluster_pool_resync(session.uuid, _cluster ?? "").parse();
}
/// <summary>
/// Resynchronise the cluster_host objects across the pool. Creates them where they need creating and then plugs them
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">The opaque_ref of the given cluster</param>
public static XenRef<Task> async_pool_resync(Session session, string _cluster)
{
return XenRef<Task>.Create(session.proxy.async_cluster_pool_resync(session.uuid, _cluster ?? "").parse());
}
/// <summary>
/// Return a list of all the Clusters known to the system.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<Cluster>> get_all(Session session)
{
return XenRef<Cluster>.Create(session.proxy.cluster_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the Cluster Records at once, in a single XML RPC call
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<Cluster>, Cluster> get_all_records(Session session)
{
return XenRef<Cluster>.Create<Proxy_Cluster>(session.proxy.cluster_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid;
/// <summary>
/// A list of the cluster_host objects associated with the Cluster
/// </summary>
public virtual List<XenRef<Cluster_host>> cluster_hosts
{
get { return _cluster_hosts; }
set
{
if (!Helper.AreEqual(value, _cluster_hosts))
{
_cluster_hosts = value;
Changed = true;
NotifyPropertyChanged("cluster_hosts");
}
}
}
private List<XenRef<Cluster_host>> _cluster_hosts;
/// <summary>
/// Reference to the single network on which corosync carries out its inter-host communications
/// </summary>
public virtual XenRef<Network> network
{
get { return _network; }
set
{
if (!Helper.AreEqual(value, _network))
{
_network = value;
Changed = true;
NotifyPropertyChanged("network");
}
}
}
private XenRef<Network> _network;
/// <summary>
/// The secret key used by xapi-clusterd when it talks to itself on other hosts
/// </summary>
public virtual string cluster_token
{
get { return _cluster_token; }
set
{
if (!Helper.AreEqual(value, _cluster_token))
{
_cluster_token = value;
Changed = true;
NotifyPropertyChanged("cluster_token");
}
}
}
private string _cluster_token;
/// <summary>
/// Simply the string 'corosync'. No other cluster stacks are currently supported
/// </summary>
public virtual string cluster_stack
{
get { return _cluster_stack; }
set
{
if (!Helper.AreEqual(value, _cluster_stack))
{
_cluster_stack = value;
Changed = true;
NotifyPropertyChanged("cluster_stack");
}
}
}
private string _cluster_stack;
/// <summary>
/// list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.
/// </summary>
public virtual List<cluster_operation> allowed_operations
{
get { return _allowed_operations; }
set
{
if (!Helper.AreEqual(value, _allowed_operations))
{
_allowed_operations = value;
Changed = true;
NotifyPropertyChanged("allowed_operations");
}
}
}
private List<cluster_operation> _allowed_operations;
/// <summary>
/// links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.
/// </summary>
public virtual Dictionary<string, cluster_operation> current_operations
{
get { return _current_operations; }
set
{
if (!Helper.AreEqual(value, _current_operations))
{
_current_operations = value;
Changed = true;
NotifyPropertyChanged("current_operations");
}
}
}
private Dictionary<string, cluster_operation> _current_operations;
/// <summary>
/// True if xapi is automatically joining new pool members to the cluster. This will be `true` in the first release
/// </summary>
public virtual bool pool_auto_join
{
get { return _pool_auto_join; }
set
{
if (!Helper.AreEqual(value, _pool_auto_join))
{
_pool_auto_join = value;
Changed = true;
NotifyPropertyChanged("pool_auto_join");
}
}
}
private bool _pool_auto_join;
/// <summary>
/// Contains read-only settings for the cluster, such as timeouts and other options. It can only be set at cluster create time
/// </summary>
public virtual Dictionary<string, string> cluster_config
{
get { return _cluster_config; }
set
{
if (!Helper.AreEqual(value, _cluster_config))
{
_cluster_config = value;
Changed = true;
NotifyPropertyChanged("cluster_config");
}
}
}
private Dictionary<string, string> _cluster_config;
/// <summary>
/// Additional configuration
/// </summary>
public virtual Dictionary<string, string> other_config
{
get { return _other_config; }
set
{
if (!Helper.AreEqual(value, _other_config))
{
_other_config = value;
Changed = true;
NotifyPropertyChanged("other_config");
}
}
}
private Dictionary<string, string> _other_config;
}
}

View File

@ -0,0 +1,490 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
namespace XenAPI
{
/// <summary>
/// Cluster member metadata
/// First published in Unreleased.
/// </summary>
public partial class Cluster_host : XenObject<Cluster_host>
{
public Cluster_host()
{
}
public Cluster_host(string uuid,
XenRef<Cluster> cluster,
XenRef<Host> host,
bool enabled,
List<cluster_host_operation> allowed_operations,
Dictionary<string, cluster_host_operation> current_operations,
Dictionary<string, string> other_config)
{
this.uuid = uuid;
this.cluster = cluster;
this.host = host;
this.enabled = enabled;
this.allowed_operations = allowed_operations;
this.current_operations = current_operations;
this.other_config = other_config;
}
/// <summary>
/// Creates a new Cluster_host from a Proxy_Cluster_host.
/// </summary>
/// <param name="proxy"></param>
public Cluster_host(Proxy_Cluster_host proxy)
{
this.UpdateFromProxy(proxy);
}
public override void UpdateFrom(Cluster_host update)
{
uuid = update.uuid;
cluster = update.cluster;
host = update.host;
enabled = update.enabled;
allowed_operations = update.allowed_operations;
current_operations = update.current_operations;
other_config = update.other_config;
}
internal void UpdateFromProxy(Proxy_Cluster_host proxy)
{
uuid = proxy.uuid == null ? null : (string)proxy.uuid;
cluster = proxy.cluster == null ? null : XenRef<Cluster>.Create(proxy.cluster);
host = proxy.host == null ? null : XenRef<Host>.Create(proxy.host);
enabled = (bool)proxy.enabled;
allowed_operations = proxy.allowed_operations == null ? null : Helper.StringArrayToEnumList<cluster_host_operation>(proxy.allowed_operations);
current_operations = proxy.current_operations == null ? null : Maps.convert_from_proxy_string_cluster_host_operation(proxy.current_operations);
other_config = proxy.other_config == null ? null : Maps.convert_from_proxy_string_string(proxy.other_config);
}
public Proxy_Cluster_host ToProxy()
{
Proxy_Cluster_host result_ = new Proxy_Cluster_host();
result_.uuid = uuid ?? "";
result_.cluster = cluster ?? "";
result_.host = host ?? "";
result_.enabled = enabled;
result_.allowed_operations = (allowed_operations != null) ? Helper.ObjectListToStringArray(allowed_operations) : new string[] {};
result_.current_operations = Maps.convert_to_proxy_string_cluster_host_operation(current_operations);
result_.other_config = Maps.convert_to_proxy_string_string(other_config);
return result_;
}
/// <summary>
/// Creates a new Cluster_host from a Hashtable.
/// </summary>
/// <param name="table"></param>
public Cluster_host(Hashtable table)
{
uuid = Marshalling.ParseString(table, "uuid");
cluster = Marshalling.ParseRef<Cluster>(table, "cluster");
host = Marshalling.ParseRef<Host>(table, "host");
enabled = Marshalling.ParseBool(table, "enabled");
allowed_operations = Helper.StringArrayToEnumList<cluster_host_operation>(Marshalling.ParseStringArray(table, "allowed_operations"));
current_operations = Maps.convert_from_proxy_string_cluster_host_operation(Marshalling.ParseHashTable(table, "current_operations"));
other_config = Maps.convert_from_proxy_string_string(Marshalling.ParseHashTable(table, "other_config"));
}
public bool DeepEquals(Cluster_host other, bool ignoreCurrentOperations)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
if (!ignoreCurrentOperations && !Helper.AreEqual2(this.current_operations, other.current_operations))
return false;
return Helper.AreEqual2(this._uuid, other._uuid) &&
Helper.AreEqual2(this._cluster, other._cluster) &&
Helper.AreEqual2(this._host, other._host) &&
Helper.AreEqual2(this._enabled, other._enabled) &&
Helper.AreEqual2(this._allowed_operations, other._allowed_operations) &&
Helper.AreEqual2(this._other_config, other._other_config);
}
public override string SaveChanges(Session session, string opaqueRef, Cluster_host server)
{
if (opaqueRef == null)
{
System.Diagnostics.Debug.Assert(false, "Cannot create instances of this type on the server");
return "";
}
else
{
throw new InvalidOperationException("This type has no read/write properties");
}
}
/// <summary>
/// Get a record containing the current state of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static Cluster_host get_record(Session session, string _cluster_host)
{
return new Cluster_host((Proxy_Cluster_host)session.proxy.cluster_host_get_record(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Get a reference to the Cluster_host instance with the specified UUID.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_uuid">UUID of object to return</param>
public static XenRef<Cluster_host> get_by_uuid(Session session, string _uuid)
{
return XenRef<Cluster_host>.Create(session.proxy.cluster_host_get_by_uuid(session.uuid, _uuid ?? "").parse());
}
/// <summary>
/// Get the uuid field of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static string get_uuid(Session session, string _cluster_host)
{
return (string)session.proxy.cluster_host_get_uuid(session.uuid, _cluster_host ?? "").parse();
}
/// <summary>
/// Get the cluster field of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static XenRef<Cluster> get_cluster(Session session, string _cluster_host)
{
return XenRef<Cluster>.Create(session.proxy.cluster_host_get_cluster(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Get the host field of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static XenRef<Host> get_host(Session session, string _cluster_host)
{
return XenRef<Host>.Create(session.proxy.cluster_host_get_host(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Get the enabled field of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static bool get_enabled(Session session, string _cluster_host)
{
return (bool)session.proxy.cluster_host_get_enabled(session.uuid, _cluster_host ?? "").parse();
}
/// <summary>
/// Get the allowed_operations field of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static List<cluster_host_operation> get_allowed_operations(Session session, string _cluster_host)
{
return Helper.StringArrayToEnumList<cluster_host_operation>(session.proxy.cluster_host_get_allowed_operations(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Get the current_operations field of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static Dictionary<string, cluster_host_operation> get_current_operations(Session session, string _cluster_host)
{
return Maps.convert_from_proxy_string_cluster_host_operation(session.proxy.cluster_host_get_current_operations(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Get the other_config field of the given Cluster_host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static Dictionary<string, string> get_other_config(Session session, string _cluster_host)
{
return Maps.convert_from_proxy_string_string(session.proxy.cluster_host_get_other_config(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Add a new host to an existing cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">Cluster to join</param>
/// <param name="_host">new cluster member</param>
public static XenRef<Cluster_host> create(Session session, string _cluster, string _host)
{
return XenRef<Cluster_host>.Create(session.proxy.cluster_host_create(session.uuid, _cluster ?? "", _host ?? "").parse());
}
/// <summary>
/// Add a new host to an existing cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster">Cluster to join</param>
/// <param name="_host">new cluster member</param>
public static XenRef<Task> async_create(Session session, string _cluster, string _host)
{
return XenRef<Task>.Create(session.proxy.async_cluster_host_create(session.uuid, _cluster ?? "", _host ?? "").parse());
}
/// <summary>
/// Remove a host from an existing cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static void destroy(Session session, string _cluster_host)
{
session.proxy.cluster_host_destroy(session.uuid, _cluster_host ?? "").parse();
}
/// <summary>
/// Remove a host from an existing cluster.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static XenRef<Task> async_destroy(Session session, string _cluster_host)
{
return XenRef<Task>.Create(session.proxy.async_cluster_host_destroy(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Enable cluster membership for a disabled cluster host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static void enable(Session session, string _cluster_host)
{
session.proxy.cluster_host_enable(session.uuid, _cluster_host ?? "").parse();
}
/// <summary>
/// Enable cluster membership for a disabled cluster host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static XenRef<Task> async_enable(Session session, string _cluster_host)
{
return XenRef<Task>.Create(session.proxy.async_cluster_host_enable(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Disable cluster membership for an enabled cluster host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static void disable(Session session, string _cluster_host)
{
session.proxy.cluster_host_disable(session.uuid, _cluster_host ?? "").parse();
}
/// <summary>
/// Disable cluster membership for an enabled cluster host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_cluster_host">The opaque_ref of the given cluster_host</param>
public static XenRef<Task> async_disable(Session session, string _cluster_host)
{
return XenRef<Task>.Create(session.proxy.async_cluster_host_disable(session.uuid, _cluster_host ?? "").parse());
}
/// <summary>
/// Return a list of all the Cluster_hosts known to the system.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static List<XenRef<Cluster_host>> get_all(Session session)
{
return XenRef<Cluster_host>.Create(session.proxy.cluster_host_get_all(session.uuid).parse());
}
/// <summary>
/// Get all the Cluster_host Records at once, in a single XML RPC call
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
public static Dictionary<XenRef<Cluster_host>, Cluster_host> get_all_records(Session session)
{
return XenRef<Cluster_host>.Create<Proxy_Cluster_host>(session.proxy.cluster_host_get_all_records(session.uuid).parse());
}
/// <summary>
/// Unique identifier/object reference
/// </summary>
public virtual string uuid
{
get { return _uuid; }
set
{
if (!Helper.AreEqual(value, _uuid))
{
_uuid = value;
Changed = true;
NotifyPropertyChanged("uuid");
}
}
}
private string _uuid;
/// <summary>
/// Reference to the Cluster object
/// </summary>
public virtual XenRef<Cluster> cluster
{
get { return _cluster; }
set
{
if (!Helper.AreEqual(value, _cluster))
{
_cluster = value;
Changed = true;
NotifyPropertyChanged("cluster");
}
}
}
private XenRef<Cluster> _cluster;
/// <summary>
/// Reference to the Host object
/// </summary>
public virtual XenRef<Host> host
{
get { return _host; }
set
{
if (!Helper.AreEqual(value, _host))
{
_host = value;
Changed = true;
NotifyPropertyChanged("host");
}
}
}
private XenRef<Host> _host;
/// <summary>
/// Whether the cluster host believes that clustering should be enabled on this host
/// </summary>
public virtual bool enabled
{
get { return _enabled; }
set
{
if (!Helper.AreEqual(value, _enabled))
{
_enabled = value;
Changed = true;
NotifyPropertyChanged("enabled");
}
}
}
private bool _enabled;
/// <summary>
/// list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.
/// </summary>
public virtual List<cluster_host_operation> allowed_operations
{
get { return _allowed_operations; }
set
{
if (!Helper.AreEqual(value, _allowed_operations))
{
_allowed_operations = value;
Changed = true;
NotifyPropertyChanged("allowed_operations");
}
}
}
private List<cluster_host_operation> _allowed_operations;
/// <summary>
/// links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.
/// </summary>
public virtual Dictionary<string, cluster_host_operation> current_operations
{
get { return _current_operations; }
set
{
if (!Helper.AreEqual(value, _current_operations))
{
_current_operations = value;
Changed = true;
NotifyPropertyChanged("current_operations");
}
}
}
private Dictionary<string, cluster_host_operation> _current_operations;
/// <summary>
/// Additional configuration
/// </summary>
public virtual Dictionary<string, string> other_config
{
get { return _other_config; }
set
{
if (!Helper.AreEqual(value, _other_config))
{
_other_config = value;
Changed = true;
NotifyPropertyChanged("other_config");
}
}
}
private Dictionary<string, string> _other_config;
}
}

View File

@ -255,6 +255,18 @@
<data name="CLUSTERED_SR_DEGRADED" xml:space="preserve">
<value>An SR is using clustered local storage. It is not safe to reboot a host at the moment.</value>
</data>
<data name="CLUSTERING_DISABLED" xml:space="preserve">
<value>An operation was attempted while clustering was disabled on the cluster_host.</value>
</data>
<data name="CLUSTERING_ENABLED" xml:space="preserve">
<value>An operation was attempted while clustering was enabled on the cluster_host.</value>
</data>
<data name="CLUSTER_ALREADY_EXISTS" xml:space="preserve">
<value>A cluster already exists in the pool.</value>
</data>
<data name="CLUSTER_CREATE_IN_PROGRESS" xml:space="preserve">
<value>The operation could not be performed because cluster creation is in progress.</value>
</data>
<data name="COULD_NOT_FIND_NETWORK_INTERFACE_WITH_SPECIFIED_DEVICE_NAME_AND_MAC_ADDRESS" xml:space="preserve">
<value>Could not find a network interface with the specified device name and MAC address.</value>
</data>

View File

@ -100,7 +100,8 @@ namespace XenAPI
long[] virtual_hardware_platform_versions,
XenRef<VM> control_domain,
List<XenRef<Pool_update>> updates_requiring_reboot,
List<XenRef<Feature>> features)
List<XenRef<Feature>> features,
string iscsi_iqn)
{
this.uuid = uuid;
this.name_label = name_label;
@ -157,6 +158,7 @@ namespace XenAPI
this.control_domain = control_domain;
this.updates_requiring_reboot = updates_requiring_reboot;
this.features = features;
this.iscsi_iqn = iscsi_iqn;
}
/// <summary>
@ -225,6 +227,7 @@ namespace XenAPI
control_domain = update.control_domain;
updates_requiring_reboot = update.updates_requiring_reboot;
features = update.features;
iscsi_iqn = update.iscsi_iqn;
}
internal void UpdateFromProxy(Proxy_Host proxy)
@ -284,6 +287,7 @@ namespace XenAPI
control_domain = proxy.control_domain == null ? null : XenRef<VM>.Create(proxy.control_domain);
updates_requiring_reboot = proxy.updates_requiring_reboot == null ? null : XenRef<Pool_update>.Create(proxy.updates_requiring_reboot);
features = proxy.features == null ? null : XenRef<Feature>.Create(proxy.features);
iscsi_iqn = proxy.iscsi_iqn == null ? null : (string)proxy.iscsi_iqn;
}
public Proxy_Host ToProxy()
@ -344,6 +348,7 @@ namespace XenAPI
result_.control_domain = control_domain ?? "";
result_.updates_requiring_reboot = (updates_requiring_reboot != null) ? Helper.RefListToStringArray(updates_requiring_reboot) : new string[] {};
result_.features = (features != null) ? Helper.RefListToStringArray(features) : new string[] {};
result_.iscsi_iqn = iscsi_iqn ?? "";
return result_;
}
@ -408,6 +413,7 @@ namespace XenAPI
control_domain = Marshalling.ParseRef<VM>(table, "control_domain");
updates_requiring_reboot = Marshalling.ParseSetRef<Pool_update>(table, "updates_requiring_reboot");
features = Marshalling.ParseSetRef<Feature>(table, "features");
iscsi_iqn = Marshalling.ParseString(table, "iscsi_iqn");
}
public bool DeepEquals(Host other, bool ignoreCurrentOperations)
@ -473,7 +479,8 @@ namespace XenAPI
Helper.AreEqual2(this._virtual_hardware_platform_versions, other._virtual_hardware_platform_versions) &&
Helper.AreEqual2(this._control_domain, other._control_domain) &&
Helper.AreEqual2(this._updates_requiring_reboot, other._updates_requiring_reboot) &&
Helper.AreEqual2(this._features, other._features);
Helper.AreEqual2(this._features, other._features) &&
Helper.AreEqual2(this._iscsi_iqn, other._iscsi_iqn);
}
public override string SaveChanges(Session session, string opaqueRef, Host server)
@ -537,6 +544,10 @@ namespace XenAPI
{
Host.set_ssl_legacy(session, opaqueRef, _ssl_legacy);
}
if (!Helper.AreEqual2(_iscsi_iqn, server._iscsi_iqn))
{
Host.set_iscsi_iqn(session, opaqueRef, _iscsi_iqn);
}
return null;
}
@ -1181,6 +1192,17 @@ namespace XenAPI
return XenRef<Feature>.Create(session.proxy.host_get_features(session.uuid, _host ?? "").parse());
}
/// <summary>
/// Get the iscsi_iqn field of the given host.
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_host">The opaque_ref of the given host</param>
public static string get_iscsi_iqn(Session session, string _host)
{
return (string)session.proxy.host_get_iscsi_iqn(session.uuid, _host ?? "").parse();
}
/// <summary>
/// Set the name/label field of the given host.
/// First published in XenServer 4.0.
@ -2585,6 +2607,30 @@ namespace XenAPI
return XenRef<Task>.Create(session.proxy.async_host_set_ssl_legacy(session.uuid, _host ?? "", _value).parse());
}
/// <summary>
/// Sets the initiator IQN for the host
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_host">The opaque_ref of the given host</param>
/// <param name="_value">The value to which the IQN should be set</param>
public static void set_iscsi_iqn(Session session, string _host, string _value)
{
session.proxy.host_set_iscsi_iqn(session.uuid, _host ?? "", _value ?? "").parse();
}
/// <summary>
/// Sets the initiator IQN for the host
/// First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_host">The opaque_ref of the given host</param>
/// <param name="_value">The value to which the IQN should be set</param>
public static XenRef<Task> async_set_iscsi_iqn(Session session, string _host, string _value)
{
return XenRef<Task>.Create(session.proxy.async_host_set_iscsi_iqn(session.uuid, _host ?? "", _value ?? "").parse());
}
/// <summary>
/// Return a list of all the hosts known to the system.
/// First published in XenServer 4.0.
@ -3619,5 +3665,24 @@ namespace XenAPI
}
}
private List<XenRef<Feature>> _features;
/// <summary>
/// The initiator IQN for the host
/// First published in Unreleased.
/// </summary>
public virtual string iscsi_iqn
{
get { return _iscsi_iqn; }
set
{
if (!Helper.AreEqual(value, _iscsi_iqn))
{
_iscsi_iqn = value;
Changed = true;
NotifyPropertyChanged("iscsi_iqn");
}
}
}
private string _iscsi_iqn;
}
}

View File

@ -132,6 +132,100 @@ namespace XenAPI
return result;
}
internal static Dictionary<string, cluster_host_operation>
convert_from_proxy_string_cluster_host_operation(Object o)
{
Hashtable table = (Hashtable)o;
Dictionary<string, cluster_host_operation> result = new Dictionary<string, cluster_host_operation>();
if (table != null)
{
foreach (string key in table.Keys)
{
try
{
string k = key;
cluster_host_operation v = table[key] == null ? (cluster_host_operation) 0 : (cluster_host_operation)Helper.EnumParseDefault(typeof(cluster_host_operation), (string)table[key]);
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Hashtable
convert_to_proxy_string_cluster_host_operation(Dictionary<string, cluster_host_operation> table)
{
CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct();
if (table != null)
{
foreach (string key in table.Keys)
{
try
{
string k = key ?? "";
string v = cluster_host_operation_helper.ToString(table[key]);
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Dictionary<string, cluster_operation>
convert_from_proxy_string_cluster_operation(Object o)
{
Hashtable table = (Hashtable)o;
Dictionary<string, cluster_operation> result = new Dictionary<string, cluster_operation>();
if (table != null)
{
foreach (string key in table.Keys)
{
try
{
string k = key;
cluster_operation v = table[key] == null ? (cluster_operation) 0 : (cluster_operation)Helper.EnumParseDefault(typeof(cluster_operation), (string)table[key]);
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Hashtable
convert_to_proxy_string_cluster_operation(Dictionary<string, cluster_operation> table)
{
CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct();
if (table != null)
{
foreach (string key in table.Keys)
{
try
{
string k = key ?? "";
string v = cluster_operation_helper.ToString(table[key]);
result[k] = v;
}
catch
{
continue;
}
}
}
return result;
}
internal static Dictionary<string, host_allowed_operations>
convert_from_proxy_string_host_allowed_operations(Object o)
{

View File

@ -3304,6 +3304,10 @@ namespace XenAPI
Response<string []>
host_get_features(string session, string _host);
[XmlRpcMethod("host.get_iscsi_iqn")]
Response<string>
host_get_iscsi_iqn(string session, string _host);
[XmlRpcMethod("host.set_name_label")]
Response<string>
host_set_name_label(string session, string _host, string _label);
@ -3784,6 +3788,14 @@ namespace XenAPI
Response<string>
async_host_set_ssl_legacy(string session, string _host, bool _value);
[XmlRpcMethod("host.set_iscsi_iqn")]
Response<string>
host_set_iscsi_iqn(string session, string _host, string _value);
[XmlRpcMethod("Async.host.set_iscsi_iqn")]
Response<string>
async_host_set_iscsi_iqn(string session, string _host, string _value);
[XmlRpcMethod("host.get_all")]
Response<string []>
host_get_all(string session);
@ -5720,6 +5732,10 @@ namespace XenAPI
Response<bool>
vdi_get_cbt_enabled(string session, string _vdi);
[XmlRpcMethod("VDI.get_activated_on")]
Response<string>
vdi_get_activated_on(string session, string _vdi);
[XmlRpcMethod("VDI.set_other_config")]
Response<string>
vdi_set_other_config(string session, string _vdi, Object _other_config);
@ -7643,6 +7659,182 @@ namespace XenAPI
[XmlRpcMethod("vdi_nbd_server_info.get_all_records")]
Response<Object>
vdi_nbd_server_info_get_all_records(string session);
[XmlRpcMethod("Cluster.get_record")]
Response<Proxy_Cluster>
cluster_get_record(string session, string _cluster);
[XmlRpcMethod("Cluster.get_by_uuid")]
Response<string>
cluster_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("Cluster.get_uuid")]
Response<string>
cluster_get_uuid(string session, string _cluster);
[XmlRpcMethod("Cluster.get_cluster_hosts")]
Response<string []>
cluster_get_cluster_hosts(string session, string _cluster);
[XmlRpcMethod("Cluster.get_network")]
Response<string>
cluster_get_network(string session, string _cluster);
[XmlRpcMethod("Cluster.get_cluster_token")]
Response<string>
cluster_get_cluster_token(string session, string _cluster);
[XmlRpcMethod("Cluster.get_cluster_stack")]
Response<string>
cluster_get_cluster_stack(string session, string _cluster);
[XmlRpcMethod("Cluster.get_allowed_operations")]
Response<string []>
cluster_get_allowed_operations(string session, string _cluster);
[XmlRpcMethod("Cluster.get_current_operations")]
Response<Object>
cluster_get_current_operations(string session, string _cluster);
[XmlRpcMethod("Cluster.get_pool_auto_join")]
Response<bool>
cluster_get_pool_auto_join(string session, string _cluster);
[XmlRpcMethod("Cluster.get_cluster_config")]
Response<Object>
cluster_get_cluster_config(string session, string _cluster);
[XmlRpcMethod("Cluster.get_other_config")]
Response<Object>
cluster_get_other_config(string session, string _cluster);
[XmlRpcMethod("Cluster.set_other_config")]
Response<string>
cluster_set_other_config(string session, string _cluster, Object _other_config);
[XmlRpcMethod("Cluster.add_to_other_config")]
Response<string>
cluster_add_to_other_config(string session, string _cluster, string _key, string _value);
[XmlRpcMethod("Cluster.remove_from_other_config")]
Response<string>
cluster_remove_from_other_config(string session, string _cluster, string _key);
[XmlRpcMethod("Cluster.create")]
Response<string>
cluster_create(string session, string _network, string _cluster_stack, bool _pool_auto_join);
[XmlRpcMethod("Async.Cluster.create")]
Response<string>
async_cluster_create(string session, string _network, string _cluster_stack, bool _pool_auto_join);
[XmlRpcMethod("Cluster.destroy")]
Response<string>
cluster_destroy(string session, string _cluster);
[XmlRpcMethod("Async.Cluster.destroy")]
Response<string>
async_cluster_destroy(string session, string _cluster);
[XmlRpcMethod("Cluster.pool_create")]
Response<string>
cluster_pool_create(string session, string _pool, string _cluster_stack, string _network);
[XmlRpcMethod("Async.Cluster.pool_create")]
Response<string>
async_cluster_pool_create(string session, string _pool, string _cluster_stack, string _network);
[XmlRpcMethod("Cluster.pool_resync")]
Response<string>
cluster_pool_resync(string session, string _cluster);
[XmlRpcMethod("Async.Cluster.pool_resync")]
Response<string>
async_cluster_pool_resync(string session, string _cluster);
[XmlRpcMethod("Cluster.get_all")]
Response<string []>
cluster_get_all(string session);
[XmlRpcMethod("Cluster.get_all_records")]
Response<Object>
cluster_get_all_records(string session);
[XmlRpcMethod("Cluster_host.get_record")]
Response<Proxy_Cluster_host>
cluster_host_get_record(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_by_uuid")]
Response<string>
cluster_host_get_by_uuid(string session, string _uuid);
[XmlRpcMethod("Cluster_host.get_uuid")]
Response<string>
cluster_host_get_uuid(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_cluster")]
Response<string>
cluster_host_get_cluster(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_host")]
Response<string>
cluster_host_get_host(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_enabled")]
Response<bool>
cluster_host_get_enabled(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_allowed_operations")]
Response<string []>
cluster_host_get_allowed_operations(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_current_operations")]
Response<Object>
cluster_host_get_current_operations(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_other_config")]
Response<Object>
cluster_host_get_other_config(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.create")]
Response<string>
cluster_host_create(string session, string _cluster, string _host);
[XmlRpcMethod("Async.Cluster_host.create")]
Response<string>
async_cluster_host_create(string session, string _cluster, string _host);
[XmlRpcMethod("Cluster_host.destroy")]
Response<string>
cluster_host_destroy(string session, string _cluster_host);
[XmlRpcMethod("Async.Cluster_host.destroy")]
Response<string>
async_cluster_host_destroy(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.enable")]
Response<string>
cluster_host_enable(string session, string _cluster_host);
[XmlRpcMethod("Async.Cluster_host.enable")]
Response<string>
async_cluster_host_enable(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.disable")]
Response<string>
cluster_host_disable(string session, string _cluster_host);
[XmlRpcMethod("Async.Cluster_host.disable")]
Response<string>
async_cluster_host_disable(string session, string _cluster_host);
[XmlRpcMethod("Cluster_host.get_all")]
Response<string []>
cluster_host_get_all(string session);
[XmlRpcMethod("Cluster_host.get_all_records")]
Response<Object>
cluster_host_get_all_records(string session);
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -8024,6 +8216,7 @@ namespace XenAPI
public string control_domain;
public string [] updates_requiring_reboot;
public string [] features;
public string iscsi_iqn;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -8307,6 +8500,7 @@ namespace XenAPI
public bool metadata_latest;
public bool is_tools_iso;
public bool cbt_enabled;
public string activated_on;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
@ -8601,4 +8795,31 @@ namespace XenAPI
public string subject;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_Cluster
{
public string uuid;
public string [] cluster_hosts;
public string network;
public string cluster_token;
public string cluster_stack;
public string [] allowed_operations;
public Object current_operations;
public bool pool_auto_join;
public Object cluster_config;
public Object other_config;
}
[XmlRpcMissingMapping(MappingAction.Ignore)]
public class Proxy_Cluster_host
{
public string uuid;
public string cluster;
public string host;
public bool enabled;
public string [] allowed_operations;
public Object current_operations;
public Object other_config;
}
}

View File

@ -69,6 +69,10 @@ namespace XenAPI
new Relation("roles", "subject", "roles"),
});
relations.Add(typeof(Proxy_Cluster), new Relation[] {
new Relation("cluster_hosts", "Cluster_host", "cluster"),
});
relations.Add(typeof(Proxy_Bond), new Relation[] {
new Relation("slaves", "PIF", "bond_slave_of"),
});

View File

@ -77,7 +77,8 @@ namespace XenAPI
XenRef<Pool> metadata_of_pool,
bool metadata_latest,
bool is_tools_iso,
bool cbt_enabled)
bool cbt_enabled,
XenRef<Host> activated_on)
{
this.uuid = uuid;
this.name_label = name_label;
@ -111,6 +112,7 @@ namespace XenAPI
this.metadata_latest = metadata_latest;
this.is_tools_iso = is_tools_iso;
this.cbt_enabled = cbt_enabled;
this.activated_on = activated_on;
}
/// <summary>
@ -156,6 +158,7 @@ namespace XenAPI
metadata_latest = update.metadata_latest;
is_tools_iso = update.is_tools_iso;
cbt_enabled = update.cbt_enabled;
activated_on = update.activated_on;
}
internal void UpdateFromProxy(Proxy_VDI proxy)
@ -192,6 +195,7 @@ namespace XenAPI
metadata_latest = (bool)proxy.metadata_latest;
is_tools_iso = (bool)proxy.is_tools_iso;
cbt_enabled = (bool)proxy.cbt_enabled;
activated_on = proxy.activated_on == null ? null : XenRef<Host>.Create(proxy.activated_on);
}
public Proxy_VDI ToProxy()
@ -229,6 +233,7 @@ namespace XenAPI
result_.metadata_latest = metadata_latest;
result_.is_tools_iso = is_tools_iso;
result_.cbt_enabled = cbt_enabled;
result_.activated_on = activated_on ?? "";
return result_;
}
@ -270,6 +275,7 @@ namespace XenAPI
metadata_latest = Marshalling.ParseBool(table, "metadata_latest");
is_tools_iso = Marshalling.ParseBool(table, "is_tools_iso");
cbt_enabled = Marshalling.ParseBool(table, "cbt_enabled");
activated_on = Marshalling.ParseRef<Host>(table, "activated_on");
}
public bool DeepEquals(VDI other, bool ignoreCurrentOperations)
@ -312,7 +318,8 @@ namespace XenAPI
Helper.AreEqual2(this._metadata_of_pool, other._metadata_of_pool) &&
Helper.AreEqual2(this._metadata_latest, other._metadata_latest) &&
Helper.AreEqual2(this._is_tools_iso, other._is_tools_iso) &&
Helper.AreEqual2(this._cbt_enabled, other._cbt_enabled);
Helper.AreEqual2(this._cbt_enabled, other._cbt_enabled) &&
Helper.AreEqual2(this._activated_on, other._activated_on);
}
public override string SaveChanges(Session session, string opaqueRef, VDI server)
@ -795,6 +802,17 @@ namespace XenAPI
return (bool)session.proxy.vdi_get_cbt_enabled(session.uuid, _vdi ?? "").parse();
}
/// <summary>
/// Get the activated_on field of the given VDI.
/// Experimental. First published in Unreleased.
/// </summary>
/// <param name="session">The session</param>
/// <param name="_vdi">The opaque_ref of the given vdi</param>
public static XenRef<Host> get_activated_on(Session session, string _vdi)
{
return XenRef<Host>.Create(session.proxy.vdi_get_activated_on(session.uuid, _vdi ?? "").parse());
}
/// <summary>
/// Set the other_config field of the given VDI.
/// First published in XenServer 4.0.
@ -2406,5 +2424,24 @@ namespace XenAPI
}
}
private bool _cbt_enabled;
/// <summary>
/// The host on which this VDI is activated, if any
/// Experimental. First published in Unreleased.
/// </summary>
public virtual XenRef<Host> activated_on
{
get { return _activated_on; }
set
{
if (!Helper.AreEqual(value, _activated_on))
{
_activated_on = value;
Changed = true;
NotifyPropertyChanged("activated_on");
}
}
}
private XenRef<Host> _activated_on;
}
}

View File

@ -0,0 +1,58 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
namespace XenAPI
{
public enum cluster_host_operation
{
enable, disable, unknown
}
public static class cluster_host_operation_helper
{
public static string ToString(cluster_host_operation x)
{
switch (x)
{
case cluster_host_operation.enable:
return "enable";
case cluster_host_operation.disable:
return "disable";
default:
return "unknown";
}
}
}
}

View File

@ -0,0 +1,64 @@
/*
* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1) Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
namespace XenAPI
{
public enum cluster_operation
{
add, remove, enable, disable, destroy, unknown
}
public static class cluster_operation_helper
{
public static string ToString(cluster_operation x)
{
switch (x)
{
case cluster_operation.add:
return "add";
case cluster_operation.remove:
return "remove";
case cluster_operation.enable:
return "enable";
case cluster_operation.disable:
return "disable";
case cluster_operation.destroy:
return "destroy";
default:
return "unknown";
}
}
}
}

View File

@ -37,7 +37,7 @@ namespace XenAPI
{
public enum pool_allowed_operations
{
ha_enable, ha_disable, unknown
ha_enable, ha_disable, cluster_create, unknown
}
public static class pool_allowed_operations_helper
@ -50,6 +50,8 @@ namespace XenAPI
return "ha_enable";
case pool_allowed_operations.ha_disable:
return "ha_disable";
case pool_allowed_operations.cluster_create:
return "cluster_create";
default:
return "unknown";
}

View File

@ -346,6 +346,10 @@
<Compile Include="XenAPI\allocation_algorithm.cs" />
<Compile Include="XenAPI\ApiVersion.cs" />
<Compile Include="XenAPI\bond_mode.cs" />
<Compile Include="XenAPI\Cluster.cs" />
<Compile Include="XenAPI\Cluster_host.cs" />
<Compile Include="XenAPI\cluster_host_operation.cs" />
<Compile Include="XenAPI\cluster_operation.cs" />
<Compile Include="XenAPI\DeprecatedAttribute.cs" />
<Compile Include="XenAPI\DR_task.cs" />
<Compile Include="XenAPI\Feature.cs" />