Code

5e4d716a10f5b6f93c684dbef0f18ac25028cc35
[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 # FAIrepositoryServer  | FAIrepository
56 #
57 # Rem.: Except of FAIdebconfInfo and FAIobject, all object classes are inherited
58 #       from FAIclass, so ALL cn's MUST be unique in your tree.
61 ##
62 ## Attribute definitions (allocated from the GONICUS oid space)
63 ##
65 # Name       : FAIclass
66 # Description: Notes which FAI class name(s) are used in an FAI object
67 #              or in profile definitions. No unicode here, maximum
68 #              length is set to 64 characters.
69 attributetype ( 1.3.6.1.4.1.10098.1.1.5.1 NAME 'FAIclass'
70                 DESC 'Storage for FAI class names'
71                 EQUALITY caseExactMatch
72                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64})
74 # Name       : FAIpriority
75 # Description: Notes which priority scripts or profiles entries get. It is used
76 #              by FAI to generate a propper class list during the bootstrap
77 #              process. This is an unsigned integer value. 
78 attributetype ( 1.3.6.1.4.1.10098.1.1.5.2 NAME 'FAIpriority'
79                 DESC 'Storage for FAI priorities'
80                 EQUALITY integerMatch
81                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
83 # Name       : FAIpartitionType
84 # Description: As the name says, we store the type of a (hard-disk) partition
85 #              here. Type can be one of "primary" or "secondary". We did not
86 #              make this bool because there may be changes to the FAI partitioner
87 #              which we can't handle then. The maximum length is set to 16
88 #              characters.
89 attributetype ( 1.3.6.1.4.1.10098.1.1.5.3 NAME 'FAIpartitionType'
90                 DESC 'Storage for FAI partition types'
91                 EQUALITY caseExactMatch
92                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
94 # Name       : FAIpartitionNr
95 # Description: We use this value to store the device entries like "disk1" or
96 #              "sda8" with this attribute. Currently the storage is without the
97 #              leading "/dev/".
98 attributetype ( 1.3.6.1.4.1.10098.1.1.5.4 NAME 'FAIpartitionNr'
99                 DESC 'Storage for FAI partition devices'
100                 EQUALITY caseExactIA5Match
101                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
103 # Name       : FAImountOptions
104 # Description: We use this value to store special mount options for partitions.
105 #              For example some people tend to have /usr mounted as read-only.
106 attributetype ( 1.3.6.1.4.1.10098.1.1.5.5 NAME 'FAImountOptions'
107                 DESC 'Storage for FAI partition mount options'
108                 EQUALITY caseExactIA5Match
109                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
111 # Name       : FAImountPoint
112 # Description: Simply the mountpoint like found in the fstab. Examples are
113 #              '/usr', '/' and '/home'.
114 attributetype ( 1.3.6.1.4.1.10098.1.1.5.6 NAME 'FAImountPoint'
115                 DESC 'Storage for FAI partition mount points'
116                 EQUALITY caseExactIA5Match
117                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
119 # Name       : FAIfsOptions
120 # Description: In some cases you might want to influence the filesystem
121 #              generation commands by adding flags for larger inode tables, etc.
122 #              FAIfsOptions keeps the flags that are used by the mkfs workers.
123 attributetype ( 1.3.6.1.4.1.10098.1.1.5.7 NAME 'FAIfsOptions'
124                 DESC 'Storage for FAI partition generation options'
125                 EQUALITY caseExactIA5Match
126                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
128 # Name       : FAIfsType
129 # Description: Keeps the type of the filessytem a partition gets formatted with.
130 #              Examples are 'ext3', 'xfs', etc. Please refer to the FAI manual
131 #              for valid types.
132 attributetype ( 1.3.6.1.4.1.10098.1.1.5.8 NAME 'FAIfsType'
133                 DESC 'Storage for FAI partition types'
134                 EQUALITY caseExactMatch
135                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
137 # Name       : FAIscript
138 # Description: Store multiline text, mostly used for scripts and hooks. 
139 attributetype ( 1.3.6.1.4.1.10098.1.1.5.9 NAME 'FAIscript'
140                 DESC 'General storage field for multiline text aka scripts'
141                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
143 # Name       : FAItask
144 # Description: Assign a hook to a special task. You can use it i.e. to alter
145 #              partition tables, etc. The FAI manual hold a list of valid
146 #              tasks for you.
147 attributetype ( 1.3.6.1.4.1.10098.1.1.5.10 NAME 'FAItask'
148                 DESC 'Note for which FAI tasks a hook is made for'
149                 EQUALITY caseIgnoreIA5Match
150                 SUBSTR caseIgnoreIA5SubstringsMatch
151                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
153 # Name       : FAIvariable
154 # Description: Keeps the name of a debconf template variable. The value is
155 #              stored inside of FAIvariableContent, the type inside
156 #              FAIvariableType.
157 attributetype ( 1.3.6.1.4.1.10098.1.1.5.11 NAME 'FAIvariable'
158                 DESC 'Store debconf template variable names'
159                 EQUALITY caseIgnoreIA5Match
160                 SUBSTR caseIgnoreIA5SubstringsMatch
161                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
163 # Name       : FAIvariableContent
164 # Description: Keeps the content of a debconf template variable. See
165 #              FAIvariable for more informations.
166 attributetype ( 1.3.6.1.4.1.10098.1.1.5.12 NAME 'FAIvariableContent'
167                 DESC 'Store debconf template variable contents'
168                 EQUALITY caseIgnoreIA5Match
169                 SUBSTR caseIgnoreIA5SubstringsMatch
170                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
172 # Name       : FAIvariableType
173 # Description: Keeps the type of a debconf template variable. See
174 #              FAIvariable for more informations.
175 attributetype ( 1.3.6.1.4.1.10098.1.1.5.13 NAME 'FAIvariableType'
176                 DESC 'Store debconf template variable type'
177                 EQUALITY caseIgnoreIA5Match
178                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
180 # Name       : FAIinstallMethod
181 # Description: Keeps a per package setting on how packages should be
182 #              installed. This is the normal line you'd specify in
183 #              our ordinary package lists.
184 attributetype ( 1.3.6.1.4.1.10098.1.1.5.14 NAME 'FAIinstallMethod'
185                 DESC 'Store debian package installation flag'
186                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
188 # Name       : FAIpackage
189 # Description: Keeps an entry of a package list. Each FAIpackage object
190 #              may be a parent for FAIdebconfInfo objects.
191 attributetype ( 1.3.6.1.4.1.10098.1.1.5.15 NAME 'FAIpackage'
192                 DESC 'Store debian package name'
193                 EQUALITY caseIgnoreIA5Match
194                 SUBSTR caseIgnoreIA5SubstringsMatch
195                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
197 # Name       : FAItemplateFile
198 # Description: Keeps complete template files that are copied to the
199 #              freshly installed system later on. The tasks path is
200 #              stored in FAItemplatePath. Use ;binary for this attribute.
201 attributetype ( 1.3.6.1.4.1.10098.1.1.5.16 NAME 'FAItemplateFile'
202                 DESC 'Store complete template files'
203                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
205 # Name       : FAItemplatePath
206 # Description: Keeps the path used for template files. See FAItemplateFile
207 #              for more informations.
208 attributetype ( 1.3.6.1.4.1.10098.1.1.5.17 NAME 'FAItemplatePath'
209                 DESC 'Store template file storage path'
210                 EQUALITY caseIgnoreIA5Match
211                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
213 # Name       : FAIowner
214 # Description: Keeps the owner used for template files. Put in the unix
215 #              way like user.group.
216 attributetype ( 1.3.6.1.4.1.10098.1.1.5.18 NAME 'FAIowner'
217                 DESC 'Store template file storage path'
218                 EQUALITY caseIgnoreIA5Match
219                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
221 # Name       : FAImode
222 # Description: Keeps the file mode used for template files. Put in the unix
223 #              way like 775.
224 attributetype ( 1.3.6.1.4.1.10098.1.1.5.19 NAME 'FAImode'
225                 DESC 'Store template file storage path'
226                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE)
227                 
228 # Name       : FAIstatus
229 # Desrciption: Normally the fai daemon should set the status flag to the
230 #             current status. Possible states are:
231 #             * update-needed
232 #             * update-running
233 #             * update-failed
234 #             * update-ok
235 #             * install-running
236 #             * install-failed
237 #             * install-ok
238 #             Additional informations can be taken from the log files if
239 #             some machine is set to -failed.
240 attributetype ( 1.3.6.1.4.1.10098.1.1.5.20 NAME 'FAIstatus'
241                 DESC 'Store FAI progress status'
242                 EQUALITY caseIgnoreIA5Match
243                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
245 # Name       : FAIpackagelistDependency
246 # Description: This field stores dependency informations for package lists.
247 #              It is used to install i.e. ati specific packages when the
248 #              hardware detection detects ATI gfx cards.
249 attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency'
250                 DESC 'Store package lists where we depend from'
251                 EQUALITY caseIgnoreIA5Match
252                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
254 # Name       : FAIpartitionSize
255 # Description: Store a size or a size range for partitions. I.e. 50,
256 #              50-200.
257 attributetype ( 1.3.6.1.4.1.10098.1.1.5.22 NAME 'FAIpartitionSize'
258                 DESC 'Store size range for partition size'
259                 EQUALITY caseIgnoreIA5Match
260                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
262 # Name       : FAIpartitionFlags
263 # Description: Optionally this flag contains the "preserve" keyword, in
264 #              order to influence partitioning.
265 attributetype ( 1.3.6.1.4.1.10098.1.1.5.23 NAME 'FAIpartitionFlags'
266                 DESC 'Optional flags like "preserve"'
267                 EQUALITY caseIgnoreIA5Match
268                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
270 # Name       : FAIdebianMirror
271 # Description: Used for bootstrap sources.list settings. It contains
272 #              the mirror server url.
273 attributetype ( 1.3.6.1.4.1.10098.1.1.5.24 NAME 'FAIdebianMirror'
274                 DESC 'TODO'
275                 EQUALITY caseIgnoreIA5Match
276                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
278 # Name       : FAIdebianRelease
279 # Description: Used for bootstrap sources.list settings. It contains
280 #              the release.
281 attributetype ( 1.3.6.1.4.1.10098.1.1.5.25 NAME 'FAIdebianRelease'
282                 DESC 'TODO'
283                 EQUALITY caseIgnoreIA5Match
284                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
286 # Name       : FAIdebianSection
287 # Description: Used for bootstrap sources.list settings. It contains
288 #              the section. Multiple Sections get appended.
289 attributetype ( 1.3.6.1.4.1.10098.1.1.5.26 NAME 'FAIdebianSection'
290                 DESC 'TODO'
291                 EQUALITY caseIgnoreIA5Match
292                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
294 # Name       : FAIrepository
295 # Description: Used to store repository settings 
296 attributetype ( 1.3.6.1.4.1.10098.1.1.5.27 NAME 'FAIrepository'
297                 DESC 'TODO'
298                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
299                 
300 # Name       : FAIstate
301 # Description: Used to store repository state (branched/freezed)
302 attributetype ( 1.3.6.1.4.1.10098.1.1.5.28 NAME 'FAIstate'
303                 DESC 'TODO'
304                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
305 ##
306 ## Object class definitions (allocated from the GONICUS oid space)
307 ##
309 # Name       : FAIclass
310 # Description: FAIclass is the basic container wich includes a
311 #              common name and a description.
312 objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
313         SUP top STRUCTURAL
314         DESC 'Generic class parent for FAI objects'
315         MUST ( cn ) MAY  ( FAIstate $ description ) )
317 # Name       : FAIprofile
318 # Description: FAIprofile which bundles a set of FAIclass entries
319 #              like FAIpartition and FAIpackageList. It is used
320 #              to simplify administration tasks for so called junior
321 #              administrators.
322 objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile'
323         SUP top STRUCTURAL
324         DESC 'FAI profile container for multiple class objects' 
325         MUST ( cn $ FAIclass ) MAY  ( FAIstate $ description ) )
327 # Name       : FAIpartitionTable
328 # Description: Each installation profile should contain a partition
329 #              table in order to perform well. FAIpartitionTable is
330 #              a container for partition entries.
331 objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIpartitionTable'
332         SUP top STRUCTURAL
333         DESC 'Stores FAI partition tables'
334         MUST ( cn ) MAY  ( FAIstate $ description ) )
336 # Name       : FAIpartitionDisk
337 # Description: Each installation profile should contain a partition
338 #              table in order to perform well. FAIpartitionTable is
339 #              a container for partition entries.
340 objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionDisk'
341         SUP top STRUCTURAL
342         DESC 'Stores FAI partition tables' 
343         MUST ( cn ) MAY  ( FAIstate $ description ) )
345 # Name       : FAIpartitionEntry
346 # Description: This object defines a single partition entry for the
347 #              FAI partitioner.
348 objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionEntry'
349         SUP top STRUCTURAL
350         DESC 'One partition table entry'
351         MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
352                FAImountPoint $ FAIpartitionSize $ cn )
353         MAY  ( FAImountOptions $ FAIfsOptions $ FAIpartitionFlags $
354                description $ FAIstate ) )
356 # Name       : FAIhook
357 # Description: Container for hooks
358 objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIhook'
359         SUP top STRUCTURAL
360         DESC 'Stores FAI partition tables'
361         MUST ( cn ) MAY  ( FAIstate $ description ) )
363 # Name       : FAIhookEntry
364 # Description: Hooks are stored with their FAI task inside the
365 #              FAIhook object.
366 objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhookEntry'
367         SUP top STRUCTURAL
368         DESC 'FAI hook storage'
369         MUST ( cn $ FAIscript $ FAItask ) MAY ( FAIstate $ description ) )
371 # Name       : FAIscriptEntry
372 # Description: Container for scripts
373 objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIscriptEntry'
374         SUP top STRUCTURAL
375         DESC 'FAI script storage'
376         MUST ( cn $ FAIscript $ FAIpriority ) MAY ( FAIstate $ description ) )
378 # Name       : FAIscript
379 # Description: Hooks and scripts are somewhat similar.
380 objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
381         SUP top STRUCTURAL
382         DESC 'FAI script storage'
383         MUST ( cn ) MAY  ( FAIstate $ description ) )
385 # Name       : FAIvariable
386 # Description: Store a set of variables in this container.
387 objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIvariable'
388         SUP top STRUCTURAL
389         DESC 'Stores FAI variables sub entries'
390         MUST ( cn ) MAY  ( FAIstate $ description ) )
392 # Name       : FAIvariableEntry
393 # Description: Stores a single variable.
394 objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariableEntry'
395         SUP top STRUCTURAL
396         DESC 'Stores single variable entries'
397         MUST ( cn $ FAIvariableContent ) MAY ( FAIstate $ description ) )
399 # Name       : FAIpackagelist
400 # Description: Stores a complete package list and is container
401 #              for several FAIdebconfInfo scripts
402 objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIpackageList'
403         SUP top STRUCTURAL
404         DESC 'Stores complete package lists'
405         MUST ( cn $ FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod $ description $ FAIstate ) )
407 # Name       : FAItemplate
408 # Description: Container for template objects.
409 objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAItemplate'
410         SUP top STRUCTURAL
411         DESC 'Container for template objects' 
412         MUST ( cn ) MAY  ( FAIstate $ description ) )
414 # Name       : FAItemplateEntry
415 # Description: Stores FAI templates and the corresponding path.
416 objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplateEntry'
417         SUP top STRUCTURAL
418         DESC 'Stores real file templates'
419         MUST ( cn $ FAItemplateFile $ FAItemplatePath $ FAIowner $ FAImode ) 
420         MAY ( FAIstate $ description ) )
421         
422 # Name       : FAIdebconfInfo
423 # Description: Stores debconf information like shown in
424 #              debconf-getselections.
425 objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAIdebconfInfo'
426         SUP top STRUCTURAL
427         DESC 'Stores debconf informations for single packages'
428         MUST ( FAIpackage $ FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent $ FAIstate ) )
430 # Name       : FAIobject
431 # Description: Marks objects to have a set of FAI classes.
432 objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIobject'
433         SUP top AUXILIARY
434         DESC 'Marks an object as an FAI object.'
435         MAY ( FAIstate $ FAIstatus $ FAIclass $ FAIdebianMirror $ macAddress) )
437 # Name       : FAIrepository
438 # Description: Marks objects to have a set of FAI classes.
439 objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIrepository'
440         SUP top AUXILIARY
441         DESC 'Provides per object repository informations.'
442         MUST ( FAIdebianRelease $ FAIdebianSection ) MAY ( FAIdebianMirror ) )
444 # Name       : FAIrepositoryServer
445 # Description: FAIrepositoryServer stores information about repository settings.
446 objectclass (1.3.6.1.4.1.10098.1.2.1.40.18 NAME 'FAIrepositoryServer'
447         SUP top AUXILIARY
448         DESC 'Provides repository informations.'
449         MAY ( FAIrepository ) )
451 # Name       : FAIbranch
452 # Description: FAIbranch stores information about the state of a set of FAI classes.
453 objectclass (1.3.6.1.4.1.10098.1.2.1.40.19 NAME 'FAIbranch'
454         SUP top AUXILIARY
455         DESC 'Provides information for versioning.'
456         MAY ( FAIstate ) )
458 ### END of FAI schema file