blob: 44ba7d8efcc8b7cdc5901bd122fbb381f3485396 [file] [log] [blame]
import string
def parse(url):
"""
Parse ZooKeeper URL.
:param url: The URL in the form of "zk://username:password@servers/path".
:return: Tuple (credential, servers, path).
credential: Credential for authentication with "digest" scheme. Optional and default to
None.
servers: Compatible with Kazoo's 'hosts' argument.
path: Optional and default to '/'.
NOTE: This method doesn't validate the values in the returned tuple.
"""
index = string.find(url, "zk://")
if index != 0:
raise ValueError("Expecting 'zk://' at the beginning of the URL")
url = string.lstrip(url, "zk://")
try:
servers, path = string.split(url, '/', 1)
except ValueError:
servers = url
path = ''
path = '/' + path
try:
credential, servers = string.split(servers, '@', 1)
except ValueError:
credential = None
return credential, servers, path