Activity
From 07/15/2008 to 08/13/2008
08/13/2008
- 07:41 pm Revision d47d3d38: KVM Hypervisor Cleanup
- - Remove a few experiemental code lines left as comments
- Rework first disks' boot=on addition, which was calculated... - 05:25 pm Revision 7a151789: Allow kvm hypervisor in gnt-cluster init
- Reviewed-by: imsnah
- 05:25 pm Revision eb58f9b1: Add KVM hypervisor code
- ht_kvm.py contains the code for ganeti to work under kvm.
This patch also modifies Makefile.am to ship that file, and... - 05:25 pm Revision 550e49b9: constants: add HT_KVM
- Add a new hypervisor type, HT_KVM, to constants, and register it in the
HYPER_TYPES set.
Reviewed-by: imsnah - 05:24 pm Revision 7e2c5b9e: Add --with-kvm-path configure option
- This allows to configure a different path to the kvm binary. By default
/usr/bin/kvm is used, which is the one found ... - 05:24 pm Revision a5f723a2: FakeHypervisor: fix a function signature
- StartInstance takes 'block_devices', not 'force' as its third argument.
Even if this is not used in the fake hypervis... - 05:23 pm Revision e326d4e5: Convert RunCmd to an epydoc docstring
- Reviewed-by: imsnah
- 03:55 pm Revision 51144e33: Fix adding pristine nodes
- 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 s...
08/12/2008
- 08:00 pm Revision f56377a3: Fix race locking issue in noded
- Noded didn't release the job queue lock after initialising it. This
patch makes sure to unlock once the work is done....
08/11/2008
- 07:28 pm Revision 853e7f3d: cli: Use new RPC call instead of polling
- This means commands will not take at least one second anymore.
Reviewed-by: ultrotter - 07:27 pm Revision dfe57c22: Add RPC call to wait for job changes
- This way clients can react faster to status or message changes and
don't have to poll anymore.
Reviewed-by: ultrotter - 07:27 pm Revision d5e317ba: jqueue: Change log message time format
- See the comment in the patch.
Reviewed-by: ultrotter - 07:26 pm Revision 739be818: Add functions to split time into tuple and merge it back
- These will be used for job logs.
Reviewed-by: ultrotter
08/08/2008
- 02:29 pm Revision 8bb66978: Use new query function for exports in gnt-backup
- Reviewed-by: iustinp
- 02:29 pm Revision 32f93223: Add query function for exports
- Reviewed-by: iustinp
- 02:23 pm Revision 24fc781f: Don't always remove queue lock when queue is purged
- The lock should only be removed if ganeti-noded is going to quit.
Otherwise it needs to be kept to prevent another pr... - 02:22 pm Revision 76ab5558: backend: Add optional exclusion list to _CleanDirectory
- The code cleaning the queue will make use of it.
Reviewed-by: iustinp - 02:21 pm Revision abc1f2ce: jqueue: Move archived jobs on all nodes
- Otherwise one might have archived jobs back in the list after a master
failover.
Reviewed-by: iustinp - 02:21 pm Revision af5ebcb1: noded: Add RPC function to rename job queue files
- This will be used to archive jobs.
Reviewed-by: iustinp - 02:21 pm Revision dc31eae3: backend: Add function to check whether file is in queue dir
- Another function will need to check whether its parameters
are job queue files.
Reviewed-by: iustinp - 02:20 pm Revision 7f30777b: noded: Add decorator for job queue lock
- The lock will also be needed by another function.
Reviewed-by: iustinp - 02:19 pm Revision 0a7bed64: Two small style fixes
- Reviewed-by: iustinp
- 01:03 pm Revision 25d6d12a: Implement queue locking in node daemon
- Reviewed-by: iustinp
- 01:03 pm Revision 5d6fb8eb: jstore: Change to not always require a lock
- This way we can do locking when both noded and masterd are running
on the same machine, the latter holding an exclusi... - 01:02 pm Revision aa9075c5: More logging for errors during noded RPC calls
- Reviewed-by: iustinp
- 01:02 pm Revision aa65ed72: Log only unexpected errors in utils.FileLock
- Otherwise users might be confused by errors in log files.
Reviewed-by: iustinp - 01:02 pm Revision 553f1c1d: Disallow uploading job queue files through upload_file
- The job queue is now updated through its own RPC functions.
Reviewed-by: iustinp - 01:01 pm Revision 9f774ee8: jqueue: Use new job queue RPC functions
- Reviewed-by: iustinp
- 01:01 pm Revision ca52cdeb: Add job queue RPC functions
- jobqueue_update: Uploads a job queue file's content to a node. The
most common operation is to upload something that ... - 01:00 pm Revision 3956cee1: Move function cleaning directory to module level
- JobQueuePurge() will be used by an RPC function.
Reviewed-by: iustinp
08/07/2008
- 04:03 pm Revision e125c67c: Use API instead of command line utilities in watcher
- Reviewed-by: iustinp
- 12:07 pm Revision 281606c1: Fix cli.PollJob
- feedback_fn wasn't passed to it.
Reviewed-by: iustinp
08/06/2008
- 05:56 pm Revision c36176cc: Notify job queue about added/removed nodes
- The job queue maintains its own node list and must be notified
when nodes are added/removed.
Reviewed-by: iustinp - 05:56 pm Revision d8470559: Implement {Add,Readd,Remove}Node in GanetiContext
- By doing this we've a central place which coordinates what needs to be
done when adding or removing nodes. Another pa... - 04:36 pm Revision d2e03a33: jqueue: Implement {Add,Remove}Node
- These functions will be used to notify the queue about newly added
or removed nodes.
Reviewed-by: iustinp - 04:35 pm Revision 4c848b18: jqueue: Don't pass the list of nodes to SubmitJob anymore
- The job queue now maintains its own list and is updated when
nodes are added or removed from the cluster.
Reviewed-b... - 04:35 pm Revision 8e00939c: Maintain node list in job queue
- The code makes sure not to include the master in the list.
Reviewed-by: iustinp - 04:35 pm Revision 9113300d: masterd: Move job queue into context object
- The job queue must be called from cmdlib when adding or removing
nodes to the cluster. Moving it to the context objec... - 02:27 pm Revision f78346f5: Clean job queue directories when leaving cluster
- Old job files shouldn't be left on nodes removed from a cluster.
Reviewed-by: iustinp - 11:28 am Revision c54784d9: Use new RPC call in “gnt-node list”
- Reviewed-by: iustinp
- 11:26 am Revision 02f7fe54: Implement query for nodes
- Reviewed-by: iustinp
- 11:25 am Revision 1f05af2b: Use new query RPC call in “gnt-instance list”
- Reviewed-by: iustinp
- 11:25 am Revision ee6c7b94: Implement query for instances
- Queries don't create jobs and are more efficient. Log messages
are not yet stored anywhere.
Reviewed-by: iustinp
08/05/2008
- 01:33 pm Revision 23752136: jqueue: Replicate jobs to all nodes
- Newly added nodes are not yet taken care of. Queue locking on
non-master nodes is not yet correct.
Reviewed-by: iustinp
08/04/2008
- 03:27 pm Revision 04ab05ce: jqueue: Use new jstore module
- Reviewed-by: iustinp
- 03:27 pm Revision 8b537bb0: jstore: Add queue helper functions
- This will be used to move common code out of jqueue.
Reviewed-by: iustinp - 12:47 pm Revision 94428652: Implement job submission for scripts
- This patch adds the infrastructure for executing a job in background,
instead of foreground, via a new “--submit” opt... - 12:14 pm Revision 17dc2da0: Another typo in the install doc
- Reviewed-by: imsnah
- 12:14 pm Revision e7d2d69b: Update the module build section of install doc
- Reviewed-by: imsnah
07/31/2008
- 06:03 pm Revision db37da70: jqueue: Move assert into decorator
- This reduces code duplication. A later patch will modify the job queue
a bit more and will need a change of this asse... - 05:52 pm Revision 0a1e74d9: Split cli.SubmitOpCode in two parts
- The current SubmitOpCode function is not flexible enough to be used for
submitters that don't want to wait for the jo... - 05:42 pm Revision afee8008: Allow job queue files to be uploaded through ganeti-noded
- This is needed for job queue replication.
Reviewed-by: iustinp - 05:33 pm Revision a87b4824: Add FileLock utility class
- This class is a wrapper around fcntl.flock and abstracts opening and
closing the lockfile. It'll used for the job que... - 05:33 pm Revision 5bdce580: jqueue: Store context in job queue instead of worker pool
- The job queue will need to access to configuration, which is provided
through the context object, to get a list of no... - 03:58 pm Revision 15fd9fd5: RAPI Implement DELETE for tags
- Reviewed-by: imsnah
- 12:06 pm Revision 441e7cfd: First write operation (add tag) for Ganeti RAPI
- Add instance tag handling, improved error logging.
...oh, yes adopt instance listing for RAPI2!
Reviewed-by: iustinp
07/30/2008
- 06:58 pm Revision 140aa4a8: Fix cluster destroy
- With the recent startup/shutdown changes (and with the master daemon in
place), the cluster destroy needs some fixing... - 06:49 pm Revision 97efde45: Xen: remove two end-of-line semicolons
- It's python, isn't it?
Reviewed-by: iustinp - 06:17 pm Revision b3f1cf6f: Fix cluster init
- With the recent changes, I forgot the extra parameter to this rpc call.
Also the rpc call needs to be done after we s... - 06:06 pm Revision b33e986b: Make gnt-* commands fail nicely on non-masters
- This patch adds a check that we are on the master after failing to
connect to the socket, and log nicely the master n... - 06:04 pm Revision c9e5c064: Parallelize LUFailoverInstance
- Reviewed-by: iustinp
- 06:04 pm Revision 64381ad7: ChainOpCode is still BGL-only
- Prevent mistakes with an assert.
Reviewed-by: iustinp - 06:00 pm Revision 8161a646: Fix a misuse of exc_info in logging.info
- This is my fault, sorry.
Reviewed-by: imsnah - 05:04 pm Revision 38206f3c: Fix pylint-detected issues
- This is mostly:
- whitespace fix (space at EOL in some files, not all, broken
indentation, etc)
- variable na... - 04:27 pm Revision 3b9e6a30: Fix some errors detected by pylint
- Reviewed-by: imsnah
- 03:32 pm Revision 59f187eb: Unify SetupDaemon/SetupLogging
- The 'old-style' info, error, debug logs do not make much sense. This
patch unifies the SetupLogging and SetupDaemon f... - 03:29 pm Revision 9936bd63: Simplify the log constants and add another one
- The patch changes the log constants by moving the slash to the end of
the log dir instead of at the beginning of *eac... - 03:27 pm Revision ce7151ae: Fix gnt-cluster getmaster
- This is special in the sense that it can run on any node. As such, we
just instantiate ssconf and read the data from ... - 02:31 pm Revision e873317a: Parallelize {Startup,Shutdown,Reboot}Instance
- Reviewed-by: iustinp
- 02:30 pm Revision 4e0b4d2d: Parallelize LUReinstallInstance
- self.recalculate_locks[locking.LEVEL_NODE] could have any value and
everything would work anyway. We'll use the strin... - 02:30 pm Revision c4a2fee1: LogicalUnit._LockInstancesNodes helper function
- This function is used to lock instances' primary and secondary nodes
after locking instances themselves.
Reviewed-by... - 02:30 pm Revision 3977a4c1: Make sharing locks possible
- LUs can declare which locks they need by populating the
self.needed_locks dictionary, but those locks are always acqu... - 02:29 pm Revision fb8dcb62: Add LogicalUnit.DeclareLocks
- This additional LogicalUnit function is optional to implement, but lets
you change your locking needs for one level j... - 02:29 pm Revision 74b5913f: LURenameInstance, add/remove relevant locks
- LURenameInstance forgot to remove the old lock name and add the new one,
making it impossible for parallel LUs to act... - 01:02 pm Revision 85f03e0d: Rewrite job queue
- We found several issues in the old job queue implementation. It had race
conditions, deadlocks and other deficiencies... - 11:56 am Revision c0a8eb9e: workerpool: Log when waiting for a thread
- Reviewed-by: iustinp
- 11:43 am Revision b1b6ea87: Rework master startup/shutdown/failover
- This (big) patch reworks the master startup/shutdown and the fixes the
master failover.
What does the patch do?
For... - 11:34 am Revision 53beffbb: Expose utils.DaemonPidFileName
- Since we need to compute this from outside utils.py, we change this to a
public function.
Reviewed-by: ultrotter - 11:33 am Revision 5675cd1f: Implement checking for the master role in rapi
- This patch moves the CheckMaster function from ganeti-masterd to ssconf
(most logical place, it cannot go in utils si... - 11:32 am Revision 1c65840b: Add a new parameter to backend.(Start|Stop)Master
- This patch adds a new, unused for now, parameter to the start and stop
master operations in backend. The idea behind ...
07/29/2008
- 05:07 pm Revision 6aff91f6: Log thread name when debug output is enabled
- Reviewed-by: iustinp
- 05:07 pm Revision 8090e19f: jqueue: Fix error logging
- The passed parameters were not correct.
Reviewed-by: iustinp, ultrotter - 01:42 pm Revision bff2ddc5: Fix constants typo
- Reviewed-by: imsnah
- 12:06 pm Revision 99e88451: Use constants for the pid file stems
- Reviewed-by: imsnah
- 11:49 am Revision b2a1f511: Add a KillProcess function
- We cannot depend on all environments to have a start-stop-daemon or
similar tool. We instead implement a KillProcess ... - 11:49 am Revision d9f311d7: Change IsPidFileAlive into ReadPidFile
- We already have a function to test if a PID is alive, so it makes more
sense to use function composition that force c... - 11:48 am Revision f71245a0: Make the rapi daemon create a pidfile
- This is needed for controlling it cleanly with start-stop daemon.
Reviewed-by: ultrotter
07/28/2008
- 01:35 pm Revision 6760471c: Fix unittests for ganeti-rapi
- The RESTHTTPServer module went the way of the dodo.
Reviewed-by: iustinp - 01:17 pm Revision cfe3c70f: Implement signal handling in ganeti-rapi
- Reviewed-by: iustinp
- 01:17 pm Revision 3cd62121: Move ganeti-rapi core code to daemon
- All other daemons have their main code in themselves and not in a module.
This patch does the same to ganeti-rapi by ... - 01:16 pm Revision e2ae9123: Replace httperror module with ganeti.http
- The generic HTTP server doesn't know about httperror based exceptions
and would treat them as unknown exceptions, the... - 01:13 pm Revision d2b92ffc: Implement “gnt-job cancel”
- Reviewed-by: ultrotter
- 01:13 pm Revision 188c5e0a: Implement job canceling on server side
- Locking is not completeley right due to a deadlock when the job calls
UpdateJob after changing its status.
Reviewed-... - 12:16 pm Revision 533bb4b1: Fix exception class name in utils.WritePidFile
- Reviewed-by: iustinp
- 12:16 pm Revision 4cb1d919: Add “canceled” status for opcodes
- Reviewed-by: ultrotter
- 12:16 pm Revision 17621a25: Make “gnt-debug delay” work again
- The old API is no longer working.
Reviewed-by: ultrotter
07/25/2008
- 03:47 pm Revision fae737ac: Move code extracting job ID into function
- It might come in handy at some point and makes the code a bit easier
to read.
Reviewed-by: iustinp - 03:32 pm Revision 5d414478: Convert set to a list in LUGetTags
- The set triggers exception on a list-tags command and RAPI calls for tags
since it is not serializable by JSON.
Revi...
07/24/2008
- 07:34 pm Revision a0638838: Switch RAPI to ganeti.http module
- Reviewed-by: imsnah
- 06:04 pm Revision 0ad64cf8: Implement “gnt-job archive” to archive jobs
- Reviewed-by: iustinp
- 02:32 pm Revision c609f802: Implement job archiving on the server side
- So far no error reporting to the client is done. Clients don't get
noticed if a job doesn't exist or couldn't be arch... - 02:32 pm Revision 0cb94105: Add directory for archived jobs
- Reviewed-by: iustinp
- 02:32 pm Revision 3a2c7775: Fix RPC parameters for {Cancel,Archive}Job
- They aren't be tuples on the client side.
Reviewed-by: iustinp - 11:46 am Revision af99afa6: Add utils unittests for new functions
- The submitted WritePidFile, RemovePidfile and IsPidFileAlive functions
miss unit tests. Adding a simple one which cov...
07/23/2008
- 07:56 pm Revision ce594241: Move code formatting job ID into a base class
- A later patch will add a memory based job storage class, hence this
code is going into a separate class. It also chan... - 05:24 pm Revision 5947d6ec: Use pidfiles in example init script
- Rather than searching for the ganeti daemons by name we'll use the
pidfile they create to stop them. This change also... - 05:23 pm Revision 8feda3ad: ganeti-masterd: write and remove pidfile
- Reviewed-by: iustinp
- 05:23 pm Revision 73d927a2: ganeti-noded: write and remove pid file
- Reviewed-by: iustinp
- 05:23 pm Revision b330ac0b: Add utils.{Write,Remove}PidFile
- WritePidFile is a helper function that writes the current pid in a
pidfile within the ganeti run directory. RemovePid... - 05:23 pm Revision fee80e90: Add utils.IsPidFileAlive function
- This helper function reads a pid from a file containing it and checks
whether it refers to a live process.
Reviewed-... - 05:23 pm Revision 04e1bfaf: Invert nodes/instances locking order
- An implementation mistake from the original design caused nodes to be
locked before instances, rather than after. Thi... - 05:16 pm Revision 51ee2f49: Generalization of bulk output mapping
- Reviewed-by: iustinp
- 04:30 pm Revision 21cc1fbd: Rename JobStorage to DiskJobStorage
- Reviewed-by: iustinp
- 04:30 pm Revision 5ce81b28: gnt-job: Don't treat job IDs as numbers
- Reviewed-by: iustinp
- 03:25 pm Revision 205d71fd: Fix logging with string job IDs
- The job ID is now a string, hence logging must use %s instead of %d.
Reviewed-by: iustinp - 03:13 pm Revision dca1764e: Simplify rapi.baserlib.MapFields()
- We can use zip for simplifying this function. Actually, at this point
I'm not sure if it needs to be a separate funct... - 02:34 pm Revision 3be9a705: Make job ID a string
- The docstring says that _NewSerialUnlocked returns “a string
representing the job identifier”. Until now it returned ... - 01:06 pm Revision c3f0a12f: Distribute the queue serial file after each update
- This patch adds distribution of the queue serial file after each write
to it (but before a new job is created and wri... - 01:06 pm Revision c4beba1c: Make the job storage init reuse a serial file
- This will be needed for master failover. If we don't have a valid queue
directory, we need to reinitialize it, but we... - 11:22 am Revision 42ff3343: Move BDEV_CACHE_DIR to RUN_GANETI_DIR/bdev-cache
- This was a TODO for 2.0
Reviewed-by: iustinp
07/22/2008
- 05:25 pm Revision 1a5c7281: Convert SetInstanceParams to concurrency
- Grab a lock for the instance we're working on, and update its params.
Reviewed-by: iustinp - 05:25 pm Revision ea94e1cd: Use Update in SetInstanceParams
- When we set the instance params we're not adding a new instance, but
just updating an existing one, so why using AddI... - 05:25 pm Revision 8659b73e: Convert LUConnectConsole to concurrency
- For ConnectConsole we just need to lock the instance we're connecting
to. We make a few rpcs to its primary node, but... - 05:24 pm Revision 43905206: Add _ExpandAndLockInstance auxiliary function.
- LUs that take an instance name as input and need to expand its name and
lock it can use it to simplify their ExpandNa... - 05:24 pm Revision 642339cf: Convert two (simple) LUs to be concurrent
- LUQueryClusterInfo and LUDumpClusterConfig can be made concurrent and
don't need to acquire any locks. In fact they d... - 05:23 pm Revision 0eed6e61: Add missing empty line
- Two top level definitions were separated only by one empty line.
Fixing this.
Reviewed-by: imsnah - 05:12 pm Revision c2dca9af: Put the poper RAPI baserlib
- Reviewed-by: imsnah
- 05:05 pm Revision 57f8615f: Make argument to CleanCacheUnlocked mandatory
- Not passing the argument means it has the value None. Iterating None
doesn't work:
>>> "123" in None
Traceback (m... - 04:33 pm Revision 10b207d4: Split RAPI resources to pieces
- Reviewed-by: iustinp
- 11:17 am Revision 53b1d12b: Split conditions in worker pool
- This patch splits the single threading.Condition object used in the
worker pool for synchronization into three.
- wo...
07/21/2008
- 06:32 pm Revision 84b58db2: Handle signals in node daemon
- This also fixes a TODO added by ultrotter by killing the parent
process when QuitGanetiException is raised.
Reviewed... - 06:32 pm Revision 610bc9ee: Use new signal handler class in master daemon
- Reviewed-by: ultrotter
- 06:32 pm Revision de499029: Add signal handler class
- This signal handler class abstracts some of the code previously
used in other places. It also uninstalls its handler ...
07/17/2008
- 03:51 pm Revision bac5ffc3: Implement jobs resource in RAPI
- Reviewed-by: imsnah
07/16/2008
- 03:17 pm Revision 8075ce7e: Breath life in to RAPI for trunk
- Reviewed-by: imsnah
- 12:48 pm Revision 761ce945: Fork ganeti-noded
- Create a new ForkingHTTPServer in ganeti-noded by deriving both from
NodeDaemonHttpServer and ForkingMixin. This will...
07/15/2008
- 06:47 pm Revision a7399f66: Documentation updates
- Reviewed-by: imsnah
- 04:36 pm Revision a47f574c: Migrate RAPI QA to trunk.
- Reviewed-by: imsnah
- 04:23 pm Revision d128fdb6: Add apidoc makefile target
- The patch adds the apidoc target and the epydoc config file for it. Note
that this is for epydoc 3.0 and that it will... - 02:56 pm Revision 0e46916d: Rename BaseJO to BaseOpCode
- Since we don't have for now a job definition object anymore, we rename
this class to BaseOpCode. It's still useful (a... - 01:49 pm Revision f0d874fe: Sort the job list in _GetJobIDsUnlocked
- Since the IDs are integers, we can simply sort them.
Reviewed-by: imsnah
Also available in: Atom