From 8a131765efb7d3cf9b95da7f36900edf1badaad6 Mon Sep 17 00:00:00 2001 From: wanglongfei Date: Fri, 20 Sep 2019 14:42:44 +0800 Subject: [PATCH 1/3] zookeeper atomicput with flag Signed-off-by: wanglongfei --- store/zookeeper/zookeeper.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/store/zookeeper/zookeeper.go b/store/zookeeper/zookeeper.go index ff8d4ebe..b8a9ec54 100644 --- a/store/zookeeper/zookeeper.go +++ b/store/zookeeper/zookeeper.go @@ -290,8 +290,12 @@ func (s *Zookeeper) DeleteTree(directory string) error { // AtomicPut put a value at "key" if the key has not been // modified in the meantime, throws an error if this is the case -func (s *Zookeeper) AtomicPut(key string, value []byte, previous *store.KVPair, _ *store.WriteOptions) (bool, *store.KVPair, error) { +func (s *Zookeeper) AtomicPut(key string, value []byte, previous *store.KVPair, opts *store.WriteOptions) (bool, *store.KVPair, error) { var lastIndex uint64 + var flag int32 + if opts != nil && opts.TTL > 0 { + flag = zk.FlagEphemeral + } if previous != nil { meta, err := s.client.Set(s.normalize(key), value, int32(previous.LastIndex)) @@ -305,7 +309,7 @@ func (s *Zookeeper) AtomicPut(key string, value []byte, previous *store.KVPair, lastIndex = uint64(meta.Version) } else { // Interpret previous == nil as create operation. - _, err := s.client.Create(s.normalize(key), value, 0, zk.WorldACL(zk.PermAll)) + _, err := s.client.Create(s.normalize(key), value, flag, zk.WorldACL(zk.PermAll)) if err != nil { // Directory does not exist if err == zk.ErrNoNode { @@ -319,7 +323,7 @@ func (s *Zookeeper) AtomicPut(key string, value []byte, previous *store.KVPair, } // Create the node - if _, err := s.client.Create(s.normalize(key), value, 0, zk.WorldACL(zk.PermAll)); err != nil { + if _, err := s.client.Create(s.normalize(key), value, flag, zk.WorldACL(zk.PermAll)); err != nil { // Node exist error (when previous nil) if err == zk.ErrNodeExists { return false, nil, store.ErrKeyExists From 57c02ac1d677813c8198bad9624e82ba633f49b2 Mon Sep 17 00:00:00 2001 From: wanglongfei Date: Mon, 23 Sep 2019 19:53:30 +0800 Subject: [PATCH 2/3] Bump travis to go 1.9.x Signed-off-by: wanglongfei --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0b50a02e..3dc148cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: go go: - - 1.8.7 + - 1.9.6 # let us have speedy Docker-based Travis workers sudo: false From 2abd99245fd851df78dabc1a21037deeb407af0a Mon Sep 17 00:00:00 2001 From: wanglongfei Date: Mon, 23 Sep 2019 20:33:41 +0800 Subject: [PATCH 3/3] zk download from archive.apache.org Signed-off-by: wanglongfei --- script/travis_zk.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/travis_zk.sh b/script/travis_zk.sh index 02405d64..a07f4055 100755 --- a/script/travis_zk.sh +++ b/script/travis_zk.sh @@ -6,7 +6,7 @@ else ZK_VERSION="3.5.4-beta" fi -wget "http://apache.cs.utah.edu/zookeeper/zookeeper-${ZK_VERSION}/zookeeper-${ZK_VERSION}.tar.gz" +wget "https://archive.apache.org/dist/zookeeper/zookeeper-${ZK_VERSION}/zookeeper-${ZK_VERSION}.tar.gz" tar -xvf "zookeeper-${ZK_VERSION}.tar.gz" mv zookeeper-$ZK_VERSION zk mv ./zk/conf/zoo_sample.cfg ./zk/conf/zoo.cfg