From af4b52c6a23d5c2be54dbcebb4e6bd58915aa05d Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 24 Apr 2017 17:09:56 +0300 Subject: Move gitano() out from YarnHelper --- 000.yarn | 14 +++++++------- lib.py | 31 +++++++++++++++++++++++++++++++ yarnhelper.py | 27 --------------------------- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/000.yarn b/000.yarn index 0cf78a9..1657eca 100644 --- a/000.yarn +++ b/000.yarn @@ -272,12 +272,12 @@ WHEN admin creates user vars['users'] = [] vars['users'].append(username) # FIXME: Create first, this is temporary - helper.gitano( + gitano( None, 'user add {} {}@example.com Test {}'.format( username, username, username)) pubkey = helper.ssh_keygen(username) - helper.gitano(None, + gitano(None, 'as {} sshkey add default'.format(username), stdin=pubkey) WHEN admin creates group @@ -288,7 +288,7 @@ WHEN admin creates group if vars['groups'] is None: vars['groups'] = [] vars['groups'].append(group) - helper.gitano(None, 'group add {} Test group'.format(group)) + gitano(None, 'group add {} Test group'.format(group)) WHEN admin adds user to group ----------------------------------------------------------------------------- @@ -296,7 +296,7 @@ WHEN admin adds user to group IMPLEMENTS WHEN admin adds (\S+) to (\S+) user = get_next_match() group = get_next_match() - output = helper.gitano( + gitano( None, 'group adduser {} {}'.format(group, user)) WHEN admin created repository @@ -308,7 +308,7 @@ WHEN admin created repository vars['repositories'] = [] vars['repositories'].append(repo) - helper.gitano(None, 'create {}'.format(repo)) + gitano(None, 'create {}'.format(repo)) # Make a commit in master in the repo, push that. user = 'admin' @@ -330,7 +330,7 @@ WHEN admin sets repository config repo = get_next_match() key = get_next_match() value = get_next_match() - helper.gitano(None, 'config {} set {} {}'.format(repo, key, value)) + gitano(None, 'config {} set {} {}'.format(repo, key, value)) THEN a user can clone a repository ----------------------------------------------------------------------------- @@ -464,7 +464,7 @@ FINALLY clean up anything created during tests def iter(var, prefix): items = vars[var] or [] for item in items: - helper.gitano_confirm_with_token(prefix, item) + gitano_confirm_with_token(prefix, item) iter('users', 'user del') iter('groups', 'group del') iter('repositories', 'destroy') diff --git a/lib.py b/lib.py index f1e0850..4982e32 100644 --- a/lib.py +++ b/lib.py @@ -12,3 +12,34 @@ srcdir = os.environ['SRCDIR'] datadir = os.environ['DATADIR'] vars = Variables(datadir) + + + +def gitano(user, args, stdin=None): + server = os.environ['GITANO_SERVER'] + kwargs = { + 'stderr': subprocess.STDOUT, + 'ssh_options': [ + '-oPasswordAuthentication=no', + '-oIdentitiesOnly=yes', + '-i', self.get_user_ssh_key(user), + ], + } + if stdin is not None: + kwargs['feed_stdin'] = stdin + return cliapp.ssh_runcmd( + 'git@{}'.format(server), + args.split(), + **kwargs) + + + +def gitano_confirm_with_token(prefix, which): + try: + output = gitano(None, '{} {}'.format(prefix, which)) + except cliapp.AppException: + pass + else: + last_line = output.splitlines()[-1] + token = last_line.split()[-1] + gitano(None, '{} {} {}'.format(prefix, which, token)) diff --git a/yarnhelper.py b/yarnhelper.py index 4cd729a..fa67a3c 100644 --- a/yarnhelper.py +++ b/yarnhelper.py @@ -185,33 +185,6 @@ class YarnHelper(object): else: return self.ssh_key_file_for_user(user) - def gitano(self, user, args, stdin=None): # pragma: no cover - server = os.environ['GITANO_SERVER'] - kwargs = { - 'stderr': subprocess.STDOUT, - 'ssh_options': [ - '-oPasswordAuthentication=no', - '-oIdentitiesOnly=yes', - '-i', self.get_user_ssh_key(user), - ], - } - if stdin is not None: - kwargs['feed_stdin'] = stdin - return cliapp.ssh_runcmd( - 'git@{}'.format(server), - args.split(), - **kwargs) - - def gitano_confirm_with_token(self, prefix, which): # pragma: no cover - try: - output = self.gitano(None, '{} {}'.format(prefix, which)) - except cliapp.AppException: - pass - else: - last_line = output.splitlines()[-1] - token = last_line.split()[-1] - self.gitano(None, '{} {} {}'.format(prefix, which, token)) - class Error(Exception): -- cgit v1.2.1