def activate(self, dbg, uri, domain): u = urlparse.urlparse(uri) # XXX need some datapath-specific errors below if not(os.path.exists(u.path)): raise xapi.storage.api.volume.Volume_does_not_exist(u.path) if u.scheme[:3] == "vhd": img = image.Vhd(u.path) elif u.scheme[:3] == "raw": img = image.Raw(u.path) else: raise # See whether we should open it O_DIRECT o_direct = self._get_uri_param(dbg, uri, 'o_direct', "true") o_direct = o_direct in ['true', 't', 'on', '1', 'yes'] log.debug("o_direct = %s" % (o_direct)) tap = tapdisk.load_tapdisk_metadata(dbg, u.path) tap.open(dbg, img, o_direct) tapdisk.save_tapdisk_metadata(dbg, u.path, tap)
def detach(self, dbg, uri, domain): u = urlparse.urlparse(uri) tap = tapdisk.load_tapdisk_metadata(dbg, u.path) tap.destroy(dbg) tapdisk.forget_tapdisk_metadata(dbg, u.path)
def deactivate(self, dbg, uri, domain): u = urlparse.urlparse(uri) tap = tapdisk.load_tapdisk_metadata(dbg, u.path) tap.close(dbg)