Statistics
| Branch: | Tag: | Revision:

root / lib @ 88b58ed6

# Date Author Comment
697e573c 10/16/2013 08:56 pm Hrvoje Ribicic

Fix the "times" field type for KVM hypervisor

The KVM hypervisor Python class returned a "0" value for the times
field, which gets serialized as a string. As Haskell is more picky
about types, this caused the entire response to be declared as invalid
and broke status reporting. Fixed by changing the value to a proper...

ebab8f54 10/15/2013 05:35 pm Thomas Thrainer

Merge branch 'stable-2.9'

  • stable-2.9:
    Version bump for 2.9.0 rc3
    Add NEWS entry for 2.9.0 rc3
    Remove incorrect comment
    cfg auto update: match ipolicy with enabled disk templates
    Remove obsolete configure option for shared file storage
  • stable-2.8:...
70b634e6 10/15/2013 02:54 pm Thomas Thrainer

Add unit tests for LUBackupExport

This patch adds unit tests for LUBackupExport.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Helga Velroyen <>

fb2278aa 10/15/2013 02:53 pm Thomas Thrainer

Use node names in LUBackupQuery

The result of LUBackupQuery has to be indexed by node name rather than
by node UUID, otherwise the automatically constructed filter won't
return any results.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Helga Velroyen <>

4f90370c 10/15/2013 02:13 pm Helga Velroyen

Make 'gnt-node list-storage' use default storage type

Currently, when no explicit storage type is given, the
'gnt-node list-storage' command defaults to file storage
whether or not file storage is enabled on the cluster
or not. This patch fixes it by defaulting to the default...

8b95dfdc 10/15/2013 02:13 pm Helga Velroyen

Make 'gnt-cluster modify' respect the order of templates

This fixes a bug where the order of enabled disk templates
was not respected when manipulating it with 'gnt-cluster
modify'.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Klaus Aehlig <>

6c00b2c7 10/15/2013 02:13 pm Helga Velroyen

Streamlining handling of spindles and default templates

This rather lenghy patch comprises a couple of refactorings
to achieve the following goals:
- 'gnt-node info' should only report space information about
spindles, when exclusive storage is enabled on the node...

05566846 10/11/2013 06:21 pm Helga Velroyen

Remove incorrect comment

Removing a comment which falsely states that Ganeti will
stop supporting certain upgrades at some point.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Klaus Aehlig <>

a2112db5 10/11/2013 06:19 pm Helga Velroyen

cfg auto update: match ipolicy with enabled disk templates

This patch fixes issue 599. The problem was that with 2.9,
a sanity check was introduced that made sure that the
ipolicies' set of disk templates is a subset of the
cluster-wide enabled disk templates. In order to make...

5808df30 10/11/2013 05:32 pm Helga Velroyen

Fix typos and indentation for cluster.py

This patches fixes a typo and some indentation errors
that were accidentally introduced by premature pushing
of the patch series "Improvements on disk templates, in
particular file storage".

Signed-off-by: Helga Velroyen <>...

6e513917 10/11/2013 02:13 pm Helga Velroyen

Make GetDiskTemplateSets output disabled disk templates

This patch extends the 'GetDiskTemplateSets' function to
also output the list of disk templates that were enabled
before this operation, but will be disabled afterwards.
This patch also includes code to check for instances using...

87e23f2d 10/11/2013 02:13 pm Helga Velroyen

Rename GetEnabledDiskTemplates to include disabled ones

This patch solely renames the functions
_GetEnabledDiskTemplates* to _GetDiskTemplateSets, because
in later patches, we will refactor it to not only output
disk templates that are or get enabled, but also the ones...

c2e984e2 10/11/2013 02:13 pm Helga Velroyen

Check for running instances when disabling templates

This patch introduces a function to be used in
'gnt-cluster modify' when disabling a couple of disk
templates. It checks whether there are still instances
running that use these templates.

Signed-off-by: Helga Velroyen <>...

e8c86ab1 10/09/2013 07:39 pm Klaus Aehlig

Merge branch 'stable-2.9' into master

  • stable-2.9
    Version bump for 2.9.0 rc2
    Update NEWS for 2.9.0 rc2
    Downgrade 'vif_script'
    Downgrade 'xen_cmd'
    Add test cluster config for version 2.9
    Remove superfluous import of 'errors'
    Start NEWS entry for 2.9.0 rc2...
d48c944b 10/09/2013 01:40 pm Helga Velroyen

Use 'DTS_LVM' when possible

This patch replaces all usages of the utility function
'GetLvmDiskTemplate' by the new 'DTS_LVM' constant
to make it consistant with the usage of other DTS_*
constants.

Additionally, it provides a unit tests to ensure
consistancy between DTS_LVM and the mapping of disk...

e8936ef7 10/09/2013 01:40 pm Helga Velroyen

iallocator: use lookup by disk template

So far, the iallocator requested storage information
about all enabled disk templates but discarded all but
the LVM information, even if it was allocating space
for a non-LVM instance. With this patch, it now only
asks for the one that is relevant for...

b669aa41 10/09/2013 01:40 pm Helga Velroyen

utils/storage.py: storage info lookup by disk template

This patch improves the handling of storage information
before and after a call to the RPC 'node_info'. It
adds a function to not only call for all storage
information on the cluster (as it is used right now),...

7f6d0b05 10/09/2013 01:40 pm Helga Velroyen

Replace GetLvmDiskTemplates by 'DTS_LVM'

To reach consistency by how we manage different
categorizations of disk templates, this patch
introduces the set of disk templates which are lvm-based:
'DTS_LVM'.

Signed-off-by: Helga Velroyen <>...

645bba3a 10/09/2013 12:02 pm Klaus Aehlig

If possible, replace symbolic links in place

Naive 'ln -s -f a b' will put the link inside 'b', if
'b' is (a symlink to) a directory; so, during upgrades,
the links in $(sysconfdir) cannot be updated this way.
Removing and readding works, however leaves the risk...

d250bc5d 10/09/2013 12:02 pm Klaus Aehlig

Make information about GNU ln available to programs

Propagate the information on whether we have the GNU version of ln
to all programs by making it available as a constant.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Helga Velroyen <>

33ee4861 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: hail, opcode, and SSH

Add hail, opcode, and SSH related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

b6e2ff42 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: node daemon setup

Add node daemon setup related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

81ae485c 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: opcodes

Add opcode related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

6e6a6f84 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: dynamic devices

Add dynamic devices related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

d84ddec2 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: SSCONF

Add SSCONF related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

d99012a6 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: 'defaultEnabledHypervisor'

Add 'defaultEnabledHypervisor' to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

53a5f21b 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: 'hvcGlobals' and 'ndcGlobals'

Add 'hvcGlobals' and 'ndcGlobals' to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

54e8f65d 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: 'ispecsMinmaxDefaults'

Add 'ispecsMinmaxDefaults' to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

d22b306d 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: assorted constants

Add some assorted constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

0dda32bb 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: remove comments

Remove several comment from 'lib/constants.py' because these have been moved to Haskell.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

2f314077 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: 'maxUdpDataSize'

Add 'maxUdpDataSize' constant to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

6b0d45b7 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: UID pool

Add UID pool related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

b9b5acc3 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: assorted constants

Add assorted constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

5a7fab74 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: HVST and disk state

Add HVST and disk state related constants to the Haskell to Python
constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

8eb80cb3 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: backend and logical disks

Add backend and logical disks related constants to the Haskell to
Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

ec321549 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constant: DRBD and dynamic disk

Add DRBD and dynamic disk parameter constants to the Haskell to Python
constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

d4bc2eec 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: nics

Add nics related constants to the Haskell to Python constant
generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

649f774a 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: assorted, idisk, and inic

Add assorted, idisk, and inic related constants to the Haskell to
Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

75463b9a 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: node verify

Add node verify constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

b964f067 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: SSL, job queue, and locks

Add SSL, job queue, and locks related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

cf1f4273 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: VNC

Add VNC related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

385b2959 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: '/etc/hosts' and job queue

Add '/etc/hosts' and job queue related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

8799fb9d 10/08/2013 03:57 pm Jose A. Lopes

Hs2py constants: query resources

Add query resources related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

b8576ea1 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: HT related constants

Add HT related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

343dcda8 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add import/export config

Add import/export config constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

b7b8ff87 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: network related

Add network related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

846a1cea 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: remove comments

Remove useless comments from 'lib/constants.py'.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

52d4f735 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: 'diskTransferConnectTimeout'

Add 'diskTransferConnectTimeout' constant to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

d7754dad 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: 'jobIdsKey', 'runparts' and 'rpc'

Add several groups of constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

e8d4d41e 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: scripts and actions

Add script and action related constants to the Haskell to Python
constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

3c2abb61 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: reboot behaviour

Add reboot behaviour constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

5c8f186c 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: assorted and HVS

Add asserted and HVS related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

4c1275f9 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add network mirrored disk templates

Add network mirrored disk template constants to the Haskell to Python
constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

84ad6b78 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add SSH key files

Add SSH key file constants to the Haskell to Python constant
generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

14795b58 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add export versions

Add export version constants to the Haskell to Python constant
generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

e0cd6f5d 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add CPU pinning

Add CPU pinning constants to the Haskell to Python constant
generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

0412a686 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add 2 more constants

Add 2 more constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

3f5fd161 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add several groups of constants

Add several groups of constants, namely, console types, security, I/O
compression, import/export, hooks, and hkr related, to the Haskell to
Python constant generation.

Signed-off-by: Jose A. Lopes <>...

9be1ff8c 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: storage related groups

Add several groups of storage related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

c5539592 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add DRBD and RBD

Add DRBD and RBD related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

6e18cc0d 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add 'RIE' related

Add remote import/export related constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

c87997d2 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add 'osApiVersions'

Add constant 'osApiVersions' to the Haskell to Python constant
generation. This patch fixes the type of this constant, by changing
from 'List' to 'Set', therefore, 'Ganeti.Query.Server' is updated
accordingly.

Signed-off-by: Jose A. Lopes <>...

a5450d2a 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add 'ReplaceDisksMode' related constants

Add constants related to the Haskell type 'ReplaceDisksMode'. The
data type declaration for 'ReplaceDisksMode' is also moved from
'Ganeti.OpParams' to 'Ganeti.Types' because it used to be used only by...

c03224f6 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add RPC timeout constants

Add RPC timeout related constants to the Haskell to Python constant
generation. The Haskell data type 'RpcTimeout' is moved from
'Ganeti.Rpc' to 'Ganeti.Types' so it can be used by
'Ganeti.HsConstants' without causing circularity problems with...

ecf43dcb 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add node parameter related constants

Add node parameter related constants to the Haskell to Python constant
generation. This patch also fixes a type inconsistency between
Haskell and Python, namely, 'ndsParameterTypes' and
'ndsParameterTitles' become 'Map's instead of 'Tuple's, which allows...

8397ffde 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: constants related to 'Ganeti.Htools.Types'

Add constants related to the Haskell types defined in
'Ganeti.Htools.Types' to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

59bcd180 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add local disk status

Add constants related to local disk status to the Haskell to Python
constant generation. A new Haskell type 'LocalDiskStatus' is added
similarly to the constants that have been added previously in other
Hs2Py patches....

ad6f2bf3 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add 'fileDriver'

Add constant 'fileDriver' to the Haskell to Python constant
generation. The constant 'FILE_DRIVER' is also moved to the
appropriate place in 'lib/constants.py'.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

5d4e1402 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add Luxi constants

Add Luxi related constants to the Haskell to Python constant
generation. A new Haskell type is added 'Ganeti.Types.PythonChar' to
wrap the Python character type.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

2355ac23 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: update forgotten 'SOCAT_ESCAPE_CODE'

Update constant 'SOCAT_ESCAPE_CODE' to retrieve its value from the
generated 'lib/_constants.py'. The Haskell counterpart of this
constant, namely, 'socatEscapeCode', has already been added.

Signed-off-by: Jose A. Lopes <>...

74129b52 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add more constants

Add more constants to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

cdac0552 10/08/2013 03:50 pm Jose A. Lopes

Hs2Py constants: add 'Ganeti.Confd' types

Hs2Py constants: add 'Ganeti.Confd' types.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

dd95d461 10/08/2013 03:50 pm Jose A. Lopes

Hs2Py constants: add confd requests

Add confd request related constants to the Haskell to Python constant
generation.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Thomas Thrainer <>

faba87e9 10/08/2013 02:48 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Fix typo in walkthrough documentation
    Don't attemp ipv6 ssh in case of ipv4 cluster

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Helga Velroyen <>

6c2a735a 10/08/2013 01:14 pm Klaus Aehlig

Add --resume option to 'gnt-cluster upgrade'

This option will resume an upgrade of the Ganeti version of
a cluster that got interrupted by a reboot of the master node,
or similar event.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Thomas Thrainer <>

16e81432 10/08/2013 01:14 pm Klaus Aehlig

Add function to determine current configuration version

The 'gnt-cluster upgrade --resume' command needs to determine whether the
configuration has already been updated or not, in order to decide at which
phase to resume. So provide a function to determine the version of the...

36cfb584 10/08/2013 01:14 pm Klaus Aehlig

Add method to read and parse the intent-to-upgrade file

During upgrades, a file is written to disk on master that documents
the fact that an upgrade is currently in progress. Add a function
to parse it.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Thomas Thrainer <>

2f1278d8 10/08/2013 01:14 pm Klaus Aehlig

Provide utility function to check a configuration version

In order for 'gnt-cluster upgrade --resume' to determine whether the configuration
is already upgraded, it needs to compare whether a configuration version is compatible
with a Ganeti target version. Provide a utility function for this....

ec5e54bb 10/08/2013 01:14 pm Klaus Aehlig

Fix typo in doc string

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Thomas Thrainer <>

b6368001 10/07/2013 07:25 pm Costas Drogos

Don't attemp ipv6 ssh in case of ipv4 cluster

In case of a cluster with primary-ip-version=4, there is no need
for cluster to try ipv6 ssh connections which may timeout.
So append '-4' on ssh if cluster is ipv4-only

Signed-off-by: Costas Drogos <>...

66a37e7a 10/07/2013 04:58 pm Helga Velroyen

Rename LDS_DRBD to DTS_DRBD

This patch renames the constant 'LDS_DRBD' to 'DTS_DRBD'
to make it consistent with the renaming of LD_* constants
to DT_* constants.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Thomas Thrainer <>

3b31c9da 10/07/2013 01:47 pm Klaus Aehlig

Write the intent-to-upgrade file during upgrades

To recognize that an upgrade attempt of a cluster was interrupted by a
power failure or similar, write a file into the file system documenting
that currently an upgrade is in progress.

Signed-off-by: Klaus Aehlig <>...

f2b91949 10/07/2013 01:47 pm Klaus Aehlig

Provide an inverse to UnescapeAndSplit

With utils.UnescapeAndSplit, we have a function to parse
arbitrary non-empty string lists encoded as strings. Also
provide the appropriate encoding function.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Michele Tartara <>

e8c1cb41 10/07/2013 01:47 pm Klaus Aehlig

Specify the intent-to-upgrade path

During a Ganeti upgrade, 'gnt-cluster upgrade --to' documents the
fact that an upgrade is going on in a file, in case of a power failure
on the master node. Specify the full file name in pathutils.

Signed-off-by: Klaus Aehlig <>...

fa8206c1 10/07/2013 12:36 pm Raffa Santi

Hardcode default access mode to kernelspace

Hardcode constants.KERNELSPACE as the default access method for
KVM disk templates, rather than allowing a change to the RBD default
access mode to affect all disk templates for KVM.

At some point in the future it might make more sense to have this...

c914b39f 10/04/2013 05:45 pm Santi Raffa

Handle scenarios where access is not set

It should not be possible to reach _GenerateKVMRuntime without having
the access method set, but if it does happen this commit makes sure
the default value is used anyway.

Signed-off-by: Raffa Santi <>...

c51ffffe 10/04/2013 05:13 pm Klaus Aehlig

Add an upgrade command to gnt-cluster

This command will coordinate the switching to a new
Ganeti version across the cluster. This has become
possible by the new layout that allows several Ganeti
versions to be present at the same time.

Signed-off-by: Klaus Aehlig <>...

9b20010b 10/04/2013 05:13 pm Klaus Aehlig

Provide the DIRVERSION as a constant

Depending on configure options, the version string used in the name
of the version specific directory differs. Provide this string also
as a constant, as it is needed for the upgrade procedure, in order to
be able to roll back....

55f0626b 10/04/2013 05:13 pm Klaus Aehlig

Provide time constants related to upgrades

During upgrades, gnt-cluster needs to wait for all jobs
in the queue to finish. Provide constants for timeout and
polling interval.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

0c455e40 10/04/2013 05:13 pm Klaus Aehlig

Add option to redist-conf while queue is drained

Add a new option to 'gnt-cluster redist-conf' allowing to ignore a drained
state of the Ganeti queue. This is needed (until we implement the fine-grained
queue control) during upgrades, as here we have to redistribute the configuration...

346c3037 10/04/2013 05:11 pm Klaus Aehlig

Provide means of submitting jobs to a drained queue

During an upgrade, the job queue needs to be drained in order to avoid
new jobs coming to the cluster. Nevertheless, the upgrade process
needs to carry out some maintenance, like redistributing the new...

9bfcf2e9 10/04/2013 05:10 pm Klaus Aehlig

Expose sharedir in pathutils

This path is needed to construct the link target
for $(sysconfdir)/ganeti/share for a different version.
The latter will happen in the automated upgrade procedure.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

7a9dbd61 10/04/2013 05:10 pm Klaus Aehlig

Provide path to ensure-dirs in pathutils

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

b9db7d45 10/04/2013 05:10 pm Klaus Aehlig

Provide the canonical path to cfgupgrade in pathutils

This is the version-independent path for cfgupgrade, that will
always refer to the cfgupgrade of the currently installed version.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

790fc19d 10/04/2013 05:10 pm Klaus Aehlig

Expose the list of online nodes at ssconf

Ganeti's ssconf contains the list of nodes currently considered
online. Expose this data at the ssconf interface.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

750b7090 10/04/2013 05:10 pm Klaus Aehlig

Also export PKGLIBDIR in pathutils

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

78521495 10/04/2013 05:10 pm Klaus Aehlig

Add predicate whether to call cfgupgrade --downgrade

Provide a predicate that, given the current version and the
version to go to, tells whether it is appropriate to call
cfgupgrade --downgrade.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

0890e0d1 10/04/2013 05:10 pm Klaus Aehlig

Add utility function to recognize upgrade ranges

Upgrading is possible within the same major version to any equal
or higher minor version. Downgrading is possible within the same
major version to the previous minor version. Moreover, automatic
upgrades are only supported from version 2.10 onwards. Add a utility...

8c44d5b3 10/04/2013 05:10 pm Klaus Aehlig

Also provide the program version

Conceptionally, the versions of the program, the protocols, and the
configuration are three different things, even though, currently there
is a tight coupling. So export the version as well, as the upgrades
are designed to make decisions based on the version....

1eda3dd3 10/04/2013 05:09 pm Klaus Aehlig

Add utility function to parse version strings

The new 'gnt-cluster upgrade' command will get a Ganeti version as
argument. So provide a function able to parse it.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>