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