Documentations > Developer Documentations > OSCAR infrastructure
Kernel Picker
KernelPicker is responsible for installing and setting a kernel on the node images.
- Note: this page is an architecture draft of KernelPicker. It has not been yet implemented.
Functionnal outline
=== Current ===
The current KernelPicker consists of one command which does all work at one time (see [attachment:kp_funct_old.svg]).
New
See [attachment:kp_funct.svg]
On the figure, a boot config is an association between:
-
a kernel,
-
some boot parameters,
-
a deployment method,
-
a node set.
Relational outline
See [attachment:oscar_oda.svg]
New tables (needed for KernelPicker) are emphasized.
Components Architecture
Current
Current KernelPicker does not use any OSCAR component nor helper programs. All the work of selecting a kernel, listing the SystemImager images, copying the kernel to the image, etc., is done through basic shell commands, such as ls
, cp
, mv
, etc.
See [attachment:kp_archi_old.svg]
New
The new architecture follows the OCA rules, i.e.:
-
KernelPicker provides a functionnality: it is a framework,
-
functionalities can be handled in different ways through different components.
KernelPicker uses other OSCAR frameworks:
-
if kernel is installed from a package, the PackMan/Depman framework is used to get the list of available kernel and select the package,
-
then the kernel is deployed using the deployment framework. By now, it does not exist as we use only SystemImager. Yet, we will begin to describe an API for this framework.
See [attachment:kp_archi.svg]
Class Diagram
See [attachment:kp_obj.svg]
Following Classes should be into ODA package, as they only deal with database objects:
-
BootConfig
andBootConfigFactory
, -
BootMethod
andBootMethodFactory
, -
BootKernel
andBootKernelFactory
.
The class KernelPicker is the highest level class, which could be accessed by CLI, GUI or any other interface.
-
The method
KernelPicker::getKernelPackageList
take an optionnal list of capacities in argument. These capacities allows to filter the list of package returned by the method. They are constants defined asKernelPicker::KP_CAPS_*
. -
The method
BootMethodFactory::getBootMethod
returns allBootMethod
objects whose boot loader isloader
, amongst constants defined asBM_*
.