diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2006-04-11 16:45:35 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2006-04-11 16:45:35 +0000 |
commit | 74a93ea79f568b61e17c0eddf519c895bcdb249e (patch) | |
tree | 6f118b4802bc75cc5fd0b974d7e4ad33e6e4e5ff | |
parent | 1b18110a1df54b38a6fa5062ad025c19b33e6014 (diff) | |
download | bcfg2-74a93ea79f568b61e17c0eddf519c895bcdb249e.tar.gz bcfg2-74a93ea79f568b61e17c0eddf519c895bcdb249e.tar.bz2 bcfg2-74a93ea79f568b61e17c0eddf519c895bcdb249e.zip |
schema update
pkgmgr bugfix
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1835 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r-- | schemas/atom.xsd | 35 | ||||
-rw-r--r-- | schemas/base.xsd | 12 | ||||
-rw-r--r-- | schemas/bundle.xsd | 29 | ||||
-rw-r--r-- | schemas/pkglist.xsd | 16 | ||||
-rw-r--r-- | schemas/rules.xsd | 69 | ||||
-rw-r--r-- | schemas/services.xsd | 2 | ||||
-rw-r--r-- | src/lib/Server/Plugins/Pkgmgr.py | 2 |
7 files changed, 98 insertions, 67 deletions
diff --git a/schemas/atom.xsd b/schemas/atom.xsd index 55be1c393..db0761acc 100644 --- a/schemas/atom.xsd +++ b/schemas/atom.xsd @@ -7,39 +7,8 @@ </xsd:documentation> </xsd:annotation> - <xsd:complexType name='ConfigFileType'> - <xsd:attribute type='xsd:string' name='name' use='required'/> - </xsd:complexType> - - <xsd:complexType name='DirectoryType'> - <xsd:attribute type='xsd:string' name='name' use='required'/> - <xsd:attribute type='xsd:string' name='perms'/> - <xsd:attribute type='xsd:string' name='owner'/> - <xsd:attribute type='xsd:string' name='group'/> - </xsd:complexType> - - <xsd:complexType name='PackageType'> - <xsd:attribute type='xsd:string' name='name' use='required'/> - <xsd:attribute type='xsd:string' name='reloc' use='optional'/> - </xsd:complexType> - - <xsd:complexType name='ServiceType'> - <xsd:attribute type='xsd:string' name='name' use='required'/> - <xsd:attribute type='xsd:string' name='type'/> - </xsd:complexType> - - <xsd:complexType name='SymLinkType'> - <xsd:attribute type='xsd:string' name='name' use='required'/> - <xsd:attribute type='xsd:string' name='to' use='required'/> - </xsd:complexType> - - <xsd:complexType name='PermissionType'> - <xsd:attribute type='xsd:string' name='name' use='required'/> - <xsd:attribute type='xsd:string' name='perms' use='required'/> - </xsd:complexType> - - <xsd:complexType name='PostInstallType'> - <xsd:attribute type='xsd:string' name='name' use='required'/> + <xsd:complexType name='StructureEntry'> + <xsd:attribute type='xsd:string' name='name' use='reqiured'/> </xsd:complexType> </xsd:schema>
\ No newline at end of file diff --git a/schemas/base.xsd b/schemas/base.xsd index 61e065ecc..5be582850 100644 --- a/schemas/base.xsd +++ b/schemas/base.xsd @@ -12,12 +12,12 @@ <xsd:complexType name='ContainerType'> <xsd:choice minOccurs='0' maxOccurs='unbounded'> - <xsd:element name='Package' type='PackageType'/> - <xsd:element name='Service' type='ServiceType'/> - <xsd:element name='ConfigFile' type='ConfigFileType'/> - <xsd:element name='SymLink' type='SymLinkType'/> - <xsd:element name='Directory' type='DirectoryType'/> - <xsd:element name='Permissions' type='PermissionType'/> + <xsd:element name='Package' type='StructureEntry'/> + <xsd:element name='Service' type='StructureEntry'/> + <xsd:element name='ConfigFile' type='StructureEntry'/> + <xsd:element name='SymLink' type='StructureEntry'/> + <xsd:element name='Directory' type='StructureEntry'/> + <xsd:element name='Permissions' type='StructureEntry'/> <xsd:element name='Group' type='ContainerType'/> </xsd:choice> <xsd:attribute name='name' type='xsd:string'/> diff --git a/schemas/bundle.xsd b/schemas/bundle.xsd index 66fc6d9a7..e048063fa 100644 --- a/schemas/bundle.xsd +++ b/schemas/bundle.xsd @@ -11,13 +11,13 @@ <xsd:complexType name='GroupType'> <xsd:choice minOccurs='0' maxOccurs='unbounded'> - <xsd:element name='Package' type='PackageType'/> - <xsd:element name='Service' type='ServiceType'/> - <xsd:element name='ConfigFile' type='ConfigFileType'/> - <xsd:element name='Directory' type='DirectoryType'/> - <xsd:element name='SymLink' type='SymLinkType'/> - <xsd:element name='Permissions' type='PermissionType'/> - <xsd:element name='PostInstall' type='PostInstallType'/> + <xsd:element name='Package' type='StructureEntry'/> + <xsd:element name='Service' type='StructureEntry'/> + <xsd:element name='ConfigFile' type='StructureEntry'/> + <xsd:element name='Directory' type='StructureEntry'/> + <xsd:element name='SymLink' type='StructureEntry'/> + <xsd:element name='Permissions' type='StructureEntry'/> + <xsd:element name='PostInstall' type='StructureEntry'/> <xsd:element name='Group' type='GroupType'/> </xsd:choice> <xsd:attribute type='xsd:string' name='name' use='required'/> @@ -26,14 +26,13 @@ <xsd:element name='Bundle'> <xsd:complexType> <xsd:choice minOccurs='0' maxOccurs='unbounded'> - <xsd:element type='GroupType' name='Group'/> - <xsd:element name='Package' type='PackageType'/> - <xsd:element name='Service' type='ServiceType'/> - <xsd:element name='ConfigFile' type='ConfigFileType'/> - <xsd:element name='Directory' type='DirectoryType'/> - <xsd:element name='SymLink' type='SymLinkType'/> - <xsd:element name='Permission' type='PermissionType'/> - <xsd:element name='PostInstall' type='PostInstallType'/> + <xsd:element name='Package' type='StructureEntry'/> + <xsd:element name='Service' type='StructureEntry'/> + <xsd:element name='ConfigFile' type='StructureEntry'/> + <xsd:element name='Directory' type='StructureEntry'/> + <xsd:element name='SymLink' type='StructureEntry'/> + <xsd:element name='Permission' type='StructureEntry'/> + <xsd:element name='PostInstall' type='StructureEntry'/> <xsd:element name='Group' type='GroupType'/> </xsd:choice> <xsd:attribute type='xsd:string' name='name'/> diff --git a/schemas/pkglist.xsd b/schemas/pkglist.xsd index 231942a5b..bd73e8095 100644 --- a/schemas/pkglist.xsd +++ b/schemas/pkglist.xsd @@ -8,39 +8,33 @@ </xsd:documentation> </xsd:annotation> + <xsd:include schemaLocation="types.xsd"/> + <xsd:complexType name='PackageType'> <xsd:attribute type='xsd:string' name='name'/> <xsd:attribute type='xsd:string' name='version'/> <xsd:attribute type='xsd:string' name='file'/> <xsd:attribute type='xsd:string' name='verify'/> <xsd:attribute type='xsd:string' name='simplefile'/> + <xsd:attribute type='xsd:string' name='reloc'/> </xsd:complexType> <xsd:complexType name='ContainerType'> <xsd:choice minOccurs='0' maxOccurs='unbounded'> <xsd:element name='Package' type='PackageType'/> <xsd:element name='Group' type='ContainerType'/> - <xsd:element name='Host' type='ContainerType'/> + <xsd:element name='Client' type='ContainerType'/> </xsd:choice> <xsd:attribute name='name' type='xsd:string'/> </xsd:complexType> - <xsd:simpleType name='PackageTypeType'> - <xsd:restriction base='xsd:string'> - <xsd:enumeration value='deb' /> - <xsd:enumeration value='rpm' /> - <xsd:enumeration value='encap' /> - <xsd:enumeration value='sysv' /> - </xsd:restriction> - </xsd:simpleType> - <xsd:element name='PackageList'> <xsd:complexType> <xsd:choice minOccurs='0' maxOccurs='unbounded'> <xsd:element name='Group' type='ContainerType'/> </xsd:choice> <xsd:attribute name='priority' type='xsd:integer' use='required'/> - <xsd:attribute name='type' use='optional' type='PackageTypeType' /> + <xsd:attribute name='type' use='optional' type='PackageTypeEnum' /> <xsd:attribute name='uri' type='xsd:string' use='optional'/> </xsd:complexType> </xsd:element> diff --git a/schemas/rules.xsd b/schemas/rules.xsd new file mode 100644 index 000000000..46c62bd27 --- /dev/null +++ b/schemas/rules.xsd @@ -0,0 +1,69 @@ +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en"> + + <xsd:annotation> + <xsd:documentation> + string enumeration definitions for bcfg2 + Narayan Desai, Argonne National Laboratory + $Id$ + </xsd:documentation> + </xsd:annotation> + + <xsd:include schemaLocation="types.xsd"/> + + <xsd:complexType name='ServiceType'> + <xsd:attribute type='xsd:string' name='name'/> + <xsd:attribute type='StatusEnum' name='status'/> + <xsd:attribute type='xsd:string' name='reload'/> + </xsd:complexType> + + <xsd:complexType name='PackageType'> + <xsd:attribute type='xsd:string' name='name'/> + <xsd:attribute type='xsd:string' name='version'/> + </xsd:complexType> + + <xsd:complexType name='DirectoryType'> + <xsd:attribute type='xsd:string' name='name' use='required'/> + <xsd:attribute type='xsd:string' name='perms'/> + <xsd:attribute type='xsd:string' name='owner'/> + <xsd:attribute type='xsd:string' name='group'/> + </xsd:complexType> + + <xsd:complexType name='SymLinkType'> + <xsd:attribute type='xsd:string' name='name' use='required'/> + <xsd:attribute type='xsd:string' name='to' use='required'/> + </xsd:complexType> + + <xsd:complexType name='PermissionsType'> + <xsd:attribute type='xsd:string' name='name' use='required'/> + <xsd:attribute type='xsd:string' name='perms' use='required'/> + </xsd:complexType> + + <xsd:complexType name='RContainerType'> + <xsd:choice minOccurs='0' maxOccurs='unbounded'> + <xsd:element name='Service' type='ServiceType'/> + <xsd:element name='Directory' type='DirectoryType'/> + <xsd:element name='SymLink' type='SymLinkType'/> + <xsd:element name='Package' type='PackageType'/> + <xsd:element name='Permissions' type='PermissionsType'/> + <xsd:element name='Group' type='ContainerType'/> + <xsd:element name='Client' type='ContainerType'/> + </xsd:choice> + <xsd:attribute name='name' type='xsd:string'/> + </xsd:complexType> + + + <xsd:element name='Rules'> + <xsd:complexType> + <xsd:choice minOccurs='0' maxOccurs='unbounded'> + <xsd:element name='Service' type='ServiceType'/> + <xsd:element name='Directory' type='DirectoryType'/> + <xsd:element name='SymLink' type='SymLinkType'/> + <xsd:element name='Package' type='PackageType'/> + <xsd:element name='Permissions' type='PermissionsType'/> + <xsd:element name='Group' type='RContainerType'/> + <xsd:element name='Client' type='RContainerType'/> + </xsd:choice> + <xsd:attribute name='priority' type='xsd:integer' use='required'/> + </xsd:complexType> + </xsd:element> +</xsd:schema>
\ No newline at end of file diff --git a/schemas/services.xsd b/schemas/services.xsd index 25b59b33c..d0a19fb1e 100644 --- a/schemas/services.xsd +++ b/schemas/services.xsd @@ -28,7 +28,7 @@ <xsd:choice minOccurs='0' maxOccurs='unbounded'> <xsd:element name='Service' type='ServiceType'/> <xsd:element name='Group' type='ContainerType'/> - <xsd:element name='Host' type='ContainerType'/> + <xsd:element name='Client' type='ContainerType'/> </xsd:choice> <xsd:attribute name='name' type='xsd:string'/> </xsd:complexType> diff --git a/src/lib/Server/Plugins/Pkgmgr.py b/src/lib/Server/Plugins/Pkgmgr.py index a322af0d0..a009e2910 100644 --- a/src/lib/Server/Plugins/Pkgmgr.py +++ b/src/lib/Server/Plugins/Pkgmgr.py @@ -31,7 +31,7 @@ class PNode(Bcfg2.Server.Plugin.INode): else: if pkg.attrib.has_key('file'): pkg.set('url', '%s/%s' % (pkg.get('uri'), pkg.get('file'))) - if self.splitters.has_key(pkg.get('type')): + if self.splitters.has_key(pkg.get('type')) and pkg.get('file') != None: mdata = self.splitters[pkg.get('type')].match(pkg.get('file')) if not mdata: logger.error("Failed to match pkg %s" % pkg.get('file')) |