2180d4fac22abfceec927446c01a52f49bd38992
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 EQUALITY caseIgnoreIA5Match
141 SUBSTR caseIgnoreIA5SubstringsMatch
142 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
144 # Name : FAItask
145 # Description: Assign a hook to a special task. You can use it i.e. to alter
146 # partition tables, etc. The FAI manual hold a list of valid
147 # tasks for you.
148 attributetype ( 1.3.6.1.4.1.10098.1.1.5.10 NAME 'FAItask'
149 DESC 'Note for which FAI tasks a hook is made for'
150 EQUALITY caseIgnoreIA5Match
151 SUBSTR caseIgnoreIA5SubstringsMatch
152 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
154 # Name : FAIvariable
155 # Description: Keeps the name of a debconf template variable. The value is
156 # stored inside of FAIvariableContent, the type inside
157 # FAIvariableType.
158 attributetype ( 1.3.6.1.4.1.10098.1.1.5.11 NAME 'FAIvariable'
159 DESC 'Store debconf template variable names'
160 EQUALITY caseIgnoreIA5Match
161 SUBSTR caseIgnoreIA5SubstringsMatch
162 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
164 # Name : FAIvariableContent
165 # Description: Keeps the content of a debconf template variable. See
166 # FAIvariable for more informations.
167 attributetype ( 1.3.6.1.4.1.10098.1.1.5.12 NAME 'FAIvariableContent'
168 DESC 'Store debconf template variable contents'
169 EQUALITY caseIgnoreIA5Match
170 SUBSTR caseIgnoreIA5SubstringsMatch
171 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
173 # Name : FAIvariableType
174 # Description: Keeps the type of a debconf template variable. See
175 # FAIvariable for more informations.
176 attributetype ( 1.3.6.1.4.1.10098.1.1.5.13 NAME 'FAIvariableType'
177 DESC 'Store debconf template variable type'
178 EQUALITY caseIgnoreIA5Match
179 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
181 # Name : FAIinstallMethod
182 # Description: Keeps a per package setting on how packages should be
183 # installed. This is the normal line you'd specify in
184 # our ordinary package lists.
185 attributetype ( 1.3.6.1.4.1.10098.1.1.5.14 NAME 'FAIinstallMethod'
186 DESC 'Store debian package installation flag'
187 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
189 # Name : FAIpackage
190 # Description: Keeps an entry of a package list. Each FAIpackage object
191 # may be a parent for FAIdebconfInfo objects.
192 attributetype ( 1.3.6.1.4.1.10098.1.1.5.15 NAME 'FAIpackage'
193 DESC 'Store debian package name'
194 EQUALITY caseIgnoreIA5Match
195 SUBSTR caseIgnoreIA5SubstringsMatch
196 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
198 # Name : FAItemplateFile
199 # Description: Keeps complete template files that are copied to the
200 # freshly installed system later on. The tasks path is
201 # stored in FAItemplatePath. Use ;binary for this attribute.
202 attributetype ( 1.3.6.1.4.1.10098.1.1.5.16 NAME 'FAItemplateFile'
203 DESC 'Store complete template files'
204 SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
206 # Name : FAItemplatePath
207 # Description: Keeps the path used for template files. See FAItemplateFile
208 # for more informations.
209 attributetype ( 1.3.6.1.4.1.10098.1.1.5.17 NAME 'FAItemplatePath'
210 DESC 'Store template file storage path'
211 EQUALITY caseIgnoreIA5Match
212 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
214 # Name : FAIowner
215 # Description: Keeps the owner used for template files. Put in the unix
216 # way like user.group.
217 attributetype ( 1.3.6.1.4.1.10098.1.1.5.18 NAME 'FAIowner'
218 DESC 'Store template file storage path'
219 EQUALITY caseIgnoreIA5Match
220 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
222 # Name : FAImode
223 # Description: Keeps the file mode used for template files. Put in the unix
224 # way like 775.
225 attributetype ( 1.3.6.1.4.1.10098.1.1.5.19 NAME 'FAImode'
226 DESC 'Store template file storage path'
227 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE)
229 # Name : FAIstatus
230 # Desrciption: Normally the fai daemon should set the status flag to the
231 # current status. Possible states are:
232 # * update-needed
233 # * update-running
234 # * update-failed
235 # * update-ok
236 # * install-running
237 # * install-failed
238 # * install-ok
239 # Additional informations can be taken from the log files if
240 # some machine is set to -failed.
241 attributetype ( 1.3.6.1.4.1.10098.1.1.5.20 NAME 'FAIstatus'
242 DESC 'Store FAI progress status'
243 EQUALITY caseIgnoreIA5Match
244 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
246 # Name : FAIpackagelistDependency
247 # Description: This field stores dependency informations for package lists.
248 # It is used to install i.e. ati specific packages when the
249 # hardware detection detects ATI gfx cards.
250 attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency'
251 DESC 'Store package lists where we depend from'
252 EQUALITY caseIgnoreIA5Match
253 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
255 # Name : FAIpartitionSize
256 # Description: Store a size or a size range for partitions. I.e. 50,
257 # 50-200.
258 attributetype ( 1.3.6.1.4.1.10098.1.1.5.22 NAME 'FAIpartitionSize'
259 DESC 'Store size range for partition size'
260 EQUALITY caseIgnoreIA5Match
261 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
263 # Name : FAIpartitionFlags
264 # Description: Optionally this flag contains the "preserve" keyword, in
265 # order to influence partitioning.
266 attributetype ( 1.3.6.1.4.1.10098.1.1.5.23 NAME 'FAIpartitionFlags'
267 DESC 'Optional flags like "preserve"'
268 EQUALITY caseIgnoreIA5Match
269 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
271 # Name : FAIdebianMirror
272 # Description: Used for bootstrap sources.list settings. It contains
273 # the mirror server url.
274 attributetype ( 1.3.6.1.4.1.10098.1.1.5.24 NAME 'FAIdebianMirror'
275 DESC 'TODO'
276 EQUALITY caseIgnoreIA5Match
277 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
279 # Name : FAIdebianRelease
280 # Description: Used for bootstrap sources.list settings. It contains
281 # the release.
282 attributetype ( 1.3.6.1.4.1.10098.1.1.5.25 NAME 'FAIdebianRelease'
283 DESC 'TODO'
284 EQUALITY caseIgnoreIA5Match
285 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
287 # Name : FAIdebianSection
288 # Description: Used for bootstrap sources.list settings. It contains
289 # the section. Multiple Sections get appended.
290 attributetype ( 1.3.6.1.4.1.10098.1.1.5.26 NAME 'FAIdebianSection'
291 DESC 'TODO'
292 EQUALITY caseIgnoreIA5Match
293 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
295 ##
296 ## Object class definitions (allocated from the GONICUS oid space)
297 ##
299 # Name : FAIclass
300 # Description: FAIclass is the basic container wich includes a
301 # common name and a description.
302 objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
303 SUP top STRUCTURAL
304 DESC 'Generic class parent for FAI objects'
305 MUST ( cn ) MAY ( description ) )
307 # Name : FAIprofile
308 # Description: FAIprofile which bundles a set of FAIclass entries
309 # like FAIpartition and FAIpackageList. It is used
310 # to simplify administration tasks for so called junior
311 # administrators.
312 objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile'
313 SUP FAIclass STRUCTURAL
314 DESC 'FAI profile container for multiple class objects'
315 MUST ( FAIclass ) )
317 # Name : FAIpartition
318 # Description: Each installation profile should contain a partition
319 # table in order to perform well. FAIpartitionTable is
320 # a container for partition entries.
321 objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIpartitionTable'
322 SUP FAIclass STRUCTURAL
323 DESC 'Stores FAI partition tables' )
325 # Name : FAIpartitionDisk
326 # Description: Each installation profile should contain a partition
327 # table in order to perform well. FAIpartitionTable is
328 # a container for partition entries.
329 objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionDisk'
330 SUP FAIclass STRUCTURAL
331 DESC 'Stores FAI partition tables' )
333 # Name : FAIpartitionEntry
334 # Description: This object defines a single partition entry for the
335 # FAI partitioner.
336 objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionEntry'
337 SUP FAIpartitionTable STRUCTURAL
338 DESC 'One partition table entry'
339 MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
340 FAImountPoint $ FAIpartitionSize )
341 MAY ( FAImountOptions $ FAIfsOptions $ FAIpartitionFlags ) )
343 # Name : FAIhook
344 # Description: Container for hooks
345 objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIhook'
346 SUP FAIclass STRUCTURAL
347 DESC 'Stores FAI partition tables' )
349 # Name : FAIhookEntry
350 # Description: Hooks are stored with their FAI task inside the
351 # FAIhook object.
352 objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhookEntry'
353 SUP FAIclass STRUCTURAL
354 DESC 'FAI hook storage'
355 MUST ( FAIscript $ FAItask ) )
357 # Name : FAIscriptEntry
358 # Description: Container for scripts
359 objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIscriptEntry'
360 SUP FAIclass STRUCTURAL
361 DESC 'FAI script storage'
362 MUST ( FAIscript $ FAIpriority ) )
364 # Name : FAIscript
365 # Description: Hooks and scripts are somewhat similar.
366 objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
367 SUP FAIclass STRUCTURAL
368 DESC 'FAI script storage' )
370 # Name : FAIvariable
371 # Description: Store a set of variables in this container.
372 objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIvariable'
373 SUP FAIclass STRUCTURAL
374 DESC 'Stores FAI variables sub entries' )
376 # Name : FAIvariableEntry
377 # Description: Stores a single variable.
378 objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariableEntry'
379 SUP FAIvariable STRUCTURAL
380 DESC 'Stores single variable entries'
381 MUST ( FAIvariableContent ) )
383 # Name : FAIpackagelist
384 # Description: Stores a complete package list and is container
385 # for several FAIdebconfInfo scripts
386 objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIpackageList'
387 SUP FAIclass STRUCTURAL
388 DESC 'Stores complete package lists'
389 MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod ) )
391 # Name : FAItemplate
392 # Description: Container for template objects.
393 objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAItemplate'
394 SUP FAIclass STRUCTURAL
395 DESC 'Container for template objects' )
397 # Name : FAItemplateEntry
398 # Description: Stores FAI templates and the corresponding path.
399 objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplateEntry'
400 SUP FAItemplate STRUCTURAL
401 DESC 'Stores real file templates'
402 MUST ( FAItemplateFile $ FAItemplatePath ) )
404 # Name : FAIdebconfInfo
405 # Description: Stores debconf information like shown in
406 # debconf-getselections.
407 objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAIdebconfInfo'
408 SUP top STRUCTURAL
409 DESC 'Stores debconf informations for single packages'
410 MUST ( FAIpackage $ FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent ) )
412 # Name : FAIobject
413 # Description: Marks objects to have a set of FAI classes.
414 objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIobject'
415 SUP top AUXILIARY
416 DESC 'Marks an object as an FAI object.'
417 MUST ( FAIclass $ macAddress ) MAY ( FAIstatus ) )
419 # Name : FAIrepository
420 # Description: Marks objects to have a set of FAI classes.
421 objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIrepository'
422 SUP top AUXILIARY
423 DESC 'Provides per object repository informations.'
424 MUST ( FAIdebianMirror $ FAIdebianRelease $ FAIdebianSection ) )
426 ### END of FAI schema file