summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2014-05-23 17:18:50 +0100
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2014-05-23 17:19:13 +0100
commit37de6615dc1870dca73aedbaf8b08501f46d4422 (patch)
treefc3ab7e16a055b707d64c19542647424a4e5d3ee
parent485e76fea076b2a5f0efeab3ac7f98037f4e00c0 (diff)
downloadtbdiff-37de6615dc1870dca73aedbaf8b08501f46d4422.tar.gz
Clean and add the beginnings of upgrade
-rwxr-xr-xsystem-version-manager/system-version-manager51
1 files 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