示例#1
0
        def verify_running():
            sys.stderr.write("running; ")

            @inlineCallbacks
            def validate_connected(client):
                self.assertTrue(client.connected)
                sys.stderr.write("connected.")
                exists_deferred, watch_deferred = client.exists_and_watch(
                    "/charms")
                stat = yield exists_deferred
                if stat:
                    test_complete.callback(None)
                    returnValue(True)
                yield watch_deferred
                stat = yield client.exists("/charms")
                self.assertTrue(stat)
                test_complete.callback(None)

            def propogate_failure(failure):
                test_complete.errback(failure)
                return failure

            def close_client(result, client):
                client.close()

            server = "%s:2181" % instances[0].dns_name
            client = SSHClient()
            client_deferred = client.connect(server, timeout=300)
            client_deferred.addCallback(validate_connected)
            client_deferred.addErrback(propogate_failure)
            client_deferred.addBoth(close_client, client)
示例#2
0
 def setUp(self):
     super(ConnectionTest, self).setUp()
     self.username = pwd.getpwuid(os.getuid())[0]
     self.log = self.capture_logging("juju.state.sshforward")
     self.old_user_name = SSHClient.remote_user
     SSHClient.remote_user = self.username
     self.client = SSHClient()
     zookeeper.set_debug_level(0)
示例#3
0
文件: connect.py 项目: mcclurmc/juju
    def _internal_connect(self, share):
        """Attempt connection to one of the ZK nodes."""
        candidates = yield self._provider.get_zookeeper_machines()
        assigned = [machine for machine in candidates if machine.dns_name]
        if not assigned:
            yield sleep(1)  # Momentarily backoff
            raise EnvironmentPending("No machines have assigned addresses")

        chosen = random.choice(assigned)
        log.debug("Connecting to environment using %s...", chosen.dns_name)
        try:
            client = yield SSHClient().connect(
                chosen.dns_name + ":2181", timeout=30, share=share)
        except (NoConnection, ConnectionTimeoutException) as e:
            raise EnvironmentPending(
                "Cannot connect to environment using %s "
                "(perhaps still initializing): %s" % (
                    chosen.dns_name, str(e)))

        yield self.wait_for_initialization(client)
        returnValue(client)
示例#4
0
 def setUp(self):
     self.sshclient = SSHClient()
     self.log = self.capture_logging("juju.state.sshforward")