From 37de6615dc1870dca73aedbaf8b08501f46d4422 Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Fri, 23 May 2014 17:18:50 +0100 Subject: Clean and add the beginnings of upgrade --- system-version-manager/system-version-manager | 51 ++++++++++++++++++--------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/system-version-manager/system-version-manager b/system-version-manager/system-version-manager index 6638a35..aa27b2c 100755 --- a/system-version-manager/system-version-manager +++ b/system-version-manager/system-version-manager @@ -47,7 +47,7 @@ class SystemVersionManager(object): # create the parser for the "list" command parser_list = subparsers.add_parser('list', help='list show you a list of systems') - parser_list.set_defaults(action='list') + parser_list.set_defaults(action=self.cmd_list) # create the parser for the "deploy" command parser_deploy= subparsers.add_parser('deploy', @@ -55,6 +55,12 @@ class SystemVersionManager(object): parser_deploy.set_defaults(action='deploy') parser_deploy.add_argument('location') + # create the parser for the "upgrade" command + parser_upgrade = subparsers.add_parser('upgrade', + help='use a patch to upgrade this system') + parser_upgrade.set_defaults(action=self.cmd_upgrade) + parser_upgrade.add_argument('deltas') + # create the parser for the "get-default" command parser_get_default = subparsers.add_parser('get-default', help='prints the default system') @@ -150,11 +156,11 @@ class SystemVersionManager(object): os.symlink(default, default_path_tmp) os.rename(default_path_tmp, default_path) - def cmd_list(self): + def cmd_list(self, _): for system in self._get_systems(): print system - def cmd_get_default(self): + def cmd_get_default(self, _): print self._get_default() def cmd_get_running(self): @@ -219,6 +225,9 @@ class SystemVersionManager(object): self._rewrite_boot_menu(self.device, self._get_default(), self._get_systems()) + def cmd_upgrade(self, location): + pass # upgrade + def _install_kernel(self, version_root): '''Install the kernel outside of 'orig' or 'run' subvolumes @@ -291,20 +300,28 @@ class SystemVersionManager(object): try: self._check_system_compatibility() - if action == "list": - self.cmd_list() - elif action == "deploy": - self.cmd_deploy(args.location) - elif action == "remove": - self.cmd_remove(args.system_name) - elif action == "set-default": - self.cmd_set_default(args.system_name) - elif action == "get-default": - self.cmd_get_default() - elif action == "get-running": - self.cmd_get_running() - else: - raise NotImplementedError("Unknown command %s" % action) + # TODO: it's possible to use action to call the functions + # directly if we set action to the function we want to + # call when we parse it + #if action == "list": + # self.cmd_list() + #elif action == "deploy": + # self.cmd_deploy(args.location) + #elif action == "upgrade": + # self.cmd_upgrade() + #elif action == "remove": + # self.cmd_remove(args.system_name) + #elif action == "set-default": + # self.cmd_set_default(args.system_name) + #elif action == "get-default": + # self.cmd_get_default() + #elif action == "get-running": + # self.cmd_get_running() + #else: + # raise NotImplementedError("Unknown command %s" % action) + + action(args) + except SystemNotCompatibleError, e: sys.stderr.write("ERROR, system not compatible: %s\n" % e.args[0]) raise -- cgit v1.2.1