bitkeeper revision 1.1159.1.201 (41600e1fkVMoQU0dVgk1h6vT502hEg)

Merge
This commit is contained in:
iap10@labyrinth.cl.cam.ac.uk committed 2004-10-03 14:35:11 +00:00
commit e2f19d9096
8 files changed
+167 -17

No files matched your search

+11 -7
View File
@@ -211,9 +211,9 @@ class XendDomain:
@param id: domain id
@param notify: send a domain died event if true
"""
for info in self.domain_by_name.values():
for (k, info) in self.domain_by_name.items():
if info.id == id:
del self.domain_by_name[info.name]
del self.domain_by_name[k]
if id in self.domain_by_id:
info = self.domain_by_id[id]
del self.domain_by_id[id]
@@ -408,11 +408,15 @@ class XendDomain:
@return: deferred
"""
def cbok(dominfo):
self._add_domain(dominfo)
return dominfo
deferred = XendDomainInfo.vm_restore(src, progress=progress)
deferred.addCallback(cbok)
if 0:
def cbok(dominfo):
self._add_domain(dominfo)
return dominfo
deferred = XendDomainInfo.vm_restore(src, progress=progress)
deferred.addCallback(cbok)
else:
xmigrate = XendMigrate.instance()
deferred = xmigrate.restore_begin(src)
return deferred
def domain_get(self, id):
+47
View File
@@ -302,6 +302,19 @@ class XendMigrateInfo(XfrdInfo):
self.dst_port,
self.live ])
## def xfr_vm_suspend(self, xfrd, val):
## def cbok(val):
## # Special case for localhost: destroy devices early.
## if self.dst_host in ["localhost", "127.0.0.1"]:
## self.dominfo.restart_cancel()
## self.dominfo.cleanup()
## self.dominfo.destroy_console()
## return val
## d = XfrdInfo.xfr_vm_suspend(self, xfrd, val)
## d.addCallback(cbok)
## return d
def xfr_migrate_ok(self, xfrd, val):
dom = int(sxp.child0(val))
self.state = 'ok'
@@ -376,7 +389,35 @@ class XendSaveInfo(XfrdInfo):
[ self.dominfo.name, self.dominfo.id,
self.state, self.sxpr() ])
class XendRestoreInfo(XfrdInfo):
"""Representation of a restore in-progress and its interaction with xfrd.
"""
def __init__(self, xid, file):
XfrdInfo.__init__(self)
self.xid = xid
self.state = 'begin'
self.file = file
def sxpr(self):
sxpr = ['restore',
['id', self.xid],
['file', self.file] ]
return sxpr
def request(self, xfrd):
print '***request>', self.file
log.info('restore BEGIN: ' + str(self.sxpr()))
xfrd.request(['xfr.restore', self.file ])
def xfr_restore_ok(self, xfrd, val):
dom = int(sxp.child0(val))
dominfo = self.xd.domain_get(dom)
self.state = 'ok'
if not self.deferred.called:
self.deferred.callback(dominfo)
class XendMigrate:
"""External api for interaction with xfrd for migrate and save.
Singleton.
@@ -472,6 +513,12 @@ class XendMigrate:
info = XendSaveInfo(xid, dominfo, file)
return self.session_begin(info)
def restore_begin(self, file):
xid = self.nextid()
info = XendRestoreInfo(xid, file)
return self.session_begin(info)
def instance():
global inst
try:
+1 -1
View File
@@ -45,7 +45,7 @@ class SrvDomainDir(SrvDir):
errmsg = ''
try:
configstring = req.args.get('config')[0]
print 'config:', configstring
#print 'op_create>', 'config:', configstring
pin = sxp.Parser()
pin.input(configstring)
pin.input_eof()
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.