Code

6c70e5ed0aad55f73a17bee219083e25bb243a3c
[gosa.git] / contrib / openldap / fai.schema
1 ###############################################################################
2 #                                                                             #
3 #            F A I - Fully automatic installation LDAP schema file            #
4 #                                                                             #
5 #-----------------------------------------------------------------------------#
6 # Last modified: Cajus Pollmeier / 20050902                                   #
7 #-----------------------------------------------------------------------------#
8 #             Copyright 2005, Cajus Pollmeier <cajus@debian.org>              #
9 #                             Thomas Lange <lange@debian.org>                 #
10 #-----------------------------------------------------------------------------#
11 # This program is free software; you can redistribute it and/or modify        #
12 # it under the terms of the GNU General Public License as published by        #
13 # the Free Software Foundation; either version 2 of the License, or           #
14 # (at your option) any later version.                                         #
15 #                                                                             #
16 # This program is distributed in the hope that it will be useful,             #
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of              #
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
19 # GNU General Public License for more details.                                #
20 #                                                                             #
21 # You should have received a copy of the GNU General Public License           #
22 # along with this program; if not, write to the Free Software                 #
23 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   #
24 ###############################################################################
27 # This schema file has dependencies to the nis.schema. Please make sure that
28 # the inclusion order in your slapd.conf is correct.
31 # Here's a short list of object class / attribute relationship. For a more
32 # detailed description take a look at the definitions below.
33 #
34 # Objectclasses        | Attributes
35 # -----------------------------------------------------------------------------
36 # FAIclass             | cn,description,FAIclassType
37 # FAIprofile           | FAIclass
38 # FAIhook              | (inherit from FAIclass)
39 # FAIhookEntry         | FAIscript, FAItask
40 # FAIscript            | (inherit from FAIclass)
41 # FAIscriptEntry       | FAIscript, FAIpriority
42 # FAIvariable          | (inherit from FAIclass)
43 # FAIvariableEntry     | FAIvariableContent
44 # FAItemplate          | (inherit from FAIclass)
45 # FAItemplateEntry     | FAItemplateFile, FAItemplatePath, FAIowner, FAImode
46 # FAIpartitionTable    | (inherit from FAIclass)
47 # FAIpartitionDisk     | (inherit from FAIclass)
48 # FAIpartitionEntry    | FAIpartitionType, FAIpartitionNr, FAImountOptions,
49 #                      | FAIfsOptions, FAIfsType, FAImountPoint,FAIpartitionSize,
50 #                      | FAIpartitionFlag
51 # FAIpackageList       | FAIinstallMethod, FAIpackage
52 # FAIdebconfInfo       | FAIvariable, FAIvariableContent, FAIvariableType
53 # FAIobject            | FAIclass, FAIstatus, macAddress
54 # FAIrepository        | FAIdebianMirror, FAIdebianRelease, FAIdebianSection
55 #
56 # Rem.: Except of FAIdebconfInfo and FAIobject, all object classes are inherited
57 #       from FAIclass, so ALL cn's MUST be unique in your tree.
60 ##
61 ## Attribute definitions (allocated from the GONICUS oid space)
62 ##
64 # Name       : FAIclass
65 # Description: Notes which FAI class name(s) are used in an FAI object
66 #              or in profile definitions. No unicode here, maximum
67 #              length is set to 64 characters.
68 attributetype ( 1.3.6.1.4.1.10098.1.1.5.1 NAME 'FAIclass'
69                 DESC 'Storage for FAI class names'
70                 EQUALITY caseExactMatch
71                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64})
73 # Name       : FAIpriority
74 # Description: Notes which priority scripts or profiles entries get. It is used
75 #              by FAI to generate a propper class list during the bootstrap
76 #              process. This is an unsigned integer value. 
77 attributetype ( 1.3.6.1.4.1.10098.1.1.5.2 NAME 'FAIpriority'
78                 DESC 'Storage for FAI priorities'
79                 EQUALITY integerMatch
80                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
82 # Name       : FAIpartitionType
83 # Description: As the name says, we store the type of a (hard-disk) partition
84 #              here. Type can be one of "primary" or "secondary". We did not
85 #              make this bool because there may be changes to the FAI partitioner
86 #              which we can't handle then. The maximum length is set to 16
87 #              characters.
88 attributetype ( 1.3.6.1.4.1.10098.1.1.5.3 NAME 'FAIpartitionType'
89                 DESC 'Storage for FAI partition types'
90                 EQUALITY caseExactMatch
91                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
93 # Name       : FAIpartitionNr
94 # Description: We use this value to store the device entries like "disk1" or
95 #              "sda8" with this attribute. Currently the storage is without the
96 #              leading "/dev/".
97 attributetype ( 1.3.6.1.4.1.10098.1.1.5.4 NAME 'FAIpartitionNr'
98                 DESC 'Storage for FAI partition devices'
99                 EQUALITY caseExactIA5Match
100                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
102 # Name       : FAImountOptions
103 # Description: We use this value to store special mount options for partitions.
104 #              For example some people tend to have /usr mounted as read-only.
105 attributetype ( 1.3.6.1.4.1.10098.1.1.5.5 NAME 'FAImountOptions'
106                 DESC 'Storage for FAI partition mount options'
107                 EQUALITY caseExactIA5Match
108                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
110 # Name       : FAImountPoint
111 # Description: Simply the mountpoint like found in the fstab. Examples are
112 #              '/usr', '/' and '/home'.
113 attributetype ( 1.3.6.1.4.1.10098.1.1.5.6 NAME 'FAImountPoint'
114                 DESC 'Storage for FAI partition mount points'
115                 EQUALITY caseExactIA5Match
116                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
118 # Name       : FAIfsOptions
119 # Description: In some cases you might want to influence the filesystem
120 #              generation commands by adding flags for larger inode tables, etc.
121 #              FAIfsOptions keeps the flags that are used by the mkfs workers.
122 attributetype ( 1.3.6.1.4.1.10098.1.1.5.7 NAME 'FAIfsOptions'
123                 DESC 'Storage for FAI partition generation options'
124                 EQUALITY caseExactIA5Match
125                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
127 # Name       : FAIfsType
128 # Description: Keeps the type of the filessytem a partition gets formatted with.
129 #              Examples are 'ext3', 'xfs', etc. Please refer to the FAI manual
130 #              for valid types.
131 attributetype ( 1.3.6.1.4.1.10098.1.1.5.8 NAME 'FAIfsType'
132                 DESC 'Storage for FAI partition types'
133                 EQUALITY caseExactMatch
134                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
136 # Name       : FAIscript
137 # Description: Store multiline text, mostly used for scripts and hooks. 
138 attributetype ( 1.3.6.1.4.1.10098.1.1.5.9 NAME 'FAIscript'
139                 DESC 'General storage field for multiline text aka scripts'
140                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
142 # Name       : FAItask
143 # Description: Assign a hook to a special task. You can use it i.e. to alter
144 #              partition tables, etc. The FAI manual hold a list of valid
145 #              tasks for you.
146 attributetype ( 1.3.6.1.4.1.10098.1.1.5.10 NAME 'FAItask'
147                 DESC 'Note for which FAI tasks a hook is made for'
148                 EQUALITY caseIgnoreIA5Match
149                 SUBSTR caseIgnoreIA5SubstringsMatch
150                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
152 # Name       : FAIvariable
153 # Description: Keeps the name of a debconf template variable. The value is
154 #              stored inside of FAIvariableContent, the type inside
155 #              FAIvariableType.
156 attributetype ( 1.3.6.1.4.1.10098.1.1.5.11 NAME 'FAIvariable'
157                 DESC 'Store debconf template variable names'
158                 EQUALITY caseIgnoreIA5Match
159                 SUBSTR caseIgnoreIA5SubstringsMatch
160                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
162 # Name       : FAIvariableContent
163 # Description: Keeps the content of a debconf template variable. See
164 #              FAIvariable for more informations.
165 attributetype ( 1.3.6.1.4.1.10098.1.1.5.12 NAME 'FAIvariableContent'
166                 DESC 'Store debconf template variable contents'
167                 EQUALITY caseIgnoreIA5Match
168                 SUBSTR caseIgnoreIA5SubstringsMatch
169                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
171 # Name       : FAIvariableType
172 # Description: Keeps the type of a debconf template variable. See
173 #              FAIvariable for more informations.
174 attributetype ( 1.3.6.1.4.1.10098.1.1.5.13 NAME 'FAIvariableType'
175                 DESC 'Store debconf template variable type'
176                 EQUALITY caseIgnoreIA5Match
177                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
179 # Name       : FAIinstallMethod
180 # Description: Keeps a per package setting on how packages should be
181 #              installed. This is the normal line you'd specify in
182 #              our ordinary package lists.
183 attributetype ( 1.3.6.1.4.1.10098.1.1.5.14 NAME 'FAIinstallMethod'
184                 DESC 'Store debian package installation flag'
185                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
187 # Name       : FAIpackage
188 # Description: Keeps an entry of a package list. Each FAIpackage object
189 #              may be a parent for FAIdebconfInfo objects.
190 attributetype ( 1.3.6.1.4.1.10098.1.1.5.15 NAME 'FAIpackage'
191                 DESC 'Store debian package name'
192                 EQUALITY caseIgnoreIA5Match
193                 SUBSTR caseIgnoreIA5SubstringsMatch
194                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
196 # Name       : FAItemplateFile
197 # Description: Keeps complete template files that are copied to the
198 #              freshly installed system later on. The tasks path is
199 #              stored in FAItemplatePath. Use ;binary for this attribute.
200 attributetype ( 1.3.6.1.4.1.10098.1.1.5.16 NAME 'FAItemplateFile'
201                 DESC 'Store complete template files'
202                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
204 # Name       : FAItemplatePath
205 # Description: Keeps the path used for template files. See FAItemplateFile
206 #              for more informations.
207 attributetype ( 1.3.6.1.4.1.10098.1.1.5.17 NAME 'FAItemplatePath'
208                 DESC 'Store template file storage path'
209                 EQUALITY caseIgnoreIA5Match
210                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
212 # Name       : FAIowner
213 # Description: Keeps the owner used for template files. Put in the unix
214 #              way like user.group.
215 attributetype ( 1.3.6.1.4.1.10098.1.1.5.18 NAME 'FAIowner'
216                 DESC 'Store template file storage path'
217                 EQUALITY caseIgnoreIA5Match
218                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
220 # Name       : FAImode
221 # Description: Keeps the file mode used for template files. Put in the unix
222 #              way like 775.
223 attributetype ( 1.3.6.1.4.1.10098.1.1.5.19 NAME 'FAImode'
224                 DESC 'Store template file storage path'
225                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE)
226                 
227 # Name       : FAIstatus
228 # Desrciption: Normally the fai daemon should set the status flag to the
229 #             current status. Possible states are:
230 #             * update-needed
231 #             * update-running
232 #             * update-failed
233 #             * update-ok
234 #             * install-running
235 #             * install-failed
236 #             * install-ok
237 #             Additional informations can be taken from the log files if
238 #             some machine is set to -failed.
239 attributetype ( 1.3.6.1.4.1.10098.1.1.5.20 NAME 'FAIstatus'
240                 DESC 'Store FAI progress status'
241                 EQUALITY caseIgnoreIA5Match
242                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
244 # Name       : FAIpackagelistDependency
245 # Description: This field stores dependency informations for package lists.
246 #              It is used to install i.e. ati specific packages when the
247 #              hardware detection detects ATI gfx cards.
248 attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency'
249                 DESC 'Store package lists where we depend from'
250                 EQUALITY caseIgnoreIA5Match
251                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
253 # Name       : FAIpartitionSize
254 # Description: Store a size or a size range for partitions. I.e. 50,
255 #              50-200.
256 attributetype ( 1.3.6.1.4.1.10098.1.1.5.22 NAME 'FAIpartitionSize'
257                 DESC 'Store size range for partition size'
258                 EQUALITY caseIgnoreIA5Match
259                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
261 # Name       : FAIpartitionFlags
262 # Description: Optionally this flag contains the "preserve" keyword, in
263 #              order to influence partitioning.
264 attributetype ( 1.3.6.1.4.1.10098.1.1.5.23 NAME 'FAIpartitionFlags'
265                 DESC 'Optional flags like "preserve"'
266                 EQUALITY caseIgnoreIA5Match
267                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
269 # Name       : FAIdebianMirror
270 # Description: Used for bootstrap sources.list settings. It contains
271 #              the mirror server url.
272 attributetype ( 1.3.6.1.4.1.10098.1.1.5.24 NAME 'FAIdebianMirror'
273                 DESC 'TODO'
274                 EQUALITY caseIgnoreIA5Match
275                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
277 # Name       : FAIdebianRelease
278 # Description: Used for bootstrap sources.list settings. It contains
279 #              the release.
280 attributetype ( 1.3.6.1.4.1.10098.1.1.5.25 NAME 'FAIdebianRelease'
281                 DESC 'TODO'
282                 EQUALITY caseIgnoreIA5Match
283                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
285 # Name       : FAIdebianSection
286 # Description: Used for bootstrap sources.list settings. It contains
287 #              the section. Multiple Sections get appended.
288 attributetype ( 1.3.6.1.4.1.10098.1.1.5.26 NAME 'FAIdebianSection'
289                 DESC 'TODO'
290                 EQUALITY caseIgnoreIA5Match
291                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
293 ##
294 ## Object class definitions (allocated from the GONICUS oid space)
295 ##
297 # Name       : FAIclass
298 # Description: FAIclass is the basic container wich includes a
299 #              common name and a description.
300 objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
301         SUP top STRUCTURAL
302         DESC 'Generic class parent for FAI objects'
303         MUST ( cn ) MAY  ( description ) )
305 # Name       : FAIprofile
306 # Description: FAIprofile which bundles a set of FAIclass entries
307 #              like FAIpartition and FAIpackageList. It is used
308 #              to simplify administration tasks for so called junior
309 #              administrators.
310 objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile'
311         SUP FAIclass STRUCTURAL
312         DESC 'FAI profile container for multiple class objects' 
313         MUST ( FAIclass ) )
315 # Name       : FAIpartition
316 # Description: Each installation profile should contain a partition
317 #              table in order to perform well. FAIpartitionTable is
318 #              a container for partition entries.
319 objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIpartitionTable'
320         SUP FAIclass STRUCTURAL
321         DESC 'Stores FAI partition tables' )
323 # Name       : FAIpartitionDisk
324 # Description: Each installation profile should contain a partition
325 #              table in order to perform well. FAIpartitionTable is
326 #              a container for partition entries.
327 objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionDisk'
328         SUP FAIclass STRUCTURAL
329         DESC 'Stores FAI partition tables' )
331 # Name       : FAIpartitionEntry
332 # Description: This object defines a single partition entry for the
333 #              FAI partitioner.
334 objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionEntry'
335         SUP FAIpartitionTable STRUCTURAL
336         DESC 'One partition table entry'
337         MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
338                FAImountPoint $ FAIpartitionSize )
339         MAY  ( FAImountOptions $ FAIfsOptions $ FAIpartitionFlags ) )
341 # Name       : FAIhook
342 # Description: Container for hooks
343 objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIhook'
344         SUP FAIclass STRUCTURAL
345         DESC 'Stores FAI partition tables' )
347 # Name       : FAIhookEntry
348 # Description: Hooks are stored with their FAI task inside the
349 #              FAIhook object.
350 objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhookEntry'
351         SUP FAIclass STRUCTURAL
352         DESC 'FAI hook storage'
353         MUST ( FAIscript $ FAItask ) )
355 # Name       : FAIscriptEntry
356 # Description: Container for scripts
357 objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIscriptEntry'
358         SUP FAIclass STRUCTURAL
359         DESC 'FAI script storage'
360         MUST ( FAIscript $ FAIpriority ) )
362 # Name       : FAIscript
363 # Description: Hooks and scripts are somewhat similar.
364 objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
365         SUP FAIclass STRUCTURAL
366         DESC 'FAI script storage' )
368 # Name       : FAIvariable
369 # Description: Store a set of variables in this container.
370 objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIvariable'
371         SUP FAIclass STRUCTURAL
372         DESC 'Stores FAI variables sub entries' )
374 # Name       : FAIvariableEntry
375 # Description: Stores a single variable.
376 objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariableEntry'
377         SUP FAIvariable STRUCTURAL
378         DESC 'Stores single variable entries'
379         MUST ( FAIvariableContent ) )
381 # Name       : FAIpackagelist
382 # Description: Stores a complete package list and is container
383 #              for several FAIdebconfInfo scripts
384 objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIpackageList'
385         SUP FAIclass STRUCTURAL
386         DESC 'Stores complete package lists'
387         MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod ) )
389 # Name       : FAItemplate
390 # Description: Container for template objects.
391 objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAItemplate'
392         SUP FAIclass STRUCTURAL
393         DESC 'Container for template objects' )
395 # Name       : FAItemplateEntry
396 # Description: Stores FAI templates and the corresponding path.
397 objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplateEntry'
398         SUP FAItemplate STRUCTURAL
399         DESC 'Stores real file templates'
400         MUST ( FAItemplateFile $ FAItemplatePath $ FAIowner $ FAImode ) )
401         
402 # Name       : FAIdebconfInfo
403 # Description: Stores debconf information like shown in
404 #              debconf-getselections.
405 objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAIdebconfInfo'
406         SUP top STRUCTURAL
407         DESC 'Stores debconf informations for single packages'
408         MUST ( FAIpackage $ FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent ) )
410 # Name       : FAIobject
411 # Description: Marks objects to have a set of FAI classes.
412 objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIobject'
413         SUP top AUXILIARY
414         DESC 'Marks an object as an FAI object.'
415         MAY ( FAIstatus $ FAIclass $ FAIdebianMirror $ macAddress) )
417 # Name       : FAIrepository
418 # Description: Marks objects to have a set of FAI classes.
419 objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIrepository'
420         SUP top AUXILIARY
421         DESC 'Provides per object repository informations.'
422         MUST ( FAIdebianMirror $ FAIdebianRelease $ FAIdebianSection ) )
424 ### END of FAI schema file