- project:
    name: kingbird

    project: 'multisite'

    jobs:
        - 'multisite-kingbird-virtual-daily-{stream}'
        - 'multisite-{phase}-{stream}'

    phase:
        - 'fuel-deploy-regionone-virtual':
            slave-label: ericsson-virtual12
        - 'fuel-deploy-regiontwo-virtual':
            slave-label: ericsson-virtual13
        - 'register-endpoints':
            slave-label: ericsson-virtual12
        - 'update-auth':
            slave-label: ericsson-virtual13
        - 'kingbird-deploy-virtual':
            slave-label: ericsson-virtual12

    stream:
        - master:
            branch: '{stream}'
            gs-pathname: ''
            disabled: false
            timed: '0 12 * * *'
        - danube:
            branch: 'stable/{stream}'
            gs-pathname: '/{stream}'
            disabled: false
            timed: '0 0 * * *'

- job-template:
    name: 'multisite-kingbird-virtual-daily-{stream}'

    project-type: multijob

    disabled: '{obj:disabled}'

    concurrent: false

    parameters:
        - project-parameter:
            project: '{project}'
            branch: '{branch}'
        - choice:
            name: FRESH_INSTALL
            choices:
                - 'true'
                - 'false'
        - string:
            name: KINGBIRD_LOG_FILE
            default: $WORKSPACE/kingbird.log
        - 'opnfv-build-defaults'

    triggers:
         - timed: '{timed}'

    builders:
        - description-setter:
            description: "Built on $NODE_NAME"
        - multijob:
            name: fuel-deploy-virtual
            condition: SUCCESSFUL
            projects:
                - name: 'multisite-fuel-deploy-regionone-virtual-{stream}'
                  current-parameters: false
                  predefined-parameters: |
                    FUEL_VERSION=latest
                    DEPLOY_SCENARIO=os-nosdn-nofeature-noha
                    OS_REGION=RegionOne
                    REGIONONE_IP=100.64.209.10
                    REGIONTWO_IP=100.64.209.11
                    FRESH_INSTALL=$FRESH_INSTALL
                  node-parameters: false
                  node-label-name: SLAVE_LABEL
                  node-label: ericsson-virtual12
                  kill-phase-on: FAILURE
                  abort-all-job: true
                - name: 'multisite-fuel-deploy-regiontwo-virtual-{stream}'
                  current-parameters: false
                  predefined-parameters: |
                    FUEL_VERSION=latest
                    DEPLOY_SCENARIO=os-nosdn-nofeature-noha
                    OS_REGION=RegionTwo
                    REGIONONE_IP=100.64.209.10
                    REGIONTWO_IP=100.64.209.11
                    FRESH_INSTALL=$FRESH_INSTALL
                  node-parameters: false
                  node-label-name: SLAVE_LABEL
                  node-label: ericsson-virtual13
                  kill-phase-on: FAILURE
                  abort-all-job: true
        - multijob:
            name: centralize-keystone
            condition: SUCCESSFUL
            projects:
                - name: 'multisite-register-endpoints-{stream}'
                  current-parameters: false
                  predefined-parameters: |
                    OS_REGION=RegionOne
                    REGIONONE_IP=100.64.209.10
                    REGIONTWO_IP=100.64.209.11
                    FRESH_INSTALL=$FRESH_INSTALL
                  node-parameters: false
                  node-label-name: SLAVE_LABEL
                  node-label: ericsson-virtual12
                  kill-phase-on: FAILURE
                  abort-all-job: true
                - name: 'multisite-update-auth-{stream}'
                  current-parameters: false
                  predefined-parameters: |
                    OS_REGION=RegionTwo
                    REGIONONE_IP=100.64.209.10
                    REGIONTWO_IP=100.64.209.11
                    FRESH_INSTALL=$FRESH_INSTALL
                  node-parameters: false
                  node-label-name: SLAVE_LABEL
                  node-label: ericsson-virtual13
                  kill-phase-on: FAILURE
                  abort-all-job: true
        - multijob:
            name: kingbird-deploy-virtual
            condition: SUCCESSFUL
            projects:
                - name: 'multisite-kingbird-deploy-virtual-{stream}'
                  current-parameters: false
                  predefined-parameters: |
                    OS_REGION=RegionOne
                    REGIONONE_IP=100.64.209.10
                    REGIONTWO_IP=100.64.209.11
                    FRESH_INSTALL=$FRESH_INSTALL
                  node-parameters: false
                  node-label-name: SLAVE_LABEL
                  node-label: ericsson-virtual12
                  kill-phase-on: FAILURE
                  abort-all-job: true
        - multijob:
            name: kingbird-functest
            condition: SUCCESSFUL
            projects:
                - name: 'functest-fuel-virtual-suite-{stream}'
                  current-parameters: false
                  predefined-parameters: |
                    DEPLOY_SCENARIO=os-nosdn-multisite-noha
                    FUNCTEST_SUITE_NAME=multisite
                    OS_REGION=RegionOne
                    REGIONONE_IP=100.64.209.10
                    REGIONTWO_IP=100.64.209.11
                    FRESH_INSTALL=$FRESH_INSTALL
                  node-parameters: false
                  node-label-name: SLAVE_LABEL
                  node-label: ericsson-virtual12
                  kill-phase-on: NEVER
                  abort-all-job: false

- job-template:
    name: 'multisite-{phase}-{stream}'

    concurrent: false

    disabled: '{obj:disabled}'

    concurrent: false

    parameters:
        - project-parameter:
            project: '{project}'
            branch: '{branch}'
        - string:
            name: KINGBIRD_LOG_FILE
            default: $WORKSPACE/kingbird.log
        - string:
            name: GS_PATH
            default: 'http://artifacts.opnfv.org/fuel{gs-pathname}'
        - 'fuel-defaults'
        - '{slave-label}-defaults'
        - choice:
            name: FRESH_INSTALL
            choices:
                - 'true'
                - 'false'

    scm:
        - git-scm

    builders:
        - description-setter:
            description: "Built on $NODE_NAME"
        - 'multisite-{phase}-builder':
            stream: '{stream}'

    publishers:
        - 'multisite-{phase}-publisher'

########################
# builder macros
########################
- builder:
    name: 'multisite-fuel-deploy-regionone-virtual-builder'
    builders:
        - shell:
            !include-raw-escape: ./fuel-deploy-for-multisite.sh
        - shell: |
            #!/bin/bash

            echo "This is where we deploy fuel, extract passwords and save into file"

            cd $WORKSPACE/tools/keystone/
            ./run.sh -t controller -r fetchpass.sh -o servicepass.ini

- builder:
    name: 'multisite-fuel-deploy-regiontwo-virtual-builder'
    builders:
        - shell:
            !include-raw-escape: ./fuel-deploy-for-multisite.sh
        - shell: |
            #!/bin/bash

            echo "This is where we deploy fuel, extract publicUrl, privateUrl, and adminUrl and save into file"

            cd $WORKSPACE/tools/keystone/
            ./run.sh -t controller -r endpoint.sh -o endpoints.ini
- builder:
    name: 'multisite-register-endpoints-builder'
    builders:
        - copyartifact:
            project: 'multisite-fuel-deploy-regiontwo-virtual-{stream}'
            which-build: multijob-build
            filter: "endpoints.ini"
        - shell: |
            #!/bin/bash

            echo "This is where we register RegionTwo in RegionOne keystone using endpoints.ini"

            cd $WORKSPACE/tools/keystone/
            ./run.sh -t controller -r region.sh -d $WORKSPACE/endpoints.ini
- builder:
    name: 'multisite-update-auth-builder'
    builders:
        - copyartifact:
            project: 'multisite-fuel-deploy-regionone-virtual-{stream}'
            which-build: multijob-build
            filter: "servicepass.ini"
        - shell: |
            #!/bin/bash

            echo "This is where we read passwords from servicepass.ini and replace passwords in RegionTwo"

            cd $WORKSPACE/tools/keystone/
            ./run.sh -t controller -r writepass.sh -d $WORKSPACE/servicepass.ini
            ./run.sh -t compute -r writepass.sh -d $WORKSPACE/servicepass.ini
- builder:
    name: 'multisite-kingbird-deploy-virtual-builder'
    builders:
        - shell: |
            #!/bin/bash

            echo "This is where we install kingbird"
            cd $WORKSPACE/tools/kingbird
            ./deploy.sh
########################
# publisher macros
########################
- publisher:
    name: 'multisite-fuel-deploy-regionone-virtual-publisher'
    publishers:
        - archive:
            artifacts: 'servicepass.ini'
            allow-empty: false
            only-if-success: true
            fingerprint: true
- publisher:
    name: 'multisite-fuel-deploy-regiontwo-virtual-publisher'
    publishers:
        - archive:
            artifacts: 'endpoints.ini'
            allow-empty: false
            only-if-success: true
            fingerprint: true
- publisher:
    name: 'multisite-register-endpoints-publisher'
    publishers:
        - archive:
            artifacts: 'dummy.txt'
            allow-empty: true
- publisher:
    name: 'multisite-update-auth-publisher'
    publishers:
        - archive:
            artifacts: 'dummy.txt'
            allow-empty: true
- publisher:
    name: 'multisite-kingbird-deploy-virtual-publisher'
    publishers:
        - archive:
            artifacts: 'dummy.txt'
            allow-empty: true
- publisher:
    name: 'multisite-kingbird-functest-publisher'
    publishers:
        - archive:
            artifacts: 'dummy.txt'
            allow-empty: true