[kernel] r10710 - people/waldi/dkt/lib/dkt/bootconfig

Bastian Blank waldi at alioth.debian.org
Wed Mar 5 12:08:17 UTC 2008


Author: waldi
Date: Wed Mar  5 12:08:17 2008
New Revision: 10710

Log:
* lib/dkt/bootconfig/__init__.py: Import gen, gen_linux.
* lib/dkt/bootconfig/interfaces.py: Remove description.
* lib/dkt/bootconfig/base.py, lib/dkt/bootconfig/entry.py,
  lib/dkt/bootconfig/gen.py, lib/dkt/bootconfig/gen_linux.py,
  lib/dkt/bootconfig/linux.py: Add.


Added:
   people/waldi/dkt/lib/dkt/bootconfig/base.py
   people/waldi/dkt/lib/dkt/bootconfig/entry.py
   people/waldi/dkt/lib/dkt/bootconfig/gen.py
   people/waldi/dkt/lib/dkt/bootconfig/gen_linux.py
   people/waldi/dkt/lib/dkt/bootconfig/linux.py
Modified:
   people/waldi/dkt/lib/dkt/bootconfig/__init__.py
   people/waldi/dkt/lib/dkt/bootconfig/interfaces.py

Modified: people/waldi/dkt/lib/dkt/bootconfig/__init__.py
==============================================================================
--- people/waldi/dkt/lib/dkt/bootconfig/__init__.py	(original)
+++ people/waldi/dkt/lib/dkt/bootconfig/__init__.py	Wed Mar  5 12:08:17 2008
@@ -0,0 +1 @@
+import gen, gen_linux

Added: people/waldi/dkt/lib/dkt/bootconfig/base.py
==============================================================================
--- (empty file)
+++ people/waldi/dkt/lib/dkt/bootconfig/base.py	Wed Mar  5 12:08:17 2008
@@ -0,0 +1,42 @@
+from itertools import izip
+
+from interfaces import IBootBaseConfig
+from dkt.imageconfig.interfaces import IImageBaseConfig
+from zope.interface import implements
+
+class BootConfigBase(object):
+    implements(IBootBaseConfig)
+
+    def __init__(self, config):
+        self.config = config
+
+    def __cmp__(self, other):
+        other = IBootBaseConfig(other)
+        version_self = '-'.split(self.version)
+        version_other = '-'.split(other.version)
+
+        ret = cmp(len(version_self), len(version_other))
+        if ret:
+            return ret
+
+        for v_self, v_other in izip(version_self, version_other):
+            part_self = '.'.split(v_self)
+            part_other = '.'.split(v_other)
+
+            ret = cmp(part_self, part_other)
+            if ret:
+                return ret
+
+        features_self = self.features
+        features_other = other.features
+
+        return cmp(features_self, features_other)
+
+    @property
+    def features(self):
+        return IImageBaseConfig(self.config).features
+
+    @property
+    def version(self):
+        return IImageBaseConfig(self.config).version
+

Added: people/waldi/dkt/lib/dkt/bootconfig/entry.py
==============================================================================
--- (empty file)
+++ people/waldi/dkt/lib/dkt/bootconfig/entry.py	Wed Mar  5 12:08:17 2008
@@ -0,0 +1,9 @@
+from interfaces import IBootEntry
+from zope.interface import implements
+
+class BootEntry(object):
+    implements(IBootEntry)
+
+    def __init__(self, file, commandline):
+        self.file, self.commandline = file, commandline
+

Added: people/waldi/dkt/lib/dkt/bootconfig/gen.py
==============================================================================
--- (empty file)
+++ people/waldi/dkt/lib/dkt/bootconfig/gen.py	Wed Mar  5 12:08:17 2008
@@ -0,0 +1,14 @@
+from dkt.hooks import default_registry, register
+from dkt.hooks.interfaces import IBootConfigPartition, IBootConfigSort
+
+class HookPartitionRescue(object):
+    def boot_config_partition(self, bootconfigs, systemconfig):
+        return bootconfigs
+
+class HookSort(object):
+    def boot_config_sort(self, bootconfigs, systemconfig):
+        bootconfigs.sort()
+        return bootconfigs
+
+register('bootconfig-partition-rescue', IBootConfigPartition, HookPartitionRescue(), default_registry.PRIORITY_FIRST)
+register('bootconfig-sort', IBootConfigSort, HookSort(), default_registry.PRIORITY_LAST)

Added: people/waldi/dkt/lib/dkt/bootconfig/gen_linux.py
==============================================================================
--- (empty file)
+++ people/waldi/dkt/lib/dkt/bootconfig/gen_linux.py	Wed Mar  5 12:08:17 2008
@@ -0,0 +1,16 @@
+from linux import BootConfigLinux
+from dkt.hooks import default_registry, register
+from dkt.hooks.interfaces import IBootConfigPrepare
+from dkt.imageconfig.interfaces import IImageBaseConfig
+
+class Hook(object):
+    def boot_config_prepare(self, bootconfigs, systemconfig, imageconfigs):
+        for config in imageconfigs.itervalues():
+            try:
+                image = IImageBaseConfig(config)
+            except:
+                raise
+            if image.type == 'linux' and image.subtype is None:
+                bootconfigs.append(BootConfigLinux(config))
+
+register('bootconfig-prepare-linux', IBootConfigPrepare, Hook(), default_registry.PRIORITY_FIRST)

Modified: people/waldi/dkt/lib/dkt/bootconfig/interfaces.py
==============================================================================
--- people/waldi/dkt/lib/dkt/bootconfig/interfaces.py	(original)
+++ people/waldi/dkt/lib/dkt/bootconfig/interfaces.py	Wed Mar  5 12:08:17 2008
@@ -1,7 +1,6 @@
 from dkt.interface import Attribute, Interface
 
 class IBootBaseConfig(Interface):
-    description = Attribute("")
     features = Attribute("")
     version = Attribute("")
 
@@ -9,6 +8,8 @@
     kernel_entry = Attribute("")
     initrd_file = Attribute("")
 
+    config = Attribute("")
+
 class IBootMultibootConfig(IBootBaseConfig):
     kernel_entry = Attribute("")
     module_entries = Attribute("")

Added: people/waldi/dkt/lib/dkt/bootconfig/linux.py
==============================================================================
--- (empty file)
+++ people/waldi/dkt/lib/dkt/bootconfig/linux.py	Wed Mar  5 12:08:17 2008
@@ -0,0 +1,19 @@
+from base import BootConfigBase
+from entry import BootEntry
+from interfaces import IBootMainConfig
+from dkt.imageconfig.interfaces import IImageBaseConfig, IImageLinuxInitramfsConfig
+#from dkt.hooks.interfaces import 
+from zope.interface import implements
+
+class BootConfigLinux(BootConfigBase):
+    implements(IBootMainConfig)
+
+    def __init__(self, config):
+        super(BootConfigLinux, self).__init__(config)
+
+        self.kernel_entry = BootEntry(IImageBaseConfig(self.config).file, "")
+
+    @property
+    def initrd_file(self):
+        return IImageLinuxInitramfsConfig(self.config).file
+



More information about the Kernel-svn-changes mailing list