def get_conn_id(self): if self.conn_url == 'local': return '127.0.0.1' assert self.conn_url.startswith("ssh://") creds = parse_ssh_uri(self.conn_url[6:]) return "{0.host}:{0.port}".format(creds)
def get_user(self): if self.conn_url == 'local': return getpass.getuser() assert self.conn_url.startswith("ssh://") creds = parse_ssh_uri(self.conn_url[6:]) return creds.user
def conn_ctx(uri, *args): creds = ssh_utils.parse_ssh_uri(CONNECT_URI) node_info = node_interfaces.NodeInfo(creds, set()) conn = node.connect(node_info, *args) try: yield conn finally: conn.disconnect()
def rpc_conn_ctx(uri, log_level=None): creds = ssh_utils.parse_ssh_uri(uri) rpc_code, modules = node.get_rpc_server_code() ssh_conn = node.connect(node_interfaces.NodeInfo(creds, set())) try: rpc_conn = node.setup_rpc(ssh_conn, rpc_code, plugins=modules, log_level=log_level) try: yield rpc_conn finally: rpc_conn.conn.server.stop() rpc_conn.disconnect() finally: ssh_conn.disconnect()
def test_ssh_url_parser(): default_user = "******" creds = [("test", ssh_utils.ConnCreds("test", default_user, port=22)), ("test:13", ssh_utils.ConnCreds("test", default_user, port=13)), ("test::xxx.key", ssh_utils.ConnCreds("test", default_user, port=22, key_file="xxx.key")), ("test:123:xxx.key", ssh_utils.ConnCreds("test", default_user, port=123, key_file="xxx.key")), ("user@test", ssh_utils.ConnCreds("test", "user", port=22)), ("user@test:13", ssh_utils.ConnCreds("test", "user", port=13)), ("user@test::xxx.key", ssh_utils.ConnCreds("test", "user", port=22, key_file="xxx.key")), ("user@test:123:xxx.key", ssh_utils.ConnCreds("test", "user", port=123, key_file="xxx.key")), ("user:passwd@test", ssh_utils.ConnCreds("test", "user", port=22, passwd="passwd")), ("user:passwd:@test", ssh_utils.ConnCreds("test", "user", port=22, passwd="passwd:")), ("user:passwd:@test:123", ssh_utils.ConnCreds("test", "user", port=123, passwd="passwd:"))] for uri, expected in creds: with patch('getpass.getuser', lambda: default_user): parsed = ssh_utils.parse_ssh_uri(uri) assert parsed.user == expected.user, uri assert parsed.addr.port == expected.addr.port, uri assert parsed.addr.host == expected.addr.host, uri assert parsed.key_file == expected.key_file, uri assert parsed.passwd == expected.passwd, uri
def get_ip(self): if self.conn_url == 'local': return '127.0.0.1' assert self.conn_url.startswith("ssh://") return parse_ssh_uri(self.conn_url[6:]).host