Statistics
| Branch: | Tag: | Revision:

root / lib / cmdlib.py @ c9673d92

History | View | Annotate | Download (176.9 kB)

# Date Author Comment
49ce1563 06/01/2008 02:52 am Iustin Pop

Add check for node memory in instance creation

Currently the check for enough memory is done only on instance start
command and failover command. But we also start an instance in instance
create, therefore we need to check this instead of failing to start in...

8a12ce45 06/01/2008 02:51 am Iustin Pop

Show cluster hypervisor for gnt-cluster info

Author: schreiberal
Reviewed-by: iustinp

ec1ba002 06/01/2008 02:45 am Iustin Pop

Forward-port: make gnt-modify work with new HVM parameters

This fixes gnt-instance modify so it actually works with the
new HVM parameters for Ganeti 1.2

Author: schreiberal
Reviewed-by: iustinp

a8340917 06/01/2008 02:43 am Iustin Pop

Forward-port: show only parameters relevant to the instance

This patch modifies the code for "gnt-instance info .." to only display
instance parameters that actually apply to that instance, i.e. for PVM
instances no HVM parameters are shown and vice versa....

31a853d2 06/01/2008 02:14 am Iustin Pop

Forward-port: patch 2/4 extended HVM features for 1.2

This patch adds the commandline extensions and the code to store
and display the extended HVM features.

Author: schreiberal
Reviewed-by: iustinp

abdf0113 05/30/2008 01:55 pm Iustin Pop

Complete removal of md/drbd 0.7 code

This patch removes the last of the md and drbd 0.7 code. Cluster which
have the old device types will be broken if they have this applied.

Reviewed-by: imsnah

5c54b832 05/30/2008 01:52 pm Iustin Pop

LURemoveInstance: fix op.ignore_failures usage

Currently: the LURemoveInstance.Exec() method uses the ignore_failures
attribute of the OpRemoveInstance opcode, but it doesn't check for its
existence. The patch adds this attribute to _OP_REQP and to all the...

9d4bfc96 05/13/2008 05:33 pm Iustin Pop

Implement node daemon conectivity tests

This patch adds in gnt-cluster verify checks for inter-node tcp
communication checks on the node daemon port for both the primary and
(if defined) secondary networks.

The output looks like (4-node cluster, one with the secondary interface...

102b115b 05/13/2008 05:26 pm Michael Hanselmann

Forward-port changes made to readd in 1.2

qa_node.py: Fix typo in message
cmdlib.py: Don't add readded node to node list
ganeti-qa.py: Make sure readd isn't done for master node

Reviewed-by: iustinp

243cdbcc 05/07/2008 02:12 pm Michael Hanselmann

Use new ssconf function to check configuration version

Upgrades will be handled in future patches.

Reviewed-by: iustinp

4337cf1b 05/05/2008 01:03 pm Iustin Pop

Export the number of cpus to iallocator scripts

Now that we have the number of cpus available from the hypervisors, we
can export this to the iallocator scripts.

Reviewed-by: ultrotter

e8a4c138 05/05/2008 01:01 pm Iustin Pop

Add node cpu count to gnt-node list

This patch adds the backend and frontend changes needed for being able
to list the cpu count.

Reviewed-by: ultrotter

d8fff41c 04/30/2008 12:29 pm Guido Trotter

Add cluster-verify hooks

Only post-hooks are run on cluster verify, and then their output is sent back
to the LU, which upon failure displays it to the user and changes the result of
the execution to a failure.

Reviewed-by: iustinp

1fce5219 04/30/2008 12:29 pm Guido Trotter

Add a LU Hooks notification function

Previously LUs could be failed by pre-hooks, and post-hooks just had effects by
themselves. This patch allows a LU to define the HooksCallBack function if it
wants to know about its hooks' results and alter its results in response....

10cd4a29 04/30/2008 12:29 pm Guido Trotter

Remove NoHooksLU.BuildHooksEnv

Since NoHooksLU defines HPATH as None, BuildHooksEnv will never be called (as
the LogicalUnit.BuildHooksEnv docstring correctly states). Removing the
function altogether, to avoid having dead code lying around, and to make sure...

8a3fe350 04/30/2008 12:29 pm Guido Trotter

LogicalUnit.BuildHooksEnv, update docstring

The LogicalUnit.BuildHooksEnv docstring used to say that the node list should
not include the master node. This is obviously not the case checking the
relevant code, and double-checking with iustin he confirmed it just document...

b6023d6c 04/28/2008 06:24 pm Manuel Franceschini

Raise PrereqError when exporting file-based instance

This patch adds a check to LUExportInstance.CheckPrereq to raise an
error when an instance with file disks is exported.

Reviewed-by: ultrotter

685ee993 04/28/2008 04:01 pm Iustin Pop

Convert cli.SubmitOpCode to use the master

This patch converts the cli.py SubmitOpCode method to use the unix
protocol and thus execute the opcodes via the master.

The patch allows a partial burnin to work with the master. Currently the
query opcodes, since they are executed via the SubmitOpCode, are...

8d528b7c 04/28/2008 12:47 pm Iustin Pop

Move iallocator script execution to ganeti-noded

Currently the iallocator execution takes place in the master, which is a
violation of the current architecture, and will create problems with a
threaded master daemon.

This patch moves the execution to the backend, similar to the hooks...

768f0a80 04/28/2008 12:47 pm Iustin Pop

Fix iallocator instance info

The commit "IAllocator: some more info exported" broke the instance list
generation due to a wrong index variable. This patch fixes that.

Reviewed-by: ultrotter

6286519f 04/25/2008 03:07 pm Iustin Pop

IAllocator: some more info exported

This patch adds the following information to the exported info:
- hypervisor type (in the main dict)
- total memory used by primary instances (in each node dict) (can be
computed from the node+instance dicts, but it's cheap to compute...

b2662e7f 04/25/2008 03:07 pm Iustin Pop

IAllocator: simplify node info computation

Currently we try to convert the values returned by call_node_info to
ints, and if all succeed, we actually do the conversion. Simplify this
by doing it in one step.

The patch also adds exporting of node memory as 'reserved_memory'....

b4de68a9 04/24/2008 05:39 pm Iustin Pop

Style fixes for trunk

This small patch fixes:
- wrong indentation in two places
- use of 'os' variable that hides global scope os module

Reviewed-by: imsnah

b6e82a65 04/24/2008 02:13 pm Iustin Pop

Implement replace secondary via the iallocator

This patch implements secondary replace via the iallocator. The new
opcode parameter 'iallocator' behaves like this: if passed, it will
always compute and assign a new secondary, behaving in effect as if the...

29859cb7 04/24/2008 10:29 am Iustin Pop

Fix generalized relocate mode of IAllocator

The patch which generalized the IAllocator was half-true: it actually
put the selection of the node inside the IAllocator, so callers were not
able to specify replace primary node.

This patch does:
- split the arguments to the constructor in three sets: mode and name...

9ac99fda 04/23/2008 05:51 pm Guido Trotter

Add gnt-backup remove functionality

This patch also fixes the LUExportInstance Prereq docstring.

Reviewed-by: iustinp

2a139bb0 04/23/2008 03:05 pm Iustin Pop

Generalize the replace_secondary mode in iallocator

Currently the replace_secondary mode is too restrictive. This patch
changes this to a general 'relocate' mode where the node(s) to be
changed are specified via a new key in the request dict ('nodes') so...

27579978 04/23/2008 02:03 pm Iustin Pop

Send required_nodes field to the iallocator scripts

This patch adds the 'required_nodes' field in the request dict for the
iallocator.

This means that the handmade-checks in the create instance can be
simplified, and that the dumb allocator can be made simple. Therefore...

d1c2dd75 04/23/2008 01:57 pm Iustin Pop

Move all iallocator functions into a class

This patch moves all the iallocator function into a separate class that
is then somewhat easier to use. It doesn't bring any new functionality.

The patch also changes the way the iallocator is called - the
OpTestAllocator opcode is no longer needed, and all its parameters...

8d14b30d 04/21/2008 04:04 pm Iustin Pop

Abstract the json functions into a separate module

This simple patch adds a new module that holds the simplejson functions
for serialization/deserialization. This reduces the amount of redundant
code.

The patch also adds some normalizations to the json output:...

e7c6e02b 04/16/2008 09:22 pm Michael Hanselmann

Add --readd option to “gnt-node add”

This allows us to readd a node after it failed and required a
reinstallation or replacement.

Reviewed-by: iustinp

538475ca 04/16/2008 04:57 pm Iustin Pop

IAllocator part 3: LUCreateInstance changes

This (final) patch allows the instance's nodes to be selected
automatically based on the passed allocator algorithm.

The patch changes the pnode opcode parameter from required to optional,
now either the pnode or the iallocator must be passed....

901a65c1 04/16/2008 04:56 pm Iustin Pop

Reorder checks in instance create

This patch reorders the checks in the instance create prereq so that all
checks and normalisations that are not node-dependent are done before
the node dependent checks.

This is done so that, after the instance-related opcode parameters are...

298fe380 04/16/2008 04:56 pm Iustin Pop

Implement 'out' direction on allocator tests

This patch adds the paths for searching for instance allocators and
makes the LUTestAllocator code run the allocator and return the results
if the direction specified is 'out'. 'out' means that the opcode will...

d61df03e 04/16/2008 04:56 pm Iustin Pop

Allocator framework, 1st part: allocator input generation

In preparation for the introduction of automatic instance allocator,
this patch adds an allocator simulation opcode, that based on the input
parameters, will return either the input message to the allocator...

b62ddbe5 04/15/2008 07:12 pm Guido Trotter

Fix two pylint uninitialized variable errors

Reviewed-by: iustinp

c09f363f 04/15/2008 05:47 pm Manuel Franceschini

Bugfix: wrong identifier in CheckPrereq message

Reviewed-by: iustinp

e2fe6369 04/15/2008 03:34 pm Iustin Pop

Move the disk size computation to its own function

This is currently hard-coded for the two drive case and will need to be
reworked for multi-disk support.

The patch is needed to support passing the total required size to the
iallocator interface.

Reviewed-by: ultrotter

e54c4c5e 04/10/2008 08:04 pm Guido Trotter

Verify: make skipping checks possible

Add a general way to skip some checks at cluster-verify time and make the N+1
memory redundancy check optional.

Reviewed-by: iustinp

2b3b6ddd 04/10/2008 08:04 pm Guido Trotter

Verify: add N+1 Memory redundancy verification

For every node we check that we can host all the instances it's currently
secondary for belonging to the same primary. This ensures that if a node fails
all its instances can fit on their secondary node. The code only works when...

26b6af5e 04/10/2008 08:03 pm Guido Trotter

Verify: save instance config

Save the instance config after we queried it in an instance_cfg dict. This can
be used later by any function that wants it, without reloading it from the
configuration module. It will be used for N+1 memory resilience checking....

36e7da50 04/10/2008 08:03 pm Guido Trotter

Verify: add more instance information to node_info

The sisnt-by-pnode field contains all secondary instances of a node, grouped by
their primary node. This information allows us to see quickly if when a node
dies some of its instances cannot be started on their secondary node....

93e4c50b 04/10/2008 08:03 pm Guido Trotter

Verify: add instance information to node_info

With this patch node_info is changed to store information about which primary
and secondary instances are configured on a node. This information is useful to
check memory and disk allocation. A list of non-redundant instances is also...

9c9c7d30 04/10/2008 08:03 pm Guido Trotter

Verify: Add and populate node_info dict

During information gathering we collect information from call_node_info, and
then when we cycle trough the nodes add it into a node_info dict containing a
node's free memory and disk. This will be useful later to verify that the...

1f9430d6 04/10/2008 07:38 pm Iustin Pop

Rework the results of OpDiagnoseOS opcode

Currently, the opcode DiagnoseOS is the only opcode that return a
structure of objects.OS (which is a custom class, and not a simple
python object) and furthermore all the processing of OS validity across
nodes is left to the clients of this opcode....

ceb76b36 04/10/2008 01:18 pm Guido Trotter

Verify: remove useless check in _VerifyInstance

The list of instances passed to _VerifyInstance is the one coming from
self.cfg.GetInstanceList(). So there's no point, inside that function, in
checking whether the current instance is a member of that list. Moreover...

c5705f58 04/10/2008 01:18 pm Guido Trotter

Verify: instance verification cleanup

The instance configuration is grabbed both in the _VerifyInstance function and
in the loop that calls it. Clean this up by passing the configuration as a
parameter.

Reviewed-by: imsnah

a872dae6 04/10/2008 01:18 pm Guido Trotter

Verify: fix crash when a node is down

Currently if ganeti-noded doesn't respond on a node gnt-cluster verify will die
when verifying primary instances for that node. Fix this by just emitting an
error message if no information about running instances is returned from the...

c840ae6f 04/10/2008 01:18 pm Guido Trotter

Verify: fix ERROR message indentation

All ERROR messages in cluster verify are indented by four spaces, this one is
indented by two. Fixing this skew.

Reviewed-by: imsnah, iustinp

16687b98 04/10/2008 12:12 pm Manuel Franceschini

Small code style fix

Reviewed-by: imsnah

2c313123 04/09/2008 08:45 pm Manuel Franceschini

Bugfix instance create when file-storage-dir None

os.path.join does not like None as argument and fails with
AttributeError: 'NoneType' object has no attribute 'startswith'.

This patch makes sure the passed argument is a string in any case.

Reviewed-by: iustinp

1c6e3627 04/08/2008 07:28 pm Manuel Franceschini

Two small code style fixes

Reviewed-by: imsnah

b23c4333 04/08/2008 07:00 pm Manuel Franceschini

Modify LURenameInstance to support file backend

This patch does two things:
- Modify LURenameInstance.Exec to rename directory
when a file-based instance is renamed
- Modify config.RenameInstance() to replace the directory name in
config.data for file devices...

0f1a06e3 04/08/2008 07:00 pm Manuel Franceschini

Modify LUCreateInstance to support file backend

- Modfiy _GenerateDiskTemplate to support file-based disk template
- Modify _CreateDisks to create directory needed for file-based
instances before creating the actual files
- Modify _RemoveDisks to delete directory for file-based instances...

aa9d0c32 04/02/2008 09:32 pm Guido Trotter

Improve disk consistency error message again

This new version includes all the possible failure options.

Reviewed-by: iustinp

ad6d3f7d 04/02/2008 09:06 pm Guido Trotter

Fix misleading error message when checking disks

_CheckDiskConsistency outputs "Can't get any data from node NODE" when no drbd
is found on the target node. This causes a misleading error message to be
output for example on failover (when the primary node is down, or the instance...

a0aaa0d0 04/02/2008 09:05 pm Guido Trotter

Handle better failing over non-running instances

Right now if you try to failover an instance which is not marked as up the
operation will fail unless you pass the --ignore-consistency flag because the
disks won't be considered to be consistent. Allow them to be if we know the...

fb300fb7 04/02/2008 09:05 pm Guido Trotter

Improve export and fix export-on-norun bug

Currently gnt-backup export chains the ShutdownInstance and StartupInstance
opcodes to itself. This works but (a) it's suboptimal, because there's no need
to deactivate the instance's disks as we are about to restart it anyway, and...

12a0cfbe 04/02/2008 01:01 pm Guido Trotter

failover: only start instance if we should

gnt-instance failover on an instance marked as down will mistakenly bring it
up. The watcher will then shut it down again, but it's a lot better (and safer)
not to start it at all.

Reviewed-by: imsnah

5f83e263 03/31/2008 05:39 pm Iustin Pop

Change the 'gnt-cluster command' execution order

This patch makes the command execute last on the master (if the master
is selected). The order for the other nodes is unchanged.

The patch also updates the man page with some explanations and an
example.
...

7767bbf5 03/31/2008 03:04 pm Manuel Franceschini

parms->params Refactoring

- Substitute all occurences of name 'parms' with 'params'
- Small codestyle fix

Reviewed-by: ultrotter

efa14262 03/31/2008 01:59 pm Manuel Franceschini

Skip HasValidVG when --no-lvm-storage on cluster init

This patch does two things:
- Remove "vg_name" from _OP_REQP due to the introduction of
--no-lvm-storage. Since vg_name option has as default now None and is
only set to the DEFAULT_VG if lvm_storage is enabled, this is needed...

8084f9f6 03/31/2008 01:59 pm Manuel Franceschini

Add LUSetClusterParams to cmdlib

Add LUSetClusterParams, which is the LU to modify cluster options.
This includes checks:
- not to disable lvm storage when it's already disabled
- not to enable lvm storage when it is already enabled
- not to disable lvm when lvm-based instances are present...

eedc99de 03/31/2008 01:57 pm Manuel Franceschini

Add lvm-storage check when creating instances

This adds a check to fail instance creation if lvm-storage is disabled
(cluster-wide). If lvm-storage is disabled (by initializing the cluster
with --no-lvm-storage) only instances with disk template in frozenset...

fe482621 03/30/2008 05:54 pm Iustin Pop

Change the order of config updates in some LUs

In the start and stop instance LUs, the configuration update is done
right at the end. This means that if, for example, the instance shutdown
succeeds, but the drive deactivation fails, the next run of the watcher...

0a80a26f 03/27/2008 04:39 pm Michael Hanselmann

Return first parameter of console command only once

Reviewed-by: iustinp

f9193417 03/25/2008 06:30 pm Iustin Pop

Remove the option to create md/drbd7 instances

This patch removes the options that allow to create local_raid1 or
remote_raid1 instances. It also modifies the documentation and removes
these disk templates from burnin and from qa.

Reviewed-by: imsnah

249069a1 03/25/2008 06:30 pm Iustin Pop

Remove the add/remove mirror operations

These two operations are related to md/drbd7 code (remote_raid1). Remove
them as part of the md/drbd7 removal.

Reviewed-by: imsnah

2872a949 03/20/2008 05:55 pm Manuel Franceschini

Modify cluster-init to create file-storage-dir

This patch adds three things:
- it normalizes the file storage directory path passed to gnt-cluster init
- if the file-storage-path doesn't exist on the master node, ganeti
tries to create it
- adds additional check if the passed file-storage-dir is not a directory...

871705db 03/19/2008 12:47 pm Manuel Franceschini

Add support for file_storage_dir to LUInitCluster

Author: manuel.franceschini
Reviewed-by: iustinp

f408b346 03/18/2008 03:04 pm Michael Hanselmann

Use new ssh.WriteKnownHostsFile function

This replaces very old code.

Reviewed-by: ultrotter

1ff08570 03/18/2008 03:03 pm Michael Hanselmann

Use new cluster alias in known_hosts file

Reviewed-by: ultrotter

b047857b 03/18/2008 03:03 pm Michael Hanselmann

Use new “tty” parameter on SshRunner.BuildCmd for “gnt-instance console”

Reviewed-by: ultrotter

c92b310a 03/18/2008 03:02 pm Michael Hanselmann

Move SSH functions into a class

This renames some functions and does some minor codestyle cleanup.

Reviewed-by: ultrotter

411f8ad0 03/11/2008 09:44 am Iustin Pop

Disable cluster init with a reachable IP

Make the cluster init fail if the IP to which the cluster name resolved
is already reachable by the master node. This is not a foolproof
solution, but it allows a cheap method of detecting simple mistakes.

It will also disallow using the master node name as cluster name (which...

b15d625f 03/11/2008 09:44 am Iustin Pop

Modify utils.TcpPing to make source address optional

This patch modifies TcpPing and its callers to make the source address
selection optional. Usually, the kernel will know better what
source address to use, just in some cases we want to enforce a given...

7c0d6283 03/05/2008 04:39 pm Michael Hanselmann

Codestyle fixes: adding a few empty lines

Reviewed-by: ultrotter

c9064964 02/29/2008 06:32 pm Iustin Pop

Fix master role stop on cluster destroy

Currently the cluster destroy doesn't remove the master role, which
means that the IP address of the cluster remains assigned to the master
node.

This patch fixes this and also a docstring in backend.StopMaster()....

488b540d 02/29/2008 02:32 pm Iustin Pop

Fix cluster rename operation

This one-liner fixes the cluster rename operation. As a side note, we
should have a QA test for this too.

Reviewed-by: imsnah

7bde3275 02/28/2008 01:20 pm Guido Trotter

Don't allow renaming to an existing instance

Even if the target instance is down or we are not checking for IP conflicts
changing an instance name to a new one which is already in the cluster is
doomed to fail, because in a lot of places (among which figures the mind of...

107711b0 02/27/2008 03:05 pm Michael Hanselmann

Use constants.ETC_HOSTS instead of string for /etc/hosts

Reviewed-by: iustinp

3517d9b9 02/25/2008 11:17 am Manuel Franceschini

This patch replaces some hardcoded strings with their corresponding constant in `_GenerateDiskTemplate()`.

Reviewed-by: iustinp

c99a3cc0 02/22/2008 06:12 pm Manuel Franceschini

Fixes small spell mistakes and comments

515207af 02/16/2008 03:06 pm Guido Trotter

Fix gnt-instance info i1 i2 ...

Due to an indentation error only the last instance queried got returned by
LUQueryInstanceData. Moving the append() call inside the for cycle to fix this
issue.

This is a one-liner targeted at 1.2.3

Reviewed-by: iustinp

ef756965 02/15/2008 11:53 am Iustin Pop

Further fixes for the 'export MAC in hooks' change

QA suite which tests gnt-instance modify has uncovered another issue related to
mac export.

Reviewed-by: imsnah

d8052456 02/14/2008 05:53 pm Iustin Pop

Modify the default output of gnt-instance list

This patch adds a new field available for selection in gnt-instance list
names "status" which represents the combined value of "admin_state" and
"oper_state". Since this is much easier to parse (e.g. gnt-instance list...

06009e27 02/05/2008 04:12 pm Iustin Pop

Add a test opcode that sleeps for a given duration

This can be used for testing purposes.

Reviewed-by: ultrotter,imsnah

fdbd668d 02/05/2008 03:33 pm Iustin Pop

Reduce the chance of DRBD errors with stale primaries

This patch is a first step in reducing the chance of causing DRBD
activation failures when the primary node has not-perfect data.

This issue is more seen with DRBD8, which has an 'outdate' state (in
which it can get more often). But it can (and before this patch, usually...

b08d5a87 02/04/2008 04:33 pm Iustin Pop

Fix some indendation issues

Reviewed-by: imsnah

c7b27e9e 02/04/2008 04:28 pm Iustin Pop

Fix incomplete mac address export to hooks

This patch completes the change introduced in r566 (trunk) and r568
(branch-1.2).

Reviewed-by: imsnah

53e4e875 01/31/2008 03:22 pm Guido Trotter

Give mac information to instance hooks

Currently just the bridge and ip address are passed. Add an environment
variable for the mac address.

Reviewed-by: iustinp

d6d415e8 01/28/2008 01:51 pm Iustin Pop

Add option for the number of VCPUs in instance listing

Reviewed-by: ultrotter

2bc22872 01/28/2008 11:03 am Iustin Pop

Fix "gnt-instance modify --initrd"

The new QA tests for instance modify uncovered a bug in the modify
initrd operation when setting the initrd to none.

Reviewed-by: imsnah

8d75db10 01/21/2008 12:12 am Iustin Pop

Fix checking of node free disk in CreateInstance

This patch does two things:
- checks that the result values from call_node_info are valid integer
values and aborts otherwise
- skips disk space computation for the DT_DISKLESS case

The most important point of the patch is the verification of results...

d4f16fd9 01/21/2008 12:12 am Iustin Pop

Abstract node memory checking into a separate function

The checking of a node's free memory (via rpc.call_node_info) is done in
both start instance an failover. This patch abstracts this call,
together with the appropriate error handling, into a separate function...

8ae6bb54 01/16/2008 06:01 pm Iustin Pop

Show the HVM boot order in instance info

This is a merge from the 1.2 branch

Reviewed-by: imsnah

ba4b62cf 01/14/2008 05:10 pm Iustin Pop

Fix some misspellings

This patch fixes two name typos and a style issue (which makes pylint
complain).

Reviewed-by: ultrotter

40ed12dd 01/14/2008 04:19 pm Guido Trotter

Fix CreateInstance new optional parameters

Some new paramenters of the CreateInstance opcode are optional (namely
kernel_path, initrd_path and hvm_boot_order) but their absence makes the code
crash. Fix this by initializing them to a default value if they're not present....

25c5878d 01/11/2008 02:13 pm Alexander Schreiber

Support selecting the boot device order for HVM.

This patch adds support for specifying and changing the boot device order for
HVM instances. The boot device order specification is ignored for non HVM
instances.

Reviewed-by: iustinp

8cafeb26 01/08/2008 06:16 pm Iustin Pop

Fix gnt-instance modify breakage introduced in r462

Reviewed-by: schreiberal