mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
bitkeeper revision 1.1159.116.1 (4174f7a3e7Ch5VhvKs2lI48e7S4KzA)
Merge http://xen.bkbits.net:8080/xeno-unstable.bk into gandalf.hpl.hp.com:/var/bk/xeno-unstable.bk
This commit is contained in:
commit
ef01208b6b
3 files changed
+22
-3
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."""
|
||||
|
||||
@@ -763,6 +775,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):
|
||||
@@ -994,6 +1007,7 @@ class XendDomainInfo:
|
||||
log.warning("Unknown config field %s", field_name)
|
||||
index[field_name] = field_index + 1
|
||||
d = defer.DeferredList(dlist, fireOnOneErrback=1)
|
||||
d.addErrback(dlist_err)
|
||||
return d
|
||||
|
||||
|
||||
@@ -1007,7 +1021,7 @@ def vm_image_linux(vm, image):
|
||||
"""
|
||||
kernel = sxp.child_value(image, "kernel")
|
||||
cmdline = ""
|
||||
ip = sxp.child_value(image, "ip", "dhcp")
|
||||
ip = sxp.child_value(image, "ip", None)
|
||||
if ip:
|
||||
cmdline += " ip=" + ip
|
||||
root = sxp.child_value(image, "root")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -340,8 +340,8 @@ class BlkDev(controller.SplitDev):
|
||||
val = unpackMsg('blkif_be_vbd_grow_t', msg)
|
||||
status = val['status']
|
||||
if status != BLKIF_BE_STATUS_OKAY:
|
||||
raise XendError("Adding extent to vbd failed: device %d, error %d"
|
||||
% (self.vdev, status))
|
||||
raise XendError("Adding extent to vbd failed: device %s, error %d"
|
||||
% (sxp.to_string(self.config), status))
|
||||
return self
|
||||
|
||||
def send_be_vbd_destroy(self):
|
||||
|
||||