diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2014-05-23 10:42:43 +0100 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2014-05-23 10:43:05 +0100 |
commit | b6a33d69db0bea97dba40314bb1399f15e39c2cf (patch) | |
tree | 6805ada308e6ece41c455b3b1b30a26386140c07 /morphlib/exts/ssh-rsync.check | |
parent | be427a358072931e7e4516e62aff5b26968dfd16 (diff) | |
parent | 7d849ca1db73c1544073acb6b7c88a33ec88be8d (diff) | |
download | morph-b6a33d69db0bea97dba40314bb1399f15e39c2cf.tar.gz |
Merge remote-tracking branch 'origin/sam/ssh-rsync-check'
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
Reviewed-By: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
Diffstat (limited to 'morphlib/exts/ssh-rsync.check')
-rwxr-xr-x | morphlib/exts/ssh-rsync.check | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/morphlib/exts/ssh-rsync.check b/morphlib/exts/ssh-rsync.check index 90029cb4..6a776ce9 100755 --- a/morphlib/exts/ssh-rsync.check +++ b/morphlib/exts/ssh-rsync.check @@ -33,4 +33,28 @@ class SshRsyncCheckExtension(morphlib.writeexts.WriteExtension): 'Baserock machines. It cannot be used for an initial ' 'deployment.') + location = args[0] + self.check_ssh_connectivity(location) + self.check_is_baserock_system(location) + + # The new system that being deployed as an upgrade must contain + # baserock-system-config-sync and system-version-manager. However, the + # old system simply needs to have SSH and rsync. + self.check_command_exists(location, 'rsync') + + def check_is_baserock_system(self, location): + output = cliapp.ssh_runcmd(location, ['sh', '-c', + 'test -d /baserock || echo -n dirnotfound']) + if output == 'dirnotfound': + raise cliapp.AppException('%s is not a baserock system' + % location) + + def check_command_exists(self, location, command): + test = 'type %s > /dev/null 2>&1 || echo -n cmdnotfound' % command + output = cliapp.ssh_runcmd(location, ['sh', '-c', test]) + if output == 'cmdnotfound': + raise cliapp.AppException( + "%s does not have %s" % (location, command)) + + SshRsyncCheckExtension().run() |