- Aug 18, 2008
-
-
Guido Trotter authored
As for LUQueryInstances the first version just acquires a shared lock on all nodes. In the future further optimizations are possible, as outlined by comments in the code. Reviewed-by: imsnah
-
Guido Trotter authored
This first version acquires a shared lock on all requested instances and their nodes. In the future it can be improved by acquiring less locks if no dynamic fields have been asked, and/or by locking just primary nodes. Reviewed-by: imsnah
-
Guido Trotter authored
If a list with a duplicate value is passed to a lockset what the code now does is to try to acquire the lock twice, generating a double-acquire exception in the SharedLock code. This is definitely an issue. In order to solve it we can either forbit double values in a list or just delete the duplicates. In this patch we go for the latter solution, removing any duplicate values when creating the acquire_list. Reviewed-by: imsnah
-
Guido Trotter authored
If a locking level wasn't specified locking used to stop. This means that if one, for example, didn't specify anything at the LEVEL_INSTANCE level, no locks at the LEVEL_NODE level were acquired either. With this patch we force _LockAndExecLU to be called for all existing levels, and break the recursion if the level doesn't exist in locking.LEVELS. Reviewed-by: imsnah
-
Guido Trotter authored
The check for the reboot type can be done without any locks held, so we'll move it to ExpandNames. Plus, we note in a FIXME that if the reboot type is not full, we can probably just lock the primary node, and leave the secondary unlocked. Reviewed-by: imsnah
-
Michael Hanselmann authored
Reviewed-by: schreiberal
-
Michael Hanselmann authored
By using this Linux-specific way we don't have to care about removing the socket file when quitting or starting (after an unclean shutdown). For a more detailed description, see the comment in the patch. Reviewed-by: schreiberal
-
- Aug 15, 2008
-
-
Michael Hanselmann authored
This option will be used to add nodes to the cluster without asking the user to confirm the key. Together with key based authentication this can be used in the QA tests. Reviewed-by: ultrotter
-
Michael Hanselmann authored
This will be used to add nodes without user interaction, specifically in QA tests. Reviewed-by: ultrotter
-
Michael Hanselmann authored
I'm going to add another option and it would make maintaining them in constants even more complicated. Reviewed-by: ultrotter
-
Michael Hanselmann authored
This patch changes SshRunner.Run to pass all arguments to SshRunner.BuildCmd. They had the same arguments before and should stay that way. This change makes it easier to add new or change existing arguments. Reviewed-by: ultrotter
-
- Aug 14, 2008
-
-
Guido Trotter authored
It's handy to make the os scripts know which hypervisor the instance is going to run under. In order not to change the os API we pass this information in the environment, where the os scripts can access it if they're hypervisor-aware. Reviewed-by: imsnah
-
Guido Trotter authored
If the user passes an env dict to RunCmd we'll override the environment passed to the to-be-executed command with the values in the dict. This allows us to pass arbitrary environment values to commands we run. Reviewed-by: imsnah
-
- Aug 13, 2008
-
-
Guido Trotter authored
- Remove a few experiemental code lines left as comments - Rework first disks' boot=on addition, which was calculated twice - Remove an empty line - Remove reference to hvm_pae which doesn't apply to kvm Reviewed-by: imsnah
-
Guido Trotter authored
ht_kvm.py contains the code for ganeti to work under kvm. This patch also modifies Makefile.am to ship that file, and lib/hypervisor/__init__.py to import it, and add kvm to the hypervisors map. Reviewed-by: imsnah
-
Guido Trotter authored
Add a new hypervisor type, HT_KVM, to constants, and register it in the HYPER_TYPES set. Reviewed-by: imsnah
-
Guido Trotter authored
This allows to configure a different path to the kvm binary. By default /usr/bin/kvm is used, which is the one found in debian and ubuntu. Reviewed-by: imsnah
-
Guido Trotter authored
StartInstance takes 'block_devices', not 'force' as its third argument. Even if this is not used in the fake hypervisor it's better to have the correct argument name to avoid confusion. Reviewed-by: imsnah
-
Guido Trotter authored
Reviewed-by: imsnah
-
Michael Hanselmann authored
If a node hasn't been part of the cluster before being added it'll not have the cluster's SSH key. This patch makes sure to accept those by not aliasing the machine name to the cluster name. Reviewed-by: ultrotter
-
- Aug 12, 2008
-
-
Michael Hanselmann authored
Noded didn't release the job queue lock after initialising it. This patch makes sure to unlock once the work is done. Reviewed-by: ultrotter
-
- Aug 11, 2008
-
-
Michael Hanselmann authored
This means commands will not take at least one second anymore. Reviewed-by: ultrotter
-
Michael Hanselmann authored
This way clients can react faster to status or message changes and don't have to poll anymore. Reviewed-by: ultrotter
-
Michael Hanselmann authored
See the comment in the patch. Reviewed-by: ultrotter
-
Michael Hanselmann authored
These will be used for job logs. Reviewed-by: ultrotter
-
- Aug 08, 2008
-
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Michael Hanselmann authored
The lock should only be removed if ganeti-noded is going to quit. Otherwise it needs to be kept to prevent another process from creating it again while we're still holding the (removed) lock. This is due to POSIX filesystem semantics. Reviewed-by: iustinp
-
Michael Hanselmann authored
The code cleaning the queue will make use of it. Reviewed-by: iustinp
-
Michael Hanselmann authored
Otherwise one might have archived jobs back in the list after a master failover. Reviewed-by: iustinp
-
Michael Hanselmann authored
This will be used to archive jobs. Reviewed-by: iustinp
-
Michael Hanselmann authored
Another function will need to check whether its parameters are job queue files. Reviewed-by: iustinp
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Michael Hanselmann authored
This way we can do locking when both noded and masterd are running on the same machine, the latter holding an exclusive lock on the queue. Reviewed-by: iustinp
-
Michael Hanselmann authored
Otherwise users might be confused by errors in log files. Reviewed-by: iustinp
-
Michael Hanselmann authored
The job queue is now updated through its own RPC functions. Reviewed-by: iustinp
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Michael Hanselmann authored
jobqueue_update: Uploads a job queue file's content to a node. The most common operation is to upload something that we already have in a string. Unlike in the upload_file function, the file is not read again when distributing changes, but content has to be passed as a string. jobqueue_purge: Removes all queue related files from a node. Reviewed-by: iustinp
-
Michael Hanselmann authored
JobQueuePurge() will be used by an RPC function. Reviewed-by: iustinp
-
- Aug 07, 2008
-
-
Michael Hanselmann authored
feedback_fn wasn't passed to it. Reviewed-by: iustinp
-
- Aug 06, 2008
-
-
Michael Hanselmann authored
By doing this we've a central place which coordinates what needs to be done when adding or removing nodes. Another patch will add calls into the job queue. Two log messages move to config.py. When removing a node, node_leave_cluster is now called after it has been removed from the configuration and job manager. That way we're sure not to access the node again after files have been removed. Reviewed-by: iustinp
-