add Quali python scripts (#41)

Signed-off-by: Max Brenner <xamrennerb@gmail.com>
This commit is contained in:
Max
2021-04-29 14:36:04 +02:00
committed by GitHub
parent 38dfea79ed
commit e118e049bf
4 changed files with 64 additions and 0 deletions

29
.quali/common.py Normal file
View File

@@ -0,0 +1,29 @@
import os
import time
from cloudshell.api.cloudshell_api import CloudShellAPISession
TIMEOUT=600
def get_session():
url = os.environ['CLOUDSHELL_URL']
user = os.environ['CLOUDSHELL_USER']
password = os.environ['CLOUDSHELL_PASSWORD']
return CloudShellAPISession(url, user, password, "Global")
def wait_for_reservation_status(session, res_id, target_status):
timer = 0
sleep_time = 5
while True:
status = session.GetReservationStatus(res_id).ReservationSlimStatus.ProvisioningStatus
if status == target_status:
break
if timer >= TIMEOUT:
raise RuntimeError(f'waiting for reservation to reach status {target_status} timed out')
time.sleep(sleep_time)
timer += sleep_time

1
.quali/requirements.txt Normal file
View File

@@ -0,0 +1 @@
cloudshell-automation-api==2021.1.0.181140

View File

@@ -0,0 +1,22 @@
import os
from common import wait_for_reservation_status, get_session
run_id = os.environ.get('GITHUB_RUN_NUMBER', 1)
def main():
session = get_session()
reservation = session.CreateImmediateTopologyReservation(
reservationName=f'sanity-{run_id}',
owner=session.username,
durationInMinutes=60,
topologyFullPath='API TESTING'
).Reservation
print(reservation.Id)
wait_for_reservation_status(session, reservation.Id, 'Ready')
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,12 @@
import sys
from common import wait_for_reservation_status, get_session
def main():
session = get_session()
res_id = sys.argv[1]
session.EndReservation(res_id)
wait_for_reservation_status(session, res_id, 'Teardown')
if __name__ == '__main__':
main()