mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-10-29 10:02:26 +00:00
33
.github/workflows/quali.yml
vendored
Normal file
33
.github/workflows/quali.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Quali example pipeline
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
quali:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CLOUDSHELL_URL: quali-cloudshell.lab.wlan.tip.build
|
||||
CLOUDSHELL_USER: admin
|
||||
CLOUDSHELL_PASSWORD: ${{ secrets.CLOUDSHELL_PASSWORD }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.8'
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install -r .quali/requirements.txt
|
||||
|
||||
- name: Start reservation
|
||||
id: start
|
||||
run: echo ::set-output name=res_id::$(python .quali/start_reservation.py)
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
echo "simulating test execution"
|
||||
sleep 30
|
||||
|
||||
- name: Stop reservation
|
||||
run: python .quali/stop_reservation.py ${{ steps.start.outputs.res_id }}
|
||||
@@ -3,7 +3,7 @@ import time
|
||||
|
||||
from cloudshell.api.cloudshell_api import CloudShellAPISession
|
||||
|
||||
TIMEOUT=600
|
||||
TIMEOUT=1200
|
||||
|
||||
def get_session():
|
||||
url = os.environ['CLOUDSHELL_URL']
|
||||
@@ -12,12 +12,11 @@ def get_session():
|
||||
|
||||
return CloudShellAPISession(url, user, password, "Global")
|
||||
|
||||
|
||||
def wait_for_reservation_status(session, res_id, target_status):
|
||||
def __wait_for_status(session, res_id, field, target_status):
|
||||
timer = 0
|
||||
sleep_time = 5
|
||||
while True:
|
||||
status = session.GetReservationStatus(res_id).ReservationSlimStatus.ProvisioningStatus
|
||||
status = session.GetReservationStatus(res_id).ReservationSlimStatus.__dict__[field]
|
||||
|
||||
if status == target_status:
|
||||
break
|
||||
@@ -27,3 +26,9 @@ def wait_for_reservation_status(session, res_id, target_status):
|
||||
|
||||
time.sleep(sleep_time)
|
||||
timer += sleep_time
|
||||
|
||||
def wait_for_provisioning_status(session, res_id, target_status):
|
||||
__wait_for_status(session, res_id, 'ProvisioningStatus', target_status)
|
||||
|
||||
def wait_for_reservation_status(session, res_id, target_status):
|
||||
__wait_for_status(session, res_id, 'Status', target_status)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import os
|
||||
|
||||
from common import wait_for_reservation_status, get_session
|
||||
from common import wait_for_provisioning_status, get_session
|
||||
|
||||
run_id = os.environ.get('GITHUB_RUN_NUMBER', 1)
|
||||
|
||||
@@ -11,12 +11,12 @@ def main():
|
||||
reservationName=f'sanity-{run_id}',
|
||||
owner=session.username,
|
||||
durationInMinutes=60,
|
||||
topologyFullPath='API TESTING'
|
||||
topologyFullPath='Testing - Basic Lab01'
|
||||
).Reservation
|
||||
|
||||
print(reservation.Id)
|
||||
|
||||
wait_for_reservation_status(session, reservation.Id, 'Ready')
|
||||
wait_for_provisioning_status(session, reservation.Id, 'Ready')
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
@@ -6,7 +6,7 @@ def main():
|
||||
session = get_session()
|
||||
res_id = sys.argv[1]
|
||||
session.EndReservation(res_id)
|
||||
wait_for_reservation_status(session, res_id, 'Teardown')
|
||||
wait_for_reservation_status(session, res_id, 'Completed')
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user