config/sysinv/sysinv/sysinv/etc/sysinv/profileSchema.xsd

362 lines
14 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Processor">
<xs:attribute type="xs:byte" name="index" />
<xs:attribute type="xs:byte" name="numberOfCores" />
</xs:complexType>
<xs:complexType name="CPUProfile">
<xs:sequence>
<xs:element name="processor" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:byte" name="numberOfProcessor" />
<xs:element type="xs:byte" name="coresPerProcessor" />
<xs:element type="xs:boolean" name="hyperThreading" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="platformCores" minOccurs="1">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="processor" type="Processor" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="vswitchCores" minOccurs="0">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="processor" type="Processor" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sharedCores" minOccurs="0">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="processor" type="Processor" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required" />
</xs:complexType>
<xs:complexType name="memoryAllocation">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="processor" type="processorMemory" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="processorMemory">
<xs:attribute type="xs:nonNegativeInteger" name="index" use="required" />
<xs:attribute type="xs:nonNegativeInteger" name="size" use="required" />
</xs:complexType>
<xs:complexType name="MemoryProfile">
<xs:sequence>
<xs:element type="xs:byte" name="numberOfProcessor" />
<xs:element name="platformReservedMiB" type="memoryAllocation" minOccurs="0" maxOccurs="1"/>
<xs:element name="vmHugePages2M" type="memoryAllocation" minOccurs="0" maxOccurs="1"/>
<xs:element name="vmHugePages1G" type="memoryAllocation" minOccurs="0" maxOccurs="1"/>
<xs:element name="vsHugePagesNr" type="memoryAllocation" minOccurs="0" maxOccurs="1"/>
<xs:element name="vsHugePagesSz" type="memoryAllocation" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required" />
</xs:complexType>
<xs:simpleType name="TxPolicy">
<xs:restriction base="xs:string">
<xs:enumeration value="layer3+4" />
<xs:enumeration value="layer2+3" />
<xs:enumeration value="layer2" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AeModePolicy">
<xs:attribute name="txPolicy" type="TxPolicy" />
</xs:complexType>
<xs:complexType name="AeMode">
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="activeStandby" />
<xs:element name="balanced" type="AeModePolicy" />
<xs:element name="ieee802.3ad" type="AeModePolicy" />
</xs:choice>
</xs:complexType>
<xs:simpleType name="Ipv4Mode">
<xs:restriction base="xs:string">
<xs:enumeration value="disabled" />
<xs:enumeration value="static" />
<xs:enumeration value="dhcp" />
<xs:enumeration value="pool" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Ipv6Mode">
<xs:restriction base="xs:string">
<xs:enumeration value="disabled" />
<xs:enumeration value="static" />
<xs:enumeration value="auto" />
<xs:enumeration value="link-local" />
<xs:enumeration value="pool" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="interface">
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="interfaces">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element type="interface" name="interface" >
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="providerNetwork">
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="providerNetworks">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element type="providerNetwork" name="providerNetwork" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IpPool">
<xs:attribute name="name" use="required">
</xs:attribute>
</xs:complexType>
<xs:complexType name="ipv4">
<xs:sequence>
<xs:element name="pool" type="IpPool" minOccurs="0" maxOccurs="1">
</xs:element>
</xs:sequence>
<xs:attribute name="mode" type="Ipv4Mode" use="required" />
</xs:complexType>
<xs:complexType name="ipv6">
<xs:sequence>
<xs:element name="pool" type="IpPool" minOccurs="0" maxOccurs="1">
</xs:element>
</xs:sequence>
<xs:attribute name="mode" type="Ipv6Mode" use="required" />
</xs:complexType>
<xs:complexType name="dataclassNetwork">
<xs:sequence>
<xs:element name="providerNetworks" type="providerNetworks" minOccurs="1" maxOccurs="unbounded">
</xs:element>
<xs:element name="ipv4" type="ipv4" minOccurs="1" maxOccurs="1">
</xs:element>
<xs:element name="ipv6" type="ipv6" minOccurs="1" maxOccurs="1">
</xs:element>
<xs:element name="routes" type="routes" minOccurs="0" maxOccurs="1">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="externalNetwork">
</xs:complexType>
<xs:complexType name="pciPassthrough">
<xs:sequence>
<xs:element name="providerNetworks" type="providerNetworks" minOccurs="1" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="pciSriov">
<xs:sequence>
<xs:element name="providerNetworks" type="providerNetworks" minOccurs="1" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
<xs:attribute name="virtualFunctions" type="xs:nonNegativeInteger" use="required" />
<xs:attribute name="virtualFunctionDriver" type="xs:string" />
</xs:complexType>
<xs:complexType name="route">
<xs:attribute name="network" type="xs:string" />
<xs:attribute name="metric" type="xs:integer" />
<xs:attribute name="gateway" type="xs:string" />
</xs:complexType>
<xs:complexType name="routes">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="route" type="route">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="pciAddress">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-fA-F]{1,4}[:][0-9a-fA-F]{1,2}[:][0-9a-fA-F]{1,2}[.][0-9a-fA-F]" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="pciClass">
<xs:restriction base="xs:string">
<xs:enumeration value="Ethernet controller" />
<xs:enumeration value="Network controller" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ethernetInterface">
<xs:sequence>
<xs:element name="port" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:attribute name="name" use="optional" />
<xs:attribute name="pciAddress" type="pciAddress" use="optional" />
<xs:attribute name="class" type="pciClass" use="required" />
<xs:attribute name="device" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="networks" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="2">
<xs:element name="dataclassNetwork" type="dataclassNetwork" maxOccurs="1">
</xs:element>
<xs:element name="clusterhostNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
<xs:element name="mgmtNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
<xs:element name="oamNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
<xs:element name="pciPassthrough" type="pciPassthrough" maxOccurs="1">
</xs:element>
<xs:element name="pciSriov" type="pciSriov" maxOccurs="1">
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ifName" type="xs:string" use="required" />
<xs:attribute name="mtu" type="xs:positiveInteger" use="required" />
</xs:complexType>
<xs:simpleType name="VlanId">
<xs:restriction base="xs:short">
<xs:minInclusive value="1" />
<xs:maxInclusive value="4094" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="vlanInterface">
<xs:sequence>
<xs:element name="networks">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="2">
<xs:element name="mgmtNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
<xs:element name="oamNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
<xs:element name="dataclassNetwork" type="dataclassNetwork" maxOccurs="1">
</xs:element>
<xs:element name="clusterhostNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ifName" type="xs:string" use="required" />
<xs:attribute name="interface" type="xs:string" use="required" />
<xs:attribute name="vlanId" type="VlanId" use="required"/>
<xs:attribute name="mtu" type="xs:positiveInteger" use="required" />
</xs:complexType>
<xs:complexType name="aeInterface">
<xs:sequence>
<xs:element name="networks" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="2">
<xs:element name="mgmtNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
<xs:element name="oamNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
<xs:element name="dataclassNetwork" type="dataclassNetwork" maxOccurs="1">
</xs:element>
<xs:element name="clusterhostNetwork" type="externalNetwork" maxOccurs="1">
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="interfaces" type="interfaces">
</xs:element>
<xs:element name="aeMode" type="AeMode" minOccurs="1" maxOccurs="1">
</xs:element>
</xs:sequence>
<xs:attribute name="ifName" type="xs:string" use="required" />
<xs:attribute name="mtu" type="xs:positiveInteger" use="required" />
</xs:complexType>
<xs:complexType name="InterfaceProfile">
<xs:choice maxOccurs="unbounded">
<xs:element type="ethernetInterface" name="ethernetInterface">
</xs:element>
<xs:element type="vlanInterface" name="vlanInterface">
</xs:element>
<xs:element type="aeInterface" name="aeInterface">
</xs:element>
</xs:choice>
<xs:attribute type="xs:string" name="name" use="required" />
</xs:complexType>
<xs:simpleType name="volumeFunction">
<xs:restriction base="xs:string">
<xs:enumeration value="osd" />
<xs:enumeration value="journal" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Disk">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="path" use="required" />
<xs:attribute type="xs:positiveInteger" name="size" use="required" />
<xs:attribute type="volumeFunction" name="volumeFunc" use="optional" />
<xs:attribute type="xs:positiveInteger" name="journalSize" use="optional" />
<xs:attribute type="xs:string" name="journalLocation" use="optional" />
<xs:attribute type="xs:string" name="tier" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="StorageProfile">
<xs:sequence maxOccurs="unbounded">
<xs:element type="Disk" name="disk" minOccurs="0" />
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required" />
</xs:complexType>
<xs:simpleType name="Lvm_vg_name">
<xs:restriction base="xs:string">
<xs:enumeration value="nova-local" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Instance_backing">
<xs:restriction base="xs:string">
<xs:enumeration value="image" />
<xs:enumeration value="remote" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Lvg">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="Lvm_vg_name" name="lvm_vg_name" use="required" />
<xs:attribute type="Instance_backing" name="instance_backing" use="required" />
<xs:attribute type="xs:positiveInteger" name="concurrent_disk_operations" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LocalStorageProfile">
<xs:sequence maxOccurs="unbounded">
<xs:element type="Disk" name="disk" minOccurs="0" />
<xs:element type="Lvg" name="lvg" minOccurs="0" />
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required" />
</xs:complexType>
<xs:element name="profiles">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="cpuProfile" type="CPUProfile" maxOccurs="unbounded" minOccurs="0" nillable="true" />
<xs:element name="memoryProfile" type="MemoryProfile" maxOccurs="unbounded" minOccurs="0" nillable="true" />
<xs:element name="interfaceProfile" type="InterfaceProfile" maxOccurs="unbounded" minOccurs="0" nillable="true" />
<xs:element name="storageProfile" type="StorageProfile" maxOccurs="unbounded" minOccurs="0" nillable="true" />
<xs:element name="localstorageProfile" type="LocalStorageProfile" maxOccurs="unbounded" minOccurs="0" nillable="true" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>