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"]
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"]
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.")
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.")
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))