예제 #1
0
파일: common.py 프로젝트: mcclurmc/juju
def zookeeper_test_context(install_path, port=28181):
    """Manage context to run/stop a ZooKeeper for testing and related vars.

    @param install_path: The path to the install for ZK. Bare word "system"
                         causes special behavior to use system conf for ZK
    @param port: The port to run the managed ZK instance
    """
    global _zookeeper_address

    saved_zookeeper_address = _zookeeper_address
    saved_env = os.environ.get("ZOOKEEPER_ADDRESS")
    test_zookeeper = Zookeeper(tempfile.mkdtemp(),
                               port,
                               zk_location=install_path,
                               use_deferred=False)

    test_zookeeper.start()
    os.environ["ZOOKEEPER_ADDRESS"] = test_zookeeper.address
    _zookeeper_address = test_zookeeper.address
    try:
        yield test_zookeeper
    finally:
        test_zookeeper.stop()
        _zookeeper_address = saved_zookeeper_address
        if saved_env:
            os.environ["ZOOKEEPER_ADDRESS"] = saved_env
        else:
            del os.environ["ZOOKEEPER_ADDRESS"]
예제 #2
0
def zookeeper_test_context(install_path, port=28181):
    """Manage context to run/stop a ZooKeeper for testing and related vars.

    @param install_path: The path to the install for ZK. Bare word "system"
                         causes special behavior to use system conf for ZK
    @param port: The port to run the managed ZK instance
    """
    global _zookeeper_address

    saved_zookeeper_address = _zookeeper_address
    saved_env = os.environ.get("ZOOKEEPER_ADDRESS")
    test_zookeeper = Zookeeper(
        tempfile.mkdtemp(), port,
        zk_location=install_path, use_deferred=False)

    test_zookeeper.start()
    os.environ["ZOOKEEPER_ADDRESS"] = test_zookeeper.address
    _zookeeper_address = test_zookeeper.address
    try:
        yield test_zookeeper
    finally:
        test_zookeeper.stop()
        _zookeeper_address = saved_zookeeper_address
        if saved_env:
            os.environ["ZOOKEEPER_ADDRESS"] = saved_env
        else:
            del os.environ["ZOOKEEPER_ADDRESS"]
예제 #3
0
    def destroy_environment(self):
        """Shutdown the machine environment.
        """
        # Stop all the containers
        log.info("Destroying unit containers...")
        yield self._destroy_containers()

        # Stop the machine agent
        log.debug("Stopping machine agent...")
        agent = ManagedMachineAgent(self._qualified_name)
        yield agent.stop()

        # Stop the storage server
        log.debug("Stopping storage server...")
        storage_server = StorageServer(self._qualified_name)
        yield storage_server.stop()

        # Stop zookeeper
        log.debug("Stopping zookeeper...")
        zookeeper_dir = os.path.join(self._directory, "zookeeper")
        zookeeper = Zookeeper(zookeeper_dir, None)
        yield zookeeper.stop()

        # Clean out local state
        yield self.save_state(False)

        # Don't stop the network since we're using the default libvirt
        log.debug("Environment destroyed.")
예제 #4
0
파일: __init__.py 프로젝트: mcclurmc/juju
    def destroy_environment(self):
        """Shutdown the machine environment.
        """
        # Stop all the containers
        log.info("Destroying unit containers...")
        yield self._destroy_containers()

        # Stop the machine agent
        log.debug("Stopping machine agent...")
        pid_file = os.path.join(self._directory, "machine-agent.pid")
        agent = ManagedMachineAgent(pid_file)
        yield agent.stop()

        # Stop the storage server
        log.debug("Stopping storage server...")
        pid_file = os.path.join(self._directory, "storage-server.pid")
        storage_server = StorageServer(pid_file)
        yield storage_server.stop()

        # Stop zookeeper
        log.debug("Stopping zookeeper...")
        zookeeper_dir = os.path.join(self._directory, "zookeeper")
        zookeeper = Zookeeper(zookeeper_dir, None)
        yield zookeeper.stop()

        # Clean out local state
        yield self.save_state(False)

        # Don't stop the network since we're using the default libvirt
        log.debug("Environment destroyed.")
예제 #5
0
    def test_managed_zookeeper(self):
        zookeeper.set_debug_level(0)

        # Start zookeeper
        data_dir = self.makeDir()
        instance = Zookeeper(data_dir, 12345)
        yield instance.start()
        self.assertTrue(instance.running)

        # Connect a client
        client = ZookeeperClient("127.0.1.1:12345")
        yield client.connect()
        stat = yield client.exists("/")
        yield client.close()
        self.assertTrue(stat)

        # Stop Instance
        yield instance.stop()
        self.assertFalse(instance.running)

        self.assertFalse(os.path.exists(data_dir))
예제 #6
0
파일: test_zk.py 프로젝트: mcclurmc/juju
    def test_managed_zookeeper(self):
        zookeeper.set_debug_level(0)

        # Start zookeeper
        data_dir = self.makeDir()
        instance = Zookeeper(data_dir, 12345)
        yield instance.start()
        self.assertTrue(instance.running)

        # Connect a client
        client = ZookeeperClient("127.0.1.1:12345")
        yield client.connect()
        stat = yield client.exists("/")
        yield client.close()
        self.assertTrue(stat)

        # Stop Instance
        yield instance.stop()
        self.assertFalse(instance.running)

        self.assertFalse(os.path.exists(data_dir))