Module connpy.cli.profile_handler
Classes
class ProfileHandler (app)-
Expand source code
class ProfileHandler: def __init__(self, app): self.app = app self.forms = Forms(app) def dispatch(self, args): if not self.app.case: args.data[0] = args.data[0].lower() actions = {"add": self.add, "del": self.delete, "mod": self.modify, "show": self.show} return actions.get(args.action)(args) def delete(self, args): name = args.data[0] try: self.app.services.profiles.get_profile(name) except ProfileNotFoundError: printer.error(f"{name} not found") sys.exit(2) if name == "default": printer.error("Can't delete default profile") sys.exit(6) question = [inquirer.Confirm("delete", message=f"Are you sure you want to delete {name}?")] confirm = inquirer.prompt(question) if confirm == None or not confirm["delete"]: sys.exit(7) try: self.app.services.profiles.delete_profile(name) printer.success(f"{name} deleted successfully") except ConnpyError as e: printer.error(str(e)) sys.exit(8) def show(self, args): try: profile = self.app.services.profiles.get_profile(args.data[0]) yaml_output = yaml.dump(profile, sort_keys=False, default_flow_style=False) printer.data(args.data[0], yaml_output) except ProfileNotFoundError: printer.error(f"{args.data[0]} not found") sys.exit(2) def add(self, args): name = args.data[0] if name in self.app.services.profiles.list_profiles(): printer.error(f"Profile '{name}' already exists.") sys.exit(4) new_profile_data = self.forms.questions_profiles(name) if not new_profile_data: sys.exit(7) try: self.app.services.profiles.add_profile(name, new_profile_data) printer.success(f"{name} added successfully") except ConnpyError as e: printer.error(str(e)) sys.exit(1) def modify(self, args): name = args.data[0] try: profile = self.app.services.profiles.get_profile(name, resolve=False) except ProfileNotFoundError: printer.error(f"Profile '{name}' not found") sys.exit(2) old_profile = {"id": name, **profile} edits = self.forms.questions_edit() if edits == None: sys.exit(7) update_profile_data = self.forms.questions_profiles(name, edit=edits) if not update_profile_data: sys.exit(7) if sorted(update_profile_data.items()) == sorted(old_profile.items()): printer.info("Nothing to do here") return try: self.app.services.profiles.update_profile(name, update_profile_data) printer.success(f"{name} edited successfully") except ConnpyError as e: printer.error(str(e)) sys.exit(1)Methods
def add(self, args)-
Expand source code
def add(self, args): name = args.data[0] if name in self.app.services.profiles.list_profiles(): printer.error(f"Profile '{name}' already exists.") sys.exit(4) new_profile_data = self.forms.questions_profiles(name) if not new_profile_data: sys.exit(7) try: self.app.services.profiles.add_profile(name, new_profile_data) printer.success(f"{name} added successfully") except ConnpyError as e: printer.error(str(e)) sys.exit(1) def delete(self, args)-
Expand source code
def delete(self, args): name = args.data[0] try: self.app.services.profiles.get_profile(name) except ProfileNotFoundError: printer.error(f"{name} not found") sys.exit(2) if name == "default": printer.error("Can't delete default profile") sys.exit(6) question = [inquirer.Confirm("delete", message=f"Are you sure you want to delete {name}?")] confirm = inquirer.prompt(question) if confirm == None or not confirm["delete"]: sys.exit(7) try: self.app.services.profiles.delete_profile(name) printer.success(f"{name} deleted successfully") except ConnpyError as e: printer.error(str(e)) sys.exit(8) def dispatch(self, args)-
Expand source code
def dispatch(self, args): if not self.app.case: args.data[0] = args.data[0].lower() actions = {"add": self.add, "del": self.delete, "mod": self.modify, "show": self.show} return actions.get(args.action)(args) def modify(self, args)-
Expand source code
def modify(self, args): name = args.data[0] try: profile = self.app.services.profiles.get_profile(name, resolve=False) except ProfileNotFoundError: printer.error(f"Profile '{name}' not found") sys.exit(2) old_profile = {"id": name, **profile} edits = self.forms.questions_edit() if edits == None: sys.exit(7) update_profile_data = self.forms.questions_profiles(name, edit=edits) if not update_profile_data: sys.exit(7) if sorted(update_profile_data.items()) == sorted(old_profile.items()): printer.info("Nothing to do here") return try: self.app.services.profiles.update_profile(name, update_profile_data) printer.success(f"{name} edited successfully") except ConnpyError as e: printer.error(str(e)) sys.exit(1) def show(self, args)-
Expand source code
def show(self, args): try: profile = self.app.services.profiles.get_profile(args.data[0]) yaml_output = yaml.dump(profile, sort_keys=False, default_flow_style=False) printer.data(args.data[0], yaml_output) except ProfileNotFoundError: printer.error(f"{args.data[0]} not found") sys.exit(2)