jepsen.control.clj-ssh

A CLJ-SSH powered implementation of the Remote protocol.

clj-ssh-agent

Acquiring an SSH agent is expensive and involves a global lock; we save the agent and re-use it to speed things up.

clj-ssh-session

(clj-ssh-session conn-spec)

Opens a raw session to the given connection spec

concurrency-limit

OpenSSH has a standard limit of 10 concurrent channels per connection. However, commands run in quick succession with 10 concurrent also seem to blow out the channel limit–perhaps there’s an asynchronous channel teardown process. We set the limit a bit lower here. This is experimentally determined for clj-ssh by running jepsen.control-test’s integration test…

remote

(remote)

A remote that does things via clj-ssh.

with-errors

macro

(with-errors conn context & body)

Takes a conn spec, a context map, and a body. Evals body, remapping clj-ssh exceptions to :type :jepsen.control/ssh-failed.