########################
# Job configuration for joid
########################
- project:

    name: 'joid'

    project: '{name}'

    installer: '{name}'

#--------------------------------
# BRANCH ANCHORS
#--------------------------------
    master: &master
        stream: master
        branch: '{stream}'
        gs-pathname: ''
    brahmaputra: &brahmaputra
        stream: brahmaputra
        branch: 'stable/{stream}'
        gs-pathname: '/{stream}'
#--------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
#--------------------------------
#        brahmaputra
#--------------------------------
    pod:
        - intel-pod5:
            <<: *brahmaputra
#--------------------------------
#           master
#--------------------------------
        - intel-pod6:
            <<: *master
        - orange-pod2:
            <<: *master
        - juniper-pod1:
            <<: *master
#--------------------------------
# new scenario descriptions
    scenario:
        - 'os-nosdn-nofeature-noha':
            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
        - 'os-nosdn-nofeature-ha':
            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
        - 'os-odl_l2-nofeature-ha':
            auto-trigger-name: 'joid-{scenario}-{pod}-trigger'
        - 'os-odl_l2-nofeature-noha':
            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
        - 'os-onos-nofeature-ha':
            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
        - 'os-onos-nofeature-noha':
            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
        - 'os-ocl-nofeature-ha':
            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
        - 'os-ocl-nofeature-noha':
            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'

    jobs:
        - 'joid-{scenario}-{pod}-daily-{stream}'
        - 'joid-deploy-{pod}-daily-{stream}'

########################
# job templates
########################
- job-template:
    name: 'joid-{scenario}-{pod}-daily-{stream}'

    project-type: multijob

    concurrent: false

    properties:
        - throttle:
            enabled: true
            max-total: 1
            max-per-node: 1
        - build-blocker:
            use-build-blocker: true
            blocking-jobs:
                - 'joid-os-.*?-{pod}-daily-{stream}'

    wrappers:
        - build-name:
            name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'

    triggers:
        - '{auto-trigger-name}'

    parameters:
        - project-parameter:
            project: '{project}'
        - '{installer}-defaults'
        - '{pod}-defaults'
        - string:
            name: DEPLOY_SCENARIO
            default: '{scenario}'

    builders:
        - multijob:
            name: deploy
            condition: SUCCESSFUL
            projects:
                - name: 'joid-deploy-{pod}-daily-{stream}'
                  current-parameters: true
                  kill-phase-on: FAILURE
        - multijob:
            name: functest
            condition: COMPLETED
            projects:
                - name: 'functest-joid-{pod}-daily-{stream}'
                  current-parameters: true
                  kill-phase-on: NEVER
        - multijob:
            name: yardstick
            condition: COMPLETED
            projects:
                - name: 'yardstick-joid-{pod}-daily-{stream}'
                  current-parameters: true
                  kill-phase-on: NEVER

- job-template:
    name: 'joid-deploy-{pod}-daily-{stream}'

    concurrent: false

    properties:
        - throttle:
            enabled: true
            max-total: 1
            max-per-node: 1
        - build-blocker:
            use-build-blocker: true
            blocking-jobs:
                - 'joid-deploy-{pod}-daily-{stream}'

    wrappers:
        - build-name:
            name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
        - timeout:
            timeout: 180
            fail: true

    parameters:
        - project-parameter:
            project: '{project}'
        - '{installer}-defaults'
        - '{pod}-defaults'

    scm:
        - git-scm:
            credentials-id: '{ssh-credentials}'
            refspec: ''
            branch: '{branch}'

    builders:
        - 'builder-macro'

########################
# builder macros
########################
- builder:
    name: 'builder-macro'
    builders:
        - shell: |
            #!/bin/bash
            echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER"
            echo
            echo "------ First Executing clean.sh ------"
            cd $WORKSPACE/ci
            ./clean.sh
        - shell:
            !include-raw: ./joid-deploy.sh

########################
# trigger macros
########################
- trigger:
    name: 'joid-os-odl_l2-nofeature-ha-intel-pod5-trigger'
    triggers:
        - timed: '0 2 * * *'
- trigger:
    name: 'joid-os-odl_l2-nofeature-ha-intel-pod6-trigger'
    triggers:
        - timed: '0 2 * * *'
- trigger:
    name: 'joid-os-odl_l2-nofeature-ha-orange-pod2-trigger'
    triggers:
        - timed: ''
- trigger:
    name: 'joid-os-odl_l2-nofeature-ha-juniper-pod1-trigger'
    triggers:
        - timed: ''