- job-template:
    name: '{pipeline}-{injectedlib}-dsvm-{name}{branch-designator}'
    node: '{node}'

    wrappers:
      - build-timeout:
          timeout: 95
      - timestamps

    builders:
      - link-logs
      - net-info
      - devstack-checkout
      - shell: |
          #!/bin/bash -xe
          export PYTHONUNBUFFERED=true
          export DEVSTACK_GATE_TIMEOUT=95
          export PROJECTS="{injectedrepo} $PROJECTS"
          export BRANCH_OVERRIDE={branch-override}
          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
          fi

          function gate_hook {{
              cd /opt/stack/new/$(basename {injectedrepo})
              remaining_time
              timeout -s 9 ${{REMAINING_TIME}}m ./tools/run_cross_tests.sh /opt/stack/new/{name} py27
          }}
          export -f gate_hook

          function post_test_hook {{
              cd /opt/stack/new/{name}
              mv nose_results.html $WORKSPACE/logs
              mv testr_results.html.gz $WORKSPACE/logs
              mv .testrepository/tmp* $WORKSPACE/logs
              mv subunit_log.txt.gz $WORKSPACE/logs
          }}
          export -f post_test_hook

          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
          ./safe-devstack-vm-gate-wrap.sh

    publishers:
      - devstack-logs
      - console-log

- job-template:
    name: '{pipeline}-oslo.messaging-dsvm-functional-{driver}{ostype}'
    node: '{node}'

    wrappers:
      - build-timeout:
          timeout: 95
      - timestamps

    builders:
      - link-logs
      - net-info
      - devstack-checkout
      - shell: |
          #!/bin/bash -xe
          export PYTHONUNBUFFERED=true
          export DEVSTACK_GATE_TIMEOUT=90
          export DEVSTACK_GATE_TEMPEST=0
          export DEVSTACK_GATE_EXERCISES=0

          function gate_hook {{
              cd /opt/stack/new/oslo.messaging/oslo_messaging/tests/functional/gate
              ./gate_hook.sh {driver}
          }}
          export -f gate_hook

          function post_test_hook {{
              cd /opt/stack/new/oslo.messaging/oslo_messaging/tests/functional/gate
              ./post_test_hook.sh {driver}
          }}
          export -f post_test_hook

          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
          ./safe-devstack-vm-gate-wrap.sh

    publishers:
      - test-results
      - devstack-logs
      - console-log

# NOTE(dhellmann): This job group is not used, but I retained it as an
# example of properly using the template defined above.
#
# - job-group:
#     name: oslotest-cross-test
#
#     injectedlib: oslotest
#     injectedrepo: openstack/oslotest
#
#     jobs:
#       - '{pipeline}-{injectedlib}-dsvm-{name}{branch-designator}':
#           pipeline: check
#           node: 'devstack-precise || devstack-trusty'
#           branch-designator: ''
#           branch-override: default
#       - '{pipeline}-{injectedlib}-dsvm-{name}{branch-designator}':
#           pipeline: gate
#           node: 'devstack-precise || devstack-trusty'
#           branch-designator: ''
#           branch-override: default