Groovy Coding - hqzhang/cloudtestbed GitHub Wiki
Groovy test
#!/usr/bin/env groovy
import groovy.json.JsonSlurper
import groovy.yaml.YamlSlurper
import mylib
import sayHello
Map SBMS_paasList = [ DC1_SBMS_STAGING : [name : "DC1_SBMS_STAGING"], DC2_SBMS_STAGING : [name : "DC2_SBMS_STAGING"]]
Map projectSettings = ["sbms-staging":[paasName : SBMS_paasList.DC1_SBMS_STAGING]]
def paas=SBMS_paasList.keySet()
def proj=projectSettings.keySet()
def target= SBMS_paasList["DC1_SBMS_STAGING"]
println(paas)
println(proj)
println(target)
//System.exit(1);
//two ways for declaration
String x = "Hello";
def y = "zhang";
println(y);
println(x);
//groovy range
def myrange = 2..5 ;
for(var in myrange) {
println(var);
}
//groovy list two way for loop
println("closure test it")
def mylist = ['hello','wolrd','hongqi'];
mylist.add('sucessful')
mylist.remove('hongqi')
mylist.each{var -> println var}
mylist.each{println it}
//groovy map
def mymap = [name: "Jerry", age: 42, city: "New York"]
mymap.put('address','302 oakcrest way')
mymap.remove('age')
mymap.phone='613-6562836'
println(mymap["city"]);
println(mymap.city);
mymap.each{var -> println "$var.key: $var.value"};
//readJSON
String fileContents = new File('myjson.json').text
def jsonSlurper = new JsonSlurper()
def obj = jsonSlurper.parseText(fileContents)
println(obj) // [name:Foo Bar, year:2018, timestamp:2018-03-08T00:00:00, tags:[person, employee], grade:3.14]
println(obj.deployments[0]) // Foo Bar
println(obj.deployments[1])
//call static method in file mylib
def my = new mylib()
my.mycall("hello")
//Closures
def clos = {println("hello Closure") }
clos.call()
println("find(closeure)")
def ls = [1,2,3,4]
def val = ls.findAll{ it>1}
def vl = ls.findAll{ it%2 == 0}
println val
println vl
//more closure
def res = [a:1,b:2,c:4,d:5].findAll{ it.value%2 == 0 }
println(res)
//read properties file
Properties properties = new Properties()
File propertiesFile = new File('test.properties')
propertiesFile.withInputStream {
properties.load(it)
}
println properties
properties.each{var -> println "$var.key: $var.value"};
def mystr1=properties.collect{key,value-> "$key=$value"}
mystr1.add(0,"-p")
println mystr1
//read properties section
def configYaml = '''\
---
parameters:
- name: APP_NAME
dscription: "app"
required: true
value: "server"
- name: APP_PORT
dscription: "port"
required: true
value: "8080"
'''
def config = new YamlSlurper().parseText(configYaml)
println "=============="
def mymp = config.parameters
println mymp
def mapmy = [:]
mymp.each { var -> mapmy[var.name] = var.value }
// overide map
println mapmy
println mystr1
def overid = [:]
overid.putAll(properties)
overid.putAll(mapmy)
println overid
//list transpose
def myls = ['R1.0','R1.1',]
def mysec = ['first','second']
[myls,mysec].transpose().each {fst,scd-> println fst; println scd}