branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
+ disable-strict-forbidden-file-verification: 'true'
file-paths:
- compare-type: ANT
- pattern: 'ci/**'
- - compare-type: ANT
- pattern: 'build/**'
- - compare-type: ANT
- pattern: 'lib/**'
+ pattern: '**'
+ forbidden-file-paths:
- compare-type: ANT
- pattern: 'config/**'
+ pattern: 'apex/tests/**'
- compare-type: ANT
- pattern: 'apex/**'
+ pattern: 'docs/**'
properties:
- logrotate-default
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
+ disable-strict-forbidden-file-verification: 'true'
file-paths:
- compare-type: ANT
- pattern: 'ci/**'
- - compare-type: ANT
- pattern: 'build/**'
- - compare-type: ANT
- pattern: 'lib/**'
+ pattern: '**'
+ forbidden-file-paths:
- compare-type: ANT
- pattern: 'config/**'
+ pattern: 'apex/tests/**'
- compare-type: ANT
- pattern: 'apex/**'
+ pattern: 'docs/**'
properties:
- logrotate-default
# HA scenarios
- 'os-nosdn-nofeature-ha':
auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
- - 'os-odl_l3-nofeature-ha':
+ - 'os-odl-nofeature-ha':
auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
# NOHA scenarios
use-build-blocker: true
blocking-jobs:
- '{installer}-os-.*?-{pod}-daily-.*'
+ - 'armband-verify-.*'
block-level: 'NODE'
wrappers:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{installer}-defaults'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
- '{slave-label}-defaults':
installer: '{installer}'
- string:
name: DEPLOY_SCENARIO
default: '{scenario}'
- - armband-ci-parameter:
- gs-pathname: '{gs-pathname}'
builders:
- trigger-builds:
# 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
# 4.not used for release criteria or compliance,
# only to debug the dovetail tool bugs with arm pods
- # 5.only run against scenario os-(nosdn|odl_l3)-(nofeature-bgpvpn)-ha
+ # 5.only run against scenario os-(nosdn|odl)-(nofeature-bgpvpn)-ha
- conditional-step:
condition-kind: regex-match
- regex: os-(nosdn|odl|odl_l3)-(nofeature|bgpvpn)-ha
+ regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha
label: '{scenario}'
steps:
- trigger-builds:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{installer}-defaults'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
- '{slave-label}-defaults':
installer: '{installer}'
- string:
name: DEPLOY_SCENARIO
- default: 'os-odl_l3-nofeature-ha'
- - armband-ci-parameter:
- gs-pathname: '{gs-pathname}'
+ default: 'os-odl-nofeature-ha'
scm:
- git-scm
recipients: armband@enea.com
- email-jenkins-admins-on-failure
-########################
-# parameter macros
-########################
-- parameter:
- name: armband-ci-parameter
- parameters:
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
- - string:
- name: SSH_KEY
- default: "/tmp/mcp.rsa"
- description: "Path to private SSH key to access environment nodes. For MCP deployments only."
-
########################
# trigger macros
########################
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 1 * * *'
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 16 * * *'
#----------------------------------------------------------------------
# Enea Armband CI Baremetal Triggers running against euphrates branch
#----------------------------------------------------------------------
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
triggers:
- timed: ''
#---------------------------------------------------------------
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
triggers:
- timed: ''
#--------------------------------------------------------------------
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
triggers:
- - timed: ''
\ No newline at end of file
+ - timed: ''
#####################################
phase:
- 'basic':
- slave-label: 'opnfv-build-enea'
+ slave-label: 'armband-virtual'
- 'deploy-virtual':
- slave-label: 'opnfv-build-enea'
+ slave-label: 'armband-virtual'
- 'smoke-test':
- slave-label: 'opnfv-build-enea'
+ slave-label: 'armband-virtual'
#####################################
# jobs
#####################################
enabled: true
max-total: 4
option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'fuel-os-.*?-virtual-daily-.*'
+ block-level: 'NODE'
scm:
- git-scm-gerrit
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-enea-defaults'
- - 'armband-verify-defaults':
+ - 'armband-virtual-defaults':
+ installer: '{installer}'
+ - '{installer}-defaults':
gs-pathname: '{gs-pathname}'
builders:
- logrotate-default
- throttle:
enabled: true
- max-total: 6
+ max-total: 2
+ max-per-node: 1
option: 'project'
- build-blocker:
use-build-blocker: true
project: '{project}'
branch: '{branch}'
- '{slave-label}-defaults'
- - '{installer}-defaults'
- - 'armband-verify-defaults':
+ - 'armband-virtual-defaults':
+ installer: '{installer}'
+ - '{installer}-defaults':
gs-pathname: '{gs-pathname}'
builders:
- builder:
name: 'armband-verify-deploy-virtual-macro'
builders:
- - shell: |
- #!/bin/bash
-
- echo "Not activated!"
+ - shell:
+ !include-raw: ../fuel/fuel-deploy.sh
- builder:
name: 'armband-verify-smoke-test-macro'
#!/bin/bash
echo "Not activated!"
-#####################################
-# parameter macros
-#####################################
-- parameter:
- name: 'armband-verify-defaults'
- parameters:
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
use-build-blocker: true
blocking-jobs:
- '{installer}-daily-.*'
+ - 'daisy4nfv-merge-build-.*'
+ - 'daisy4nfv-verify-build-.*'
block-level: 'NODE'
scm:
use-build-blocker: true
blocking-jobs:
- '{alias}-merge-{phase}-.*'
+ - '{installer}-daily-.*'
block-level: 'NODE'
scm:
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - '{installer}-merge-build-.*'
+ - '{alias}-merge-build-.*'
block-level: 'NODE'
scm:
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - '{installer}-merge-build-.*'
+ - '{alias}-merge-build-.*'
- '{alias}-verify-build-.*'
+ - '{installer}-daily-.*'
block-level: 'NODE'
scm:
# HA scenarios
- 'os-nosdn-nofeature-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l2-nofeature-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l3-nofeature-ha':
+ - 'os-odl-nofeature-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-onos-sfc-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-onos-nofeature-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l2-sfc-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l2-bgpvpn-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-kvm-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-ovs-ha':
# NOHA scenarios
- 'os-nosdn-nofeature-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l2-nofeature-noha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l3-nofeature-noha':
+ - 'os-odl-nofeature-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-onos-sfc-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-onos-nofeature-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l2-sfc-noha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-odl_l2-bgpvpn-noha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-kvm-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-ovs-noha':
blocking-jobs:
- 'fuel-os-.*?-{pod}-daily-.*'
- 'fuel-os-.*?-{pod}-weekly-.*'
+ - 'fuel-verify-.*'
block-level: 'NODE'
wrappers:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{installer}-defaults'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
- '{slave-label}-defaults':
installer: '{installer}'
- string:
name: DEPLOY_SCENARIO
default: '{scenario}'
- - fuel-ci-parameter:
- gs-pathname: '{gs-pathname}'
builders:
- description-setter:
# 3.only debug testsuite here(refstack, ha, ipv6, bgpvpn)
# 4.not used for release criteria or compliance,
# only to debug the dovetail tool bugs with bgpvpn and nosdn-nofeature
- # 5.only run against scenario os-odl_l2-bgpvpn-ha(regex used here, can extend to more scenarios future)
- # 6.ZTE pod1, os-nosdn-nofeature-ha and os-odl_l2-bgpvpn-ha, run against danube
+ # 5.only run against scenario os-odl-bgpvpn-ha(regex used here, can extend to more scenarios future)
+ # 6.ZTE pod1, os-nosdn-nofeature-ha and os-odl-bgpvpn-ha, run against danube
- conditional-step:
condition-kind: regex-match
- regex: os-(nosdn-nofeature|odl_l2-bgpvpn)-ha
+ regex: os-(nosdn-nofeature|odl-bgpvpn)-ha
label: '{scenario}'
steps:
- trigger-builds:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{installer}-defaults'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
- '{slave-label}-defaults':
installer: '{installer}'
- string:
name: DEPLOY_SCENARIO
- default: 'os-odl_l2-nofeature-ha'
- - fuel-ci-parameter:
- gs-pathname: '{gs-pathname}'
+ default: 'os-odl-nofeature-ha'
- string:
name: DEPLOY_TIMEOUT
default: '150'
- email-jenkins-admins-on-failure
########################
-# parameter macros
-########################
-- parameter:
- name: fuel-ci-parameter
- parameters:
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
- - string:
- name: SSH_KEY
- default: "/tmp/mcp.rsa"
- description: "Path to private SSH key to access environment nodes. For MCP deployments only."
-########################
# trigger macros
########################
#-----------------------------------------------
triggers:
- timed: '5 20 * * *'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '5 23 * * *'
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-baremetal-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-ha-baremetal-daily-master-trigger'
triggers:
- timed: '5 2 * * *'
- trigger:
name: 'fuel-os-onos-nofeature-ha-baremetal-daily-master-trigger'
triggers:
- timed: '' # '5 8 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '5 11 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '5 14 * * *'
- trigger:
name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-master-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-baremetal-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-baremetal-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-noha-baremetal-daily-master-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-noha-baremetal-daily-master-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-baremetal-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-baremetal-daily-master-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-master-trigger'
triggers:
triggers:
- timed: '' # '0 20 * * *'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-baremetal-daily-euphrates-trigger'
- triggers:
- - timed: '' # '0 23 * * *'
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-baremetal-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger'
triggers:
- timed: '' # '0 2 * * *'
- trigger:
name: 'fuel-os-onos-nofeature-ha-baremetal-daily-euphrates-trigger'
triggers:
- timed: '' # '0 8 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-baremetal-daily-euphrates-trigger'
- triggers:
- - timed: '' # '0 11 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-baremetal-daily-euphrates-trigger'
- triggers:
- - timed: '' # '0 14 * * *'
- trigger:
name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-euphrates-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-baremetal-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-baremetal-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-noha-baremetal-daily-euphrates-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-noha-baremetal-daily-euphrates-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-baremetal-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-baremetal-daily-euphrates-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-euphrates-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-virtual-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-ha-virtual-daily-master-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-ha-virtual-daily-master-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-ha-virtual-daily-master-trigger'
triggers:
triggers:
- timed: '5 13 * * *'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-virtual-daily-master-trigger'
- triggers:
- - timed: '35 15 * * *'
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-virtual-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-noha-virtual-daily-master-trigger'
triggers:
- timed: '5 18 * * *'
- trigger:
name: 'fuel-os-onos-nofeature-noha-virtual-daily-master-trigger'
triggers:
- timed: '' # '5 23 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-virtual-daily-master-trigger'
- triggers:
- - timed: '' # '35 1 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-virtual-daily-master-trigger'
- triggers:
- - timed: '' # '5 4 * * *'
- trigger:
name: 'fuel-os-nosdn-kvm-noha-virtual-daily-master-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-virtual-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-virtual-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-ha-virtual-daily-euphrates-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-ha-virtual-daily-euphrates-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-virtual-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-virtual-daily-euphrates-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-ha-virtual-daily-euphrates-trigger'
triggers:
triggers:
- timed: '' # '0 13 * * *'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-virtual-daily-euphrates-trigger'
- triggers:
- - timed: '' # '30 15 * * *'
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-virtual-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-noha-virtual-daily-euphrates-trigger'
triggers:
- timed: '' # '0 18 * * *'
- trigger:
name: 'fuel-os-onos-nofeature-noha-virtual-daily-euphrates-trigger'
triggers:
- timed: '' # '0 23 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-virtual-daily-euphrates-trigger'
- triggers:
- - timed: '' # '30 1 * * *'
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-virtual-daily-euphrates-trigger'
- triggers:
- - timed: '' # '0 4 * * *'
- trigger:
name: 'fuel-os-nosdn-kvm-noha-virtual-daily-euphrates-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: '0 10 * * *'
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-zte-pod1-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-master-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-zte-pod1-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-master-trigger'
triggers:
triggers:
- timed: '0 10 * * *'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-zte-pod3-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-zte-pod3-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-ha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-ha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod3-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-zte-pod3-daily-master-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-ha-zte-pod3-daily-master-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-zte-pod3-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-zte-pod3-daily-master-trigger'
+ name: 'fuel-os-odl-nofeature-noha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-noha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-zte-pod3-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod3-daily-master-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-noha-zte-pod3-daily-master-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-zte-pod1-daily-euphrates-trigger'
- triggers:
- - timed: '' # '0 2 * * *'
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-zte-pod1-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-euphrates-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-euphrates-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-zte-pod1-daily-euphrates-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-euphrates-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-zte-pod1-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-zte-pod1-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-euphrates-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-euphrates-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-zte-pod1-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod1-daily-euphrates-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-euphrates-trigger'
triggers:
triggers:
- timed: '' # '0 18 * * *'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-zte-pod3-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-zte-pod3-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-ha-zte-pod3-daily-euphrates-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-ha-zte-pod3-daily-euphrates-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod3-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-zte-pod3-daily-euphrates-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-ha-zte-pod3-daily-euphrates-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-zte-pod3-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-zte-pod3-daily-euphrates-trigger'
+ name: 'fuel-os-odl-nofeature-noha-zte-pod3-daily-euphrates-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-noha-zte-pod3-daily-euphrates-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-zte-pod3-daily-euphrates-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod3-daily-euphrates-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-noha-zte-pod3-daily-euphrates-trigger'
triggers:
triggers:
- timed: '0 2 * * 6'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-zte-pod1-daily-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-zte-pod1-daily-danube-trigger'
+ name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-danube-trigger'
- triggers:
- - timed: '0 2 * * 1,3,5'
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-zte-pod1-daily-danube-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-danube-trigger'
triggers:
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-zte-pod1-daily-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-noha-zte-pod1-daily-danube-trigger'
+ name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
- trigger:
name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-zte-pod1-daily-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod1-daily-danube-trigger'
- triggers:
- - timed: ''
- trigger:
name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-danube-trigger'
triggers:
export TERM="vt220"
-if [[ "$BRANCH" != 'master' ]]; then
+if [[ "$BRANCH" =~ 'danube' ]]; then
# source the file so we get OPNFV vars
source latest.properties
fi
# shellcheck disable=SC2153
-if [[ "${JOB_NAME}" =~ "merge" ]]; then
- # set simplest scenario for virtual deploys to run for merges
+if [[ "${JOB_NAME}" =~ 'verify' ]]; then
+ # set simplest scenario for virtual deploys to run for verify
DEPLOY_SCENARIO="os-nosdn-nofeature-ha"
-elif [[ "${BRANCH}" != 'master' ]]; then
- # for none-merge deployments
+elif [[ "${BRANCH}" =~ 'danube' ]]; then
+ # for Danube deployments (no artifact for current master or newer branches)
# checkout the commit that was used for building the downloaded artifact
# to make sure the ISO and deployment mechanism uses same versions
echo "Checking out ${OPNFV_GIT_SHA1}"
# use proxy url to replace the normal URL, or googleusercontent.com will be blocked randomly
[[ "$NODE_NAME" =~ (zte) ]] && GS_URL=${GS_BASE_PROXY%%/*}/$GS_URL
-if [[ "$JOB_NAME" =~ "merge" ]]; then
- echo "Downloading http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties"
- # get the properties file for the Fuel ISO built for a merged change
- curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties
-else
- # get the latest.properties file in order to get info regarding latest artifact
- echo "Downloading http://$GS_URL/latest.properties"
- curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
-fi
+# get the latest.properties file in order to get info regarding latest artifact
+echo "Downloading http://$GS_URL/latest.properties"
+curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
# check if we got the file
[[ -f $WORKSPACE/latest.properties ]] || exit 1
OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/}
echo "Using $OPNFV_ARTIFACT for deployment"
-# using ISOs for verify & merge jobs from local storage will be enabled later
-if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
- # check if we already have the ISO to avoid redownload
- ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
- if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
- echo "ISO exists locally. Skipping the download and using the file from ISO store"
- ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
- echo "--------------------------------------------------------"
- echo
- ls -al $WORKSPACE/opnfv.iso
- echo
- echo "--------------------------------------------------------"
- echo "Done!"
- exit 0
- fi
+# check if we already have the ISO to avoid redownload
+ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
+if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
+ echo "ISO exists locally. Skipping the download and using the file from ISO store"
+ ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
+ echo "--------------------------------------------------------"
+ echo
+ ls -al $WORKSPACE/opnfv.iso
+ echo
+ echo "--------------------------------------------------------"
+ echo "Done!"
+ exit 0
fi
[[ "$NODE_NAME" =~ (zte) ]] && OPNFV_ARTIFACT_URL=${GS_BASE_PROXY%%/*}/$OPNFV_ARTIFACT_URL
disabled: true
jobs:
- - 'fuel-merge-deploy-virtual-{stream}'
- 'fuel-deploy-generic-daily-{stream}'
########################
# job templates
########################
-- job-template:
- name: 'fuel-merge-deploy-virtual-{stream}'
-
- disabled: true
-
- concurrent: true
-
- properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 2
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'fuel-os-.*?-virtual-daily-.*'
- - 'fuel-merge-deploy-virtual-.*'
- block-level: 'NODE'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'fuel-virtual-defaults':
- installer: '{installer}'
- - '{installer}-defaults'
- - fuel-project-parameter:
- gs-pathname: '{gs-pathname}'
- scm:
- - git-scm
-
- wrappers:
- - ssh-agent-wrapper
-
- triggers:
- - gerrit:
- server-name: 'gerrit.opnfv.org'
- trigger-on:
- - change-merged-event
- - comment-added-contains-event:
- comment-contains-value: 'remerge'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths:
- - compare-type: ANT
- pattern: 'ci/**'
- - compare-type: ANT
- pattern: 'mcp/**'
- disable-strict-forbidden-file-verification: 'true'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**'
- dependency-jobs: 'fuel-merge-build-{stream}'
-
- builders:
- - shell:
- !include-raw-escape: ./fuel-deploy.sh
- - shell:
- !include-raw-escape: ./fuel-workspace-cleanup.sh
-
- publishers:
- - email:
- recipients: fzhadaev@mirantis.com
- - email-jenkins-admins-on-failure
-
- job-template:
name: 'fuel-deploy-generic-daily-{stream}'
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{installer}-defaults'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- string:
name: DEPLOY_SCENARIO
- default: 'os-odl_l2-nofeature-ha'
+ default: 'os-odl-nofeature-ha'
- node:
name: SLAVE_NAME
description: 'Slave name on Jenkins'
- ericsson-pod1
default-slaves:
- ericsson-pod2
- - fuel-project-parameter:
- gs-pathname: '{gs-pathname}'
scm:
- git-scm
builders:
- shell:
!include-raw-escape: ./fuel-deploy.sh
-
-########################
-# parameter macros
-########################
-- parameter:
- name: fuel-project-parameter
- parameters:
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
#####################################
phase:
- 'basic':
- slave-label: 'opnfv-build-ubuntu'
+ slave-label: 'fuel-virtual'
- 'deploy-virtual':
- slave-label: 'opnfv-build-ubuntu'
+ slave-label: 'fuel-virtual'
- 'smoke-test':
- slave-label: 'opnfv-build-ubuntu'
+ slave-label: 'fuel-virtual'
#####################################
# jobs
#####################################
enabled: true
max-total: 4
option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'fuel-os-.*?-virtual-daily-.*'
+ block-level: 'NODE'
scm:
- git-scm-gerrit
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
- - 'fuel-verify-defaults':
+ - 'fuel-virtual-defaults':
+ installer: '{installer}'
+ - '{installer}-defaults':
gs-pathname: '{gs-pathname}'
builders:
- logrotate-default
- throttle:
enabled: true
- max-total: 6
+ max-total: 2
+ max-per-node: 1
option: 'project'
- build-blocker:
use-build-blocker: true
project: '{project}'
branch: '{branch}'
- '{slave-label}-defaults'
- - '{installer}-defaults'
- - 'fuel-verify-defaults':
+ - 'fuel-virtual-defaults':
+ installer: '{installer}'
+ - '{installer}-defaults':
gs-pathname: '{gs-pathname}'
builders:
- builder:
name: 'fuel-verify-deploy-virtual-macro'
builders:
- - shell: |
- #!/bin/bash
-
- echo "Not activated!"
+ - shell:
+ !include-raw: ./fuel-deploy.sh
- builder:
name: 'fuel-verify-smoke-test-macro'
#!/bin/bash
echo "Not activated!"
-#####################################
-# parameter macros
-#####################################
-- parameter:
- name: 'fuel-verify-defaults'
- parameters:
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
blocking-jobs:
- 'fuel-os-.*?-{pod}-daily-.*'
- 'fuel-os-.*?-{pod}-weekly-.*'
+ - 'fuel-verify-.*'
block-level: 'NODE'
wrappers:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{installer}-defaults'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
- '{slave-label}-defaults':
installer: '{installer}'
- string:
name: DEPLOY_SCENARIO
default: '{scenario}'
- - fuel-weekly-parameter:
- gs-pathname: '{gs-pathname}'
builders:
- description-setter:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{installer}-defaults'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
- '{slave-label}-defaults':
installer: '{installer}'
- string:
name: DEPLOY_SCENARIO
- default: 'os-odl_l2-nofeature-ha'
- - fuel-weekly-parameter:
- gs-pathname: '{gs-pathname}'
+ default: 'os-odl-nofeature-ha'
- string:
name: DEPLOY_TIMEOUT
default: '150'
- email-jenkins-admins-on-failure
########################
-# parameter macros
-########################
-- parameter:
- name: fuel-weekly-parameter
- parameters:
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
-########################
# trigger macros
########################
#-----------------------------------------------
tiers=(healthcheck smoke features vnf)
for tier in ${tiers[@]}; do
- FUNCTEST_IMAGE=ollivier/functest-${tier}
+ FUNCTEST_IMAGE=opnfv/functest-${tier}
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
docker pull ${FUNCTEST_IMAGE}>/dev/null
cmd="docker run ${envs} ${volumes} ${FUNCTEST_IMAGE}"
disabled: '{obj:disabled}'
+ project-type: 'multijob'
+
parameters:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-defaults'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- git-scm-gerrit
triggers:
- - 'functest-verify-triggers-macro'
+ - 'functest-verify-triggers-macro':
+ project: '{project}'
+ branch: '{branch}'
builders:
- shell: |
disabled: '{obj:disabled}'
+ wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 30
+
parameters:
- project-parameter:
project: '{project}'
- git-scm
triggers:
- - 'functest-docs-upload-triggers-macro'
+ - 'functest-docs-upload-triggers-macro':
+ project: '{project}'
+ branch: '{branch}'
builders:
- functest-upload-doc-artifact
description: 'IP of the salt master (for mcp deployments)'
- string:
name: SSH_KEY
- default: '/tmp/mcp.rsa'
+ default: "$HOME/opnfv/mcp.rsa"
description: 'Path to private SSH key to access environment nodes'
- string:
name: INSTALLER_TYPE
name: BRIDGE
default: 'pxebr'
description: 'Bridge(s) to be used by salt master'
+ - string:
+ name: GS_URL
+ default: '$GS_BASE{gs-pathname}'
+ description: "URL to Google Storage."
- parameter:
name: 'joid-defaults'
#####################################################
# Parameters for build slaves
#####################################################
-- parameter:
- name: 'opnfv-build-enea-defaults'
- parameters:
- - label:
- name: SLAVE_LABEL
- default: 'opnfv-build-enea'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/$PROJECT
- description: 'Git URL to use on this Jenkins Slave'
- - string:
- name: BUILD_DIRECTORY
- default: $WORKSPACE/build_output
- description: "Directory where the build artifact will be located upon the completion of the build."
-
- parameter:
name: 'opnfv-build-centos-defaults'
parameters:
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
- file-paths:
- - compare-type: ANT
- pattern: 'xci/**'
- disable-strict-forbidden-file-verification: 'true'
+ disable-strict-forbidden-file-verification: 'false'
forbidden-file-paths:
- compare-type: ANT
pattern: 'bifrost/**'
- compare-type: ANT
- pattern: 'README.rst'
+ pattern: 'prototypes/**'
+ - compare-type: ANT
+ pattern: 'upstream/**'
+ - compare-type: ANT
+ pattern: '**/README.rst'
readable-message: true
parameters:
[lfid]
# Linux Foundation cas URL
cas_url = https://identity.linuxfoundation.org/cas/
+#service url used to authenticate to cas
+signin_return = api/v1/auth/signin_return
##############################################################################
import functools
-import cas
from tornado import gen
from tornado import web
-from opnfv_testapi.common import constants
from opnfv_testapi.common import message
from opnfv_testapi.common import raises
-from opnfv_testapi.common.config import CONF
from opnfv_testapi.db import api as dbapi
-def login(method):
- @web.asynchronous
- @gen.coroutine
- @functools.wraps(method)
- def wrapper(self, *args, **kwargs):
- ticket = self.get_query_argument('ticket', default=None)
- if ticket:
- client = cas.CASClient(version='2',
- server_url=CONF.lfid_cas_url,
- service_url=CONF.ui_url)
- (user, attrs, _) = client.verify_ticket(ticket=ticket)
- print 'login user: {}'.format(user)
- login_user = {
- 'user': user,
- 'email': attrs.get('mail'),
- 'fullname': attrs.get('field_lf_full_name'),
- 'groups': constants.TESTAPI_USERS + attrs.get('group', [])
- }
- q_user = {'user': user}
- db_user = yield dbapi.db_find_one(constants.USER_TABLE, q_user)
- if not db_user:
- dbapi.db_save(constants.USER_TABLE, login_user)
- else:
- dbapi.db_update(constants.USER_TABLE, q_user, login_user)
-
- self.clear_cookie(constants.TESTAPI_ID)
- self.set_secure_cookie(constants.TESTAPI_ID, user)
- ret = yield gen.coroutine(method)(self, *args, **kwargs)
- raise gen.Return(ret)
- return wrapper
-
-
def authenticate(method):
@web.asynchronous
@gen.coroutine
CSRF_TOKEN = 'csrf_token'
ROLE = 'role'
TESTAPI_USERS = ['opnfv-testapi-users']
-USER_TABLE = 'users'
(r'/', root.RootHandler),
(r'/api/v1/auth/signin', sign.SigninHandler),
+ (r'/{}'.format(CONF.lfid_signin_return), sign.SigninReturnHandler),
(r'/api/v1/auth/signout', sign.SignoutHandler),
(r'/api/v1/profile', user.UserHandler),
from cas import CASClient
+from tornado import gen
+from tornado import web
from opnfv_testapi.common import constants
from opnfv_testapi.common.config import CONF
+from opnfv_testapi.db import api as dbapi
from opnfv_testapi.resources import handlers
-class SigninHandler(handlers.GenericApiHandler):
+class SignBaseHandler(handlers.GenericApiHandler):
+ def __init__(self, application, request, **kwargs):
+ super(SignBaseHandler, self).__init__(application, request, **kwargs)
+ self.table = 'users'
+ self.cas_client = CASClient(version='2',
+ server_url=CONF.lfid_cas_url,
+ service_url='{}/{}'.format(
+ CONF.ui_url,
+ CONF.lfid_signin_return))
+
+
+class SigninHandler(SignBaseHandler):
+ def get(self):
+ self.redirect(url=(self.cas_client.get_login_url()))
+
+
+class SigninReturnHandler(SignBaseHandler):
+
+ @web.asynchronous
+ @gen.coroutine
def get(self):
- client = CASClient(version='2',
- server_url=CONF.lfid_cas_url,
- service_url=CONF.ui_url)
- self.redirect(url=(client.get_login_url()))
+ ticket = self.get_query_argument('ticket', default=None)
+ if ticket:
+ (user, attrs, _) = self.cas_client.verify_ticket(ticket=ticket)
+ login_user = {
+ 'user': user,
+ 'email': attrs.get('mail'),
+ 'fullname': attrs.get('field_lf_full_name'),
+ 'groups': constants.TESTAPI_USERS + attrs.get('group', [])
+ }
+ q_user = {'user': user}
+ db_user = yield dbapi.db_find_one(self.table, q_user)
+ if not db_user:
+ dbapi.db_save(self.table, login_user)
+ else:
+ dbapi.db_update(self.table, q_user, login_user)
+
+ self.clear_cookie(constants.TESTAPI_ID)
+ self.set_secure_cookie(constants.TESTAPI_ID, user)
+
+ self.redirect(url=CONF.ui_url)
-class SignoutHandler(handlers.GenericApiHandler):
+class SignoutHandler(SignBaseHandler):
def get(self):
"""Handle signout request."""
self.clear_cookie(constants.TESTAPI_ID)
- client = CASClient(version='2',
- server_url=CONF.lfid_cas_url)
- self.redirect(url=(client.get_logout_url(redirect_url=CONF.ui_url)))
+ logout_url = self.cas_client.get_logout_url(redirect_url=CONF.ui_url)
+ self.redirect(url=logout_url)
-from opnfv_testapi.common import check
from opnfv_testapi.common.config import CONF
from opnfv_testapi.resources import handlers
def get_template_path(self):
return CONF.ui_static_path
- @check.login
def get(self):
self.render('testapi-ui/index.html')