Index: discussion.tex =================================================================== --- discussion.tex (revision 2383) +++ discussion.tex (working copy) @@ -1,6 +1,5 @@ \chapter{Discussion} \label{ch:discussion} - \fixme{Discussion is to be written} \fixme{Husk at introducere navngivning MetaConfig/MetaResource} @@ -69,8 +68,13 @@ as simple as possible, so that only the server is tasked with making decisions about virtual machines. -\fixme{I ovenstående mangler både omtale af vm allocator samt -bootstrap-understøttelse.} +We have designed and implemented an allocation algorithm that places +unallocated virtual machines on physical machines, in a way that fits +the available resources on the physical machines. To support new +machines, and machines with corrupted software, we have created a +bootstrap system for automated installation of machines. The bootstrap +system is able to install both physical and virtual machines, and use +MetaConfig to configure the machines after installation. We believe that we have succeeded in creating a system that fulfills both primary and secondary goals. In the following, we will discuss the details of @@ -139,11 +143,7 @@ with Puppet and Cfengine on equal terms. Beyond this thesis, there is no documentation for the system such as -reference manuals or tutorials. -It is not as well-tested, either. -\fixme{Jeg ville nok stryge ``It is not as well-tested, either.'' Det er -underforstået, når det er et nyudviklet system. Og vores system er ikke -specielt dårligt testet. Tværtimod.} +reference manuals or tutorials. Error messages and warnings are not as user-friendly as they could be, and many error conditions are handled by exiting the program with a fatal error. This kind of error handling is fine for a prototype @@ -161,17 +161,18 @@ we have seen in chapter \ref{ch:cmsingle}, conserving the configuration program on the configured host is very important to ensure the correctness of the specification. MetaConfig is interpreted -by the Python environment present on the host. -This means that a -Python upgrade executed by MetaConfig can cause MetaConfig to fail. To -guard against this type of situation, Cfengine is available in a +by the Python environment present on the host. +This means that if MetaConfig upgrades the Python package available +on the host system, and the upgraded package contains an error, this can +affect the operation of MetaConfig making it unable to repair itself. +To guard against this type of situation, Cfengine is available in a statically-linked version. This has the advantage of only being -vulnerable to problems with the kernel, or accidental modification to +vulnerable to problems related to the kernel, and modification to the program file itself. Both are much less likely than an inadvertent semantic change in a user-space library or interpreter. -\fixme{Teksten fra ``This means that a Python upgrade...'' og frem hertil må -kunne skrives mere tydeligt. Jeg er ikke engang sikker på, hvad der menes.} +%\fixme{Teksten fra ``This means that a Python upgrade...'' og frem hertil må +%kunne skrives mere tydeligt. Jeg er ikke engang sikker på, hvad der menes.} Our specification language has turned out to be very similar to the Puppet specification language, as both are reasonably compact @@ -390,6 +391,8 @@ \section{Future work} +The configuration system we have made + \vspace{2cm} \noindent\colorbox{Red}{Hic sunt dracones (notes)} \hrule \vspace{2cm} We have implemented these language so that they