self.user = pwd.getpwuid(os.getuid()).pw_name
hostname = name
self._shortname = shortname or hostname.split('.')[0]
- self.host_key = host_key
+ self._host_key = host_key
self.keep_alive = keep_alive
self.console = console
self.ssh = ssh or self.connect()
def connect(self):
self.ssh = connection.connect(user_at_host=self.name,
- host_key=self.host_key,
+ host_key=self._host_key,
keep_alive=self.keep_alive)
return self.ssh
self._arch = proc.stdout.getvalue().strip()
return self._arch
+ @property
+ def host_key(self):
+ if not self._host_key:
+ trans = self.ssh.get_transport()
+ key = trans.get_remote_server_key()
+ self._host_key = ' '.join((key.get_name(), key.get_base64()))
+ return self._host_key
+
class Distribution(object):
"""
'--fqdn',
]
stdout = StringIO('test_hostname')
- print repr(stdout)
stdout.seek(0)
- print repr(stdout)
ret = RemoteProcess(
client=ssh,
args='fakey',
r._runner = run
assert r.arch == 'test_arch'
+ @fudge.with_fakes
+ def test_host_key(self):
+ fudge.clear_expectations()
+ ssh = fudge.Fake('SSHConnection')
+ key = ssh.expects('get_transport').returns_fake().expects(
+ 'get_remote_server_key').returns_fake()
+ key.expects('get_name').returns('key_type')
+ key.expects('get_base64').returns('test ssh key')
+ r = remote.Remote(name='jdoe@xyzzy.example.com', ssh=ssh)
+ assert r.host_key == 'key_type test ssh key'
+
class TestDistribution(object):
lsb_centos = dedent("""