Statistics
| Branch: | Tag: | Revision:

root / lib / cmdlib.py @ 21004460

History | View | Annotate | Download (368.9 kB)

# Date Author Comment
574d1b7b 10/22/2010 03:19 pm Michael Hanselmann

LUSetInstanceParams: Remove unused attribute

“os_new” is not used anywhere, removing it.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

edb8b377 10/22/2010 11:41 am Iustin Pop

Fix typo introduced in 8d8c4ef

Commit 8d8c4ef broke instance reinstall with different OS, due to an
attribute typo.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

e725bee0 10/21/2010 02:17 pm Iustin Pop

Fix clearing of the default iallocator

And also update the man page.

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

8d8c4eff 10/21/2010 12:57 pm Michael Hanselmann

gnt-instance reinstall: Allow overriding OS parameters

This allows OS installation scripts to make use of special parameters,
e.g. to retain some data on reinstallation.

The RAPI resource is not updated as it takes all parameters via the
query string and encoding arbitrary data in a query string is tricky....

b44bd844 10/20/2010 07:18 pm Michael Hanselmann

Add option to ignore offline node on instance start/stop

In some cases it can be useful to mark as an instance as started
or stopped while its primary node is offline. With this patch,
a new option, “--ignore-offline”, is introduced to “gnt-instance
start” and “… stop”....

b18ecea2 10/19/2010 05:29 pm René Nussbaumer

Let gnt-cluster support prealloc_wipe_disks

This includes a new option gnt-cluster init and approriate output
on gnt-cluster info. Though gnt-cluster modify is not yet prepared.

Signed-off-by: René Nussbaumer <>
Reviewed-by: Iustin Pop <>

62e0e880 10/13/2010 02:44 pm Iustin Pop

Move the parameter types to their own module

This is for cleanup, and for later reuse in other parts of the code
(outside of LUs).

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

90224407 10/13/2010 12:59 pm Iustin Pop

Export more information via LUQueryInstances/RAPI

Currently, the custom instance parameters (hv, be, nicp) are only
queryable via LUQueryInstanceData. LUQueryInstance returns only the
filled parameters, thus its users (especially RAPI) have no way to know...

bd631b02 10/12/2010 06:25 pm Iustin Pop

Show instance state in instance console failures

The current message is not entirely clear, as it doesn't show the reason
why the instance is not running.

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

72884fef 10/05/2010 06:08 pm Michael Hanselmann

Merge branch 'devel-2.2'

  • devel-2.2:
    Add simple unittest for utils.CommaJoin
    LUDelTags: Improve formatting of error message
    LUGetTags: Acquire locks in shared mode
    gnt-cluster: Replace hardcoded “xenvg” with value retrieved from master
    Export VG name via LUQueryConfigValues...
9fc58eac 10/05/2010 05:59 pm Michael Hanselmann

Export VG name via LUQueryConfigValues

This will be used by LUXI client programs to display the VG name.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

60db9336 10/05/2010 05:59 pm Michael Hanselmann

LUGetTags: Acquire locks in shared mode

Retrieving tags can be done while the lock is shared. Only writing
needs to be exclusive.

Also add a FIXME for cluster tags, where the code currently doesn't
use any locks except the config lock.

Signed-off-by: Michael Hanselmann <>...

91c69b44 10/05/2010 05:59 pm Michael Hanselmann

LUDelTags: Improve formatting of error message

Use utils.CommaJoin to add spaces after comma, clean up code a bit.

Before: Tag(s) 'bar','baz','foo','moo' not found
After: Tag(s) 'bar', 'baz', 'foo', 'moo' not found

Signed-off-by: Michael Hanselmann <>...

cf10a26f 10/05/2010 12:23 pm Iustin Pop

Merge branch 'devel-2.2'

  • devel-2.2:
    Rename the _oss cluster vars to _os

Conflicts:
lib/objects.py (trivial, strange that this one, and only this one, conflicted)

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

87b2cd45 10/05/2010 12:11 pm Iustin Pop

Rename the _oss cluster vars to _os

Per the mailing list discussion, rename _oss to _os, both in cluster parameters
and in the rest of the code.

This is just an s/_oss/_os, with the exception of a small bit of cleanup
around the helper_os function in cmdlib.py....

df5758b1 10/05/2010 12:11 pm Iustin Pop

Merge branch 'devel-2.2'

  • devel-2.2:
    gnt-job info: Sort input fields
    KVM: Add function to check the hypervisor version
    Bump version to 2.2.0, update NEWS
    Fix instance rename regression from 3fe11ba3
    Fix instance rename regression from 3fe11ba3...
e964cc85 09/30/2010 08:23 pm Iustin Pop

Fix instance rename regression from 3fe11ba3

Committ 3fe11ba3 broke the instance rename as we don't use the FQDN
anymore. This fixes it.

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

21674464 09/30/2010 03:10 am Iustin Pop

Sort OS names and variants in LUDiagnoseOS

The OS list and variants as returned from LUDiagnoseOS is not sorted,
and gnt-instance reinstall doesn't sort it either. This means that it
the menu that users are present with is inconsistent across clusters,
and that is confusing....

d22dfef7 09/30/2010 03:10 am Iustin Pop

Change behaviour of OpDiagnoseOS w.r.t. 'valid'

This patch changes the behaviour of OpDiagnoseOS with regards to the
'valid' field to be similar to the one for the hidden/blacklisted
fields: unless this field is requested, invalid OSes are filtered out.
...

61a14bb3 09/30/2010 03:10 am Iustin Pop

Allow gnt-os modify to change the new OS params

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

cd14c16c 09/30/2010 03:10 am Iustin Pop

Add two more _T-type tests

These are useful for more in-depth checking of some kinds of arguments.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

c950e9f2 09/30/2010 03:10 am Iustin Pop

Add blacklisted/hidden OS support in LUDiagnoseOS

This changes the behaviour of LUDiagnoseOS significantly.

The addition of hidden/blacklisted OSes would mean that each user-facing
client would have to filter intentionally such OSes from display, which
is not a good choice. Rather, the patch makes LUDiagnoseOS not return...

fc31fadd 09/30/2010 03:10 am Iustin Pop

Restrict blacklisted OSes in instance installation

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

870dc44c 09/30/2010 03:09 am Iustin Pop

Abstract OS name/variant functions

Currently, the computation of the 'pure' name or the variant is
hardcoded and spread around the functions that need it. This is not
nice, and in the future we'd spread it even more with more usage of
variants/pure os names....

f0ca837f 09/20/2010 04:14 pm René Nussbaumer

Ignore failures while shutting down instances during failover from offline node

Don't abort failover if instance shutdown doesn't work on a node marked
offline. The node is offline, so the instances living on it are too. Before
you had to use --ignore-consistency to archieve that....

2bc27b91 09/16/2010 01:56 pm Michael Hanselmann

Merge branch 'devel-2.2'

  • devel-2.2:
    QA: Test more tag operations via RAPI
    qa_rapi: Fix indentation error
    opcode summary: improve display for list summaries
    cmdlib: Fix type of “name” parameter for tag operations
    rlib2: Set tag operation param “name” to None for cluster tags...
bf2ace9f 09/15/2010 10:48 pm Michael Hanselmann

cmdlib: Fix type of “name” parameter for tag operations

The parameter “name” is be None for cluster tags.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

5fbbd028 09/14/2010 07:49 pm Guido Trotter

Add nodegroup option to AddNode

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

190e3cb6 09/14/2010 07:49 pm Guido Trotter

Add node's nodegroup field

If a node doesn't have a node group we'll upgrade the config making it
the cluster default. Also the node add and removal operations are
changed to set/clear the node group correctly. Finally we populate the
"members" list of nodegroups on config load with the value from the...

ae8419a2 09/07/2010 01:07 pm Michael Hanselmann

Merge branch 'devel-2.2'

  • devel-2.2:
    cli: Use list of options shared between commands
    jqueue: Use separate function for encoding errors
    Fix some epydoc warnings
    Fix breakage introduced by commit 8044bf655
    Remove “dry_run” from opcodes.OpCreateInstance...
bd2475e2 09/02/2010 07:43 pm Michael Hanselmann

Fix breakage introduced by commit 8044bf655

Note to self: even patches removing one line can break everything.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Manuel Franceschini <>

ea8ac9c9 08/23/2010 03:40 pm René Nussbaumer

Switch to the RPC call to update /etc/hosts in LUAddNode and LURemoveNode

Signed-off-by: René Nussbaumer <>
Reviewed-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

8f9069e5 08/23/2010 01:39 pm Iustin Pop

Merge branch 'devel-2.2'

  • devel-2.2:
    setup-ssh: fix updating of authorized_keys
    setup-ssh: Also use keys from the ssh-agent
    setup-ssh: try to use key auth first
    setup-ssh: redo the logging levels
    setup-ssh: only read the ssh port once
    setup-ssh: fix the logging error message...
51b13ce9 08/23/2010 01:31 pm Manuel Franceschini

Support IPv6 for instances

Signed-off-by: Manuel Franceschini <>
Reviewed-by: Iustin Pop <>

7c4c22f5 08/20/2010 04:12 pm Manuel Franceschini

gnt-node add: add error msg when using IPv6

Signed-off-by: Manuel Franceschini <>
Reviewed-by: Michael Hanselmann <>

29eddf2d 08/19/2010 05:02 pm Guido Trotter

Merge branch 'devel-2.1' into devel-2.2

  • devel-2.1:
    Don't ignore secondary node silently

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

af5970ab 08/19/2010 04:55 pm Guido Trotter

Don't ignore secondary node silently

Currently on non-mirrored disk templates the secondary node is ignored
silently. This patch adds a check for this case, and warns the user
should this be happening. This solves issue 113.

The patch also moves a prereq check to an argument check. This is ok...

e8d61457 08/19/2010 03:12 pm René Nussbaumer

Removing all ssh setup code from the core

Signed-off-by: René Nussbaumer <>
Reviewed-by: Iustin Pop <>

b43dcc5a 08/19/2010 12:44 pm Manuel Franceschini

Support IPv6 node add

Signed-off-by: Manuel Franceschini <>
Reviewed-by: Iustin Pop <>

e7323b5e 08/19/2010 12:44 pm Manuel Franceschini

Support IPv6 cluster init

Signed-off-by: Manuel Franceschini <>
Reviewed-by: Iustin Pop <>

0f979a34 08/18/2010 07:59 pm Guido Trotter

Merge branch 'devel-2.2'

  • devel-2.2:
    RAPI client: Support modifying instances
    RAPI: Allow modifying instance
    Small fixes for instance creation via RAPI documentation
    gnt-debug: Extend job queue tests
    jqueue: Mark opcodes following failed ones as failed, too...
f99010b2 08/18/2010 02:21 pm Michael Hanselmann

gnt-debug: Extend job queue tests

Test multiple opcodes, also with failure.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

b705c7a6 08/18/2010 11:27 am Manuel Franceschini

Support for resolving hostnames to IPv6 addresses

This patch enables IPv6 name resolution by using socket.getaddrinfo
instead of socket.gethostbyname_ex.

It renames the HostInfo class to Hostname and unifies its use throughout
the code. This is achieved by using static calls where no object is...

8b312c1d 08/18/2010 11:26 am Manuel Franceschini

Introduce new IPAddress classes

This patch unifies the netutils functions dealing with IP addresses to
three classes:
- IPAddress: Common IP address functionality
- IPv4Address: IPv4 specific functionality
- IPv6address: IPv6-specific functionality

Furthermore it adds methods to check whether an address is a loopback...

46d2d8a2 08/17/2010 03:36 pm Iustin Pop

Re-add the 'live' parameter to migration opcodes

This patch reintroduces the live parameter, for backwards compatibility
at the Luxi level. This way, clients can work transparently with both
2.1 and 2.2, even though sub-optimally.

Signed-off-by: Iustin Pop <>...

71ca6309 07/30/2010 06:32 pm Michael Hanselmann

cmdlib: Change expected type for source CA on remote import

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

c28502b1 07/28/2010 11:37 pm Iustin Pop

Rename masterfailover to master-failover

Most (all?) of our commands use dash-separator: replace-disks,
verify-disks, add-tags, etc. “gnt-cluster masterfailover” is an old
exception to this rule.

The patch replaces it with master-failover, add a compatiblity alias,...

6a016df9 07/28/2010 07:10 pm Michael Hanselmann

cmdlib: Return new name from rename operations

The new name is then displayed by the clients.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Manuel Franceschini <>

3fe11ba3 07/28/2010 06:40 pm Manuel Franceschini

gnt-instance rename: Fix bug and rename params

This patch fixes a bug when gnt-instance rename was invoked with
--no-name-check. It renames the internal variables to be consistent with
the ones in equivalent instance add code. Furthermore it checks whether...

f38ea602 07/26/2010 05:55 pm Iustin Pop

Add modification of the reserved logical volumes

This doesn't allow addition/removal of individual volumes, only
wholesale replace of the entire list. It can be improved later, if we
ever get generic container parameters.

The man page changes replaces some tabs with spaces (hence the...

5a3ab484 07/26/2010 05:54 pm Iustin Pop

Add printing of reserved_lvs in cluster info

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

999b183c 07/26/2010 05:54 pm Iustin Pop

Introuce a new cluster parameter - reserved_lvs

This parameter, which is a list of regular expression patterns, will
make cluster verify ignore any such LVs. It will not prevent creation or
removal of such volumes by the backend code.

Signed-off-by: Iustin Pop <>...

8c35561f 07/23/2010 08:26 pm Iustin Pop

Rename the OpMigrate* parameter 'live' to 'mode'

This is needed as now the parameter is no longer boolean, but tri-state.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

783a6c0b 07/23/2010 08:26 pm Iustin Pop

Rename migration type to migration mode

This is in preparation for the rename of the opcode 'live' parameter to
'mode'.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

089e5e50 07/22/2010 08:33 pm Iustin Pop

Merge branch 'devel-2.1' into master

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

6e04dc39 07/22/2010 08:21 pm Iustin Pop

Fix issue when changing the disk template to drbd

If we pass the current primary node, the conversion will fail horribly
with LVM creation errors. Instead, we catch and check for this
condition in CheckPrereq.

Signed-off-by: Iustin Pop <>...

0ad22aab 07/16/2010 06:59 pm Luca Bigliardi

Fix epydoc warning "Lists must be indented."

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Michael Hanselmann <>

067d927b 07/16/2010 03:05 pm Michael Hanselmann

Fix pylint complaints introduced in commit e58f87a958c

Due to a small mistake I missed three non-critical pylint complaints for
commit e58f87a958c. They're fixed with this patch.

Signed-off-by: Michael Hanselmann <>
Signed-off-by: Iustin Pop <>...

e71b9ef4 07/16/2010 10:46 am Iustin Pop

Add a migration type global hypervisor parameter

Since migration live/non-live is more stable (e.g.) for Xen-PVM versus
Xen-HVM, we introduce a new parameter for what mode we should use by
default (if not overridden by the user, in the opcode).

The meaning of the opcode 'live' field changes from boolean to either...

e58f87a9 07/15/2010 07:27 pm Michael Hanselmann

Add test for some aspects of job queue

This new opcode and gnt-debug sub-command test some aspects of the
job queue, including the status of a job. The bug fixed in commit
2034c70d507 was identified using this test. A future patch will
run this test automatically from the QA scripts....

9dd6889b 07/15/2010 07:18 pm Luca Bigliardi

LUVerifyCluster: update _ValidateNode description

Change _ValidateNode description to reflect what the function actually does.

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Iustin Pop <>

926feaf1 07/12/2010 06:59 pm Manuel Franceschini

Use reserved documentation IPs and domains

Use RFC 5737 IP addresses and RFC 2606 domain names in all
unittests, docs, qa and docstrings.

Signed-off-by: Manuel Franceschini <>
Reviewed-by: Iustin Pop <>

7b4c1cb9 07/12/2010 05:32 pm Michael Hanselmann

Provide feedback function for all LU methods

By exposing mcpu's _Feedback function (now renamed to “Log”) to LU's,
methods like ExpandNames can also write to the job execution log.

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Iustin Pop <>

a744b676 07/09/2010 04:37 pm Manuel Franceschini

Introduce lib/netutils.py

This patch moves network utility functions to a dedicated module.

Signed-off-by: Manuel Franceschini <>
Reviewed-by: Iustin Pop <>

4ea3de4e 07/08/2010 06:57 pm Balazs Lecz

Add oper_vcpus instance status field

This introduces a new instance status field, named "oper_vcpus".
It contains the actual number of VCPUs an instance is using as
seen by the hypervisor.

Signed-off-by: Balazs Lecz <>
Reviewed-by: Iustin Pop <>

1c1b3cab 07/08/2010 04:45 pm Apollon Oikonomopoulos

LUCreateInstance: use cluster-wide iallocator

LUCreateInstance uses the cluster-wide default iallocator if no iallocator or
primary node is specified manually.

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Iustin Pop <>...

63ac47cc 07/08/2010 04:45 pm Apollon Oikonomopoulos

LUNodeEvacuationStrategy: Use default iallocator

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Iustin Pop <>
Reviewed-by: Iustin Pop <>

bf4af505 07/08/2010 04:45 pm Apollon Oikonomopoulos

Add default_iallocator cluster parameter

Add a cluster parameter to hold the iallocator that will be used by default
when required and no alternative (manually-specified iallocator or
manually-specified node(s)) is given.

Signed-off-by: Apollon Oikonomopoulos <>...

b6dd40f5 07/08/2010 04:45 pm Apollon Oikonomopoulos

Add _CheckIAllocatorOrNode for common iallocator/node checks

_CheckIAllocatorOrNode will be called by LUs wishing to use an instance
allocator or a target node. It performs sanity checks and will modify the LU's
opcode's iallocator slot to use the cluster-wide allocator if...

44247302 07/06/2010 07:05 pm Iustin Pop

Rework the export failure handling

Currently, the way to signal export failures is by the return value.
This means that if a client doesn't check the values (e.g. burnin), any
failure is being ignore. And this is what we've been doing forever in
burning (not actually testing that the export is successful)....

d1871275 07/06/2010 12:25 pm Luca Bigliardi

Report drbd helper in query info LU

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Iustin Pop <>

7b2cd2b4 07/06/2010 12:25 pm Luca Bigliardi

Check and set drbd helper in set params LU

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Iustin Pop <>

15cf9cbb 07/06/2010 12:24 pm Luca Bigliardi

Check drbd usermode helper in cluster verify

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Iustin Pop <>

51cb1581 07/06/2010 12:24 pm Luca Bigliardi

Generalize a recursive check on logical disks

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Iustin Pop <>

d3ce528b 07/05/2010 02:59 pm Iustin Pop

OpCreateInstance: do not require hv/be/os params

It is perfectly legal to create an instance using only defaults
(although beparams will be most times passed in), so let's relax the
requirement for these three parameters.

Signed-off-by: Iustin Pop <>...

3d16a983 07/02/2010 06:01 pm Iustin Pop

A few more type definitions

This is to simplify the type declarations in the actual LUs.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

e7736336 07/02/2010 06:01 pm Iustin Pop

Make _CheckDiskTemplate a valid type checker

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

b8812691 07/02/2010 06:01 pm Iustin Pop

Rework the "type" system

This patch merges the _OP_REQP and _OP_DEFS class attributes into a
_OP_PARAMS list, which holds both. The associated unittest checks that
all opcode attributes are declared and checked, and that no LU uses the
old fields (could be removed later)....

7486d752 07/02/2010 06:01 pm Iustin Pop

Remove _CheckBooleanOpField

This is no longer used, and we can remove it.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

801b6a33 07/01/2010 05:31 pm Guido Trotter

Merge branch 'stable-2.1'

  • stable-2.1:
    Bump up version for 2.1.5 release
    RapiClient: fix multi-authentication in Python 2.6
    Remove rapi-user and rapi-pass from qa-sample.json
    qa: fix gnt-instance modify -t drbd
    qa: shutdown instance before trying disk convert...
1a1296c8 07/01/2010 01:20 pm Guido Trotter

Fix check in gnt-instance modify -t

Currently when changing the instance disks the instance status (which
must be down) is only checked if the target status is among the mirrored
ones. This is incorrect: the instance must be down either way, even if
the desired final status is non-mirrored....

9c5885e2 07/01/2010 12:28 pm René Nussbaumer

Adding check_name option to the opcode and luxi call for instance rename

This will allow instance rename without dns check as it does for instance
add.

Signed-off-by: René Nussbaumer <>
Reviewed-by: Iustin Pop <>

c0c3fa27 06/30/2010 02:32 pm Manuel Franceschini

Introduce utils.IsValidIP{4,6}()

This patch introduces functions to check for valid IPv4 and IPv6
addresses and converts IsValidIP() to return True if it is either a IPv4
or a IPv6 address.

For now we do not change the functional behavior and replace IsValidIP...

0fbd4b02 06/30/2010 01:55 pm Manuel Franceschini

Fix osparams bug when gnt-cluster modify'ing

Commit 625ac1135834c27a2e78fd61bf2df2ce29ad2966 introduced 'osparams'
slot in OPSetClusterParams which was not passed when invoked via
gnt-cluster modify.

Signed-off-by: Manuel Franceschini <>...

d12f5c66 06/28/2010 04:25 pm Iustin Pop

Fix a type declaration error in LUTestAllocator

Also, improve logging of type errors, to ease debugging.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

403f5172 06/28/2010 02:04 pm Guido Trotter

Remove pred from compat.any/all

This makes it compatible with the python builtin, and we can even use
the builtin when running under the right version of python. The all and
any functions are renamed to _all and _any, so that they can be tested,
and (non)existing unittests are updated (translation: there are no unit...

72db3fd7 06/28/2010 01:46 pm Iustin Pop

Two more fixes for OS params and opcode defaults

If the OS is not using API v20, the parameter verification should be
entirely skipped.

The second change is a simple typo.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

40684c3a 06/25/2010 06:36 pm Iustin Pop

Fix breakage due to OS parameters

I was using wrong python installation path (thanks Guido!), so I was not
actually testing the new backend.py module. Two immediate things bugs
are fixed, and after these burnin passes again…

Signed-off-by: Iustin Pop <>...

3b08cd1c 06/24/2010 01:56 pm Apollon Oikonomopoulos

Introduce constants.DTS_MAY_ADOPT

DTS_MAY_ADOPT include disk templates that may use disk adoption and will be
used in all respective checks.

Signed-off-by: Apollon Oikonomopoulos <>
Signed-off-by: Iustin Pop <>
Reviewed-by: Iustin Pop <>

f8f590c8 06/24/2010 01:46 pm Guido Trotter

Convert TestDelay repeat to the type system

Turns out with the current implementation of the type system a variable
can both be required and not required. Interesting (but perhaps worth a
further look).

Signed-off-by: Guido Trotter <>...

adb6d685 06/23/2010 07:24 pm Iustin Pop

Rename some constants and relax pylint rules

For the type system, we want a slightly relaxed rule for constant
naming, so we update the pylint rule. But the old _TPInt and _TNEString
were not clear enough, so we expand them.

Signed-off-by: Iustin Pop <>...

3636400f 06/23/2010 07:24 pm Iustin Pop

Introduce a micro type system for opcodes

Currently, we have one structual validation for opcode attributes: the
_OP_REQP, which checks that a given attribute is not 'None', and the
rest of the checks are done at runtime. This means our type system has
two types: None versus Not-None....

3e512563 06/23/2010 07:24 pm Iustin Pop

LU.CheckPrereq: do not require implementation

Currently, the base class LogicalUnit's CheckPrereq will raise
NotImplementedError, which means that the child LUs have to implement
it. However, many LUs don't actually have a need for this function
(hence the many "pass" statements as the only body)....

3494b9f6 06/23/2010 07:24 pm Iustin Pop

Some more CheckPrereq/CheckArguments cleanup

For a few LUs, a few tests in, or even the whole CheckPrereq, can be
moved to CheckArguments, as they don't touch state and only do a 'type'
validation.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

b0d85178 06/23/2010 07:23 pm Iustin Pop

Add OS verification support to cluster verify

For this, we needed to extend the NodeImage class with a few extra
variables, and we do a trick in the node verification where we pick the
first node that returned valid OS data as the reference node, and then...

a8c931c0 06/23/2010 07:23 pm Iustin Pop

Move opcode attribute defaults to data structures

LUExportInstance had two opcode fields set to default via both
_CheckBooleanOpField and getattr(…, False).

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

9ade2eda 06/23/2010 07:23 pm Iustin Pop

Cleanup LU.ExpandNames versus CheckArguments

When LogicalUnit.CheckArguments was introduced, not all code dealing
with static argument checking was moved to it; many of these checks were
left in ExpandNames. With time, most of them migrated, and this patch...

989ba0c4 06/23/2010 07:23 pm Iustin Pop

Abstract export mode validity check

The export mode is checked in two places with the exact same code…

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

8de1f1ee 06/23/2010 07:23 pm Iustin Pop

Remove the obsolete EvacuateNode OpCode/LU

All code has been switched to the new-style LU… time for cleanup.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

bad78e66 06/23/2010 07:23 pm Iustin Pop

LUDiagnoseOS: add more fields, cleanup

This patch exports all the way from backend a new field ‘api_version’
which holds the list of support API versions, and exposes the (already
computed) ‘parameters’ field.

The patch also reworks (again) the field calculation in its Exec()...