def call()

in vars/Delete.groovy [15:53]


def call() {
    def context = [:]
    node("master") {
        stage('Input parameters') {
            context.projectNames = input(id: 'Input', message: 'Input project names', ok: 'OK',
                    parameters: [
                            [$class                 : 'ValidatingStringParameterDefinition', defaultValue: '',
                             description            : 'Input comma separated projects list', name: 'PROJECT_NAMES',
                             regex                  : '[a-z0-9]([-a-z0-9]*[a-z0-9])?(,[a-z0-9]([-a-z0-9]*[a-z0-9])?)*',
                             failedValidationMessage: 'Incorrect list of projects']
                    ])
            try {
                assert context.projectNames ==~ /[a-z0-9]([-a-z0-9]*[a-z0-9])?(,[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/
            }
            catch (AssertionError err) {
                error "[JENKINS][DEBUG] - Project list does not match requirements"
            }
        }

        stage('Delete projects') {
            openshift.withCluster() {
                context.projectNames.tokenize(',').each() { projectName ->
                    if (openshift.selector("project", projectName).exists()) {
                        openshiftDeleteResourceByKey apiURL: '', authToken: '', keys: "${projectName}", namespace: '', types: 'project', verbose: 'false'
                        sleep(10)
                        try {
                            sh("oc -n ${projectName} delete pod --all --force --grace-period=0")
                        }
                        catch (Exception ex) {
                            println("[JENKINS][DEBUG] Project ${projectName} removed")
                        }
                    } else {
                        error "[JENKINS][DEBUG] - Project ${projectName} not found"
                    }
                }
            }
        }
    }
}