Statistics
| Branch: | Tag: | Revision:

root / test / py @ 2fe1e043

# Date Author Comment
2fe1e043 07/29/2013 03:27 pm Helga Velroyen

Remove obsolete autoconf variable from remaining files

This removes the obsolete autoconf variable
'ENABLE_SHARED_FILE_STORAGE' from all remaining files.

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

9d0d4f21 07/23/2013 06:22 pm Helga Velroyen

Fix another missing renaming

This fixes a (due to a merge) slipped occurence of
VALID_STORAGE_TYPES which was renamed to STORAGE_TYPES.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Michele Tartara <>

d8e55568 07/23/2013 05:15 pm Helga Velroyen

Rename VALID_STORAGE_TYPES to STORAGE_TYPES

For consistency, this patch renames 'VALID_STORAGE_TYPES'
to 'STORAGE_TYPES', because the set of valid disk
templates is also just names 'DISK_TEMPLATES'.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Guido Trotter <>

0b6c56bb 07/23/2013 05:15 pm Helga Velroyen

Unit tests for constants consistency

This patch adds some unit tests to ensure the consistency
of various constants regarding disk templates.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Guido Trotter <>

f79be8ec 07/23/2013 05:13 pm Helga Velroyen

Move space reporting constant to constants.py

This patch moves the constant which is used to determine
whether a storage type provides storage space reporting
from the utils package to the constants. This way, we
can also use it in haskell and it fits there semantically...

3039e2dc 07/23/2013 03:29 pm Helga Velroyen

gnt-cluster {init, modify} --file-storage-dir

This patch implements consistent usage and behavior of
the --file-storage-dir option in 'gnt-cluster init'
and 'gnt-cluster modify'. It includes a bunch of unit
tests as well.

Additionally, it enables the previously written unit...

489c9037 07/17/2013 07:55 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Rename queryd to luxid
    Document the rapi client not to have a QueryNetworks method
    Enable unit tests again
    Document ganeti-queryd
    Add ganeti-queryd to QA env test
    Add queryd daemon (split from confd)...
3695a4e0 07/17/2013 06:04 pm Thomas Thrainer

Rename queryd to luxid

As queryd will, in the future, handle all LUXI request, queue jobs and
most likely perform various other tasks, it is renamed to luxid already.
This will safe some headache when upgrading Ganeti installations, as we
don't have to deal with a daemon rename....

f3ebe73e 07/17/2013 05:34 pm Helga Velroyen

Move bdev unit tests to filestorage unit tests

Some code was moved from bdev to file storage in
previous patches, but the related unit tests were
accidentally left in bdev. Moving and adjusting
them now.

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

6d11529e 07/17/2013 05:34 pm Helga Velroyen

Fix iallocator unit tests

This fixes the unit test for the iallocator. The fix
is necessary, because a renamed functions was not properly
renamed in the tests as well.

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

238cfd3a 07/17/2013 05:14 pm Klaus Aehlig

Document the rapi client not to have a QueryNetworks method

While there is a luxi query QueryNetworks, the rapi client does not
provide such a method. Document this by declaring it in the
KNOWN_UNUSED_LUXI calls.

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

670e954a 07/17/2013 12:33 pm Thomas Thrainer

Add queryd daemon (split from confd)

queryd is added as a new daemon which handles configuration queries over
LUXI. This functionality was removed from confd, which now only queries
over the network.

The queryd user is added to the master group such that it can access...

8520f4b9 07/17/2013 11:11 am Thomas Thrainer

Add unit test for drbdsetup show parsing

This unit test checks for proper parsing of the output from `drbdsetup
show` when re-attaching the local disk. In this case, disk parameters
are not (yet) set, so the corresponding dict is empty.

Signed-off-by: Thomas Thrainer <>...

c832f7e9 07/16/2013 10:29 am Klaus Aehlig

Merge branch 'stable-2.8' into master

  • stable-2.8
    Change method dispatch in ClientOps to enforce luxi.REQ_ALL
    Allow modify_etc_hosts to be changed
    Add --modify-etc-hosts option for CLI tools
    Add luxiReqQueryNetworks to LuxiOp
    Log received message at debug level...
9c1c3c19 07/15/2013 12:34 pm Helga Velroyen

Verify file storage path

This patch adds two verification steps to 'gnt-cluster
verify':
- The configured file storage directory is checked against
the allowed file storage directories file.
- We check whether the configured file storage directory
is existing and writable on each node....

d721894a 07/15/2013 12:34 pm Helga Velroyen

storage utils: read file storage dir from cluster config

This patch make the storage utils read the file storage
directory from the cluster config instead of the constants.

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

850c53f1 07/15/2013 12:34 pm Helga Velroyen

cmdlib: remove usage of ENABLE_FILE_STORAGE

This patch removes all usages of the constant
'ENABLE_FILE_STORAGE' from the cmdlib code and
replaces them by checking the cluster's configuration.

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

5030cff3 07/15/2013 12:34 pm Helga Velroyen

cluster init: check for enabled disk templates

The purpose of this patch is to remove the usage of the
'ENABLE_FILE_STORAGE' constant. To get there, we do some
refactoring, add unit tests and add a FIXME for a forgotten
test regarding the file storage location....

3312709d 07/10/2013 05:21 pm Leon Handreke

Expose bulk parameter for GetJobs in RAPI client

This patch exposes the bulk argument of the jobs resource on
the RAPI python wrapper, making it possible to retrieve status
information about all jobs with a single call.

Signed-off-by: Leon Handreke <>...

335c14dc 07/10/2013 04:44 pm Michele Tartara

Add tests for CanRead

Verify that the CanRead function is actually able to check whether a file has
the proper permissions.

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

d90f0cb4 07/10/2013 03:36 pm Helga Velroyen

Unittesting for instance_storage._CheckNodesFreeDiskOnVG

This patch refactors the '_CheckNodesFreeDiskOnVG' of
cmdlib.instance_storage to make it at least a little
more testible and provides the unit tests for it.

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

3f73b3ae 07/10/2013 03:36 pm Helga Velroyen

Unit tests for _GetVgInfo

This patch provides unit tests for the backend's
_GetVgInfo function. In order to mock the underlying
backend function, it was necessary to make it an
optional parameter of the function.

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

86e16e3f 07/10/2013 03:36 pm Helga Velroyen

Fix module functions overridden by mocks

This patch fixes remaining occurrences of module functions
that were overridden by mock functions. They need to be
set back to their original functions after the test case
ends.

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

a18ab868 07/10/2013 03:36 pm Helga Velroyen

Unit tests for _GetVgSpindlesInfo

This patch provides unit tests for _GetVgSpindlesInfo.
In order to mock the used function for the 'bdev' module
I made the low-level storage function an optional parameter
of _GetVgSpindlesInfo. I also found out that mocked...

3c8a599a 07/10/2013 03:36 pm Helga Velroyen

More sanity checks for spindle space reporting

This patch adds a wrapper around the space reporting
for spindles which includes more sanity checks for
the input. Unit tests provided.

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

3ae259d3 07/10/2013 03:36 pm Helga Velroyen

Tighten sanity checks for '_GetLvmVgSpaceInfo'

This patch tightens the sanity checks for the input of
'_GetLvmVgSpaceInfo' and provides unit tests for it.

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

b01b7a50 07/10/2013 03:36 pm Helga Velroyen

Factor out check for storage params

This patch factors out the sanity checks for storage
parameters in its own function. Unit tests included.

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

20faaa74 07/03/2013 12:41 pm Helga Velroyen

Improve handling of storage info

This patch improves the processing of storage information
as result of the 'node_info' call in the following way:
- It removes the override for LVM storage. This was needed
in MakeLegacyNode info to be compatible to the...

152759e4 07/02/2013 12:47 pm Helga Velroyen

Add general storage parameters to node info call

As described in the design doc about storage types,
we plan to generalize the RPC call "node info" wrt to
storage types. This patch extends the call by accepting
a list of storage units, that is not only identified...

a7d524e7 07/02/2013 12:47 pm Helga Velroyen

backend unit tests: remove unused imports and variables

This patch removes some unused imports and an unused
variable of the backend unit test. No functional changes
otherwise.

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

f43c898d 07/01/2013 02:40 pm Bernardo Dal Seno

Export CPUs used by the node OS

They are exported through the LUXI, RAPI, and IAllocator interfaces.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Klaus Aehlig <>

ff05ff94 07/01/2013 02:40 pm Bernardo Dal Seno

Hypervisors report CPUs used by the node OS

The XenHypervisor's "dom0_cpus" parameter (introduced in 1d60fec6 but never
used) is renamed to "cpu_dom0" for consistency with other parameter
names. The analogous information is returned for the other hypervisors....

9353adde 06/27/2013 12:32 pm Helga Velroyen

iallocator: storage processing accepts space_info structure

This is a small refactoring to make the processing of
the storage space information not accept a node info
result, but the more specific space info structure instead.

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

11aa3ca5 06/27/2013 12:08 pm Helga Velroyen

iallocator: extract storage info directly from node info

So far, the iallocator made a node info RPC call, converted
the result into a legacy node info format and then extracted
the storage information from that. This patch removes the
middle step of this procedure, skipping the legacy node info...

20529708 06/27/2013 12:05 pm Helga Velroyen

iallocator: computation of storage data

This patch extracts the processing of the storage-related
data from the RPC call 'node_info' in a separate function
to increase testability. In addition, this patch contains
unit tests for this function.

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

b844311b 06/27/2013 12:05 pm Helga Velroyen

rpc.py: override default storage type in node info

This patch changes the semantics of dealing with the result
of the RPC call "node_info" when converting them into a
LegacyNodeInfo. A legacy node info, can only hold storage
information about one storage type, which so far was always...

da4a52a3 06/20/2013 05:04 pm Thomas Thrainer

Index instances by their UUID

No longer index instances by their name but by their UUID in the cluster
config. This change changes large parts of the code, as the following
adjustments were necessary: * Change the index key to UUID in the configuration and the...

1f3096c2 06/20/2013 02:52 pm Thomas Thrainer

Fix testGetHvDefaults testcase

The introduction of the migration_mode parameter to the fake hypervisor
broke the testGetHvDefaults. This patch fixes this by taking the default
parameters of the fake hypervisor into account.

Signed-off-by: Thomas Thrainer <>...

32389d91 06/14/2013 02:43 pm Helga Velroyen

Refactor NodeInfo RPC regarding storage reporting

The NodeInfo RPC call is refactored to handle now more than
just storage reporting for volume groups.

Since NodeInfo now returns storage space information not
necessarily for volume groups, but also for other storage...

683335b3 06/14/2013 02:43 pm Helga Velroyen

Utility functions for storage types

Handling various storage types for the free space reporting
requires some utility functions. They will be invoked in
later patches. Unit tests are included.

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

f39a8d14 06/14/2013 02:43 pm Helga Velroyen

Unit tests for ApplyStorageSpaceFunction

So far, the function 'ApplyStorageSpaceFunction' was not
covered by unit tests. Before the integration of space
reporting for file storage, we add those missing tests.

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

e798d484 06/14/2013 02:43 pm Helga Velroyen

Renamining space reporting for file storage

Before being integrated, the function for space reporting
for file storage is renamed to a more expressive name.

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

b555101c 06/13/2013 12:32 pm Thomas Thrainer

Convert node indices to UUIDs in configuration

cfgupgrade replaces the occurences of node names (where they are used as
index) with the node UUID.
It also supports the inverse replacement, so downgrades are supported
too.

Tests for cfgupgrade are adapted as well....

1c3231aa 06/13/2013 12:32 pm Thomas Thrainer

Index nodes by their UUID

No longer index nodes by their name but by their UUID in the cluster
config. This change changes large parts of the code, as the following
adjustments were necessary: * Change the index key to UUID in the configuration and the
ConfigWriter, including all methods....

8ef418bb 06/12/2013 10:18 am Helga Velroyen

Remove XEN_CMD from constants, adjust to PowercycleNode

This patch extend the RPC to powercycle a node by a
hvparams parameter. This parameter is used by the
xen hypervisor to determine which xen command to use.
The respective LU is adjusted as well.

Since this was the last operation depending on the...

398fd4f6 06/12/2013 10:18 am Helga Velroyen

hv_xen.py: make hvparams mandatory, remove fallbacks

This patch removes the fallback to the xen command from the
auto config and adds an exception instead. Also, the
hvparams parameter of the functions GetCommand, _RunXen and
_GetInstanceList are made mandatory....

439e1d3f 06/12/2013 10:18 am Helga Velroyen

backend.py: use hvparams in GetNodeInfo

This patch extends the GetNodeInfo function of the backend
module by a hvparams parameter. For now, it contains a
fallback solution for when the parameter is None. This
fallback will be removed in a later patch of this series....

fac489a5 06/12/2013 10:17 am Helga Velroyen

hypervisors: add hvparams to GetNodeInfo

This patch extends the GetNodeInfo function of the
hypervisors by a hvparams parameter. The parameter
is currently only used by the xen hypervisor to determine
which xen toolstack ('xm' or 'xl') to use.

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

2609da63 06/12/2013 10:17 am Helga Velroyen

hv_xen.py: renaming residual 'xm' occurrences

Some methods still refered to 'xm', which is inaccurate now
that xen can also be run with 'xl'. No functional changes
otherwise.

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

def6577f 06/12/2013 10:17 am Helga Velroyen

Include hvparams in ssconf files

The watcher needs access to the cluster's hypervisor
parameters. This patch extends the ssconf infrastructure
by adding a hvparams file for each hypervisor. The format
of the hvparams file is a simple key=value format.

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

8351df2f 06/12/2013 10:17 am Helga Velroyen

Use hvparams in instance migration

This patch makes use of hvparams on instance migration to
determine the list of instance before the migration. This way, in
xen, the xl/xm choice is respected.

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

75bf3149 06/12/2013 10:17 am Helga Velroyen

Verify: xen toolstack, hypervisor and hvparams

This patch extends the node verification by:
- Adding a check for the xen toolstack when the hypervisor
is verified.
- Factoring out the hypervisor verification in a
subfunction to increase testability.
- Factoring out the hvparams verification in a...

fac83f8a 06/12/2013 10:17 am Helga Velroyen

backend.py: hvparams in 'GetInstanceList'

Propagating the use of hvparams further up the calling
hierarchy, this patch makes the backend module use the
hvparams in 'GetInstanceList'. Unit tests provided.

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

58e356a9 06/12/2013 10:17 am Helga Velroyen

hv_xen.py: _RunXen and GetInstanceList use hvparams

Propagating the use of hvparams further up in the calling
hierarchy, the functions '_RunXen' and 'GetInstanceList'
use the given hvparams. Unit tests provided. Calling function
'StopInstance' adjusted in this patch as well....

36bebc53 06/12/2013 10:17 am Helga Velroyen

hv_xen.py: rename GetXmList to GetInstanceList

Since one can retrieve xen's instance list via both 'xm'
or 'xl', it is no longer appropriate to call the function
'GetXmList'. This patch renames it to 'GetInstanceList'.
Other than that, there are no functional changes....

51a95d00 06/12/2013 10:17 am Helga Velroyen

hv_xen._GetCommand: retrieve xen command from hvparams

This patch adds a (so far optional) hvparams parameter
to the '_GetCommand' function. This dictionary is used
to retrieve the xen command (xm or xl). It is optional
for now to make the refactoring possible without breaking...

3eb073a6 06/12/2013 10:17 am Helga Velroyen

Unit tests for hv_xen._GetCommand

This patch adds unit tests for the current state of the
'GetCommand' method. The tests are rather trivial, but
having tests before starting to refactor seems to be
a good idea.

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

b44af065 06/12/2013 10:16 am Helga Velroyen

Fixing docstring of hv_xen_unittest.py

The introductory comment of hv_xen_unittest.py referred to
the wrong hypervisor.

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

06fb92cf 06/07/2013 04:10 pm Bernardo Dal Seno

Export node spindles

Node spindles (queried live) are exported through the LUXI, RAPI, and
iallocator interfaces.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Klaus Aehlig <>

5a13489b 06/03/2013 04:15 pm Bernardo Dal Seno

Check real spindles in ipolicies

When exclusive storage is enabled, the spindles in instance disks are used
to check the instance policies (as outlined in design-partitioned.rst).

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Klaus Aehlig <>

342a9b3b 05/31/2013 04:36 pm Bernardo Dal Seno

Merge branch 'stable-2.8' into master

  • stable-2.8:
    Document users-setup tool
    Adjusting permissions after confd start
    Ensure the queue socket has the right permissions
    Update IAllocator interface documentation
    Add NEWS entry for hail honoring networks...
ca83454f 05/28/2013 04:05 pm Thomas Thrainer

Make the disks_active flag queryable

gnt-instance list now also supports the disks_active field.

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

b5d48e87 05/28/2013 12:45 pm Bernardo Dal Seno

Attaching a logical volume builds a list of PVs

When an LV gets attached, the list of the PVs used by the LV is built. This
will be used to count spindles for exclusive_storage, but it could also be
useful to optimize disk growing and snapshotting.

Signed-off-by: Bernardo Dal Seno <>...

688b5752 05/28/2013 12:45 pm Bernardo Dal Seno

Refactor code for attaching a logical volume

The parsing of "lvs" output is moved into private methods. The code is
slightly more readable and testable. The split in two methods is useful
for the following patches. Unit tests for the new functions are
provided....

a9310b5b 05/24/2013 02:30 pm Guido Trotter

Merge branch 'stable-2.8'

  • stable-2.8:
    Bump up version for 2.7.0~rc2 release
    Create overall design document for 2.8
    Add NEWS entry for SO_PEERCRED fix
    Workaround missing SO_PEERCRED
    Add debugging clause to _ExpandCheckDisks error
    Reduce pylint maximum file length to 4500...
c294f84e 05/23/2013 02:03 pm Bernardo Dal Seno

cfgupgrade: Downgrade is a NO-OP

The configuration is still the same as in 2.8 (the reference stable version
for this branch), so downgrade shouldn't do anything.

Unit tests are also updated, with a new 2.8 configuration file. The
configuration file used for the upgrade+downgrade test was tailored to the...

48bba9de 05/17/2013 06:38 pm Balazs Lecz

Stash Xen config file after a failed startup

This is a fix for a minor bug.
Currently, a failed Xen VM start results in a stale config file left
behind on the filesystem.
This change introduces a new log directory, where the Xen VM config
file is moved after a failed startup....

1bb99a33 05/17/2013 05:42 pm Bernardo Dal Seno

Merge branch 'stable-2.8' into master

  • stable-2.8: (45 commits)
    Update NEWS with disk creation fixes
    Sort cmdlib-related entries in Makefile.am
    cmdlib: Cleanup public/private functions
    cmdlib: Extract instance query related functionality
    cmdlib: Extract instance operation functionality...
5eacbcae 05/17/2013 12:32 pm Thomas Thrainer

cmdlib: Cleanup public/private functions

All functions/classes which are used outside of their defining module
(with tests as an exception) no longer have a leading underscore.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

763ad5be 05/17/2013 12:32 pm Thomas Thrainer

cmdlib: Extract storage related functionality

Split instance.py further by extracting storage related logical units
and functions to instance_storage.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

ec3cc4a8 05/17/2013 12:32 pm Thomas Thrainer

Extract query related logical units from cmdlib

All LUQuery* classes are extracted to query.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

22b7f6f8 05/17/2013 12:31 pm Thomas Thrainer

Extract instance related logical units from cmdlib

All LUInstance* classes are extracted to instance.py. Common functions
are moved to common.py if used by non-instance logical units as well.
Additionally, helper functions which are only used by LUBackup* and...

31b836b8 05/17/2013 12:31 pm Thomas Thrainer

Extract node related logical units from cmdlib

All LUNode* classes are extracted to node.py. Common functions are moved
to common.py if used by non-node logical units as well.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

f380d53c 05/17/2013 12:31 pm Thomas Thrainer

Extract group related logial units from cmdlib

All LUGroup* classes are moved to group.py. Common functions are
extracted to common.py.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Bernardo Dal Seno <>

7352d33b 05/17/2013 12:31 pm Thomas Thrainer

Extract cluster related logical units from cmdlib

All LUCluster* classes are extracted to cluster.py. Shared functions are
extracted to common.py, helper functions only used by LUCluster* are
extracted to cluster.py.

Signed-off-by: Thomas Thrainer <>...

5d94c034 05/15/2013 03:02 pm Helga Velroyen

Use os.statvfs to determine free disk space

This simplifies my previous commit (820bade90) by using os.statvfs
instead of parsing the output of 'df'.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Bernardo Dal Seno <>

820bade9 05/14/2013 10:17 pm Helga Velroyen

Backend function for file storage space reporting

This adds functionality to retrieve disk space information
for file storage. It calls the 'df' tool and parses its
output to extract the total and free amount of disk space
on the disk where the given path is located....

8f096849 05/14/2013 04:46 pm Helga Velroyen

Move 'container.py' to storage directory

Moving 'container.py' to the storage directory.

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

cde49218 05/14/2013 04:46 pm Helga Velroyen

Rename dir 'block' to 'storage'

Renaming the 'block' directory to 'storage', because I plan to
place code there that is related to file storage and leaving
it named 'block' would be misleading.

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

c23bb217 05/14/2013 04:45 pm Helga Velroyen

Rename storage.py to container.py

Renaming 'storage.py' to 'container.py'. It will be moved into the new
'storage' directory, which will come in later patches to avoid clashes of
notation.

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

47e0abee 05/06/2013 11:47 am Thomas Thrainer

Split DRBD8Dev into DRBD8 and DRBD8Dev

All functionality specific to a single DRBD8 devide is now in DRBD8Dev,
whereas functionality which is valid for the whole DRBD "installation"
on a device is collected in DRBD8.

This makes it possible to remove a couple of FIXME's and clarifies the...

239364d0 05/06/2013 11:30 am Thomas Thrainer

Rename DRBD8 to DRBD8Dev

Right now the DRBD8 class has multiple responsibilities: a) it
reprensents a device which can be set up, grown, etc. and b) it
represents the whole DRBD system on a node which has a usermode helper,
which knows how to shut down all devices, etc. Therefore, the DRBD8Dev...

5bb0a1cb 05/06/2013 11:30 am Thomas Thrainer

Make DRBD version queryable from noded

gnt-cluster verify should issue a warning if there are multiple DRBD
versions present in a node group. In order to do so, the DRBD version
has to be queryable from noded.

Signed-off-by: Thomas Thrainer <>...

f2d87a5e 05/03/2013 04:47 pm Michele Tartara

Merge remote-tracking branch 'origin/stable-2.8'

Conflicts:
lib/bdev.py
lib/cmdlib.py

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

9db0b351 05/03/2013 03:25 pm Bernardo Dal Seno

Disk templates are "allowed" and not "enabled" in ipolicies

The way disk templates were displayed in instance policies became confusing
since the introduction of the enabled_disk_templates cluster parameter.

Fix issue 440.

Signed-off-by: Bernardo Dal Seno <>...

f73f3567 05/03/2013 03:23 pm Bernardo Dal Seno

Unit test for FillIPolicy keeping unknown keys

This makes sure that issue 401 doesn't come back.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Helga Velroyen <>

5519f036 04/29/2013 11:13 pm Bernardo Dal Seno

Merge branch 'stable-2.8' into master

  • stable-2.8: (42 commits)
    Add shelltests for hspace allocation
    hspace: Handle multiple ipolicy specs
    QA: Test multiple instance specs
    QA: Handle multiple instance specs
    Unit test for cli.FormatPolicyInfo()...
daec28a7 04/29/2013 07:05 pm Thomas Thrainer

Add command generator for DRBD 8.4

The DRBD84CmdGenerator class, which generates commands suited for DRBD
8.4, is added. A common baseclass for DRBD83CmdGenerator and
DRBD84CmdGenerator is introduced as well.

Signed-off-by: Thomas Thrainer <>...

74db37c0 04/29/2013 07:05 pm Thomas Thrainer

Add test for version dispatching code

Based on the version of DRBD (as reported through /proc/drbd), the DRBD8
class chooses helper objects which adapt for the differences between
DRBD <= 8.3 and DRBD 8.4. This new test verifies that the proper objects
are created....

873878b9 04/29/2013 07:05 pm Thomas Thrainer

Extract DRBD related tests

As the DRBD code was extracted from bdev.py, the corresponding tests
should as well be extracted into their own file. That's what this patch
performs.

Signed-off-by: Thomas Thrainer <>
Signed-off-by: Michele Tartara <>...

09a78e1c 04/29/2013 07:05 pm Thomas Thrainer

Extract command generation logic from DRBD8

In order to easily support the DRBD 8.4 command syntax, this patch
extracts all command generation logic (i.e. where calls to `drbdsetup`
are assembled) into a new class DRBD83CmdGenerator.

Signed-off-by: Thomas Thrainer <>...

5520d04d 04/29/2013 07:05 pm Thomas Thrainer

Add `drbdsetup show` parser for DRBD 8.4

Common functionality between the DRBD 8.3 and DRBD 8.4 parser has been
extracted into BaseShowInfo. A test which verifies the behaviour is
included, but the DRBD84ShowInfo class is not yet used within the DRBD8
class....

27d69b25 04/29/2013 07:05 pm Thomas Thrainer

Extract DRBD info parsing into drbd_info.py

Parsing the status (/proc/drbd) and `drbdsetup show` output takes quite
a bit of code, which has to be augmented by even more with the DRBD 8.4
support. So extract all the related classes into their own file.

Signed-off-by: Thomas Thrainer <>...

d01e51a5 04/29/2013 07:05 pm Thomas Thrainer

Extract DRBD8ShowInfo class

This class parses the `drbdsetup show` output and represents it in an
easily accessible format. It got extracted so that 1) the DRBD8 class
can focus more on DRBD logic rather than parsing and 2) it's easier to
adapt the parser to new formats....

efa6dd08 04/29/2013 07:05 pm Thomas Thrainer

Add test for DRBD 8.4 /proc/drbd parsing

The current parser already supports the output of DRBD 8.4 /proc/drbd,
so add tests which actually verify this behaviour.
Note that the empty lines in proc_drbd84.txt are actually present in the
output of DRBD 8.4, they always appear when minors are not contiguous....

d41efc42 04/29/2013 07:05 pm Thomas Thrainer

Add test for empty version in /proc/drbd

The previous patch removed a (rather implicit) test for /proc/drbd not
containing a version line. This adds an explicit test for this case.

Signed-off-by: Thomas Thrainer <>
Signed-off-by: Michele Tartara <>...

2fe690f1 04/29/2013 07:05 pm Thomas Thrainer

Extract /proc/drbd parsing code into DRBD8Info

As the DRBD8 class got bigger due to the previous merge of BaseDRBD, now
parts of it are ripped out into DRBD8Info. This new class parses
/proc/drbd and exposes the information in an easily accessible way. This...

fd300bc7 04/29/2013 07:05 pm Thomas Thrainer

Remove BaseDRBD

BaseDRBD was probably useful when DRBD 0.7 and DRBD 8 were supported.
However, there is only one subclass of BaseDRBD remaining (DRBD8), and
the separation of responsibilities between those two classes was rather
randomly chosen.

The unification into one class also eases the introduction of...

38396ae2 04/29/2013 07:04 pm Thomas Thrainer

Rename _MassageProcData to _JoinProcDataPerMinor

That's what the method actually does, so there is no reason why we
should use a funny but unreadable name.

Signed-off-by: Thomas Thrainer <>
Signed-off-by: Michele Tartara <>...

65978cb7 04/29/2013 06:54 pm Bernardo Dal Seno

Unit test for cli.FormatPolicyInfo()

We try to parse the string obtained by formatting a policy, and see if we
get the same policy.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Helga Velroyen <>