Exemplo n.º 1
0
class DundiResource(Resource):
    def __init__(self):
        Resource.__init__(self)
	self.dundi = Dundi()
        #self.putChild("voip", PeersResource())

    def getChild(self, name, request):
        return self

    def render_GET(self, request):
	parts = request.path.split('/')
	if len(parts) > 2 and parts[2] == 'pubkey':
		return self.dundi.get_public_key()
	user = session.get_user(request)
	if user and user.admin:
		content = self.render_dundi(request)
	        #content = print_template('admin', {})
	        return print_template('content-pbx-lorea', {'content': content})
	else:
		return redirectTo("/", request)

    def render_dundi(self, request):
	d = self.dundi
	connections = d.parse_connections()
	output = "<h2>Dundi</h2>\n"
	output += "<h3>Server</h3>\n"
	output += "<p><b>geo</b>: %s <b>nongeo</b>: %s</p>\n" % (str(d.geo), str(d.nongeo))
	for key in ['locality', 'organization', 'entityid', 'email']:
		val = d.config['general'][key]
		output += '<p><b>%s:</b> %s</p>\n' % (key, val)
	output += "<h3>Peers</h3>\n"
	output += self.render_dundipeers(request, d.find_hosts(), connections)
	return output

    def render_dundipeers(self, request, peers, connections):
	res = [['name', 'address', 'nongeo', 'alias', 'signal']]
	for name, node in peers.iteritems():
		address = node.get('host', '')
		nongeo = str(node.get('nongeo', ''))
		alias = str(node.get('inkey', ''))
		online = 'no'
		if address and address in connections:
			ping = connections[address]['ping']
			online = format_ping(ping)
		res.append([name, address, nongeo, alias, online])
	return html.format_table(res)
Exemplo n.º 2
0
class DundiResource(Resource):
    def __init__(self):
        Resource.__init__(self)
        self.dundi = Dundi()
        # self.putChild("voip", PeersResource())

    def getChild(self, name, request):
        return self

    def render_GET(self, request):
        parts = request.path.split("/")
        if len(parts) > 2 and parts[2] == "pubkey":
            return self.dundi.get_public_key()
        user = session.get_user(request)
        if user and user.admin:
            content = self.render_dundi(request)
            # content = print_template('admin', {})
            return print_template("content-pbx-lorea", {"content": content})
        else:
            return redirectTo("/", request)

    def render_dundi(self, request):
        d = self.dundi
        connections = d.parse_connections()
        output = "<h2>Dundi</h2>\n"
        output += "<h3>Server</h3>\n"
        output += "<p><b>geo</b>: %s <b>nongeo</b>: %s</p>\n" % (str(d.geo), str(d.nongeo))
        for key in ["locality", "organization", "entityid", "email"]:
            val = d.config["general"][key]
            output += "<p><b>%s:</b> %s</p>\n" % (key, val)
        output += "<h3>Peers</h3>\n"
        output += self.render_dundipeers(request, d.find_hosts(), connections)
        return output

    def render_dundipeers(self, request, peers, connections):
        res = [["name", "address", "nongeo", "alias", "signal"]]
        for name, node in peers.iteritems():
            address = node.get("host", "")
            nongeo = str(node.get("nongeo", ""))
            alias = str(node.get("inkey", ""))
            online = "no"
            if address and address in connections:
                ping = connections[address]["ping"]
                online = format_ping(ping)
            res.append([name, address, nongeo, alias, online])
        return html.format_table(res)
Exemplo n.º 3
0
    def __init__(self):
        Resource.__init__(self)
	self.dundi = Dundi()
Exemplo n.º 4
0
 def __init__(self):
     Resource.__init__(self)
     self.dundi = Dundi()
Exemplo n.º 5
0
 def __init__(self):
     Resource.__init__(self)
     self._dundi = Dundi()
     self._tinc = Tinc()