summaryrefslogtreecommitdiff
path: root/ssh-config.py
blob: bea1453607870dba2e3b442c343c446783a40f26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import os
import re
import subprocess

def run_ssh(ctx, host=None, cmd=None):
    _runcmd(ctx, ['ssh', host, cmd])
    if ctx.get('exit') != 0:
        print('context:', ctx.as_dict())
    assert_eq(ctx.get('exit'), 0)

def stdout_matches(ctx, regex):
    stdout = ctx.get('stdout', '')
    assert_ne(re.search(regex, stdout), None)

def _runcmd(ctx, argv):
    p = subprocess.Popen(argv, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = p.communicate("")
    ctx['argv'] = argv
    ctx['stdout'] = stdout.decode('utf-8')
    ctx['stderr'] = stderr.decode('utf-8')
    ctx['exit'] = p.returncode