History | View | Annotate | Download (73.1 kB)
Anchor OS reinstall design doc in Makefile and index
Add OS reinstall design doc to the list of design docs in theMakefile, otherwise it does not get compiled when modified, and add italso to the index page of the documentation, where all the otherdesign docs are anchored....
Add a module to support virtual clusters
Virtual clusters are an efficient way to test how Ganeti behaveson a large cluster without requiring a large number of machines.Now that more tasks like job replication are done by luxid, providethat functionality in Haskell as well....
Add 'design-2.11.rst' which kvmd and instance shutdown
Add 'design-2.11.rst' which kvmd and instance shutdown to thetop-level documentation and Makefile.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Unit tests for KVM daemon
Add unit tests for KVM daemon.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>
Manpage for KVM daemon
Add manpage for the KVM daemon.
Add KVM daemon daemonize
Add KVM daemon entry point, command-line options, backgrounding, etc
Add KVM daemon logic
Add KVM daemon logic, which contains monitors for Qmp sockets anddirectory/file watching.
KVM daemon datatype, user and group
Merge branch 'stable-2.10' into master
Signed-off-by: Klaus Aehlig <aehlig@google.com>...
Add an empty post-upgrade hook
As 2.10 is the first version from which you can do automatic upgrades,there is nothing to do when going to any other version in the 2.10branch.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Petr Pudlak <pudlak@google.com>
Design document for KVM daemon
Design document for KVM daemon which is needed by the instanceshutdown detection for KVM.
Add the first version of the RAPI workload script
The RAPI workload script supplies work for the RAPI compatibilitytests. The initial version does very little, but can be expandedas needed.
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Add code style document to documentation
The Ganeti code style has been stored on the project wiki at:
https://code.google.com/p/ganeti/wiki/StyleGuide https://code.google.com/p/ganeti/wiki/HaskellStyleGuide
This commit combines the two pages into an .rst file with minimal...
Utility functions to manipulate the candidate map
This patch adds a couple of utility functions to manipulatethe map of master candidate SSL certificate digests.
Signed-off-by: Helga Velroyen <helgav@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
Add an hsqueeze test for drbd instances
In this example, there are two drbd instances, rendering a total offour nodes ineligible for being offlined. Additionally, the mastermay not be offlined either, leaving a single candidate.
Split Luxi Client into a generic and a specific part
The generic part will be reused in WConfd.
Signed-off-by: Petr Pudlak <pudlak@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Move Transport from luxi.py to a separate module
Also create a new module for RPC errors.This allows it to be reused for other clients as well.
Add a Python directory for RPC code to keep it at one place
Move rpc.py to rpc/node.py and modify imports in existing code.
Gluster: minimal implementation
Add Gluster to Ganeti by essentially cloning the shared file behavioureverywhere in the code base.
Signed-off-by: Santi Raffa <rsanti@google.com>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Use a data type when generating Python types of OpCodes
Currently they are generated only as Strings.
Signed-off-by: Petr Pudlak <pudlak@google.com>Reviewed-by: Jose A. Lopes <jabolopes@google.com>
Rename PyValueInstances.hs to PyValue.hs
Now the file contains the type class declaration as well.
Split Luxi.hs into LUXI-specific functions and general ones
This will allow WConfD to use the general functions without importingLuxi.hs.
Signed-off-by: Petr Pudlak <pudlak@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Fix 'htest' related targets dependencies
This fixes issue 634.
Add a scheduler to keep track of the job queue
In order to allow informed decissions on when to start a job,it is necessary for luxid to keep track of the (active partof the) job queue. Add a scheduler, similar to the config reader,that does this, but also schedules jobs to be executed. At the...
Remove --enable-split-query option
Switching from python to haskell queries, this patchremoves the option to dis/enable the haskell queriesat configure time.
Fix broken TAGS generation
This file is used for development to point to code definitions. Apparently thishas been broken since Februrary [cc40185]. The improved version fixes theproblem and uses Exuberant Ctags <http://ctags.sourceforge.net/>. It uses...
Merge 'hs2py-constants' into 'hs2py'
Merge code of 'hs2py-constants' into 'hs2py', which requires addingflag '--constants', and merge target 'src/hs2py-constants' into'src/hs2py' in 'Makefile.am', also updating dependencies andvariables.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>...
Add flag '--opcodes' to 'hs2py'
This is a transitional step before merging 'hs2py-constants' and'hs2py'.
Sort design docs alphabetically
Sort design docs alphabetically in Makefile.am and fix whitespace.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
Missing design docs from distribution
Fixes issue 609.
Move Haskell constants to proper module
Move Haskell constants from module 'Ganeti.HsConstants', which was atransitional module part of the Haskell to Python constant generationinfrastructure, to module 'Ganeti.Constants'.
Tear down Py2Hs constant infrastructure
Tear down Python to Haskell constant conversion infrastructure, whichincludes eliminating the autotool 'convert-constants' and the Haskellmodule, namely 'Ganeti.PyConstants', which held the convertedcontants.
Add 'AF_INET*' constants to Haskell's 'AutoConf'
Add 'AF_INET*' constants to the Haskell 'AutoConf' module, whichrequires extending the 'm4' invocation with additional substitutions,in the 'Makefile' target for 'src/AutoConf.hs'.
Python autotool to print socket constants
Add Python script to autotools which prints socket related constants.These constants are a transitional solution for eliminating the Pythonto Haskell constant generation given that the final solution willrequire a change in the configuration and, therefore, postponed to...
Design document for custom SSH ports
See issue 235. It turned out the feature is a bit more complex than expected,hence this design doc.
Signed-off-by: Petr Pudlak <pudlak@google.com>Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Optimize Haskell compilation
The idea is to compile (on demand, that is, when necessary) eachsource file to a normal object file, a coverage object file, aprofiling object file, and a test object file. Also, a given Haskellbinary is linked with the proper object files. This is achieved with...
Add a test for hsqueeze expansion
In this example, there are 7 nodes, each with capacity for4 instances. Two nodes are online and host 4 instances each,thus forming a cluster with no free resources. Four additionalnodes a standby, and two additional node is offline for other...
Add design document for multi-version tests
This patch adds a design document for multi-version tests, discussingwhat they aim to do and how they should be implemented.
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Add a man page for hsqueeze
Describe the current state of the Ganeti dynamic power managementtool, hsqueeze, in a man page.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>
Add test for hsqueeze compression
In this example cluster, there are 6 nodes withcapacity for 4 instances each, holding a totalof 8 instances. So even after turning off 2 nodesand rebalancing, every node still has capacity for2 instances.
Add hsqueeze planning for compression
Add a new htool, hsqueeze, for dynamic power management. Thiscommit only implements the first useful part: plan (but notexecuting) taking nodes offline nodes still keeping within theresource limit.
Add unittests for Hotplug support
Try base InstanceSetParams tests that modify instance'sdevices with hotplug=True.
Add some unittests for kvm hypervisor regarding runtime filemanipulation. Based on a sample runtime file search forspecific disk and nic entries based on their UUID....
Add dependency between test/py/docs_unittest.py and scripts/
test/py/docs_unittest.py tests that the scripts/ folder has beenpopulated and fails otherwise. The following sequence of commands hasbeen failing for this reason since the python bootstrap process changes...
Merge branch 'origin/stable-2.10' into 'master'
Create check-news Makefile target
Checking the correctness of the NEWS file syntax is an important part of thecheck process, but up to now it was only possible as part of a bigger set oftests. This commit creates a Makefile target to run that independently....
Tests for InstanceInfo retrieval added
As the retrieval of instance information is a tricky operation whichaffects the way the instance status is calculated, a few tests havebeen added to ensure its behaviour remains constant.
Signed-off-by: Hrvoje Ribicic <riba@google.com>...
Add aliases of existing instance fields
For legacy reasons, some instance fields are aliased. The aliases havethe same definition but appear under different names. Support for suchfields has been added to Query/Common.hsAs aliases can cause somewhat harder to find bugs, a new test was...
Initial changes for adding instance queries
Add basic instance querying capabilities to the Haskell codebase.Several fields are present, more to come.
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Jose A. Lopes <jabolopes@google.com>
Prepare master branch for 2.11 devel cycle
Bump versions in various places to 2.11 and remove the downgrade codefrom cfgupgrade. Also adapt cfgupgrade tests.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Prepare version numbers for 2.10 release cycle
- Bump version numbers to 2.10 in various files- Move implemented designs to design-2.10
Add unit tests for LUBackupPrepare
This patch adds unit tests for LUBackupPrepare.
Add unit tests for LUBackupQuery
This patch adds unit tests for LUBackupQuery.
Add test suite for some names in 'AutoConf'
Add test suite for some names in 'AutoConf' to test whether the valuesgenerated from 'configure' and the 'Makefile' are valid filepaths,user names, group names, among others. Fixes issue 601.
Fix several search path configure options
Fix several search path configure options to properly handleseparators.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Design document for hsqueeze
This design document describes a new htool, hsqueeze, tobe used to move the externally-mirrored instances in such away that as few nodes as possible host instances at all.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Martin Zobel-Helas <zobel@debian.org>...
Make information about GNU ln available to programs
Propagate the information on whether we have the GNU version of lnto all programs by making it available as a constant.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Disregard comments in 'src/Ganeti/ListContants.hs' target
Update target 'src/Ganeti/ListContants.hs' to disregard comments in'src.Ganeti.HsContants' when extracting the names of the constantsthat need to be generated from Haskell to Python.
Provide the DIRVERSION as a constant
Depending on configure options, the version string used in the nameof the version specific directory differs. Provide this string alsoas a constant, as it is needed for the upgrade procedure, in order tobe able to roll back....
Expose sharedir in pathutils
This path is needed to construct the link targetfor $(sysconfdir)/ganeti/share for a different version.The latter will happen in the automated upgrade procedure.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Jose Lopes <jabolopes@google.com>
Add utility function to parse version strings
The new 'gnt-cluster upgrade' command will get a Ganeti version asargument. So provide a function able to parse it.
Merge branch 'stable-2.9' into master
Add test for mond-data mock file
Test if the input file imported with the --mond-data option isparsed properly.
Signed-off-by: Spyros Trigazis <strigazi@gmail.com>Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>
Merge branch 'stable-2.8' into stable-2.9
Conflicts: Makefile.am NEWS configure.ac doc/design-draft.rst...
Add daemon split design doc
This describes the future planned structure of Ganeti daemons.
Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Fix expansion in Makefile.am
Fix 'src/mon-collector.hs' source in dist
This patch fixes 'Makefile.am' to include the source file of'mon-collector' in the distribution tarball even if the monitoringdaemon has been disabled at configure time. Fixes issue 587.
Move 'BuildVersion' to 'lib/utils/version.py'
Functions 'BuildVersion' and 'SplitVersion' are no longer needed bythe constants and, given that they are not constants, they should bemoved elsewhere. Since they are only used by 'cfgupgrade' and tests,these functions are moved to 'lib/utils/version.py' and references to...
HUnit test for 'buildVersion'
Add 'HUnit' test for 'buildVersion'.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Remove '_autoconf'
The previous patch has made '_autoconf' obsolete. This patchcompletely removes '_autoconf' and the 'Makefile' targets for it.
Including missing RST files in packaging
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
The patch was released by the author into the public domain.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Disable parenthesis indentation check
More recent versions of pep8 check for the indentation level of closingparenthesis in a way that is incompatible with the way we use in our code. Ourstyle is still pep8 compliant, and was re-allowed in even more recent versions...
Handle $(python_scripts) and tools/burnin as python scripts
With the new private-module layout, python scripts using theganeti module must end up in $(versionedsharedir) in orderto see this private module.
Export VERSIONEDSHAREDIR to _autoconf.py
Also install the version-dependent links forcefully
In this way, with default configuration options, runningmake install twice in a row succeeds. Fixes issue 567.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Fix 'TOOLSDIR' when passed to 'src/AutoConf.hs'
Remove trailing parenthesis in 'TOOLSDIR' 'configure' variable whenpassed to 'm4' to generate 'src/AutoConf.hs'.
Fix conflicting path values from 'configure'
Because the Hs2Py constant generation infrastructure is transitional,there are two generated 'autoconf' modules, namely, 'src/AutoConf.hs'and 'lib/_autoconf.py'. However, conflicting values were beinggenerated for Haskell and Python concerning the variables...
The $(gnt_python_sbin_SCRIPTS) are GENERATED_FILES
Before the layout change, the corresponding scripts used to bepart of PYTHON_BOOTSTRAP, hence were already considered asgenerated.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>...
For exported paths, use the canonical ones
Some paths set that are set at configure time are needed at runtime. These are exported by the Makefile. Change this to export the"canonical", unversioned, ones. This also has the advantage, thattools do not have to know which programs are python scripts (where,...
Adapt the version-dependent symlinks to the new design
With the latest change of our update design, there are only twosymbolic links left, that are specific to a particular version.Those are only installed, if requested.
Add the version-independent symbolic links
According to our new upgrade design, a couple of links areversion-independent, and should be installed always.
Make version granularity a configure option
From 2.10 onwards, all files are installed into versioneddirectories. As everything stays compatible between revisions,it is not technically necessary, to have revisions included inthe directories. Nevertheless, there are situations where this...
Adapt the base directories according to new layout
The file layout described in the upgrades design document has changed.Adapt the base directories accordingly.
Fix missing dependency on 'src/hs2py-constants'
Fix missing dependency on target 'src/hs2py-constants' in'Ganeti.ConstantUtils'.
Add unittests for OpenvSwitch in LUNodeAdd
This patch adds node_unittest.py containing the framework for unittesting LUNodeAdd.At this point, only test setup and tests for OpenvSwitch areimplemented.
Signed-off-by: Sebastian Gebhard <sege@fs.ei.tum.de>...
Add shelltest for the --ignore-dynu option of hbal
In the example, we have two nodes and 6 instances, all using externalstorage. There are four small instances on one node, and two biginstances, requiring twice the amount of resources of a small instance,...
Add unit test for LUInstanceQuery and -QueryData
This patch provides rudimentary unit test coverage for LUInstanceQueryand LUInstanceQueryData.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Add unit tests for LUInstanceMigrate and -Failover
This patch adds rudimentary unit test coverage for LUInstanceMigrate andLUInstanceFailover.
Fix missing dependency in 'src/hs2py-constants'
Fix target 'src/hs2py-constants' because it must depend on'src/AutoConf.hs'. Fixes issue 573.
Make tools/users-setup explain its actions first
Before doing any changes, make tools/users-setup explain itsactions first, and ask the user for confirmation. If the firstargument is --yes-do-it, this step will be skipped.
Generate tools/users-setup from descriptions
Now that we have a machine readable description of the usersto be added to the system, use it to generate the tools/users-setupscript, so that we again have only one authoritative source ofthe user and group requirements. This also has the advantage of...
Provide ganeti user and group data in easy-to-parse form
Upon build time, also generate, in the directory doc/users, filescontaining the groups, the users with their primary group, and theadditional groupmemberships to be added. In this way, packages can use...
Add target 'AutoConf.hs'
Add Makefile target to generate 'AutoConf.hs' and add this file to'.gitignore'.
Also clean up top-level *.tix files
Add 'FrozenSet'
Add type 'FrozenSet' that wrap a Haskell 'Set', and a guardedconstructor for this type and a 'PyValue' instance.
Don't install dangling symlink for hail
hail is installed to the iallocators directory, not to the binarydirectory. Hence, if --enable-symlinks is given (the default), donot install a symbolic links there either.