Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# This file is part of Xpra. 

2# Copyright (C) 2013 Antoine Martin <antoine@xpra.org> 

3# Xpra is released under the terms of the GNU GPL v2, or, at your option, any 

4# later version. See the file COPYING for details. 

5 

6import os 

7 

8from xpra.platform import platform_import 

9 

10 

11def get_posix_sys_info(): 

12 info = {} 

13 try: 

14 import resource 

15 for k, constant in { 

16 "server" : "RUSAGE_SELF", 

17 "children" : "RUSAGE_CHILDREN", 

18 "total" : "RUSAGE_BOTH", 

19 }.items(): 

20 try: 

21 v = getattr(resource, constant) 

22 except (NameError, AttributeError): 

23 continue 

24 stats = resource.getrusage(v) 

25 minfo = info.setdefault("memory", {}).setdefault(k, {}) 

26 for var in ( 

27 "utime", "stime", "maxrss", 

28 "ixrss", "idrss", "isrss", 

29 "minflt", "majflt", "nswap", 

30 "inblock", "oublock", 

31 "msgsnd", "msgrcv", 

32 "nsignals", "nvcsw", "nivcsw", 

33 ): 

34 value = getattr(stats, "ru_%s" % var) 

35 if isinstance(value, float): 

36 value = int(value) 

37 minfo[var] = value 

38 except Exception: # pragma: no cover 

39 from xpra.os_util import get_util_logger 

40 get_util_logger().error("Error getting memory usage info", exc_info=True) 

41 return info 

42 

43def get_sys_info(): 

44 if os.name=="posix": 

45 return get_posix_sys_info() 

46 return {} # pragma: no cover 

47 

48def get_version_info(): 

49 return {} 

50 

51def _get_pwd(): 

52 try: 

53 import pwd 

54 USER_ID = os.getuid() 

55 return pwd.getpwuid(USER_ID) 

56 except KeyError: # pragma: no cover 

57 return None 

58 

59def get_username(): 

60 p = _get_pwd() 

61 if p is None: # pragma: no cover 

62 return "" 

63 return p.pw_name 

64 

65def get_name(): 

66 p = _get_pwd() 

67 if p is None: # pragma: no cover 

68 return "" 

69 return p.pw_gecos.replace(",", "") 

70 

71def get_user_info(): 

72 return { 

73 "username" : get_username(), 

74 "name" : get_name() 

75 } 

76 

77platform_import(globals(), "info", False, 

78 "get_sys_info", 

79 "get_version_info", 

80 "get_username", 

81 "get_name")