Skip to content

Instantly share code, notes, and snippets.

@zhouqiang-cl
Created January 28, 2019 17:33
Show Gist options
  • Save zhouqiang-cl/59eda0e7aa31d7911e1c9b10bc99a5d1 to your computer and use it in GitHub Desktop.
Save zhouqiang-cl/59eda0e7aa31d7911e1c9b10bc99a5d1 to your computer and use it in GitHub Desktop.
// manager hold status
// groovy hold stage
def cfg = [:]
cfg["type"] = "dm-cluster"
cfg["size"] = {"tikv":{"size":3,"version":"111"},
"tidb":{"size":1,"version":"x"},
"pd":{"size":1,"version":"x"},
"mysql":{"size":2,"version":"y"},
"dm":{"version":"z"}}
def cat = new Cat(cfg) // Cat is an function, type specify what kind of cat should be start
def monitor = new Monitor() // when script is quit, monitor will quit
monitor.add_method(custom_montor_xxx)
stage("prepare") {
cat.Start() // Start will start cat and fill cat field
monitor.add_item(cat)
}
prepare = new Prepare(cat, params)
prepare_pod = new Pod(prepare)
ddl = new Ddl(cat.service_ip, params1)
ddl_pod = new Pod(ddl)
checker = new Checker(cat.service_ip, params2)
checker_pod = new Pod(checker)
scale = new Scale(cat, params3) // scale's change will refect to cat
scale_pod = new Pod(scale)
stage("running") {
prepare_pod.Start(block=True) // will wait prepare finished
ddl_pod.Start()
checker.Start()
sleep(3600)
for() {
scale.RemoveTiKV()
ddl.PauseCreateDDL()
sleep(60)
err = checker.Check()
if err {
status = "failed"
break
}
ddl.ResumeCreateDDL()
scale.AddTiKV()
}
}
stage("finish") {
pod.Destory()
cat.Destory()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment