node {
    cleanWs()
}
node {
    properties([
        parameters([
            string(name: 'INIT_CODE', defaultValue: '', description: 'Password is required to start the server setup process.')
        ])
    ])
    stage('check_input') {
        if (env.INIT_CODE != "this is setup password 123456") {
            error("Aborting the build - passwords do not match.")
        }
    }
    stage('checkout') {
        checkout ([ \
            $class: 'GitSCM', \
            branches: [[name: '*/master']], \
            doGenerateSubmoduleConfigurations: false, \
            extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'devops'], [ $class: 'ScmName', name: 'devops' ], [$class: 'CloneOption', depth: 1, shallow: true]], \
            submoduleCfg: [], \
            userRemoteConfigs: [[credentialsId: '9af2bd5f-a2b4-4470-8356-64e9a5576c0a', url: 'git@github.com:BigscreenVR/devops.git']] \
        ])
    }
}
node {
    stage("init_config_files") {
        sh '''#!/bin/bash
. `pwd`/devops/Jenkins/server_builder_v7.sh
NETWORK="main"
FLEET="rice"
init_server_fleet_config_files $NETWORK $FLEET
'''
    }
}
node {
    stage("terraform_deploy_fleet") {
        sh '''#!/bin/bash
. `pwd`/devops/Jenkins/server_builder_v7.sh
NETWORK="main"
FLEET="rice"
terraform_deploy_fleet $NETWORK $FLEET
'''
    }
}
node {
    stage("provision_servers") {
        sh '''#!/bin/bash
. `pwd`/devops/Jenkins/server_builder_v7.sh
NETWORK="main"
FLEET="rice"
provision_servers $NETWORK $FLEET
'''
    }
}
node {
    stage("assign_dns") {
        sh '''#!/bin/bash
. `pwd`/devops/Jenkins/server_builder_v7.sh
NETWORK="main"
FLEET="rice"
assign_dns $NETWORK $FLEET "" "4LUqQ0Qof8Z3CMpdfk6jS9xPRpZ9AycECHRhrzpR" "d491fe10ba42c7faf855eaab8b0a1d66"
'''
    }
}