Merge branch 'master' into restore/movebasebackup

This commit is contained in:
Josh Berkus
2015-10-23 09:39:08 -07:00
5 changed files with 13 additions and 9 deletions
+4 -3
View File
@@ -83,10 +83,11 @@ cat > /patroni/postgres.yml <<__EOF__
ttl: &ttl 30
loop_wait: &loop_wait 10
scope: &scope ${PATRONI_SCOPE}
scope: &scope '${PATRONI_SCOPE}'
namespace: 'patroni'
restapi:
listen: 127.0.0.1:8008
connect_address: 127.0.0.1:8008
listen: 0.0.0.0:8008
connect_address: ${DOCKER_IP}:8008
etcd:
scope: *scope
ttl: *ttl
+2 -2
View File
@@ -122,8 +122,8 @@ class AbstractDCS:
i.e.: `zookeeper` for zookeeper, `etcd` for etcd, etc...
"""
self._name = name
self._scope = config['scope']
self._base_path = '/service/' + self._scope
self._namespace = '/{}'.format(config.get('namespace', '/service/').strip('/'))
self._base_path = '/'.join([self._namespace, config['scope']])
self._cluster = None
self._cluster_thread_lock = Lock()
+1 -1
View File
@@ -249,7 +249,7 @@ class Etcd(AbstractDCS):
@catch_etcd_errors
def cancel_initialization(self):
return self.retry(self.client.delete, self.initialize_path, prevValue=self._name)
return self.retry(self.client.delete, self.initialize_path)
def watch(self, timeout):
cluster = self.cluster
+1 -1
View File
@@ -271,7 +271,7 @@ class ZooKeeper(AbstractDCS):
def _cancel_initialization(self):
node = self.get_node(self.initialize_path)
if node and node[0] == self._name:
if node:
self.client.delete(self.initialize_path, version=node[1].version)
def cancel_initialization(self):
+5 -2
View File
@@ -80,7 +80,7 @@ def etcd_watch(key, index=None, timeout=None, recursive=None):
def etcd_write(key, value, **kwargs):
if key == '/service/exists/leader':
raise etcd.EtcdAlreadyExist
if key == '/service/test/leader':
if key == '/service/test/leader' or key == '/patroni/test/leader':
if kwargs.get('prevValue', None) == 'foo' or not kwargs.get('prevExist', True):
return True
raise etcd.EtcdException
@@ -204,11 +204,14 @@ class TestEtcd(unittest.TestCase):
def setUp(self):
with patch.object(Client, 'machines') as mock_machines:
mock_machines.__get__ = Mock(return_value=['http://localhost:2379', 'http://localhost:4001'])
self.etcd = Etcd('foo', {'ttl': 30, 'host': 'localhost:2379', 'scope': 'test'})
self.etcd = Etcd('foo', {'namespace': '/patroni/', 'ttl': 30, 'host': 'localhost:2379', 'scope': 'test'})
self.etcd.client.write = etcd_write
self.etcd.client.read = etcd_read
self.etcd.client.delete = Mock(side_effect=etcd.EtcdException())
def test_base_path(self):
self.assertEquals(self.etcd._base_path, '/patroni/test')
@patch('dns.resolver.query', dns_query)
def test_get_etcd_client(self):
with patch.object(etcd.Client, 'machines') as mock_machines: