summaryrefslogtreecommitdiffstats
path: root/schemas/packages.xsd
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2011-08-01 09:48:35 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2011-08-01 09:48:35 -0400
commit066aad5e10c05133b8650a50f18f44c9de276030 (patch)
tree21a0623660ac97ad49f5efe27602dd2a5c2a2fbf /schemas/packages.xsd
parent6fdffa2059e19567fe46d8f48eda6bb3f461caea (diff)
downloadbcfg2-066aad5e10c05133b8650a50f18f44c9de276030.tar.gz
bcfg2-066aad5e10c05133b8650a50f18f44c9de276030.tar.bz2
bcfg2-066aad5e10c05133b8650a50f18f44c9de276030.zip
Lots of improvements to Packages plugin:
* Better config handling: Split into packages.conf (which contains one-time configuration directives) and sources.xml (which contains the actual package sources.) The config file looks like a StructFile, and supports <Client> tags and negated Client and Group tags. Packages.Reload (_not_ Refresh) is run on changes to the sources config. tools/packages-convert.py is provided to convert to the new format. * Automagic handling of GPG keys. The new config format handles association of GPG keys go with repos; Packages then Does The Right Thing and gets them to the clients, gets them installed properly, and handles them in the specification. At the moment this only works for yum repos, not APT (see below). * Automatic generation of yum configs using the sources and GPG keys supplied. APT configs are not done yet (see below). * The early vestiges of integration with Pulp (pulpproject.org). Yet to do: * Better support for Pulp; documentation on Pulp integration. * APT support for key handling and config generation.
Diffstat (limited to 'schemas/packages.xsd')
-rw-r--r--schemas/packages.xsd76
1 files changed, 44 insertions, 32 deletions
diff --git a/schemas/packages.xsd b/schemas/packages.xsd
index 1a8469ed6..8b5f31118 100644
--- a/schemas/packages.xsd
+++ b/schemas/packages.xsd
@@ -7,47 +7,59 @@
</xsd:documentation>
</xsd:annotation>
- <xsd:complexType name='SourceType'>
+ <xsd:simpleType name="sourceTypeEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="yum"/>
+ <xsd:enumeration value="apt"/>
+ <xsd:enumeration value="pac"/>
+ <xsd:enumeration value="pulp"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="sourceType">
<xsd:sequence>
- <xsd:element name="Group" type="xsd:string" minOccurs='1'
- maxOccurs='unbounded'/>
- <xsd:element name="URL" type="xsd:string" minOccurs='0'
- maxOccurs='1'/>
- <xsd:element name="Recommended" type="xsd:string" minOccurs='0'
- maxOccurs='1'/>
- <xsd:element name="RawURL" type="xsd:string" minOccurs='0'
- maxOccurs='1'/>
- <xsd:element name="Version" type="xsd:string" minOccurs='0'
- maxOccurs='1'/>
- <xsd:element name="Component" type="xsd:string" minOccurs='0'
- maxOccurs='unbounded'/>
+ <xsd:element name="Component" type="xsd:string" minOccurs="0"
+ maxOccurs="unbounded"/>
<xsd:choice>
- <xsd:element name="Blacklist" type="xsd:string" minOccurs='0'
- maxOccurs='unbounded'/>
- <xsd:element name="Whitelist" type="xsd:string" minOccurs='0'
- maxOccurs='unbounded'/>
+ <xsd:element name="Blacklist" type="xsd:string" minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="Whitelist" type="xsd:string" minOccurs="0"
+ maxOccurs="unbounded"/>
</xsd:choice>
- <xsd:element name="Arch" type="xsd:string" minOccurs='1'
- maxOccurs='unbounded'/>
+ <xsd:element name="Arch" type="xsd:string" minOccurs="1"
+ maxOccurs="unbounded"/>
+ <xsd:element name="GPGKey" type="xsd:string" minOccurs="0"
+ maxOccurs="unbounded"/>
</xsd:sequence>
+ <xsd:attribute type="xsd:boolean" name="recommended"/>
+ <xsd:attribute type="sourceTypeEnum" name="type"/>
+ <xsd:attribute type="xsd:string" name="id"/>
+ <xsd:attribute type="xsd:string" name="url"/>
+ <xsd:attribute type="xsd:string" name="rawurl"/>
+ <xsd:attribute type="xsd:string" name="version"/>
</xsd:complexType>
- <xsd:complexType name='SourcesType'>
- <xsd:sequence>
- <xsd:element name='Config' minOccurs='0' maxOccurs='1'>
- <xsd:complexType>
- <xsd:attribute type='xsd:string' name='resolver' />
- <xsd:attribute type='xsd:string' name='metadata' />
- </xsd:complexType>
- </xsd:element>
+ <xsd:complexType name="groupType">
+ <xsd:choice minOccurs="1" maxOccurs="unbounded">
+ <xsd:element name="Group" type="groupType"/>
+ <xsd:element name="Client" type="groupType"/>
+ <xsd:element name="Sources" type="sourcesType"/>
+ <xsd:element name="Source" type="sourceType"/>
+ </xsd:choice>
+ <xsd:attribute type="xsd:string" name="name" use="required"/>
+ <xsd:attribute type="xsd:boolean" name="negate"/>
+ </xsd:complexType>
- <xsd:choice minOccurs='1' maxOccurs='unbounded'>
- <xsd:element name='APTSource' type='SourceType'/>
- <xsd:element name='YUMSource' type='SourceType'/>
- <xsd:element name='Sources' type='SourcesType'/>
+ <xsd:complexType name="sourcesType">
+ <xsd:sequence>
+ <xsd:choice minOccurs="1" maxOccurs="unbounded">
+ <xsd:element name="Group" type="groupType"/>
+ <xsd:element name="Client" type="groupType"/>
+ <xsd:element name="Source" type="sourceType"/>
+ <xsd:element name="Sources" type="sourcesType"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
- <xsd:element name='Sources' type='SourcesType'/>
+ <xsd:element name="Sources" type="sourcesType"/>
</xsd:schema>