コード例 #1
0
ファイル: vpncloud.py プロジェクト: kesara10/ToMaTo
def start(iface, address, port, network_id, peers):
	iface = params.convert(iface, convert=str, check=lambda iface: not net.ifaceExists(iface))
	address = params.convert(address, convert=str)
	port = params.convert(port, convert=int, gte=1, lt=2**16)
	network_id = params.convert(network_id, convert=int, gte=1, lt=1<<64)
	peers = params.convert(peers, convert=list)
	netstat.checkPortFree(port, tcp=False, udp=True, ipv4=True)
	connect = []
	for p in peers:
		connect += ["-c", p]
	pid = spawnDaemon(["vpncloud", "-d", iface, "-l", "%s:%d" % (address, port), "--network-id", "%d" % network_id] + connect)
	wait.waitFor(lambda :net.ifaceExists(iface), failCond=lambda :not proc.isAlive(pid))
	return pid
コード例 #2
0
def detach(brname, ifname):
    BrctlError.check(net.bridgeExists(brname), BrctlError.CODE_NO_SUCH_BRIDGE,
                     "No such bridge", {"bridge": brname})
    BrctlError.check(net.ifaceExists(ifname), BrctlError.CODE_NO_SUCH_IFACE,
                     "No such interface", {"interface": ifname})
    if ifname in net.bridgeInterfaces(brname):
        run(["brctl", "delif", brname, ifname])
コード例 #3
0
ファイル: qm.py プロジェクト: GLab/ToMaTo
def start(vmid, detachInterfaces=True):
	vmid = params.convert(vmid, convert=int, gte=1)
	if not net.bridgeExists("dummy"):
		brctl.create("dummy")
	with locks[vmid]:
		_checkStatus(vmid, Status.Stopped)
		_qm(vmid, ActionName.START)
		_checkStatus(vmid, Status.Running)
		try:
			for ifname in _getNicNames(vmid).values():
				wait.waitFor(lambda :net.ifaceExists(ifname), failCond=lambda :_status(vmid) != Status.Running)
				bridge = net.ifaceBridge(ifname)
				if bridge and detachInterfaces:
					brctl.detach(bridge, ifname)
		except:
			stop(vmid)
			raise
コード例 #4
0
ファイル: virsh.py プロジェクト: StephanSchlosser/ToMaTo
	def start(self, vmid, detachInterfaces=True):
		vmid = params.convert(vmid, convert=int, gte=1)
		if not net.bridgeExists("dummy"):
			brctl.create("dummy")
		with locks[vmid]:
			self._checkStatus(vmid,[StateName.PREPARED])
			self._virsh("start", ["vm_%s" % vmid])
			self._checkStatus(vmid,[StateName.STARTED])
			try:
				for ifname in self._getNicNames(vmid).values():
					wait.waitFor(lambda :net.ifaceExists(ifname), failCond=lambda :self.getState(vmid) != StateName.STARTED)
					bridge = net.ifaceBridge(ifname)
					if bridge and detachInterfaces:
						brctl.detach(bridge, ifname)
			except:
				self._virsh("destroy", ["vm_%s" % vmid])
				raise
コード例 #5
0
def start(vmid, detachInterfaces=True):
    vmid = params.convert(vmid, convert=int, gte=1)
    if not net.bridgeExists("dummy"):
        brctl.create("dummy")
    with locks[vmid]:
        _checkStatus(vmid, Status.Stopped)
        _qm(vmid, ActionName.START)
        _checkStatus(vmid, Status.Running)
        try:
            for ifname in _getNicNames(vmid).values():
                wait.waitFor(lambda: net.ifaceExists(ifname),
                             failCond=lambda: _status(vmid) != Status.Running)
                bridge = net.ifaceBridge(ifname)
                if bridge and detachInterfaces:
                    brctl.detach(bridge, ifname)
        except:
            stop(vmid)
            raise
コード例 #6
0
ファイル: virsh.py プロジェクト: plaljx/ToMaTo
 def start(self, vmid, detachInterfaces=True):
     vmid = params.convert(vmid, convert=int, gte=1)
     if not net.bridgeExists("dummy"):
         brctl.create("dummy")
     with locks[vmid]:
         self._checkStatus(vmid, [StateName.PREPARED])
         self._virsh("start", ["vm_%s" % vmid])
         self._checkStatus(vmid, [StateName.STARTED])
         try:
             for ifname in self._getNicNames(vmid).values():
                 wait.waitFor(lambda: net.ifaceExists(ifname),
                              failCond=lambda: self.getState(vmid) !=
                              StateName.STARTED)
                 bridge = net.ifaceBridge(ifname)
                 if bridge and detachInterfaces:
                     brctl.detach(bridge, ifname)
         except:
             self._virsh("destroy", ["vm_%s" % vmid])
             raise
コード例 #7
0
def attach(brname, ifname):
    BrctlError.check(net.bridgeExists(brname), BrctlError.CODE_NO_SUCH_BRIDGE,
                     "No such bridge", {"bridge": brname})
    BrctlError.check(net.ifaceExists(ifname), BrctlError.CODE_NO_SUCH_IFACE,
                     "No such interface", {"interface": ifname})
    run(["brctl", "addif", brname, ifname])
コード例 #8
0
ファイル: brctl.py プロジェクト: GLab/ToMaTo
def detach(brname, ifname):
	BrctlError.check(net.bridgeExists(brname), BrctlError.CODE_NO_SUCH_BRIDGE, "No such bridge", {"bridge": brname})
	BrctlError.check(net.ifaceExists(ifname), BrctlError.CODE_NO_SUCH_IFACE, "No such interface", {"interface": ifname})
	if ifname in net.bridgeInterfaces(brname):
		run(["brctl", "delif", brname, ifname])
コード例 #9
0
ファイル: brctl.py プロジェクト: GLab/ToMaTo
def attach(brname, ifname):
	BrctlError.check(net.bridgeExists(brname), BrctlError.CODE_NO_SUCH_BRIDGE, "No such bridge", {"bridge": brname})
	BrctlError.check(net.ifaceExists(ifname), BrctlError.CODE_NO_SUCH_IFACE, "No such interface", {"interface": ifname})
	run(["brctl", "addif", brname, ifname])