mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
bitkeeper revision 1.1159.103.1 (4163f41dBS1Bak4UfPFZYlBrHnut8w)
Merge xenbk@gandalf:/var/bk/xeno-unstable.bk into wray-m-3.hpl.hp.com:/home/mjw/repos-bk/xeno-unstable.bk
This commit is contained in:
commit
70cc947499
2 files changed
+19
No files matched your search
@@ -288,6 +288,18 @@ def append_deferred(dlist, v):
|
||||
if isinstance(v, defer.Deferred):
|
||||
dlist.append(v)
|
||||
|
||||
def dlist_err(val):
|
||||
"""Error callback suitable for a deferred list.
|
||||
In a deferred list the error callback is called with with Failure((error, index)).
|
||||
This callback extracts the error and returns it.
|
||||
|
||||
@param val: Failure containing (error, index)
|
||||
@type val: twisted.internet.failure.Failure
|
||||
"""
|
||||
|
||||
(error, index) = val.value
|
||||
return error
|
||||
|
||||
class XendDomainInfo:
|
||||
"""Virtual machine object."""
|
||||
|
||||
@@ -760,6 +772,7 @@ class XendDomainInfo:
|
||||
append_deferred(dlist, v)
|
||||
index[dev_name] = dev_index + 1
|
||||
deferred = defer.DeferredList(dlist, fireOnOneErrback=1)
|
||||
deferred.addErrback(dlist_err)
|
||||
return deferred
|
||||
|
||||
def device_create(self, dev_config):
|
||||
@@ -991,6 +1004,7 @@ class XendDomainInfo:
|
||||
log.warning("Unknown config field %s", field_name)
|
||||
index[field_name] = field_index + 1
|
||||
d = defer.DeferredList(dlist, fireOnOneErrback=1)
|
||||
deferred.addErrback(dlist_err)
|
||||
return d
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ from StringIO import StringIO
|
||||
|
||||
from twisted.protocols import http
|
||||
from twisted.web import error
|
||||
from twisted.python.failure import Failure
|
||||
|
||||
from xen.xend import sxp
|
||||
from xen.xend import XendDomain
|
||||
@@ -94,6 +95,8 @@ class SrvDomainDir(SrvDir):
|
||||
def _op_create_err(self, err, req):
|
||||
"""Callback to handle errors in deferred domain creation.
|
||||
"""
|
||||
if isinstance(err, Failure):
|
||||
err = err.getErrorMessage()
|
||||
print 'op_create> Deferred Exception creating domain:', err
|
||||
req.setResponseCode(http.BAD_REQUEST, "Error creating domain: " + str(err))
|
||||
return str(err)
|
||||
@@ -127,6 +130,8 @@ class SrvDomainDir(SrvDir):
|
||||
return val
|
||||
|
||||
def _op_restore_err(self, err, req):
|
||||
if isinstance(err, Failure):
|
||||
err = err.getErrorMessage()
|
||||
print 'op_create> Deferred Exception restoring domain:', err
|
||||
req.setResponseCode(http.BAD_REQUEST, "Error restoring domain: "+ str(err))
|
||||
return str(err)
|
||||
|
||||