Code

Added indexing for snapshot timestamps and dn's
[gosa.git] / contrib / openldap / fai.schema
index 610c6252a1e1f4fb14e7ab7a52cc328579f414c2..d86f1e677018551b2dd6901c2ecea8a14ad62e84 100644 (file)
@@ -3,7 +3,7 @@
 #            F A I - Fully automatic installation LDAP schema file            #
 #                                                                             #
 #-----------------------------------------------------------------------------#
-# Date: 20050902                                                              #
+# Last modified: Cajus Pollmeier / 20050902                                   #
 #-----------------------------------------------------------------------------#
 #             Copyright 2005, Cajus Pollmeier <cajus@debian.org>              #
 #                             Thomas Lange <lange@debian.org>                 #
@@ -33,9 +33,8 @@
 #
 # Objectclasses        | Attributes
 # -----------------------------------------------------------------------------
-# FAIclass             | cn,description
-# FAIprofile           | (inherit from FAIclass)
-# FAIprofileEntry      | FAIclass, FAIpriority
+# FAIclass             | cn,description,FAIclassType
+# FAIprofile           | FAIclass
 # FAIhook              | (inherit from FAIclass)
 # FAIhookEntry         | FAIscript, FAItask
 # FAIscript            | (inherit from FAIclass)
 # FAIvariableEntry     | FAIvariableContent
 # FAItemplate          | (inherit from FAIclass)
 # FAItemplateEntry     | FAItemplateFile, FAItemplatePath, FAIowner, FAImode
-# FAIpartition         | (inherit from FAIclass)
+# FAIpartitionTable    | (inherit from FAIclass)
 # FAIpartitionDisk     | (inherit from FAIclass)
 # FAIpartitionEntry    | FAIpartitionType, FAIpartitionNr, FAImountOptions,
-#                      | FAIfsOptions, FAIfsType, FAImountPoint
+#                      | FAIfsOptions, FAIfsType, FAImountPoint,FAIpartitionSize,
+#                      | FAIpartitionFlag
 # FAIpackageList       | FAIinstallMethod, FAIpackage
 # FAIdebconfInfo       | FAIvariable, FAIvariableContent, FAIvariableType
 # FAIobject            | FAIclass, FAIstatus, macAddress
+# FAIrepository        | FAIdebianMirror, FAIdebianRelease, FAIdebianSection
+# FAIrepositoryServer  | FAIrepository
 #
 # Rem.: Except of FAIdebconfInfo and FAIobject, all object classes are inherited
 #       from FAIclass, so ALL cn's MUST be unique in your tree.
 
 
-# Example tree in foobar.org, dn's of subtrees have been stripped for reasons
-# of a better readability. The tree may be used to get an idea of how data is
-# organized in the tree, use the contributed ldif file to load more detailed
-# entries in your LDAP server or brain.
-#
-# dc=foobar,dc=org
-# |-ou=somewhere
-# | |-ou=accounts
-# | |-ou=hosts
-# | | |-cn=detritus
-# | | | |-objectClass: FAIobject
-# | | | |-description: Host entry for a rock solid server
-# | | | |-macAddress: 00:11:8C:70:AC:01
-# | | | |-FAIclass: FAIBASE
-# | | | |-FAIclass: SRVPART
-# | | | |-FAIclass: SRVBASE
-# | | | |-FAIClass: SRVWWW
-# | | | `-...
-# | | `-cn=rincewind
-# | |   |-objectClass: FAIobject
-# | |   |-description: Hostentry for a casemodded workstation
-# | |   |-macAddress: 00:08:15:47:11:00
-# | |   `-FAIclass: WSDEFAULT
-# ¦ `-ou=fai-configs
-# .   |-cn=WSDEFAULT
-#     | |-objectClass: FAIprofile
-#     | |-description: Workstation default profile
-#     | |-cn=FAIBASE
-#     | | |-objectClass: FAIprofileEntry
-#     | | |-FAIclass: FAIBASE
-#     | | `-FAIpriority: 0
-#     | |-cn=WSPART
-#     | | |-objectClass: FAIprofileEntry
-#     | | |-FAIclass: WSPART
-#     | ¦ `-FAIpriority: 1
-#     | 
-#     |-cn=SRVPART
-#     | |-objectClass: FAIpartition
-#     | |-description: Common partition table for servers
-#     | |-cn=disk1
-#     | | |-objectClass: FAIpartitionDisk
-#     | | |-FAImountPoint=/
-#     | | | |-objectClass: FAIpartitionEntry
-#     | | | |-FAIpartitionType: primary
-#     | | | |-FAIpartitionNr: 1
-#     | | | `-FAIfsType: ext3
-#     | ¦ `-...
-#     | 
-#     |-cn=SRVBASE 
-#     | |-objectClass: FAIpackageList
-#     | |-description: Server base package list
-#     | |-FAIinstallMethod: recommend
-#     | |-FAIpackage=adduser
-#     | | |-FAIvariable=adduser/homedir-permission
-#     | | | |-FAIvariableContent: false
-#     | | | `-FAIvariableType: boolean
-#     | | `-...
-#     | |-FAIpackage: apache2-common
-#     | `-...
-#     |
-#     |-cn=SRVWWW
-#     | |-objectClass: FAIscript
-#     | |-description: A set of scripts that configure something
-#     | |-cn=apache
-#     | | |-objectClass: FAIscriptEntry
-#     | ¦ `-FAIscript:: [base64 encoded sciript]
-#     | 
-#     |-cn=WSVARSET
-#     | |-objectClass: FAIvariable
-#     | |-description: Variable set for workstations
-#     | |-cn=rootpw
-#     ¦ | |-objectClass: FAIvariableEntry
-#       ¦ `-FAIvariableContent: i00u1aVIB4cIo
-
-
 ##
 ## Attribute definitions (allocated from the GONICUS oid space)
 ##
@@ -211,9 +138,7 @@ attributetype ( 1.3.6.1.4.1.10098.1.1.5.8 NAME 'FAIfsType'
 # Description: Store multiline text, mostly used for scripts and hooks. 
 attributetype ( 1.3.6.1.4.1.10098.1.1.5.9 NAME 'FAIscript'
                DESC 'General storage field for multiline text aka scripts'
-               EQUALITY caseIgnoreIA5Match
-               SUBSTR caseIgnoreIA5SubstringsMatch
-               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
 
 # Name       : FAItask
 # Description: Assign a hook to a special task. You can use it i.e. to alter
@@ -298,7 +223,6 @@ attributetype ( 1.3.6.1.4.1.10098.1.1.5.18 NAME 'FAIowner'
 #              way like 775.
 attributetype ( 1.3.6.1.4.1.10098.1.1.5.19 NAME 'FAImode'
                DESC 'Store template file storage path'
-               EQUALITY caseIgnoreIA5Match
                SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE)
                
 # Name       : FAIstatus
@@ -327,6 +251,64 @@ attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency'
                EQUALITY caseIgnoreIA5Match
                SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
 
+# Name       : FAIpartitionSize
+# Description: Store a size or a size range for partitions. I.e. 50,
+#              50-200.
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.22 NAME 'FAIpartitionSize'
+               DESC 'Store size range for partition size'
+               EQUALITY caseIgnoreIA5Match
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# Name       : FAIpartitionFlags
+# Description: Optionally this flag contains the "preserve" keyword, in
+#              order to influence partitioning.
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.23 NAME 'FAIpartitionFlags'
+               DESC 'Optional flags like "preserve"'
+               EQUALITY caseIgnoreIA5Match
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# Name       : FAIdebianMirror
+# Description: Used for bootstrap sources.list settings. It contains
+#              the mirror server url.
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.24 NAME 'FAIdebianMirror'
+               DESC 'TODO'
+               EQUALITY caseIgnoreIA5Match
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# Name       : FAIdebianRelease
+# Description: Used for bootstrap sources.list settings. It contains
+#              the release.
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.25 NAME 'FAIdebianRelease'
+               DESC 'TODO'
+               EQUALITY caseIgnoreIA5Match
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# Name       : FAIdebianSection
+# Description: Used for bootstrap sources.list settings. It contains
+#              the section. Multiple Sections get appended.
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.26 NAME 'FAIdebianSection'
+               DESC 'TODO'
+               EQUALITY caseIgnoreIA5Match
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+# Name       : FAIrepository
+# Description: Used to store repository settings 
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.27 NAME 'FAIrepository'
+               DESC 'TODO'
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+               
+# Name       : FAIstate
+# Description: Used to store repository state (branched/freezed)
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.28 NAME 'FAIstate'
+               DESC 'TODO'
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+# Name       : FAIrelease
+# Description: Used to store the release
+attributetype ( 1.3.6.1.4.1.10098.1.1.5.29 NAME 'FAIrelease'
+               DESC 'TODO'
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
 ##
 ## Object class definitions (allocated from the GONICUS oid space)
 ##
@@ -337,7 +319,7 @@ attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency'
 objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
        SUP top STRUCTURAL
        DESC 'Generic class parent for FAI objects'
-       MUST ( cn ) MAY  ( description ) )
+       MUST ( cn ) MAY  ( FAIstate $ description ) )
 
 # Name       : FAIprofile
 # Description: FAIprofile which bundles a set of FAIclass entries
@@ -345,117 +327,146 @@ objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
 #              to simplify administration tasks for so called junior
 #              administrators.
 objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile'
-       SUP FAIclass STRUCTURAL
-       DESC 'FAI profile container for multiple class objects' )
-
-# Name       : FAIprofileEntry
-# Description: FAIprofileEntry is one subentry inside a FAIprofile. 
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIprofileEntry'
-       SUP FAIprofile STRUCTURAL
-       DESC 'One class object stored under FAIprofile'
-       MUST ( FAIclass $ FAIpriority ) )
+       SUP top AUXILIARY
+       DESC 'FAI profile container for multiple class objects' 
+       MUST ( cn $ FAIclass ) MAY  ( FAIstate $ description ) )
 
-# Name       : FAIpartition
+# Name       : FAIpartitionTable
 # Description: Each installation profile should contain a partition
 #              table in order to perform well. FAIpartitionTable is
 #              a container for partition entries.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionTable'
-       SUP FAIclass STRUCTURAL
-       DESC 'Stores FAI partition tables' )
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIpartitionTable'
+       SUP top AUXILIARY
+       DESC 'Stores FAI partition tables'
+       MUST ( cn ) MAY  ( FAIstate $ description ) )
 
 # Name       : FAIpartitionDisk
 # Description: Each installation profile should contain a partition
 #              table in order to perform well. FAIpartitionTable is
 #              a container for partition entries.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionDisk'
-       SUP FAIclass STRUCTURAL
-       DESC 'Stores FAI partition tables' )
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionDisk'
+       SUP top AUXILIARY
+       DESC 'Stores FAI partition tables' 
+       MUST ( cn ) MAY  ( FAIstate $ description ) )
 
 # Name       : FAIpartitionEntry
 # Description: This object defines a single partition entry for the
 #              FAI partitioner.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIpartitionEntry'
-       SUP FAIpartitionTable STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionEntry'
+       SUP top AUXILIARY
        DESC 'One partition table entry'
        MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
-              FAImountPoint )
-       MAY  ( FAImountOptions $ FAIfsOptions ) )
+              FAImountPoint $ FAIpartitionSize $ cn )
+       MAY  ( FAImountOptions $ FAIfsOptions $ FAIpartitionFlags $
+              description $ FAIstate ) )
 
 # Name       : FAIhook
 # Description: Container for hooks
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhook'
-       SUP FAIclass STRUCTURAL
-       DESC 'Stores FAI partition tables' )
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIhook'
+       SUP top AUXILIARY
+       DESC 'Stores FAI partition tables'
+       MUST ( cn ) MAY  ( FAIstate $ description ) )
 
 # Name       : FAIhookEntry
 # Description: Hooks are stored with their FAI task inside the
 #              FAIhook object.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIhookEntry'
-       SUP FAIclass STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhookEntry'
+       SUP top AUXILIARY
        DESC 'FAI hook storage'
-       MUST ( FAIscript $ FAItask ) )
+       MUST ( cn $ FAIscript $ FAItask ) MAY ( FAIstate $ description ) )
 
-# Name       : FAIscript
+# Name       : FAIscriptEntry
 # Description: Container for scripts
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
-       SUP FAIclass STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIscriptEntry'
+       SUP top AUXILIARY
        DESC 'FAI script storage'
-       MUST ( FAIscript $ FAIpriority ) )
+       MUST ( cn $ FAIscript $ FAIpriority ) MAY ( FAIstate $ description ) )
 
-# Name       : FAIscriptEntry
+# Name       : FAIscript
 # Description: Hooks and scripts are somewhat similar.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIscriptEntry'
-       SUP FAIclass STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
+       SUP top AUXILIARY
        DESC 'FAI script storage'
-       MUST ( FAIscript $ FAIpriority ) )
+       MUST ( cn ) MAY  ( FAIstate $ description ) )
 
 # Name       : FAIvariable
 # Description: Store a set of variables in this container.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariable'
-       SUP FAIclass STRUCTURAL
-       DESC 'Stores FAI variables sub entries' )
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIvariable'
+       SUP top AUXILIARY
+       DESC 'Stores FAI variables sub entries'
+       MUST ( cn ) MAY  ( FAIstate $ description ) )
 
 # Name       : FAIvariableEntry
 # Description: Stores a single variable.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIvariableEntry'
-       SUP FAIvariable STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariableEntry'
+       SUP top AUXILIARY
        DESC 'Stores single variable entries'
-       MUST ( FAIvariableContent ) )
+       MUST ( cn $ FAIvariableContent ) MAY ( FAIstate $ description ) )
 
 # Name       : FAIpackagelist
 # Description: Stores a complete package list and is container
 #              for several FAIdebconfInfo scripts
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAIpackageList'
-       SUP FAIclass STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIpackageList'
+       SUP top AUXILIARY
        DESC 'Stores complete package lists'
-       MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod ) )
+       MUST ( cn $ FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod $ description $ FAIstate ) )
 
 # Name       : FAItemplate
 # Description: Container for template objects.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplate'
-       SUP FAIclass STRUCTURAL
-       DESC 'Container for template objects' )
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAItemplate'
+       SUP top AUXILIARY
+       DESC 'Container for template objects' 
+       MUST ( cn ) MAY  ( FAIstate $ description ) )
 
 # Name       : FAItemplateEntry
 # Description: Stores FAI templates and the corresponding path.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAItemplateEntry'
-       SUP FAItemplate STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplateEntry'
+       SUP top AUXILIARY
        DESC 'Stores real file templates'
-       MUST ( FAItemplateFile $ FAItemplatePath ) )
+       MUST ( cn $ FAItemplateFile $ FAItemplatePath $ FAIowner $ FAImode ) 
+       MAY ( FAIstate $ description ) )
        
 # Name       : FAIdebconfInfo
 # Description: Stores debconf information like shown in
 #              debconf-getselections.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIdebconfInfo'
-       SUP FAIclass STRUCTURAL
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAIdebconfInfo'
+       SUP top STRUCTURAL
        DESC 'Stores debconf informations for single packages'
-       MUST ( FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent ) )
+       MUST ( FAIpackage $ FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent $ FAIstate ) )
 
 # Name       : FAIobject
 # Description: Marks objects to have a set of FAI classes.
-objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIobject'
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIobject'
        SUP top AUXILIARY
        DESC 'Marks an object as an FAI object.'
-       MUST ( FAIclass $ macAddress ) MAY ( FAIstatus ) )
+       MAY ( FAIstate $ FAIstatus $ FAIclass $ FAIdebianMirror $ macAddress) )
+
+# Name       : FAIrepository
+# Description: Marks objects to have a set of FAI classes.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIrepository'
+       SUP top AUXILIARY
+       DESC 'Provides per object repository informations.'
+       MUST ( FAIdebianRelease $ FAIdebianSection ) MAY ( FAIdebianMirror ) )
+
+# Name       : FAIrepositoryServer
+# Description: FAIrepositoryServer stores information about repository settings.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.18 NAME 'FAIrepositoryServer'
+       SUP top AUXILIARY
+       DESC 'Provides repository informations.'
+       MAY ( FAIrepository ) )
+
+# Name       : FAIbranch
+# Description: FAIbranch stores information about the state of a set of FAI classes.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.19 NAME 'FAIbranch'
+       SUP top AUXILIARY
+       DESC 'Provides information for versioning.'
+       MAY ( FAIstate ) )
+
+# Name       : FAIreleaseTag
+# Description: FAIreleaseTag stores information about the fai release of an object.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.20 NAME 'FAIreleaseTag'
+       SUP top AUXILIARY
+       DESC 'Provides information for versioning.'
+       MAY ( FAIrelease ) )
 
 ### END of FAI schema file