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 #
55 # Rem.: Except of FAIdebconfInfo and FAIobject, all object classes are inherited
56 # from FAIclass, so ALL cn's MUST be unique in your tree.
59 ##
60 ## Attribute definitions (allocated from the GONICUS oid space)
61 ##
63 # Name : FAIclass
64 # Description: Notes which FAI class name(s) are used in an FAI object
65 # or in profile definitions. No unicode here, maximum
66 # length is set to 64 characters.
67 attributetype ( 1.3.6.1.4.1.10098.1.1.5.1 NAME 'FAIclass'
68 DESC 'Storage for FAI class names'
69 EQUALITY caseExactMatch
70 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64})
72 # Name : FAIpriority
73 # Description: Notes which priority scripts or profiles entries get. It is used
74 # by FAI to generate a propper class list during the bootstrap
75 # process. This is an unsigned integer value.
76 attributetype ( 1.3.6.1.4.1.10098.1.1.5.2 NAME 'FAIpriority'
77 DESC 'Storage for FAI priorities'
78 EQUALITY integerMatch
79 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
81 # Name : FAIpartitionType
82 # Description: As the name says, we store the type of a (hard-disk) partition
83 # here. Type can be one of "primary" or "secondary". We did not
84 # make this bool because there may be changes to the FAI partitioner
85 # which we can't handle then. The maximum length is set to 16
86 # characters.
87 attributetype ( 1.3.6.1.4.1.10098.1.1.5.3 NAME 'FAIpartitionType'
88 DESC 'Storage for FAI partition types'
89 EQUALITY caseExactMatch
90 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
92 # Name : FAIpartitionNr
93 # Description: We use this value to store the device entries like "disk1" or
94 # "sda8" with this attribute. Currently the storage is without the
95 # leading "/dev/".
96 attributetype ( 1.3.6.1.4.1.10098.1.1.5.4 NAME 'FAIpartitionNr'
97 DESC 'Storage for FAI partition devices'
98 EQUALITY caseExactIA5Match
99 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
101 # Name : FAImountOptions
102 # Description: We use this value to store special mount options for partitions.
103 # For example some people tend to have /usr mounted as read-only.
104 attributetype ( 1.3.6.1.4.1.10098.1.1.5.5 NAME 'FAImountOptions'
105 DESC 'Storage for FAI partition mount options'
106 EQUALITY caseExactIA5Match
107 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
109 # Name : FAImountPoint
110 # Description: Simply the mountpoint like found in the fstab. Examples are
111 # '/usr', '/' and '/home'.
112 attributetype ( 1.3.6.1.4.1.10098.1.1.5.6 NAME 'FAImountPoint'
113 DESC 'Storage for FAI partition mount points'
114 EQUALITY caseExactIA5Match
115 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
117 # Name : FAIfsOptions
118 # Description: In some cases you might want to influence the filesystem
119 # generation commands by adding flags for larger inode tables, etc.
120 # FAIfsOptions keeps the flags that are used by the mkfs workers.
121 attributetype ( 1.3.6.1.4.1.10098.1.1.5.7 NAME 'FAIfsOptions'
122 DESC 'Storage for FAI partition generation options'
123 EQUALITY caseExactIA5Match
124 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
126 # Name : FAIfsType
127 # Description: Keeps the type of the filessytem a partition gets formatted with.
128 # Examples are 'ext3', 'xfs', etc. Please refer to the FAI manual
129 # for valid types.
130 attributetype ( 1.3.6.1.4.1.10098.1.1.5.8 NAME 'FAIfsType'
131 DESC 'Storage for FAI partition types'
132 EQUALITY caseExactMatch
133 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
135 # Name : FAIscript
136 # Description: Store multiline text, mostly used for scripts and hooks.
137 attributetype ( 1.3.6.1.4.1.10098.1.1.5.9 NAME 'FAIscript'
138 DESC 'General storage field for multiline text aka scripts'
139 EQUALITY caseIgnoreIA5Match
140 SUBSTR caseIgnoreIA5SubstringsMatch
141 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 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)
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 'TODO'
267 EQUALITY caseIgnoreIA5Match
268 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
271 ##
272 ## Object class definitions (allocated from the GONICUS oid space)
273 ##
275 # Name : FAIclass
276 # Description: FAIclass is the basic container wich includes a
277 # common name and a description.
278 objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
279 SUP top STRUCTURAL
280 DESC 'Generic class parent for FAI objects'
281 MUST ( cn ) MAY ( description ) )
283 # Name : FAIprofile
284 # Description: FAIprofile which bundles a set of FAIclass entries
285 # like FAIpartition and FAIpackageList. It is used
286 # to simplify administration tasks for so called junior
287 # administrators.
288 objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile'
289 SUP FAIclass STRUCTURAL
290 DESC 'FAI profile container for multiple class objects'
291 MUST ( FAIclass ) )
293 # Name : FAIpartition
294 # Description: Each installation profile should contain a partition
295 # table in order to perform well. FAIpartitionTable is
296 # a container for partition entries.
297 objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIpartitionTable'
298 SUP FAIclass STRUCTURAL
299 DESC 'Stores FAI partition tables' )
301 # Name : FAIpartitionDisk
302 # Description: Each installation profile should contain a partition
303 # table in order to perform well. FAIpartitionTable is
304 # a container for partition entries.
305 objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionDisk'
306 SUP FAIclass STRUCTURAL
307 DESC 'Stores FAI partition tables' )
309 # Name : FAIpartitionEntry
310 # Description: This object defines a single partition entry for the
311 # FAI partitioner.
312 objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionEntry'
313 SUP FAIpartitionTable STRUCTURAL
314 DESC 'One partition table entry'
315 MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
316 FAImountPoint $ FAIpartitionSize )
317 MAY ( FAImountOptions $ FAIfsOptions $ FAIpartitionFlags ) )
319 # Name : FAIhook
320 # Description: Container for hooks
321 objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIhook'
322 SUP FAIclass STRUCTURAL
323 DESC 'Stores FAI partition tables' )
325 # Name : FAIhookEntry
326 # Description: Hooks are stored with their FAI task inside the
327 # FAIhook object.
328 objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhookEntry'
329 SUP FAIclass STRUCTURAL
330 DESC 'FAI hook storage'
331 MUST ( FAIscript $ FAItask ) )
333 # Name : FAIscriptEntry
334 # Description: Container for scripts
335 objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIscriptEntry'
336 SUP FAIclass STRUCTURAL
337 DESC 'FAI script storage'
338 MUST ( FAIscript $ FAIpriority ) )
340 # Name : FAIscript
341 # Description: Hooks and scripts are somewhat similar.
342 objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
343 SUP FAIclass STRUCTURAL
344 DESC 'FAI script storage' )
346 # Name : FAIvariable
347 # Description: Store a set of variables in this container.
348 objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIvariable'
349 SUP FAIclass STRUCTURAL
350 DESC 'Stores FAI variables sub entries' )
352 # Name : FAIvariableEntry
353 # Description: Stores a single variable.
354 objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariableEntry'
355 SUP FAIvariable STRUCTURAL
356 DESC 'Stores single variable entries'
357 MUST ( FAIvariableContent ) )
359 # Name : FAIpackagelist
360 # Description: Stores a complete package list and is container
361 # for several FAIdebconfInfo scripts
362 objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIpackageList'
363 SUP FAIclass STRUCTURAL
364 DESC 'Stores complete package lists'
365 MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod ) )
367 # Name : FAItemplate
368 # Description: Container for template objects.
369 objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAItemplate'
370 SUP FAIclass STRUCTURAL
371 DESC 'Container for template objects' )
373 # Name : FAItemplateEntry
374 # Description: Stores FAI templates and the corresponding path.
375 objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplateEntry'
376 SUP FAItemplate STRUCTURAL
377 DESC 'Stores real file templates'
378 MUST ( FAItemplateFile $ FAItemplatePath ) )
380 # Name : FAIdebconfInfo
381 # Description: Stores debconf information like shown in
382 # debconf-getselections.
383 objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAIdebconfInfo'
384 SUP top STRUCTURAL
385 DESC 'Stores debconf informations for single packages'
386 MUST ( FAIpackage $ FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent ) )
388 # Name : FAIobject
389 # Description: Marks objects to have a set of FAI classes.
390 objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIobject'
391 SUP top AUXILIARY
392 DESC 'Marks an object as an FAI object.'
393 MUST ( FAIclass $ macAddress ) MAY ( FAIstatus ) )
395 ### END of FAI schema file