Commit Graph
1166 Commits
Author SHA1 Message Date
emellor@ewan 6b6edfe1d5 Use the domain ID to refer to backends, not the UUID. This means that a new
backend is used on a localhost live migrate; migration was failing otherwise.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 11:01:38 +01:00
emellor@ewan 3a62270915 Cope with missing configuration information inside the configuration method.
This allows us to better recover if the store has been deleted.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 02:28:41 +01:00
emellor@ewan 5f189b1050 Move the import for XendError, and use a bare import, not a from...import.
This should silence the error message when the program is terminated during
startup.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 02:25:04 +01:00
emellor@ewan 3c28a0f427 Move XendDomainInfo.{create,recreate,parseConfig} to the top level of the
domain.  This allows us to refer to them using an import statement, rather than
a from .. import.  This is a step towards getting rid of the xroot hack.  All
other references to XendDomainInfo methods need to be doubly qualified (once
for the module, once for the class).

Remove XendDomainDict, replacing it with a simple dictionary, folding the
get_by_name method into XendDomain. 

Replace XendDomain.refresh_lock with a domains_lock which goes around any
reference to XendDomain.domains or anything that will create or destroy a
domain.  This serialises most accesses through XendDomain, ensuring that we will
not return stale state when racing against the watches fired in separate
threads.  This should have fixed bugs #270 and #234.

Added a number of domain_get_xyz methods.  Those named xyz_nr are to allow
components internal to XendDomain (XendDomainInfo, XendCheckpoint) to call back
into XendDomain without triggering further calls to XendDomain.refresh.  The
other methods simply make it clear which fallback behaviour is expected.

Replace XendDomainInfo.domain_exists with XendDomainInfo.domain_by_name; the
internals of this method needed to change to match those changes above, and it
has been a misnomer for some time.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 02:21:28 +01:00
emellor@ewan b379670db6 Remove the reason code from the destroy action -- the reason is only of value
on a graceful shutdown.  Clarify the semantic difference between poweroff and
halt (we use halt to mean 'shutdown and stop' and poweroff to mean 'shutdown
and do whatever the configured behaviour is').

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 00:57:34 +01:00
emellor@ewan f020dc6069 Remove the reason code from the destroy action -- the reason is only of value
on a graceful shutdown.  Clarify the semantic difference between poweroff and
halt (we use halt to mean 'shutdown and stop' and poweroff to mean 'shutdown
and do whatever the configured behaviour is').

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 00:56:24 +01:00
emellor@ewan 0b630dbfca Remove the reason parameter from XendDomain.destroy -- it is useless. Accept
the halt shutdown reason inside XendDomainInfo.  This indicates that the
domain should be shutdown just like a poweroff, except that the domain is not
restarted, regardless of the on_poweroff configuration setting.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 00:30:49 +01:00
emellor@ewan c9577eb490 Added method XendDomain.privilegedDomain and use that inside DevController to
avoid hard-coding the domain ID 0.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-04 00:21:49 +01:00
emellor@ewan 6f75ef505d Cope with missing configuration information inside the configuration method.
This allows us to better recover if the store has been deleted.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-03 16:40:27 +01:00
emellor@ewan 6303fee512 Remove the reason code from the destroy action -- the reason is only of value
on a graceful shutdown.  Clarify the semantic difference between poweroff and
halt (we use halt to mean 'shutdown and stop' and poweroff to mean 'shutdown
and do whatever the configured behaviour is').

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-03 16:39:19 +01:00
emellor@ewan 81fd7244f5 Move the import for XendError, and use a bare import, not a from...import.
This should silence the error message when the program is terminated during
startup.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-03 16:33:09 +01:00
emellor@ewan 5cd7b9b437 The stopgap in changeset 7152:a73ab0ddf990 was broken -- revert the change to
domain_lookup_by_name, as it causes an infinite loop on startup.  Leave the
domain_lookup change.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-02 23:56:13 +01:00
emellor@ewan c8a89eae6b Move XendVnet from using DBMap etc to using xstransact. This is the last
dependency upon xsnode, xsobj, and xsresource, so these can all go.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-02 18:22:22 +01:00
emellor@ewan ec7bb10f8e Call refresh in the domain_lookup and domain_lookup_by_name methods. This
should reduce the incidence of stale domain information being used by xend, but
is only a stop-gap.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-02 18:21:01 +01:00
emellor@ewan f578bafffd Fix call to XendCheckpoint.restore, since that method no longer needs a
XendDomain instance passed in.

Remove meaningless indirection of imports through web/reactor.py.  Tidy import
statements.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-10-02 18:17:26 +01:00
emellor@ewan 42fb9678c9 Add the config file parsing for the on_{poweroff,reboot,crash} options, so that
they actually take effect.  Added behaviour "rename-restart" for debugging
purposes, that renames the domain out of the way, preserving it for debugging,
but starts a new domain too.

Add explicit remove of old domain paths when creating a new domain, to avoid
stale information affecting us (by shutting the domain down, for example).

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-30 17:10:20 +01:00
emellor@ewan db730ecdd1 Minor tidy.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-30 17:05:08 +01:00
emellor@ewan 8a3d958510 Change rebooting specification so that we can have domains crash and stay
around to be debugged, for example.

Fix problem in XendDomainInfo.eventChannel caused by a mis-merge.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-30 13:59:28 +01:00
emellor@ewan d934679092 Within the store, split the persistent information regarding a VM from the
transient information regarding a domain.  This allows live localhost migration,
which is important for testing migration, and also allows migration when we
have a distributed store.  The backend paths in the store now refer to the
frontend domain ID, not its UUID, and blktap has changed to match.

To support this split in the information, the cleanup procedure has been split
to match.

Change the save-restore interface between XendDomain, XendDomainInfo, and 
XendCheckpoint, to remove some intermingling, in particular taking XendDomain
out of the loop for the restore procedure.

Improved the recovery procedure to avoid trying to destroy dom0 when recovering.

Added a lock around XendDomain.refresh and one around
XendDomainInfo.refreshShutdown, to improve the behaviour when recreating
domains at startup.  There are still races here, so more thought needs to be
given to the locking.

Live reconfiguration of an existing domain is temporarily broken.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-30 13:41:10 +01:00
emellor@ewan 8d170a2989 Added cache-control headers to pages returned by HTTP server so that pages
expire immediately.  This prevents navigation to stale pages.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-30 11:55:49 +01:00
emellor@ewan 1b19d438d2 Remove the bizarre arrangement whereby EventChannel inherits from dict. Move
the channel-creation logic into eventChannel, making the EventChannel class
simpler.  Remove the closeEventChannel method -- it was simply doing a check
for None, and that isn't enough value to justify the extra method when there
is an EventChannel.close method there too.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-30 11:40:59 +01:00
emellor@ewan a4db84d76c Added DevController.configuration and configurations methods. These parse the
store for the current device configuration, and convert it back into the
s-expression used in the config files and the save files.  This means that we
can bring the devices up properly on restore.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-30 10:48:49 +01:00
emellor@ewan 4075caad61 Remove unused domain_devtype_get.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 17:00:22 +01:00
emellor@ewan 182124af7b Remove unused xend_domain_device.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 16:59:34 +01:00
emellor@ewan 1106624d57 Change device IDs to be integers, as required now by DevController. Remove
unused op_device.  Remove broken code to show the domain configuration using
the HTTP server.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 16:59:13 +01:00
emellor@ewan 3896bc2b68 Minor tidy up.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 15:09:24 +01:00
emellor@ewan 55da9243e8 Added new classmethod xstransact.ListRecursive, and use this inside
DevController to tidy up the code there.  Change the semantics of
xstransact.list and List to return the empty list rather than None if there
are no entries or the directory is not present, as this is easier to handle
for the client.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 15:06:48 +01:00
emellor@ewan a348233185 Fix returning of results broken by last change.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 15:00:11 +01:00
emellor@ewan 34a989b221 Added logging of exceptions coming through callInfo, for better debugging.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 14:03:06 +01:00
emellor@ewan bcf976db0e Minor tidy.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 14:02:38 +01:00
emellor@ewan 85506dfc97 Improve HTML output.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 13:44:15 +01:00
emellor@ewan ad1a856c94 Added missing quote to HTML output.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 13:43:33 +01:00
emellor@ewan 0b7f903b29 Added behaviour to read() to read directly from the transaction's path if no
arguments are specified.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 13:43:07 +01:00
emellor@ewan d391a2dddc Handle exceptions caused during processing of requests, to improve error
reporting.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-28 13:41:44 +01:00
emellor@ewan 817fbb6432 Remove unused import, mark unused variables.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 22:09:46 +01:00
emellor@ewan d67469375a Remove unused imports, variables.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 22:09:12 +01:00
emellor@ewan 92e31dac79 Fix final misuse of prettyprint parameters. 2005-09-27 22:08:07 +01:00
emellor@ewan 6269dad649 Remove unused imports, and unused progress parameters from domain_save, domain_restore. Rename one instance of id to domid. 2005-09-27 22:06:15 +01:00
emellor@ewan e33f948908 Added getDeviceSxprs, to support xm block-list. 2005-09-27 22:05:03 +01:00
emellor@ewan b4e6e65545 Added sxprs, for xm block-list. 2005-09-27 22:03:55 +01:00
emellor@ewan 823550cc47 Added behaviour to list() to list the transaction's path if no arguments are
given.  Added list_recursive().

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 22:02:57 +01:00
emellor@ewan 0fae7b55e5 This patch adds a quick check to 'xm restore' that checks the
existence and readability of the file given.

This fixes the issue detected in xm-tests 03_restore_badparm_neg and
04_restore_badfilename_neg.

Signed-off-by: Dan Smith <danms@us.ibm.com>
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 15:10:38 +01:00
emellor@ewan 9427933f18 This patch adds a quick check in "xm save" to make sure the path given
exists, and is writable.

This will fix the issue detected by xm-test 03_save_bogusfile_neg.

Signed-off-by: Dan Smith <danms@us.ibm.com>
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 15:06:40 +01:00
emellor@ewan f8e5b67cfe This patch cleans up some of the argument usage in PrettyPrint.py to
avoid a stack trace when doing an 'xm list -l'.  Most of the
prettyprint() methods were called with 1 argument, but the functions
required 2 (one of which was unused).

Signed-off-by: Dan Smith <danms@us.ibm.com>
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 15:03:00 +01:00
emellor@ewan 3a2080259e Remove DBMap etc from XendDomainInfo, moving the handling of the domain root
and VM root totally into XendDomainInfo.  The DBMap stuff was all cruft,
following the move to xstransact.  Removing it may also help those suffering
from poor start-up times caused by a large store.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 14:49:31 +01:00
emellor@ewan 4ac7f7b347 Remove the domain and VM paths from the store when destroying a domain. This
goes a long way towards fixing the problem of stale entries in the store.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 14:36:58 +01:00
emellor@ewan 4cafea04fa Detangle the restart/reboot/halt/save/restore code. There is now one point
for management of shutdown state, XendDomainInfo.refreshShutdown, which is
able to cope whatever the current state of the domain.  This fixes bug #124:
running reboot within a domU doesn't bring the domain back up after shutdown,
and bug #256: "xm reboot" could not make domU reboot.

Fix the refreshing inside XendDomain to ensure that the values returned by xm
list reflect reality correctly.  We were removing XendDomainInfo instances,
but not creating them on start-up, so if xend were restarted, domain
information was being lost.

Merge XendDomain.dom0_unknown and initial_refresh into
XendDomainInfo.recreate.

Catch exceptions inside callInfo, and reraise them as XendErrors.

Remove unused XendDomain.close.

Further improvements are needed to XendDomainInfo to ensure that it avoids all
race conditions on shutdown, and can cope correctly with xend restarting
during a shutdown.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 13:53:06 +01:00
emellor@ewan 2585169bbb Use constant in XendDomainInfo rather than embedding a string literal.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 12:30:13 +01:00
emellor@ewan d501525831 Added missing import socket statement.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-27 12:29:36 +01:00
emellor@ewan 71d2fbe977 Add helper method XendDomain.callInfo that stubs through into XendDomainInfo.
This is used to remove much of the code duplication in the public methods there.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2005-09-24 23:10:31 +01:00