예제 #1
0
파일: acl.py 프로젝트: luk/zkpy
Created on 20.08.2010

@author: luk
'''

from zkpy.utils import enum
import base64
import hashlib
import logging


# Possible ACL permission constants
AclPermission = enum(
    Read    = 1,       # zookeeper.PERM_READ
    Write   = 2,       # zookeeper.PERM_WRITE
    Create  = 4,       # zookeeper.PERM_CREATE
    Delete  = 8,       # zookeeper.PERM_DELETE
    Admin   = 16,      # zookeeper.PERM_ADMIN
    All     = 31       # zookeeper.PERM_ALL
)
# Possible? Id schemes
IdSchema = enum(
        Digest  = 'digest',#
        Ip      = 'ip',#
        Auth    = 'auth',#
        World   = 'world')#


class Id(object):
    '''Represents a Zookeeper id.
    Modeled after org.apache.zookeeper.data.Id
예제 #2
0
        self.connection = None

    def __enter__(self):
        self.connection = Connection(self.servers, self.timeout)
        return self.connection

    def __exit__(self, type, value, traceback):
        if self.connection:
            self.connection.close()
            self.connection = None

# Event types
EventType = enum(
            NotWatchingAnymore  = -2, # zookeeper.NOTWATCHING_EVENT
            NoneType            = -1, # zookeeper.SESSION_EVENT
            NodeCreated         =  1, # zookeeper.CREATED_EVENT
            NodeDeleted         =  2, # zookeeper.DELETED_EVENT
            NodeDataChanged     =  3, # zookeeper.CHANGED_EVENT
            NodeChildrenChanged =  4) # zookeeper.CHILD_EVENT

# Connection states/events
KeeperState = enum(
        Disconnected    = 0,     # not a watcher event, but is returned for state() if disconnected
        Connecting      = 1,     # zookeeper.CONNECTING_STATE
        Associating     = 2,     # zookeeper.ASSOCIATING_STATE
        Connected       = 3,     # zookeeper.CONNECTED_STATE
        AuthFailed      = -113,  # zookeeper.Auth_FAILED_STATE
        Expired         = -112)  # zookeeper.EXPIRED_SESSION_STATE

# Node creation modes
NodeCreationMode = enum(
예제 #3
0
파일: group.py 프로젝트: luk/zkpy
from zkpy import zk_retry_operation
from zkpy.connection import EventType, NodeCreationMode, KeeperState
from zkpy.utils import enum
import logging
import zookeeper


GroupEvents = enum(
    ObserverError  = -1,
    MemberJoined   = 1,
    MemberLeft     = 2,
    MemberChanged  = 3
)

logging.warn('zkpy.group IS NOT MEANT TO BE USED RIGHT NOW!')

class Group(object):
    '''
    WIP. NOT useable at the moment.

    Multiple entries per host
    Host registers with hostname and port

    path: Path for the service group, needs to exists

    '''
    logger = logging.getLogger('zkpy.group.Group')

    def __init__(self, connection, path, observer = None):
        self.zk_conn = connection
        self.path = path