def __init__(self, ip_address, username, password, ssh_timeout=600, prompt=None): self.ssh_client = SSHBaseClient(ip_address, username, password, ssh_timeout) self.prompt = prompt if not self.ssh_client.test_connection_auth(): raise
def reboot(self, timeout=100): ''' @timeout: max timeout for the machine to reboot ''' ssh_connector = SSHBaseClient(self.ip_address, self.username, self.password) response, prompt = ssh_connector.exec_shell_command("sudo reboot") response, prompt = ssh_connector.exec_shell_command(self.password) self.client_log.info("Reboot response for %s: %s" % (self.ip_address, response)) max_time = time.time() + timeout while time.time() < max_time: time.sleep(5) if self.ssh_client.test_connection_auth(): self.client_log.info("Reboot successful for %s" % (self.ip_address)) return True
def __init__(self, ip_address=None, server_id=None, username=None, password=None, config=None, os_distro=None, key=None): self.client_log = cclogging.getLogger( cclogging.get_object_namespace(self.__class__)) ssh_timeout = config.connection_timeout if ip_address is None: raise ServerUnreachable("None") self.ip_address = ip_address self.username = username if self.username is None: self.username = '******' self.password = password self.server_id = server_id start = int(time.time()) reachable = False while not reachable: reachable = PingClient.ping(ip_address, config.ip_address_version_for_ssh) time.sleep(config.connection_retry_interval) if int(time.time()) - start >= config.connection_timeout: raise ServerUnreachable(ip_address) self.ssh_client = SSHBaseClient(self.ip_address, self.username, self.password, timeout=ssh_timeout, key=key) if not self.ssh_client.test_connection_auth(): self.client_log.error("Ssh connection failed for: IP:{0} \ Username:{1} Password: {2}".format(self.ip_address, self.username, self.password)) raise SshConnectionException("ssh connection failed")