summaryrefslogtreecommitdiffstats
path: root/config-db/OpenSLX/DBSchema.pm
diff options
context:
space:
mode:
authorOliver Tappe2007-03-15 22:41:10 +0100
committerOliver Tappe2007-03-15 22:41:10 +0100
commit03db5fcadee81bd5ce66665f18b611e106783c27 (patch)
tree1071ff956228157c52fbd5b5087ca8928b37d0f9 /config-db/OpenSLX/DBSchema.pm
parent* removed 'nbd' from supported export types as I have learned from Dirk yeste... (diff)
downloadcore-03db5fcadee81bd5ce66665f18b611e106783c27.tar.gz
core-03db5fcadee81bd5ce66665f18b611e106783c27.tar.xz
core-03db5fcadee81bd5ce66665f18b611e106783c27.zip
* largish overhaul, changed ConfigDB to be object-oriented (could be improved, though!)
* slxos-setup, slxos-export, slxconfig and slxconfig-demuxer can now be run one after the other in order to get a complete setup * still problems when trying to boot that system here, need to investigate... git-svn-id: http://svn.openslx.org/svn/openslx/trunk@774 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/OpenSLX/DBSchema.pm')
-rw-r--r--config-db/OpenSLX/DBSchema.pm77
1 files changed, 38 insertions, 39 deletions
diff --git a/config-db/OpenSLX/DBSchema.pm b/config-db/OpenSLX/DBSchema.pm
index 6d5400ad..0a141137 100644
--- a/config-db/OpenSLX/DBSchema.pm
+++ b/config-db/OpenSLX/DBSchema.pm
@@ -59,50 +59,47 @@ $DbSchema = {
'schema_version:s.5', # schema-version currently implemented by DB
],
'vendor_os' => [
- # a vendor os describes a folder containing an operating system as
+ # a vendor-OS describes a folder containing an operating system as
# provided by the vendor (a.k.a. unchanged and thus updatable)
- 'id:pk', # primary key
- 'name:s.48', # structured name of OS installation
- # (e.g. suse-9.3-minimal, suse-9.3-kde,
- # debian-3.1-ppc)
- 'comment:s.1024', # internal comment (optional, for admins)
- 'path:s.256', # path to os filesystem root
+ 'id:pk', # primary key
+ 'name:s.48', # structured name of OS installation
+ # (e.g. suse-9.3-kde, debian-3.1-ppc,
+ # suse-10.2-cloned-from-kiwi).
+ # This is used as the folder name for the
+ # corresponding stage1, too.
+ 'comment:s.1024', # internal comment (optional, for admins)
+ 'clone_source:s.256', # if vendor-OS was cloned, this contains
+ # the rsync-URI pointing to the original
],
- 'system' => [
- # a system describes one bootable instance of a vendor os
+ 'export' => [
+ # an export describes a vendor-OS "wrapped" in some kind of exporting
+ # format (NFS or NBD-squash). This represents the rootfs that the
+ # clients will see.
'id:pk', # primary key
+ 'name:s.64', # unique name of export, is automatically
+ # constructed like this:
+ # <vendor-os-name>-<export-type>
'vendor_os_id:fk', # foreign key
- 'name:s.48', # name used in filesystem and passed to
- # kernel via cmdline arg (e.g.:
- # suse-9.3-minimal, suse-9.3-minimal-nbd...)
- 'label:s.128', # name visible to user (pxe-label)
'comment:s.1024', # internal comment (optional, for admins)
- 'export_type:s.10', # 'nbd', 'nbd-squash', 'nfs', ...
- 'export_uri:s.256', # path to export (NDB-image or NFS-path), if
+ 'export_type:s.10', # 'nbd-squash', 'nfs', ...
+ 'export_uri:s.256', # path to export (squashfs or NFS-path), if
# empty it will be auto-generated by
# config-demuxer
- 'kernel:s.128', # path to kernel file, relative to OS root
- 'kernel_params:s.512', # kernel-param string for pxe
- 'ramfs_debug_level:i', # debug level for initramfs-generator-script
- 'ramfs_use_glibc:b', # use glibc in ramfs
- 'ramfs_use_busybox:b', # use busybox in ramfs
- 'ramfs_nicmods:s.128', # list of network interface card modules
- 'ramfs_fsmods:s.128', # list of filesystem modules
- 'ramfs_screen:s.10', # screen size for splash
- 'hidden:b', # hidden systems won't be offered for booting
- @sharedAttributes,
],
- 'system_variant' => [
- # a system_variant describes an alternative boot setup for a system
- # which will always be offered if the systems itself is offered by
- # a client
+ 'system' => [
+ # a system describes one bootable instance of an export, it
+ # represents a selectable line in the PXE boot menu of all the
+ # clients associated with this system
'id:pk', # primary key
- 'name_addition:s.48', # string added to system name in order to
- # get a unique system name
- 'system_id:fk', # foreign key
- 'label_addition:s.64', # visible name part (added to pxe-label)
+ 'export_id:fk', # foreign key
+ 'name:s.64', # unique name of system, is automatically
+ # constructed like this:
+ # <vendor-os-name>-<export-type>-<kernel>
+ 'label:s.64', # name visible to user (pxe-label)
+ # if empty, this will be autocreated from
+ # the name
'comment:s.1024', # internal comment (optional, for admins)
- 'kernel:s.128', # name of kernel file
+ 'kernel:s.128', # path to kernel file, relative to /boot
'kernel_params:s.512', # kernel-param string for pxe
'ramfs_debug_level:i', # debug level for initramfs-generator-script
'ramfs_use_glibc:b', # use glibc in ramfs
@@ -110,6 +107,8 @@ $DbSchema = {
'ramfs_nicmods:s.128', # list of network interface card modules
'ramfs_fsmods:s.128', # list of filesystem modules
'ramfs_screen:s.10', # screen size for splash
+ 'hidden:b', # hidden systems won't be offered for booting
+ @sharedAttributes,
],
'client' => [
# a client is a PC booting via network
@@ -211,6 +210,11 @@ $DbSchema = {
},
{
'cmd' => 'add-table',
+ 'table' => 'export',
+ 'cols' => $DbSchema->{'tables'}->{'export'},
+ },
+ {
+ 'cmd' => 'add-table',
'table' => 'system',
'cols' => $DbSchema->{'tables'}->{'system'},
'vals' => [
@@ -223,11 +227,6 @@ $DbSchema = {
},
{
'cmd' => 'add-table',
- 'table' => 'system_variant',
- 'cols' => $DbSchema->{'tables'}->{'system_variant'},
- },
- {
- 'cmd' => 'add-table',
'table' => 'client',
'cols' => $DbSchema->{'tables'}->{'client'},
'vals' => [