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}