zookeeper

Introduction

Simple zookeeper client. Now implemented only 2 options: read zNode data and write data to zNode.

Getting started

Build

mvn install

Deploy

On Jenkins master node copy plugin to the plugins folder

cp target/zookeeper.hpi /var/lib/jenkins/plugins/zookeeper.hpi

Use example

Simple jobe shows how to use plugin


def ZOOKEEPER_HOSTS = "192.168.1.223"
def date
def newZnodeData = "SomeNewData "
def preCreatedZnode = "/MyFirstZnode"
def newZnode
def dataFromZookeeper
def stageName

node() {
    stageName = "Prepere variables"
    stage(stageName) {
        date = sh(script: "date", returnStdout: true)
        newZnodeData = newZnodeData + date
        newZnodeData = newZnodeData.trim()
        newZnode = "/newZnode " + date
        newZnode = newZnode.trim()
    }
    stageName = "Read data from existing node"
    stage(stageName) {
        println(stageName)
        dataFromzookeeper = zookeeperRead "zookeeperNodes": ZOOKEEPER_HOSTS, "znode": preCreatedZnode
        println("Got Data: " + dataFromzookeeper)
        println("Write data to the zNode")
        zookeeperWrite "zookeeperNodes": ZOOKEEPER_HOSTS, "znode": preCreatedZnode, "znodeData": newZnodeData
    }

    stageName = "Read data written to the zNode"
    stage(stageName) {
        println(stageName)
        dataFromzookeeper = zookeeperRead "zookeeperNodes": ZOOKEEPER_HOSTS, "znode": preCreatedZnode
        dataFromzookeeper = dataFromzookeeper.toString().trim()
        println("Got data: " + dataFromzookeeper + " Expected data is: " + newZnodeData)

        if (newZnodeData.toString().trim() != dataFromzookeeper.trim()) {
            println("ERROR " + newZnodeData + " != " + dataFromzookeeper)
        } else {
            println("Got Expected Data: " + newZnodeData + " == " + dataFromzookeeper)
        }
    }
    stageName = "Create new znode " + newZnode
    stage(stageName) {
        println(stageName)
        zookepeerWrite "zookeeperNodes": ZOOKEEPER_HOSTS, "znode": newZnode, "znodeData": newZnodeData
    }
    stageName = "Read from new znode " + newZnode
    stage(stageName) {
        println(stageName)
        println(newZnode)
        dataFromzookeeper = zookeeperRead "zookeeperNodes": ZOOKEEPER_HOSTS, "znode": newZnode
        dataFromzookeeper = dataFromzookeeper.toString().trim()

        if (newZnodeData.toString().trim() != dataFromzookeeper.trim()) {
            println("ERROR " + newZnodeData + " != " + dataFromzookeeper)
        } else {
            println("Got Expected Data" + newZnodeData + " == " + dataFromzookeeper)
        }
    }
}

LICENSE

(this section is autogenerated) Licensed under MIT, see LICENSE