Exemple #1
0
    def test_connect_handles_nonsense_session(self):
        self.change_args("es-agent")
        self.change_environment(
            JUJU_HOME=self.makeDir(),
            JUJU_ZOOKEEPER="x1.example.com")

        session_file = self.makeFile()
        with open(session_file, "w") as f:
            f.write(yaml.dump("cheesy wotsits"))
        client = self.mocker.patch(ZookeeperClient)
        client.connect("x1.example.com", client_id="cheesy wotsits")
        self.mocker.result(fail(zookeeper.ZooKeeperException()))

        mock_client = self.mocker.mock()
        client.connect("x1.example.com")
        self.mocker.result(succeed(mock_client))
        mock_client.client_id
        self.mocker.result((456, "def"))
        self.mocker.replay()

        agent = BaseAgent()
        agent.set_watch_enabled(False)
        parser = argparse.ArgumentParser()
        agent.setup_options(parser)
        options = parser.parse_args(
            ["--session-file", session_file],
            namespace=TwistedOptionNamespace())
        agent.configure(options)
        d = agent.startService()
        self.failUnlessFailure(d, NotImplementedError)
        return d
Exemple #2
0
    def test_connect_env(self):
        """Zookeeper connection information can be passed via environment."""
        self.change_args("es-agent")
        self.change_environment(
            JUJU_HOME=self.makeDir(),
            JUJU_ZOOKEEPER="x1.example.com",
            JUJU_PRINCIPALS="admin:abc agent:xyz")

        client = self.mocker.patch(ZookeeperClient)
        client.connect("x1.example.com")
        self.mocker.result(succeed(client))
        client.client_id
        self.mocker.result((123, "abc"))
        client.add_auth("digest", "admin:abc")
        client.add_auth("digest", "agent:xyz")
        client.exists("/")
        self.mocker.replay()

        agent = BaseAgent()
        agent.set_watch_enabled(False)
        parser = argparse.ArgumentParser()
        agent.setup_options(parser)
        options = parser.parse_args(
            ["--session-file", self.makeFile()],
            namespace=TwistedOptionNamespace())
        agent.configure(options)
        d = agent.startService()
        self.failUnlessFailure(d, NotImplementedError)
        return d
Exemple #3
0
    def test_run_base_raises_error(self):
        """The base class agent, raises a notimplemented error when started."""
        client = self.mocker.patch(ZookeeperClient)
        client.connect(get_test_zookeeper_address())
        client_mock = self.mocker.mock()
        self.mocker.result(succeed(client_mock))
        self.mocker.replay()

        agent = BaseAgent()
        agent.configure({"zookeeper_servers": get_test_zookeeper_address(), "juju_directory": self.makeDir()})
        d = agent.startService()
        self.failUnlessFailure(d, NotImplementedError)
        return d
Exemple #4
0
    def test_run_base_raises_error(self):
        """The base class agent, raises a notimplemented error when started."""
        client = self.mocker.patch(ZookeeperClient)
        client.connect(get_test_zookeeper_address())
        client_mock = self.mocker.mock()
        self.mocker.result(succeed(client_mock))
        self.mocker.replay()

        agent = BaseAgent()
        agent.configure({
            "zookeeper_servers": get_test_zookeeper_address(),
            "juju_directory": self.makeDir()
        })
        d = agent.startService()
        self.failUnlessFailure(d, NotImplementedError)
        return d
Exemple #5
0
    def test_connect_env(self):
        """Zookeeper connection information can be passed via environment."""
        self.change_args("es-agent")
        self.change_environment(JUJU_HOME=self.makeDir(),
                                JUJU_ZOOKEEPER="x1.example.com",
                                JUJU_PRINCIPALS="admin:abc agent:xyz")

        client = self.mocker.patch(ZookeeperClient)
        client.connect("x1.example.com")
        self.mocker.result(succeed(client))
        client.add_auth("digest", "admin:abc")
        client.add_auth("digest", "agent:xyz")
        client.exists("/")
        self.mocker.replay()

        agent = BaseAgent()
        parser = argparse.ArgumentParser()
        agent.setup_options(parser)
        options = parser.parse_args(namespace=TwistedOptionNamespace())
        agent.configure(options)
        d = agent.startService()
        self.failUnlessFailure(d, NotImplementedError)
        return d