Ejemplo n.º 1
0
 def get_info(self, proto, *args):
     info = ServerCore.get_info(self, proto)
     info.setdefault("server", {})["type"] = "Python/GLib/proxy"
     #only show more info if we have authenticated
     #as the user running the proxy server process:
     pa = proto.authenticator
     if pa:
         sessions = pa.get_sessions()
         if sessions:
             uid, gid = sessions[:2]
             if os.name != "posix" or (uid == os.getuid()
                                       and gid == os.getgid()):
                 info.update(ServerCore.get_info(self, proto))
                 self.reap()
                 i = 0
                 for p, v in self.processes.items():
                     d, _ = v
                     info[i] = {
                         "display": d,
                         "live": p.is_alive(),
                         "pid": p.pid,
                     }
                     i += 1
                 info["proxies"] = len(self.processes)
     return info
Ejemplo n.º 2
0
 def get_info(self, proto, *_args):
     info = ServerCore.get_info(self, proto)
     info.setdefault("server", {})["type"] = "Python/GLib/proxy"
     #only show more info if we have authenticated
     #as the user running the proxy server process:
     if proto and proto.authenticators:
         sessions = []
         for authenticator in proto.authenticators:
             auth_sessions = authenticator.get_sessions()
             #don't add duplicates:
             for x in auth_sessions:
                 if x not in sessions:
                     sessions.append(x)
         if sessions:
             uid, gid = sessions[:2]
             if not POSIX or (uid==os.getuid() and gid==os.getgid()):
                 self.reap()
                 i = 0
                 for p,v in self.processes.items():
                     d,_ = v
                     info[i] = {
                                "display"    : d,
                                "live"       : p.is_alive(),
                                "pid"        : p.pid,
                                }
                     i += 1
                 info["proxies"] = len(self.processes)
     return info
Ejemplo n.º 3
0
 def get_info(self, proto=None, client_uuids=None):
     log("ServerBase.get_info%s", (proto, client_uuids))
     start = monotonic_time()
     info = ServerCore.get_info(self, proto)
     server_info = info.setdefault("server", {})
     if self.mem_bytes:
         server_info["total-memory"] = self.mem_bytes
     if client_uuids:
         sources = [
             ss for ss in self._server_sources.values()
             if ss.uuid in client_uuids
         ]
     else:
         sources = tuple(self._server_sources.values())
     log("info-request: sources=%s", sources)
     dgi = self.do_get_info(proto, sources)
     #ugly alert: merge nested dictionaries,
     #ie: do_get_info may return a dictionary for "server" and we already have one,
     # so we update it with the new values
     for k, v in dgi.items():
         cval = info.get(k)
         if cval is None:
             info[k] = v
             continue
         cval.update(v)
     log("ServerBase.get_info took %.1fms",
         1000.0 * (monotonic_time() - start))
     return info
Ejemplo n.º 4
0
 def get_info(self, proto, *args):
     info = ServerCore.get_info(self, proto)
     info.setdefault("server", {})["type"] = "Python/GLib/proxy"
     #only show more info if we have authenticated
     #as the user running the proxy server process:
     pa = proto.authenticator
     if pa:
         sessions = pa.get_sessions()
         if sessions:
             uid, gid = sessions[:2]
             if os.name!="posix" or (uid==os.getuid() and gid==os.getgid()):
                 info.update(ServerCore.get_info(self, proto))
                 self.reap()
                 i = 0
                 for p,v in self.processes.items():
                     d,_ = v
                     info[i] = {
                                "display"    : d,
                                "live"       : p.is_alive(),
                                "pid"        : p.pid,
                                }
                     i += 1
                 info["proxies"] = len(self.processes)
     return info
Ejemplo n.º 5
0
 def get_info(self, proto, *args):
     info = {"server.type": "Python/GObject/proxy"}
     #only show more info if we have authenticated
     #as the user running the proxy server process:
     sessions = proto.authenticator.get_sessions()
     if sessions:
         uid, gid = sessions[:2]
         if uid == os.getuid() and gid == os.getgid():
             info.update(ServerCore.get_info(self, proto))
             self.reap()
             i = 0
             for p, v in self.processes.items():
                 d, _ = v
                 info["proxy[%s].display" % i] = d
                 info["proxy[%s].live" % i] = p.is_alive()
                 info["proxy[%s].pid" % i] = p.pid
                 i += 1
             info["proxies"] = len(self.processes)
     return info
Ejemplo n.º 6
0
 def get_info(self, proto, *args):
     info = {"server.type" : "Python/GLib/proxy"}
     #only show more info if we have authenticated
     #as the user running the proxy server process:
     sessions = proto.authenticator.get_sessions()
     if sessions:
         uid, gid = sessions[:2]
         if uid==os.getuid() and gid==os.getgid():
             info.update(ServerCore.get_info(self, proto))
             self.reap()
             i = 0
             for p,v in self.processes.items():
                 d,_ = v
                 info[i] = {"display"    : d,
                            "live"       : p.is_alive(),
                            "pid"        : p.pid}
                 i += 1
             info["proxies"] = len(self.processes)
     return info