| #!/usr/bin/env groovy |
| // ----------------------------------------------------------------------- |
| // Copyright 2021-2023 Open Networking Foundation (ONF) and the ONF Contributors |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // ----------------------------------------------------------------------- |
| |
| // ----------------------------------------------------------------------- |
| // ----------------------------------------------------------------------- |
| String getIam(String func) { |
| // Cannot rely on a stack trace due to jenkins manipulation |
| String src = 'vars/showCommands' |
| String iam = [src, func].join('::') |
| return iam |
| } |
| |
| // ----------------------------------------------------------------------- |
| // ----------------------------------------------------------------------- |
| void run_cmd(String command) { |
| String buffer [ |
| "Running command: $command", |
| ] |
| |
| println("** ${iam}: Running ${command} LEAVE") |
| try { |
| // Run command for output |
| buffer = sh( |
| script: command, |
| returnStdout: true |
| ).trim() |
| |
| // Reached if no exceptions thrown |
| buffer += [ |
| '', |
| 'Ran to completion', |
| ] |
| } |
| catch (Exception err) |
| { |
| // Note the exception w/o failing |
| buffer += [ |
| '', |
| "${iam}: EXCEPTION ${err}", |
| ].join('\n') |
| } |
| finally |
| { |
| println("** ${iam}: $buffer") |
| println("** ${iam}: Running ${command} LEAVE") |
| } |
| return |
| } |
| |
| // ----------------------------------------------------------------------- |
| // ----------------------------------------------------------------------- |
| void process(Map config) { |
| String iam = getIam('process') |
| |
| println("${iam} config=${config}") |
| |
| // list.each{ } could be used here but keep it simple for now. |
| println("** ${iam}: voltctl command path") |
| run_cmd('which -a voltctl 2>&1') |
| |
| println("** ${iam}: voltctl command version") |
| run_cmd('voltctl version') |
| return |
| } |
| |
| // ----------------------------------------------------------------------- |
| // ----------------------------------------------------------------------- |
| Boolean call(Map config) { |
| String iam = getIam('main') |
| |
| println("** ${iam}: ENTER") |
| |
| config = config ?: [:] |
| |
| try { |
| process(config) |
| } |
| /* |
| catch (Exception err) |
| { |
| println("** ${iam}: EXCEPTION ${err}") |
| throw err |
| } |
| */ |
| finally |
| { |
| println("** ${iam}: LEAVE") |
| } |
| return(true) |
| } |
| |
| // [EOF] |