Exemple #1
0
 def startVnc(self,
              vmid,
              vncpassword,
              vncport,
              websockifyPort=None,
              websockifyCert=None):
     vmid = params.convert(vmid, convert=int, gte=1)
     vncpassword = params.convert(vncpassword, convert=unicode)
     vncport = params.convert(vncport, convert=int, gte=1, lt=2**16)
     with locks[vmid]:
         self._checkStatus(vmid, StateName.STARTED)
         self._setVncPassword(vmid, vncpassword)
         self._virsh("qemu-monitor-command", [
             "vm_%d" % vmid, "--hmp", "change", "vnc",
             "unix:/var/run/qemu-server/%d.vnc,password" % vmid
         ])
         vncPid = spawnDaemon([
             "socat",
             "TCP-LISTEN:%d,reuseaddr,fork" % vncport,
             "UNIX-CLIENT:/var/run/qemu-server/%d.vnc" % vmid
         ])
         websockifyPid = None
         try:
             if websockifyPort:
                 websockifyPid = websockify.start(websockifyPort, vncport,
                                                  websockifyCert)
         except:
             self.stopVnc(vncPid)
             raise
         return vncPid, websockifyPid
Exemple #2
0
def startVnc(vmid,
             vncpassword,
             vncport,
             websockifyPort=None,
             websockifyCert=None):
    vmid = params.convert(vmid, convert=int, gte=1)
    vncpassword = params.convert(vncpassword, convert=unicode)
    vncport = params.convert(vncport, convert=int, gte=1, lt=2**16)
    with locks[vmid]:
        _checkStatus(vmid, Status.Running)
        _setVncPassword(vmid, vncpassword)
        vncPid = spawnDaemon([
            "socat",
            "TCP-LISTEN:%d,reuseaddr,fork" % vncport,
            "UNIX-CLIENT:/var/run/qemu-server/%d.vnc" % vmid
        ])
        websockifyPid = None
        try:
            if websockifyPort:
                websockifyPid = websockify.start(websockifyPort, vncport,
                                                 websockifyCert)
        except:
            stopVnc(vncPid)
            raise
        return vncPid, websockifyPid
Exemple #3
0
def httpd_start(folder, port):
	folder = params.convert(folder, convert=os.path.realpath, check=os.path.exists)
	port = params.convert(port, convert=int, gte=1, lt=2**16)
	netstat.checkPortFree(port)
	pid = spawnDaemon(["busybox", "httpd", "-f", "-p", str(port)], cwd=folder)
	try:
		wait.waitFor(lambda :netstat.isPortUsedBy(port, pid), failCond=lambda :not proc.isAlive(pid))
		return pid
	except wait.WaitError:
		proc.autoKill(pid, group=True)
		raise
Exemple #4
0
def start(port, command):
	port = params.convert(port, convert=int, gte=1, lt=2**16)
	command = params.convert(command, convert=list)
	netstat.checkPortFree(port, tcp=True, ipv4=True)
	pid = spawnDaemon(["tcpserver", "-qHRl", "0",  "0", str(port)] + command)
	try:
		wait.waitFor(lambda :netstat.isPortUsedBy(port, pid), failCond=lambda :not proc.isAlive(pid))
		return pid
	except wait.WaitError:
		proc.autoKill(pid, group=True)
		raise
Exemple #5
0
def start(port, command):
    port = params.convert(port, convert=int, gte=1, lt=2**16)
    command = params.convert(command, convert=list)
    netstat.checkPortFree(port, tcp=True, ipv4=True)
    pid = spawnDaemon(["tcpserver", "-qHRl", "0", "0", str(port)] + command)
    try:
        wait.waitFor(lambda: netstat.isPortUsedBy(port, pid),
                     failCond=lambda: not proc.isAlive(pid))
        return pid
    except wait.WaitError:
        proc.autoKill(pid, group=True)
        raise
Exemple #6
0
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
Exemple #7
0
def start(port, vncport, sslcert=None):
	port = params.convert(port, convert=int, gte=1, lt=2**16)
	vncport = params.convert(vncport, convert=int, gte=1, lt=2**16)
	sslcert = params.convert(sslcert, convert=str, null=True, check=os.path.exists)
	WebsockifyError.check(not netstat.isPortFree(vncport), WebsockifyError.CODE_DEST_PORT_FREE, "Destination port is free", {"port": vncport})
	netstat.checkPortFree(port, tcp=True, ipv4=True)
	pid = spawnDaemon(["websockify", "0.0.0.0:%d" % port, "localhost:%d" % vncport] + (["--cert=%s" % sslcert] if sslcert else []))
	try:
		wait.waitFor(lambda :netstat.isPortUsedBy(port, pid), failCond=lambda :not proc.isAlive(pid))
		return pid
	except wait.WaitError:
		proc.autoKill(pid, group=True)
		raise
Exemple #8
0
def httpd_start(folder, port):
    folder = params.convert(folder,
                            convert=os.path.realpath,
                            check=os.path.exists)
    port = params.convert(port, convert=int, gte=1, lt=2**16)
    netstat.checkPortFree(port)
    pid = spawnDaemon(["busybox", "httpd", "-f", "-p", str(port)], cwd=folder)
    try:
        wait.waitFor(lambda: netstat.isPortUsedBy(port, pid),
                     failCond=lambda: not proc.isAlive(pid))
        return pid
    except wait.WaitError:
        proc.autoKill(pid, group=True)
        raise
Exemple #9
0
def startVnc(vmid, vncpassword, vncport, websockifyPort=None, websockifyCert=None):
	vmid = params.convert(vmid, convert=int, gte=1)
	vncpassword = params.convert(vncpassword, convert=unicode)
	vncport = params.convert(vncport, convert=int, gte=1, lt=2**16)
	with locks[vmid]:
		_checkStatus(vmid, Status.Running)
		_setVncPassword(vmid, vncpassword)
		vncPid = spawnDaemon(["socat", "TCP-LISTEN:%d,reuseaddr,fork" % vncport, "UNIX-CLIENT:/var/run/qemu-server/%d.vnc" % vmid])
		websockifyPid = None
		try:
			if websockifyPort:
				websockifyPid = websockify.start(websockifyPort, vncport, websockifyCert)
		except:
			stopVnc(vncPid)
			raise
		return vncPid, websockifyPid
Exemple #10
0
	def startVnc(self, vmid,vncpassword, vncport, websockifyPort=None, websockifyCert=None):
		vmid = params.convert(vmid, convert=int, gte=1)
		vncpassword = params.convert(vncpassword, convert=unicode)
		vncport = params.convert(vncport, convert=int, gte=1, lt=2 ** 16)
		with locks[vmid]:
			self._checkStatus(vmid, StateName.STARTED)
			self._setVncPassword(vmid, vncpassword)
			self._virsh("qemu-monitor-command", ["vm_%d" % vmid, "--hmp", "change", "vnc", "unix:/var/run/qemu-server/%d.vnc,password" % vmid])
			vncPid = spawnDaemon(
				["socat", "TCP-LISTEN:%d,reuseaddr,fork" % vncport, "UNIX-CLIENT:/var/run/qemu-server/%d.vnc" % vmid])
			websockifyPid = None
			try:
				if websockifyPort:
					websockifyPid = websockify.start(websockifyPort, vncport, websockifyCert)
			except:
				self.stopVnc(vncPid)
				raise
			return vncPid, websockifyPid
Exemple #11
0
def start(port, vncport, sslcert=None):
    port = params.convert(port, convert=int, gte=1, lt=2**16)
    vncport = params.convert(vncport, convert=int, gte=1, lt=2**16)
    sslcert = params.convert(sslcert,
                             convert=str,
                             null=True,
                             check=os.path.exists)
    WebsockifyError.check(not netstat.isPortFree(vncport),
                          WebsockifyError.CODE_DEST_PORT_FREE,
                          "Destination port is free", {"port": vncport})
    netstat.checkPortFree(port, tcp=True, ipv4=True)
    pid = spawnDaemon(
        ["websockify",
         "0.0.0.0:%d" %
         port, "localhost:%d" % vncport] +
        ["--cert=%s" % sslcert] if sslcert else [])
    try:
        wait.waitFor(lambda: netstat.isPortUsedBy(port, pid),
                     failCond=lambda: not proc.isAlive(pid))
        return pid
    except wait.WaitError:
        proc.autoKill(pid, group=True)
        raise
Exemple #12
0
def start(iface, output):
    iface = params.convert(iface, convert=str, check=net.ifaceExists)
    output = params.convert(output, convert=str)
    return spawnDaemon(["ipspy", "-i", iface, "-o", output, "--dhcp"])
Exemple #13
0
def start(iface, output):
    iface = params.convert(iface, convert=str, check=net.ifaceExists)
    output = params.convert(output, convert=str)
    return spawnDaemon(["ipspy", "-i", iface, "-o", output, "--dhcp"])