diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-04-24 17:45:47 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-04-24 17:45:47 +0300 |
commit | 807ee8a62080994c3487298a8ebd25b5d5daa99f (patch) | |
tree | f37f8b3d642e3db6001cf2936e1ac0c8789ac40f /lib.py | |
parent | af4b52c6a23d5c2be54dbcebb4e6bd58915aa05d (diff) | |
download | git.liw.fi-ruleset-tests-807ee8a62080994c3487298a8ebd25b5d5daa99f.tar.gz |
Move more stuff into lib.py from YarnHelper
Diffstat (limited to 'lib.py')
-rw-r--r-- | lib.py | 56 |
1 files changed, 55 insertions, 1 deletions
@@ -1,4 +1,5 @@ import os +import subprocess import sys import cliapp @@ -15,6 +16,59 @@ vars = Variables(datadir) + +def ssh_key_file_for_user(user): + return os.path.abspath('{}.key'.format(user)) + + +def get_admin_ssh_key(): + return os.environ['ADMIN_SSH_KEY'] + + +def get_user_ssh_key(user): + if user is None: + return get_admin_ssh_key() + else: + return ssh_key_file_for_user(user) + + +def ssh_keygen(user): + filename = ssh_key_file_for_user(user) + cliapp.runcmd(['ssh-keygen', '-f', filename, '-N', '', '-C', user]) + with open(filename + '.pub') as f: + return f.read() + + +def env_ssh_command(user): + argv = [ + 'ssh', + '-o', 'PasswordAuthentication=no', + '-o', 'IdentitiesOnly=yes', + '-i', get_user_ssh_key(user), + ] + return ' '.join(argv) + + + +def git_as(user, args, **kwargs): + server = os.environ['GITANO_SERVER'] + env = dict(os.environ) + env['GIT_SSH_COMMAND'] = env_ssh_command(user) + return cliapp.runcmd_unchecked( + ['git'] + args, + stderr=subprocess.STDOUT, + env=env, + **kwargs) + + + +def git_as_checked(user, args, **kwargs): + exit, out, err = git_as(user, args, **kwargs) + sys.stdout.write('STDOUT from git:\n{}'.format(out)) + sys.stderr.write('STDERR from git:\n{}'.format(err)) + assertEqual(exit, 0) + + def gitano(user, args, stdin=None): server = os.environ['GITANO_SERVER'] kwargs = { @@ -22,7 +76,7 @@ def gitano(user, args, stdin=None): 'ssh_options': [ '-oPasswordAuthentication=no', '-oIdentitiesOnly=yes', - '-i', self.get_user_ssh_key(user), + '-i', get_user_ssh_key(user), ], } if stdin is not None: |