Loading cccli/cli.py +5 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,11 @@ class Cli(object): self.printer.debug("Loaded aliases: %d"%len(self.aliases)) # load tagdisplay self.tagdisplay.load(self.settings.get("tagdisplay", "")) # export tags to server self.rpc.call('tags_register', name='version', ttl=None) self.rpc.call('tags_register', name='os', ttl=None) self.rpc.call('tags_register', name='uname', ttl=None) self.rpc.call('tags_register', name='uptime', ttl=3) # parsing self._parse_loop() # save history Loading cccli/handler.py +12 −27 Original line number Diff line number Diff line Loading @@ -21,49 +21,34 @@ class CliHandler(RpcHandler): '''Call back function on server disconnect''' Printer().warn("Disconnected from server!") def get_tags(self, complete=None, partial=None): def get_tags(self, tags): '''Return a dict of local tags''' # 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() # 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 d[t] = { "value": getattr(self, method)(), "ttl": getattr(self, method).ttl} # answer return d def get_tag_version(self): ans = {} for tag in tags: method = "_get_tag_%s" % tag if hasattr(self, method): ans[tag] = getattr(self, method)() return ans def _get_tag_version(self): '''Return tag version''' return cccli.version get_tag_version.ttl = -1 def get_tag_os(self): def _get_tag_os(self): '''Return Operating system tag''' return platform.system().lower() get_tag_os.ttl = -1 def get_tag_uname(self): def _get_tag_uname(self): '''Return uname output''' try: p = subprocess.Popen(["uname", "-a"], close_fds=True, shell=False, stdout=subprocess.PIPE) return p.stdout.read().rstrip("\n") except Exception: return "" get_tag_uname.ttl = -1 def get_tag_uptime(self): def _get_tag_uptime(self): '''Return uptime output''' try: return int(float(open("/proc/uptime", "r").readline().split()[0])) except Exception: return "" get_tag_uptime.ttl = 3 Loading
cccli/cli.py +5 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,11 @@ class Cli(object): self.printer.debug("Loaded aliases: %d"%len(self.aliases)) # load tagdisplay self.tagdisplay.load(self.settings.get("tagdisplay", "")) # export tags to server self.rpc.call('tags_register', name='version', ttl=None) self.rpc.call('tags_register', name='os', ttl=None) self.rpc.call('tags_register', name='uname', ttl=None) self.rpc.call('tags_register', name='uptime', ttl=3) # parsing self._parse_loop() # save history Loading
cccli/handler.py +12 −27 Original line number Diff line number Diff line Loading @@ -21,49 +21,34 @@ class CliHandler(RpcHandler): '''Call back function on server disconnect''' Printer().warn("Disconnected from server!") def get_tags(self, complete=None, partial=None): def get_tags(self, tags): '''Return a dict of local tags''' # 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() # 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 d[t] = { "value": getattr(self, method)(), "ttl": getattr(self, method).ttl} # answer return d def get_tag_version(self): ans = {} for tag in tags: method = "_get_tag_%s" % tag if hasattr(self, method): ans[tag] = getattr(self, method)() return ans def _get_tag_version(self): '''Return tag version''' return cccli.version get_tag_version.ttl = -1 def get_tag_os(self): def _get_tag_os(self): '''Return Operating system tag''' return platform.system().lower() get_tag_os.ttl = -1 def get_tag_uname(self): def _get_tag_uname(self): '''Return uname output''' try: p = subprocess.Popen(["uname", "-a"], close_fds=True, shell=False, stdout=subprocess.PIPE) return p.stdout.read().rstrip("\n") except Exception: return "" get_tag_uname.ttl = -1 def get_tag_uptime(self): def _get_tag_uptime(self): '''Return uptime output''' try: return int(float(open("/proc/uptime", "r").readline().split()[0])) except Exception: return "" get_tag_uptime.ttl = 3