示例#1
0
    def test_full_run(self):
        """Verify a functional agent start via the 'run' method.

        This test requires Zookeeper running on the default port of localhost.
        The mocked portions are to prevent the daemon start from altering the
        test environment (sys.stdout/sys.stderr, and reactor start).
        """
        zookeeper.set_debug_level(0)
        started = Deferred()

        class DummyAgent(BaseAgent):
            started = False

            def start(self):
                started.callback(self)

        def validate_started(agent):
            self.assertTrue(agent.client.connected)

        started.addCallback(validate_started)

        pid_file = self.makeFile()
        self.change_args("es-agent", "--zookeeper-servers", get_test_zookeeper_address(), "--pidfile", pid_file)
        runner = self.mocker.patch(AgentRunner)
        logger = self.mocker.patch(AppLogger)
        logger.start(MATCH_APP)
        runner.startReactor(None, sys.stdout, sys.stderr)
        logger.stop()
        self.mocker.replay()
        DummyAgent.run()
        return started
示例#2
0
 def __init__(self, hosts, base_znode, log_level=zookeeper.LOG_LEVEL_ERROR):
     self._hosts = hosts
     self._base_znode = base_znode
     zookeeper.set_debug_level(log_level)
     self._handler = None
     self._local_cache = None
     self._main_version = None
示例#3
0
    def test_wait_for_initialize(self):
        """
        A connection to a zookeeper that is running, but whose juju state
        is not ready, should wait until that state is ready.
        """
        client = ZookeeperClient()
        self.client = client  # for poke_zk
        self.mock_connect(False, succeed(client))
        self.mocker.replay()

        zookeeper.set_debug_level(0)
        yield client.connect(get_test_zookeeper_address())

        provider = DummyProvider(ProviderMachine("i-amok", "foo.example.com"))
        d = provider.connect()
        client_result = []
        d.addCallback(client_result.append)

        # Give it a chance to do it incorrectly.
        yield self.poke_zk()

        try:
            self.assertEquals(client_result, [])
            yield client.create("/initialized")
            yield d
            self.assertTrue(client_result, client_result)
            self.assertIdentical(client_result[0], client)
        finally:
            deleteTree("/", client.handle)
            client.close()
示例#4
0
    def test_wait_for_initialize(self):
        """
        A connection to a zookeeper that is running, but whose juju state
        is not ready, should wait until that state is ready.
        """
        client = ZookeeperClient()
        self.client = client  # for poke_zk
        self.mock_connect(False, succeed(client))
        self.mocker.replay()

        zookeeper.set_debug_level(0)
        yield client.connect(get_test_zookeeper_address())

        provider = DummyProvider(ProviderMachine("i-amok", "foo.example.com"))
        d = provider.connect()
        client_result = []
        d.addCallback(client_result.append)

        # Give it a chance to do it incorrectly.
        yield self.poke_zk()

        try:
            self.assertEquals(client_result, [])
            yield client.create("/initialized")
            yield d
            self.assertTrue(client_result, client_result)
            self.assertIdentical(client_result[0], client)
        finally:
            deleteTree("/", client.handle)
            client.close()
示例#5
0
    def __init__(self, **config):
        if config.has_key('logger_name'):
            self.logger = logging.getLogger(config['logger_name'])
        else:
            self.logger = Null()

        # zookeeper client log
        try:
            zklogfile_path, zklog_level = config.get("ZookeeperLog", ("/dev/stderr", "WARN"))
            _f = open(zklogfile_path,'a')
        except Exception as err:
            self.logger.error("In init ZKeeperClient: %s" % str(err))
        else:
            zookeeper.set_log_stream(_f)
            zookeeper.set_debug_level(LOG_LEVELS.get(zklog_level, zookeeper.LOG_LEVEL_WARN))

        try:
            self.connection_timeout = config['timeout']
            self.zkhosts = config['host']
        except KeyError as err:
            self.logger.exception("Cann't init ZKeeperClient: %s" % str(err))

        self.connected = False
        self.zkhandle = None
        if self.connect():
            self.logger.info('Connected to Zookeeper succesfully')
示例#6
0
    def test_full_run(self):
        """Verify a functional agent start via the 'run' method.

        This test requires Zookeeper running on the default port of localhost.
        The mocked portions are to prevent the daemon start from altering the
        test environment (sys.stdout/sys.stderr, and reactor start).
        """
        zookeeper.set_debug_level(0)
        started = Deferred()

        class DummyAgent(BaseAgent):
            started = False

            def start(self):
                started.callback(self)

        def validate_started(agent):
            self.assertTrue(agent.client.connected)

        started.addCallback(validate_started)

        pid_file = self.makeFile()
        self.change_args("es-agent", "--zookeeper-servers",
                         get_test_zookeeper_address(), "--pidfile", pid_file)
        runner = self.mocker.patch(AgentRunner)
        logger = self.mocker.patch(AppLogger)
        logger.start(MATCH_APP)
        runner.startReactor(None, sys.stdout, sys.stderr)
        logger.stop()
        self.mocker.replay()
        DummyAgent.run()
        return started
示例#7
0
def init_client(host=default_host):
    global init_flag
    global handle
    global connected

    if init_flag: return False
    init_flag = True

    connected = False
    cond = threading.Condition()

    def connection_watcher(handle, type, stat, path):
        global connected
        with cond:
            connected = True
            cond.notify()

    with cond:
        zookeeper.set_debug_level(2)
        handle = zookeeper.init(host, connection_watcher)
        cond.wait(30.0)

    if not connected:
        raise Exception("Couldn't connect to host -", host)
    return True
示例#8
0
 def __init__(self, config_server_="http://xxx.xxx.com/"):
     self.config_server = config_server_
     self.cache_config = []  
     self.zk_path = "/config"
     self.zklist = self.getZkServer()
     zookeeper.set_debug_level(zookeeper.LOG_LEVEL_ERROR)
     self.zookeeper = zookeeper.init(self.zklist)
示例#9
0
def main():
	from optparse import OptionParser as OptionParser

	parser = OptionParser()
	parser.add_option('-v', '--verbose', action="store_true", dest="flag_verbose",
		help='Triggers debugging traces')

	(options, args) = parser.parse_args(sys.argv)

	# Logging configuration
	if options.flag_verbose:
		logging.basicConfig(
			format='%(asctime)s %(message)s',
			datefmt='%m/%d/%Y %I:%M:%S',
			level=logging.DEBUG)
	else:
		logging.basicConfig(
			format='%(asctime)s %(message)s',
			datefmt='%m/%d/%Y %I:%M:%S',
			level=logging.INFO)

	if len(args) < 2:
		raise ValueError("not enough CLI arguments")

	ns = args[1]
	cnxstr = load_config().get(ns, 'zookeeper')

	zookeeper.set_debug_level(zookeeper.LOG_LEVEL_INFO)
	zh = zookeeper.init(cnxstr)
	zookeeper.create(zh, PREFIX, '', acl_openbar, 0)
	create_tree(zh, boot_tree())
	init_namespace(zh, ns)
	zookeeper.close(zh)
示例#10
0
def get_connected_handles(cnxstr):
    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_WARN)
    if cnxstr is None:
        return
    for shard in cnxstr.split(";"):
        zh = zookeeper.init(shard)
        yield ZkHandle(zh)
示例#11
0
    def _getLogObserver(self):

        if self._logfilename == "-":
            log_file = sys.stdout
        else:
            log_file = open(self._logfilename, "a")

        # Setup file logger
        log_handler = logging.StreamHandler(log_file)
        formatter = logging.Formatter(
            "%(asctime)s: %(name)s@%(levelname)s: %(message)s")
        log_handler.setFormatter(formatter)

        # Also capture zookeeper logs (XXX not compatible with rotation)
        zookeeper.set_log_stream(log_file)
        zookeeper.set_debug_level(0)

        # Configure logging.
        root = logging.getLogger()
        root.addHandler(log_handler)
        root.setLevel(logging.getLevelName(self._loglevel))

        # Twisted logging is painfully verbose on twisted.web, and
        # there isn't a good way to distinguish different channels
        # within twisted, so just utlize error level logging only for
        # all of twisted.
        twisted_log = logging.getLogger("twisted")
        twisted_log.setLevel(logging.ERROR)

        observer = PythonLoggingObserver()
        return observer.emit
示例#12
0
 def __init__(self, hosts='127.0.0.1:2181', service_name='tutorial', 
     node_name=None, node_data=None, is_provider=False, logger=None):
     self._hosts = hosts
     self._service_name = service_name
     if node_name is None:
         self._node_name = socket.gethostname()
     else:
         self._node_name = node_name
     self._node_data = node_data if node_data is dict else {}
     self._is_provider = is_provider
     if logger is None:
         self._logger = logging.getLogger(__name__)
     else:
         self._logger = logger
         
     if self._logger.level == logging.DEBUG:
         zk_debug_level = zookeeper.LOG_LEVEL_DEBUG
     elif self._logger.level == logging.WARN:
         zk_debug_level = zookeeper.LOG_LEVEL_WARN
     elif self._logger.level == logging.INFO:
         zk_debug_level = zookeeper.LOG_LEVEL_INFO
     else:
         zk_debug_level = zookeeper.LOG_LEVEL_ERROR
     
     zookeeper.set_debug_level(zk_debug_level)
     
     self._init_handle()
示例#13
0
 def setUp(self):
     super(ClientSessionTests, self).setUp()
     self.cluster.start()
     self.client = None
     self.client2 = None
     zookeeper.deterministic_conn_order(True)
     zookeeper.set_debug_level(0)
示例#14
0
文件: zk.py 项目: tsuraan/zkmirror
def silence(__once=[]):
  if __once:
    return
  __once.append(0)

  zookeeper.set_debug_level(zookeeper.LOG_LEVEL_ERROR)
  zookeeper.set_log_stream(file("/dev/null", "w"))
示例#15
0
    def register(self):
        ZOO_OPEN_ACL_UNSAFE = {"perms":zookeeper.PERM_ALL, "scheme":"world", "id" :"anyone"}
        ZOO_ACL_READ = {"perms":zookeeper.PERM_READ, "scheme": "world","id":"anyone"}
        zookeeper.set_debug_level(2)
        self.zk = zookeeper.init('192.168.86.4:2181,192.168.86.14:2181,192.168.86.15:2181/Crawler')

        data ="%s:%s" %(self.worker.get_ip(), self.worker.get_port())
        ret = zookeeper.create(self.zk, "/%s" %data, data, [ZOO_OPEN_ACL_UNSAFE], zookeeper.EPHEMERAL)
示例#16
0
def main():
    zk_server = "10.232.71.108:2181,10.221.224.131:2181,10.104.145.101:2181"
    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_ERROR)
    try:
        zk = zookeeper.init(zk_server)
        get_job_list(zk)
    except Exception, e:
        print "Create zookeeper session Failed:%s" % e
示例#17
0
 def setUp(self):
     self.log = self.capture_logging("juju.state.init")
     zookeeper.set_debug_level(0)
     self.client = ZookeeperClient(get_test_zookeeper_address())
     self.identity = make_identity("admin:genie")
     self.layout = StateHierarchy(self.client, self.identity, "i-abcdef",
                                  "dummy")
     return self.client.connect()
示例#18
0
    def __init__(self, config):
        # zoopy is really friggin' loud without this
        zookeeper.set_debug_level(0)

        connection_string = config["hostsource"]["connection-string"]
        self.client = ZookeeperClient(connection_string, session_timeout=3000)
        self.user = config["hostsource"]["user"]
        self.password = config["hostsource"]["password"]
示例#19
0
 def tearDown(self):
     super(NodeTest, self).tearDown()
     deleteTree(handle=self.client.handle)
     if self.client.connected:
         self.client.close()
     if self.client2 and self.client2.connected:
         self.client2.close()
     zookeeper.set_debug_level(zookeeper.LOG_LEVEL_DEBUG)
示例#20
0
 def setUp(self):
     self.log = self.capture_logging("juju.state.init")
     zookeeper.set_debug_level(0)
     self.client = ZookeeperClient(get_test_zookeeper_address())
     self.identity = make_identity("admin:genie")
     self.layout = StateHierarchy(
         self.client, self.identity, "i-abcdef", "dummy")
     return self.client.connect()
示例#21
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)
示例#22
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)
示例#23
0
    def start(self) :
        self.conn_wr.acquire()

        try :
            if self.thread_ptr != None :
                print "NameService already started."
                return False

            if (self.servers == None) or (len(self.servers) == 0) :
                print "'Servers' needed."
                return False

            if (len(self.service_name) == 0) and (len(self.watch_service_set) == 0) :
                print "Must register service or watch services."
                return False

            #self.local_ip = self.__get_local_ip_address__(LOCAL_IP_ETH_NAME)

            if (self.ip_method != None) and (len(self.ip_method) != 0) :
                self.local_ip = self.__get_local_ip_address__(self.ip_method)

                if len(self.local_ip) == 0 :
                    print "Failed to get local ip : ip_method(%s)." % str(self.ip_method)
                    return False

            else :
                self.local_ip = self.__get_local_ip_address__(LOCAL_IP_BOND_NAME)

                if len(self.local_ip) == 0 :
                    print "Failed to get local ip : ip_method(%s)." % LOCAL_IP_BOND_NAME

                    self.local_ip = self.__get_local_ip_address__(LOCAL_IP_EM_NAME)

                    if len(self.local_ip) == 0 :
                        print "Failed to get local ip : ip_method(%s)." % LOCAL_IP_EM_NAME
                        return False

            print "Got [%s]'s ip : %s" % (self.ip_method, self.local_ip)


            for watch_item in self.watch_service_set :
                self.watch_service_info_dict[watch_item] = {"host_list" : [], "rewatch_ts" : 0}

            zookeeper.set_debug_level(zookeeper.LOG_LEVEL_WARN)

            self.thread_ptr = threading.Thread(target=self.__thread_main__, args=())

            if self.thread_ptr == None :
                print "Failed to create thread."
                return False

            self.thread_ptr.start()

            return True

        except Exception, e :
            print "Exception in start() :", Exception, e
            return False
示例#24
0
 def setUp(self):
     self.provider = MachineProvider(
         "local-test", {
             "admin-secret": "admin:abc", "data-dir": self.makeDir(),
             "authorized-keys": "fooabc123"})
     self.output = self.capture_logging(
         "juju.local-dev", level=logging.DEBUG)
     zookeeper.set_debug_level(0)
     self.client = yield self.get_zookeeper_client().connect()
示例#25
0
文件: __init__.py 项目: mcclurmc/juju
def setup_logging(options):
    level = logging.DEBUG if options.verbose else logging.INFO
    logging.basicConfig(
        format="%(asctime)s %(levelname)s %(message)s",
        level=level,
        stream=options.log_file)

    if level is not logging.DEBUG:
        zookeeper.set_debug_level(0)
示例#26
0
def main():
    from optparse import OptionParser as OptionParser

    parser = OptionParser()
    parser.add_option(
            '-v', '--verbose',
            action="store_true", dest="flag_verbose",
            help='Triggers debugging traces')
    parser.add_option(
            '-s', '--smart',
            action="store_true", dest="SMART", default=False,
            help="Delete onle the members belong to services with multiple" \
                 " members")
    parser.add_option(
            '-d', '--dry-run',
            action="store_true", dest="DRY", default=False,
            help="Do not delete, just print")
    parser.add_option(
            '-n', '--min-services',
            type=int, action="store", dest="NUM", default=4,
            help="Do not delete election if less the NUM")
    parser.add_option(
            '-1', '--alone',
            action="store_true", dest="ALONE", default=False,
            help="Also consider members alone in their group")

    (options, args) = parser.parse_args(sys.argv)

    # Logging configuration
    if options.flag_verbose:
        logging.basicConfig(
            format='%(asctime)s %(message)s',
            datefmt='%m/%d/%Y %I:%M:%S',
            level=logging.DEBUG)
    else:
        logging.basicConfig(
            format='%(asctime)s %(message)s',
            datefmt='%m/%d/%Y %I:%M:%S',
            level=logging.INFO)

    if len(args) < 2:
        raise ValueError("not enough CLI arguments: NS TYPE [TYPE...]")

    ns = args[1]
    cnxstr = load_namespace_conf(ns)['zookeeper']

    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_INFO)
    zh = zookeeper.init(cnxstr)

    for srvtype in args[2:]:
        for group in namespace_tree(ns, srvtype):
            logging.debug(">DIR %s", group)
            for node in list_problematic_nodes(zh, group, options):
                delete_node(zh, node, options)

    zookeeper.close(zh)
示例#27
0
 def setUp(self):
     super(EC2ProviderFunctionalTest, self).setUp()
     self.username = pwd.getpwuid(os.getuid())[0]
     self.log = self.capture_logging("juju")
     zookeeper.set_debug_level(0)
     juju_branch = ""  # get_juju_branch_url()
     self.provider = MachineProvider("ec2-functional",
         {"control-bucket": "juju-test-%s" % (self.username),
          "admin-secret": "magic-beans",
          "juju-branch": juju_branch})
示例#28
0
 def __init__(self, zkservers, credential):
   threading.Thread.__init__(self)
   logger.debug('Initializing ZooKeeperCommunicator thread.')
   zookeeper.set_debug_level(zookeeper.LOG_LEVEL_DEBUG)
   self.zh = None
   self.zkservers = zkservers
   self.lock = threading.Lock()
   self.acl = [ZOOKEEPER_OPEN_ACL_UNSAFE]
   self.safeMode = True
   self.credential = credential
示例#29
0
 def setUp(self):
     self.constraints = ConstraintSet("local").parse([]).with_series("foo")
     self.provider = MachineProvider(
         "local-test", {
             "admin-secret": "admin:abc", "data-dir": self.makeDir(),
             "authorized-keys": "fooabc123", "default-series": "oneiric"})
     self.output = self.capture_logging(
         "juju.local-dev", level=logging.DEBUG)
     zookeeper.set_debug_level(0)
     self.client = yield self.get_zookeeper_client().connect()
示例#30
0
 def __init__(self, zkservers, credential):
   threading.Thread.__init__(self)
   logger.debug('Initializing ZooKeeperCommunicator thread.')
   zookeeper.set_debug_level(zookeeper.LOG_LEVEL_DEBUG)
   self.zh = None
   self.zkservers = zkservers
   self.lock = threading.Lock()
   self.acl = [ZOOKEEPER_OPEN_ACL_UNSAFE]
   self.safeMode = True
   self.credential = credential
示例#31
0
 def tearDown(self):
     zookeeper.set_debug_level(0)
     if self.proxied_client.connected:
         yield self.proxied_client.close()
     if not self.direct_client.connected:
         yield self.direct_client.connect()
     utils.deleteTree(handle=self.direct_client.handle)
     yield self.direct_client.close()
     self.proxy.lose_connection()
     yield self.proxy_port.stopListening()
示例#32
0
def main():
    given_args = opt_parser()
    server = '10.232.71.108:2181,10.221.224.131:2181,10.104.145.101:2181'
    root_path = given_args.root_path
    action =  given_args.action
    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_ERROR)
    try:
        zk = zookeeper.init(server)
    except Exception, e:
        print "Create zookeeper session Failed:%s" %e
示例#33
0
    def __init__(self, **config):
        logger_name = config.get("logger_name")
        self.logger = logging.getLogger(logger_name) if logger_name else Null()
        self.zkhandle = None
        self.auth = None
        self.cv = threading.Condition()

        try:
            auth_config = config.get("auth")
            if auth_config is not None:
                auth_scheme = auth_config["scheme"]
                auth_data = auth_config["data"]
                self.auth = (auth_scheme, auth_data)
            zklogfile_path, zklog_level = config.get("ZookeeperLog", ("/dev/stderr", "WARN"))
            self.connection_timeout = config["timeout"]
            self.zkhosts = ",".join(config["host"])
        except KeyError as err:
            self.logger.exception("Missing configuration option: %s", err)
            raise
        except Exception as err:
            self.logger.exception("Unknown configuration error: %s", err)
            raise

        try:
            _f = open(zklogfile_path, "a")
        except IOError as err:
            self.logger.error("Unable to open logfile %s %s", zklogfile_path, err)
        else:
            zookeeper.set_log_stream(_f)
            zookeeper.set_debug_level(LOG_LEVELS.get(zklog_level.upper(), zookeeper.LOG_LEVEL_WARN))

        self.connect()
        if zookeeper.state(self.zkhandle) == zookeeper.CONNECTED_STATE:
            self.logger.info("Connected to Zookeeper successfully")
        else:
            raise zookeeper.ZooKeeperException("Unable to connect " "to Zookeeper")

        def on_auth_callback(state, result):
            with self.cv:
                if result == zookeeper.AUTHFAILED:
                    self.logger.error(zookeeper.zerror(zookeeper.AUTHFAILED))
                self.logger.info("on_auth: state %s, result %s", state, result)
                self.cv.notify()

        if self.auth:
            self.logger.info("Auth using %s", self.auth[0])
            with self.cv:
                res = zookeeper.add_auth(self.zkhandle, self.auth[0], self.auth[1], on_auth_callback)
                if res != zookeeper.OK:
                    self.logger.error("Invalid status %d", zookeeper.zerror(res))
                    raise Exception("Invalid status")
                self.cv.wait(self.connection_timeout)

            if zookeeper.state(self.zkhandle) == zookeeper.AUTH_FAILED_STATE:
                raise zookeeper.ZooKeeperException("authentication failed")
示例#34
0
    def setUp(self):
        zookeeper.set_debug_level(0)
        self.client = yield self.get_zookeeper_client().connect()
        self.tokens = TokenDatabase(self.client)
        self.admin = Principal("admin", "admin")
        yield self.tokens.add(self.admin)
        self.policy = SecurityPolicy(self.client, self.tokens)
        attach_deferred = self.admin.attach(self.client)

        self.client.exists("/")
        yield attach_deferred
示例#35
0
 def setUp(self):
     self.provider = MachineProvider(
         "local-test", {
             "admin-secret": "admin:abc",
             "data-dir": self.makeDir(),
             "authorized-keys": "fooabc123"
         })
     self.output = self.capture_logging("juju.local-dev",
                                        level=logging.DEBUG)
     zookeeper.set_debug_level(0)
     self.client = yield self.get_zookeeper_client().connect()
示例#36
0
def main():
    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_WARN)
    zh = zookeeper.init('127.0.0.1:2181')
    ensure_basedirs(zh)
    for f in sys.argv[1:]:
        try:
            manage_type(zh, f)
            print "OK", f
        except Exception as e:
            print "KO", f, e
    zookeeper.close(zh)
    def __init__(self, options, args):
        threading.Thread.__init__(self)

        logger.debug("Initializing MyClass thread.")
        if options.verbose:
            zookeeper.set_debug_level(zookeeper.LOG_LEVEL_DEBUG)

        self.zh = zookeeper.init(options.servers)
        if zookeeper.OK != zookeeper.aget(self.zh, self.znode, self.watcher, self.handler):
            logger.critical("Unable to get znode! Exiting.")
            sys.exit(1)
示例#38
0
    def setUp(self):
        super(NodeTest, self).setUp()
        zookeeper.set_debug_level(zookeeper.LOG_LEVEL_ERROR)
        self.client = ZookeeperClient("127.0.0.1:2181", 2000)
        d = self.client.connect()
        self.client2 = None

        def create_zoo(client):
            client.create("/zoo")
        d.addCallback(create_zoo)
        return d
示例#39
0
def main():
    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_WARN)
    zh = zookeeper.init('127.0.0.1:2181')
    ensure_basedirs(zh)
    for f in sys.argv[1:]:
        try:
            manage_type(zh, f)
            print "OK", f
        except Exception as e:
            print "KO", f, e
    zookeeper.close(zh)
示例#40
0
    def setUp(self):
        zookeeper.set_debug_level(0)
        self.client = yield self.get_zookeeper_client().connect()
        self.tokens = TokenDatabase(self.client)
        self.admin = Principal("admin", "admin")
        yield self.tokens.add(self.admin)
        self.policy = SecurityPolicy(self.client, self.tokens)
        attach_deferred = self.admin.attach(self.client)

        self.client.exists("/")
        yield attach_deferred
示例#41
0
文件: common.py 项目: mcclurmc/juju
    def setUp(self):
        yield super(StateTestBase, self).setUp()
        zookeeper.set_debug_level(0)
        self.charm = CharmDirectory(sample_directory)
        self.client = self.get_zookeeper_client()

        yield self.client.connect()
        yield self.client.create("/charms")
        yield self.client.create("/machines")
        yield self.client.create("/services")
        yield self.client.create("/units")
        yield self.client.create("/relations")
    def __init__(self, options, args):
        threading.Thread.__init__(self)

        logger.debug('Initializing MyClass thread.')
        if options.verbose:
            zookeeper.set_debug_level(zookeeper.LOG_LEVEL_DEBUG)

        self.zh = zookeeper.init(options.servers)
        if zookeeper.OK != zookeeper.aget(self.zh, self.znode, self.watcher,
                                          self.handler):
            logger.critical('Unable to get znode! Exiting.')
            sys.exit(1)
示例#43
0
 def _set_log_level(self, log_level_override=''):
     stderr_log_level = LogOptions.stderr_log_level()
     # set default level to FATAL.
     # we do this here (instead of add_option) to distinguish when an override is set.
     if stderr_log_level == log.INFO and log_level_override != 'INFO':
         stderr_log_level = log.FATAL
     # default to using stderr logging level, setting override if applicable
     log_level = getattr(log, log_level_override, stderr_log_level)
     # set the logger
     zk_log_level = ZookeeperLoggingSubsystem._ZK_LOG_LEVEL_MAP.get(
         log_level, zookeeper.LOG_LEVEL_ERROR)
     zookeeper.set_debug_level(zk_log_level)
示例#44
0
 def setUp(self):
     super(EC2ProviderFunctionalTest, self).setUp()
     self.username = pwd.getpwuid(os.getuid())[0]
     self.log = self.capture_logging("juju")
     zookeeper.set_debug_level(0)
     juju_branch = ""  # get_juju_branch_url()
     self.provider = MachineProvider(
         "ec2-functional", {
             "control-bucket": "juju-test-%s" % (self.username),
             "admin-secret": "magic-beans",
             "juju-branch": juju_branch
         })
示例#45
0
 def _set_log_level(self, log_level_override=''):
   stderr_log_level = LogOptions.stderr_log_level()
   # set default level to FATAL.
   # we do this here (instead of add_option) to distinguish when an override is set.
   if stderr_log_level == log.INFO and log_level_override != 'INFO':
     stderr_log_level = log.FATAL
   # default to using stderr logging level, setting override if applicable
   log_level = getattr(log, log_level_override, stderr_log_level)
   # set the logger
   zk_log_level = ZookeeperLoggingSubsystem._ZK_LOG_LEVEL_MAP.get(
       log_level, zookeeper.LOG_LEVEL_ERROR)
   zookeeper.set_debug_level(zk_log_level)
示例#46
0
 def __init__(self, zk_servers, path):
   if zk_servers is None:
     try:
       zk_servers = os.environ['ZK_SERVERS']
     except KeyError:
       logger.critical('No ZooKeeper servers specified! Exiting.')
       sys.exit(1)
   zookeeper.set_debug_level(zookeeper.LOG_LEVEL_ERROR)
   self.zh = zookeeper.init(zk_servers)
   self.ZOO_OPEN_ACL_UNSAFE = {'perms': 0x1f,
       'scheme': 'world', 'id': 'anyone'}
   self.path = path
示例#47
0
def main():
    from optparse import OptionParser as OptionParser

    parser = OptionParser()
    parser.add_option('-v',
                      '--verbose',
                      action="store_true",
                      dest="flag_verbose",
                      help='Triggers debugging traces')
    parser.add_option(
        '-c',
        '--min-children',
        type=int,
        action="store",
        dest="CHILDREN",
        default=15,
        help="Do not print the children number if less than that value")
    parser.add_option('-s',
                      '--min-size',
                      type=int,
                      action="store",
                      dest="SIZE",
                      default=0,
                      help="Do not print unless the size is over that value")

    (options, args) = parser.parse_args(sys.argv)

    # Logging configuration
    if options.flag_verbose:
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %I:%M:%S',
                            level=logging.DEBUG)
    else:
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %I:%M:%S',
                            level=logging.INFO)

    if len(args) < 2:
        raise ValueError("not enough CLI arguments: NS TYPE [TYPE...]")

    ns = args[1]
    cnxstr = load_namespace_conf(ns)['zookeeper']

    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_INFO)
    zh = zookeeper.init(cnxstr)

    for srvtype in args[2:]:
        for group in namespace_tree(ns, srvtype):
            for child, meta in list_nodes(zh, group, options):
                if meta['dataLength'] > options.SIZE:
                    print "NODE", meta['dataLength'], child

    zookeeper.close(zh)
示例#48
0
    def setUp(self):
        zookeeper.set_debug_level(0)
        self.client = yield SecurityPolicyConnection(
            get_test_zookeeper_address()).connect()

        admin = Principal("admin", "admin")

        self.token_db = TokenDatabase(self.client)
        yield self.token_db.add(admin)
        self.policy = SecurityPolicy(self.client, self.token_db, owner=admin)
        attach_defer = admin.attach(self.client)
        # Trick to speed up the auth response processing (fixed in ZK trunk)
        self.client.exists("/")
        yield attach_defer
示例#49
0
def main():
    from optparse import OptionParser as OptionParser

    parser = OptionParser()
    parser.add_option('-v',
                      '--verbose',
                      action="store_true",
                      dest="flag_verbose",
                      help='Triggers debugging traces')
    parser.add_option('-d',
                      '--data',
                      action="store",
                      dest="VALUE",
                      default='',
                      help="Data to force")

    (options, args) = parser.parse_args(sys.argv)

    # Logging configuration
    if options.flag_verbose:
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %I:%M:%S',
                            level=logging.DEBUG)
    else:
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %I:%M:%S',
                            level=logging.INFO)

    if len(args) < 2:
        raise ValueError("not enough CLI arguments: NS TYPE [TYPE...]")

    ns = args[1]
    cnxstr = load_namespace_conf(ns)['zookeeper']

    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_INFO)
    zh = zookeeper.init(cnxstr)

    for srvtype in args[2:]:
        for group in namespace_tree(ns, srvtype):
            logging.debug(">DIR %s", group)
            for mom, key, first, last in list_groups(zh, group, options):
                tail = str(1 + int(last)).rjust(10, '0')
                path = mom + '/' + key + '-' + tail
                create_node(zh, options, path)

    logging.debug("Please send a signal to remove the ephemeral nodes")
    logging.warn("PAUSED ...")
    signal.pause()
    zookeeper.close(zh)
示例#50
0
def main():
    from optparse import OptionParser as OptionParser

    parser = OptionParser()
    parser.add_option('-v',
                      '--verbose',
                      action="store_true",
                      dest="flag_verbose",
                      help='Triggers debugging traces')
    parser.add_option(
        '--slow',
        action="store_true",
        dest="SLOW",
        help='Only play with small batches to avoid timeouts on slow hosts.')
    parser.add_option(
        '--avoid',
        action="append",
        type="string",
        dest="AVOID_TYPES",
        help='Do not populate entries for the specified service types')

    (options, args) = parser.parse_args(sys.argv)

    # Logging configuration
    if options.flag_verbose:
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %I:%M:%S',
                            level=logging.DEBUG)
    else:
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %I:%M:%S',
                            level=logging.INFO)

    if len(args) < 2:
        raise ValueError("not enough CLI arguments")

    ns = args[1]
    cnxstr = load_namespace_conf(ns)['zookeeper']
    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_INFO)
    zh = zookeeper.init(cnxstr)

    # synchronous creation of the root
    try:
        zookeeper.create(zh, PREFIX, '', acl_openbar, 0)
    except zookeeper.NodeExistsException:
        pass
    create_tree(zh, namespace_tree(ns, options), options)
    zookeeper.close(zh)
def set_loglevel(level):
    """
    Set the ZooKeeper log level.

    Valid arguments are DEBUG|ERROR|INFO|WARN


    Arguments:
    - `level`: string

    Return: None
    Exceptions: None
    """
    zlevel = getattr(zookeeper, 'LOG_LEVEL_{0}'.format(level))
    zookeeper.set_debug_level(zlevel)
    return
示例#52
0
    def setUp(self):
        super(CharmPublisherTest, self).setUp()
        zookeeper.set_debug_level(0)

        self.charm = CharmDirectory(self.sample_dir1)
        self.charm_id = local_charm_id(self.charm)
        self.charm_key = under.quote(self.charm_id)
        # provider storage key
        self.charm_storage_key = under.quote(
            "%s:%s" % (self.charm_id, self.charm.get_sha256()))

        self.client = ZookeeperClient(get_test_zookeeper_address())
        self.storage_dir = self.makeDir()
        self.storage = FileStorage(self.storage_dir)
        self.publisher = CharmPublisher(self.client, self.storage)

        yield self.client.connect()
        yield self.client.create("/charms")
示例#53
0
def main():
    usage = "usage: %prog [options] NS"
    from optparse import OptionParser as OptionParser

    parser = OptionParser(usage=usage)
    parser.add_option(
            '-v', '--verbose',
            action="store_true", dest="flag_verbose",
            help='Triggers debugging traces')
    parser.add_option(
            '-a', '--all',
            action="store_true", dest="flag_all",
            help='Remove all oio-sds nodes (not only meta0)')
    (options, args) = parser.parse_args(sys.argv)

    # Logging configuration
    if options.flag_verbose:
        logging.basicConfig(
            format='%(asctime)s %(message)s',
            datefmt='%m/%d/%Y %I:%M:%S',
            level=logging.DEBUG)
    else:
        logging.basicConfig(
            format='%(asctime)s %(message)s',
            datefmt='%m/%d/%Y %I:%M:%S',
            level=logging.INFO)

    if len(args) < 2:
        raise ValueError("not enough CLI arguments")

    ns = args[1]
    cnxstr = load_namespace_conf(ns)['zookeeper']
    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_INFO)

    for shard in cnxstr.split(";"):
        logging.info("ZK=%s", shard)
        zh = zookeeper.init(shard)
        if options.flag_all:
            logging.warn("FLUSHING all the oio-sds entries in the ZK server")
            delete_children(zh, "/hc")
        else:
            logging.info("Cleaning only the meta0 registrations in ZK server")
            delete_children(zh, "/hc/ns/"+ns+"/srv/meta0")
        zookeeper.close(zh)
示例#54
0
def main():
    data = options.znode_data_size * "D"

    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_WARN)
    s = zookeeper.init(options.server)

    if zookeeper.exists(s, options.root_znode, None):
        children = zookeeper.get_children(s, options.root_znode, None)
        print "delete old entries: %d" % len(children)
        for child in children:
            zookeeper.delete(s, "%s/%s" % (options.root_znode, child))
    else:
        zookeeper.create(s, options.root_znode, "zkpy root znode", acl, 0)

    evaluation(s, options.root_znode, data, options)

    zookeeper.close(s)

    print("Performance test complete")
示例#55
0
def main():
    from optparse import OptionParser as OptionParser

    parser = OptionParser()
    parser.add_option(
            '-v', '--verbose',
            action="store_true", dest="flag_verbose",
            help='Triggers debugging traces')

    (options, args) = parser.parse_args(sys.argv)

    # Logging configuration
    if options.flag_verbose:
        logging.basicConfig(
            format='%(asctime)s %(message)s',
            datefmt='%m/%d/%Y %I:%M:%S',
            level=logging.DEBUG)
    else:
        logging.basicConfig(
            format='%(asctime)s %(message)s',
            datefmt='%m/%d/%Y %I:%M:%S',
            level=logging.INFO)

    if len(args) < 2:
        raise ValueError("not enough CLI arguments: NS SRVTYPE [SRVTYPE...]")

    ns = args[1]
    cnxstr = load_namespace_conf(ns)['zookeeper']

    zookeeper.set_debug_level(zookeeper.LOG_LEVEL_INFO)
    zh = zookeeper.init(cnxstr)

    for srvtype in args[2:]:
        for group in namespace_tree(ns, srvtype):
            children = list(list_nodes(zh, group, options))
            if len(children) > 0:
                logging.info("> %s", group)
                for k in children:
                    data, meta = zookeeper.get(zh, group + '/' + k)
                    logging.info(" %s : %s", k, data)

    zookeeper.close(zh)
示例#56
0
    def __init__(self,
                 hosts,
                 base_znode,
                 retry_policy=None,
                 log_level=zookeeper.LOG_LEVEL_ERROR):
        # 合法的znode名称是:以/开头,除了根znode,其他znode不能以/结尾
        if not isinstance(base_znode, str) or \
                not base_znode.startswith("/") or \
                (base_znode != "/" and base_znode.endswith("/")):
            raise RuntimeError("invalid base_znode")
        self._base_znode = base_znode
        self._hosts = hosts
        zookeeper.set_debug_level(log_level)

        self._register_handler = None
        self._register_entry_set = None
        self._delete_if_exists = True

        self._discovery_handler = None
        self._local_cache = SafeDict()
示例#57
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))