Loading cccli/handler.py +35 −30 Original line number Diff line number Diff line Loading @@ -26,44 +26,49 @@ class CliHandler(RpcHandler): Printer().fatal("Disconnected from server!") @pure def get_tags(self, tags=None, resolve=False): if tags is None: tags = [ x[8:] for x in dir(self) if x.startswith("get_tag_") ] def get_tags(self, complete=None, partial=None): # prepare work taglist = [ x[8:] for x in dir(self) if x.startswith("get_tag_") ] ctag = set(taglist) if complete is None else set(complete) ptag = set(taglist) if partial is None else set(partial) d = dict() for t in tags: # remove unknown tags ctag.intersection_update(taglist) ptag.intersection_update(taglist) # build partial tags for t in ptag: d[t] = { "ttl": getattr(self, "get_tag_%s"%t).ttl } # build complete tags for t in ctag: method = "get_tag_%s"%t if hasattr(self, method): d[t] = getattr(self, method)(resolve) d[t] = { "value": getattr(self, method)(), "ttl": getattr(self, method).ttl} # answer return d def get_tag_version(self, resolve): def get_tag_version(self): '''Return tag version''' return { "value": cccli.version, "ttl": -1 } return cccli.version get_tag_version.ttl = -1 def get_tag_os(self, resolve): def get_tag_os(self): '''Return Operating system tag''' if resolve: return { "value": platform.system().lower(), "ttl": -1 } return { "ttl": -1 } return platform.system().lower() get_tag_os.ttl = -1 def get_tag_uname(self, resolve): def get_tag_uname(self): '''Return uname output''' if resolve: try: p = subprocess.Popen(["uname", "-a"], close_fds=True, shell=False, stdout=subprocess.PIPE) return { "value": p.stdout.read().rstrip("\n") , "ttl": -1 } return p.stdout.read().rstrip("\n") except Exception: return { "value": "", "ttl": -1 } else: return { "ttl": -1 } return "" get_tag_uname.ttl = -1 def get_tag_uptime(self, resolve): def get_tag_uptime(self): '''Return uptime output''' if resolve: try: p = subprocess.Popen(["uptime"], close_fds=True, shell=False, stdout=subprocess.PIPE) return { "value": p.stdout.read().rstrip("\n") , "ttl": 3 } return p.stdout.read().rstrip("\n") except Exception: return { "value": "", "ttl": 3 } else: return { "ttl": 3 } return "" get_tag_uptime.ttl = 3 Loading
cccli/handler.py +35 −30 Original line number Diff line number Diff line Loading @@ -26,44 +26,49 @@ class CliHandler(RpcHandler): Printer().fatal("Disconnected from server!") @pure def get_tags(self, tags=None, resolve=False): if tags is None: tags = [ x[8:] for x in dir(self) if x.startswith("get_tag_") ] def get_tags(self, complete=None, partial=None): # prepare work taglist = [ x[8:] for x in dir(self) if x.startswith("get_tag_") ] ctag = set(taglist) if complete is None else set(complete) ptag = set(taglist) if partial is None else set(partial) d = dict() for t in tags: # remove unknown tags ctag.intersection_update(taglist) ptag.intersection_update(taglist) # build partial tags for t in ptag: d[t] = { "ttl": getattr(self, "get_tag_%s"%t).ttl } # build complete tags for t in ctag: method = "get_tag_%s"%t if hasattr(self, method): d[t] = getattr(self, method)(resolve) d[t] = { "value": getattr(self, method)(), "ttl": getattr(self, method).ttl} # answer return d def get_tag_version(self, resolve): def get_tag_version(self): '''Return tag version''' return { "value": cccli.version, "ttl": -1 } return cccli.version get_tag_version.ttl = -1 def get_tag_os(self, resolve): def get_tag_os(self): '''Return Operating system tag''' if resolve: return { "value": platform.system().lower(), "ttl": -1 } return { "ttl": -1 } return platform.system().lower() get_tag_os.ttl = -1 def get_tag_uname(self, resolve): def get_tag_uname(self): '''Return uname output''' if resolve: try: p = subprocess.Popen(["uname", "-a"], close_fds=True, shell=False, stdout=subprocess.PIPE) return { "value": p.stdout.read().rstrip("\n") , "ttl": -1 } return p.stdout.read().rstrip("\n") except Exception: return { "value": "", "ttl": -1 } else: return { "ttl": -1 } return "" get_tag_uname.ttl = -1 def get_tag_uptime(self, resolve): def get_tag_uptime(self): '''Return uptime output''' if resolve: try: p = subprocess.Popen(["uptime"], close_fds=True, shell=False, stdout=subprocess.PIPE) return { "value": p.stdout.read().rstrip("\n") , "ttl": 3 } return p.stdout.read().rstrip("\n") except Exception: return { "value": "", "ttl": 3 } else: return { "ttl": 3 } return "" get_tag_uptime.ttl = 3