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

    wrappers:
      - timeout:
          timeout: 125
          fail: true
      - timestamps

    builders:
      - devstack-checkout
      - shell: |
          #!/bin/bash -xe
          export PYTHONUNBUFFERED=true
          export DEVSTACK_GATE_TIMEOUT=120
          export DEVSTACK_GATE_TEMPEST=0
          export DEVSTACK_GATE_EXERCISES=0
          export BRANCH_OVERRIDE={branch-override}
          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
          fi

          function post_test_hook {{
              cd /opt/stack/new/swift
              # Launch V2 auth tests and v1 tests after.
              bash .functests --verbosity=3 && \
                  SWIFT_TEST_CONFIG_FILE=/opt/stack/new/swift/test/sample.conf \
                      bash .functests --verbosity=3
          }}
          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
      - link-logs

    publishers:
      - devstack-logs
      - console-log

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

    wrappers:
      - timeout:
          timeout: 95
          fail: true
      - timestamps

    builders:
      - devstack-checkout
      - shell: |
          #!/bin/bash -xe
          export PYTHONUNBUFFERED=true
          export DEVSTACK_GATE_TIMEOUT=90
          export FUNCTEST_TIMEOUT=30
          export DEVSTACK_GATE_TEMPEST=0
          export DEVSTACK_GATE_EXERCISES=0
          export BRANCH_OVERRIDE={branch-override}
          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
          fi

          function post_test_hook {{
              cd /opt/stack/new/swift
              # Launch V2 auth tests and v1 tests after.
              timeout -s 9 ${{FUNCTEST_TIMEOUT}}m bash .functests --verbosity=3 && \
                  SWIFT_TEST_CONFIG_FILE=/opt/stack/new/swift/test/sample.conf \
                      timeout -s 9 ${{FUNCTEST_TIMEOUT}}m bash .functests --verbosity=3
          }}
          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
      - link-logs

    publishers:
      - devstack-logs
      - console-log

Add soft timeout to Swift functional tests
Add soft timeout to Swift functional tests

If a change breaks the Swift functional tests so that they hang, the
job times out and gets killed. Unfortunately, this means that Swift's
logs aren't captured, so the submitter can't tell what broke.

This commit adds a 30-minute timeout to each of the two functional
test runs (v1 and v2 auth) so that logs will be captured even in case
of a hang. The functional tests normally take 5 minutes or less, so 30
should leave plenty of wiggle room.

Change-Id: I4cde6331b8883ad3bee9b3e9d0c140ed16da476e
