Loading wgcli.py +22 −19 Original line number Diff line number Diff line Loading @@ -73,56 +73,53 @@ class MainMenu(object): def usage(self, banner=False): if banner: print( """###################################### print("""###################################### Welcome to Stanford Workgroup CLI tool ###################################### """ ) print( """ Commands are: workgroup <workgroup> to select a working workgroup workgroup_full <workgroup> to select a working workgroup and load it with stem-owners (slower) ls to list members tree to list members recursively """ ) """) print("""Commands are:""") commands = [x for x in self.__dir__() if x.startswith('cmd_')] # import IPython; IPython.embed() for c in commands: print(getattr(self, c).__doc__) def cmd_tree(self): "tree to list members recursively" print_workgroup("WORKGROUP", self.manager.workgroup(self.workgroup.name)) def cmd_ls(self): """ls to list members""" print_workgroup( "WORKGROUP", self.manager.workgroup(self.workgroup.name), maxdepth=1 ) def cmd_workgroup(self, workgroup_name): """workgroup <workgroup> to select a working workgroup""" logger.debug("loading workgroup {}...".format(workgroup_name)) self.workgroup = self.manager.workgroup(workgroup_name, fetch_owners=False) logger.debug("workgroup loaded: {}".format(self.workgroup)) def cmd_workgroup_full(self, workgroup_name): """workgroup_full <workgroup> to select a working workgroup and load it with stem-owners""" logger.debug("loading workgroup in full {}...".format(workgroup_name)) self.workgroup = self.manager.workgroup(workgroup_name, fetch_owners=True) logger.debug("workgroup fully loaded: {}".format(self.workgroup)) def cmd_add(self, member_name): """add <sunet> to select a working workgroup""" self.workgroup.add_member(member_name) def cmd_remove(self, member_name): """remove <sunet> to select a working workgroup""" self.workgroup.remove_member(member_name) def cmd_reload(self): """reload to reload the workgroup fresh from server""" self.manager.clear() self.workgroup = self.manager.workgroup(self.workgroup.name) def cmd_exit(self): """exit to exit the CLI and return to shell""" sys.exit(0) def selector(self, argument): Loading Loading @@ -158,11 +155,17 @@ Commands are: logger.debug("args: {}".format(args)) try: selection = self.selector(choice) if not selection: continue if choice in ["add", "remove", "reload", "ls", "tree"] and not self.workgroup: print("Need to load a workgroup first") self.usage() continue cmd = selection[0] args_needed = selection[1] if args_needed != (len(args)): print("Wrong number of args") usage() self.usage() continue if args_needed > 0: getattr(self, cmd)(*args) Loading Loading
wgcli.py +22 −19 Original line number Diff line number Diff line Loading @@ -73,56 +73,53 @@ class MainMenu(object): def usage(self, banner=False): if banner: print( """###################################### print("""###################################### Welcome to Stanford Workgroup CLI tool ###################################### """ ) print( """ Commands are: workgroup <workgroup> to select a working workgroup workgroup_full <workgroup> to select a working workgroup and load it with stem-owners (slower) ls to list members tree to list members recursively """ ) """) print("""Commands are:""") commands = [x for x in self.__dir__() if x.startswith('cmd_')] # import IPython; IPython.embed() for c in commands: print(getattr(self, c).__doc__) def cmd_tree(self): "tree to list members recursively" print_workgroup("WORKGROUP", self.manager.workgroup(self.workgroup.name)) def cmd_ls(self): """ls to list members""" print_workgroup( "WORKGROUP", self.manager.workgroup(self.workgroup.name), maxdepth=1 ) def cmd_workgroup(self, workgroup_name): """workgroup <workgroup> to select a working workgroup""" logger.debug("loading workgroup {}...".format(workgroup_name)) self.workgroup = self.manager.workgroup(workgroup_name, fetch_owners=False) logger.debug("workgroup loaded: {}".format(self.workgroup)) def cmd_workgroup_full(self, workgroup_name): """workgroup_full <workgroup> to select a working workgroup and load it with stem-owners""" logger.debug("loading workgroup in full {}...".format(workgroup_name)) self.workgroup = self.manager.workgroup(workgroup_name, fetch_owners=True) logger.debug("workgroup fully loaded: {}".format(self.workgroup)) def cmd_add(self, member_name): """add <sunet> to select a working workgroup""" self.workgroup.add_member(member_name) def cmd_remove(self, member_name): """remove <sunet> to select a working workgroup""" self.workgroup.remove_member(member_name) def cmd_reload(self): """reload to reload the workgroup fresh from server""" self.manager.clear() self.workgroup = self.manager.workgroup(self.workgroup.name) def cmd_exit(self): """exit to exit the CLI and return to shell""" sys.exit(0) def selector(self, argument): Loading Loading @@ -158,11 +155,17 @@ Commands are: logger.debug("args: {}".format(args)) try: selection = self.selector(choice) if not selection: continue if choice in ["add", "remove", "reload", "ls", "tree"] and not self.workgroup: print("Need to load a workgroup first") self.usage() continue cmd = selection[0] args_needed = selection[1] if args_needed != (len(args)): print("Wrong number of args") usage() self.usage() continue if args_needed > 0: getattr(self, cmd)(*args) Loading