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>
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>
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>
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>
XendDomain instance passed in.
Remove meaningless indirection of imports through web/reactor.py. Tidy import
statements.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
ImageHandler.create and findImageHandlerClass to the module level, and inline
addImageHandlerClass. Move ImageHandler.kernel, ramdisk, cmdline, and flags,
which seem inadvertently to have been declared as class variables, and make
them instance variables instead.
Signed-off-by: Ewan Mellor <ewan@xensource.com>