mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-09 12:10:08 +01:00
51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
import time
|
||
|
import base
|
||
|
import v2_swagger_client
|
||
|
from v2_swagger_client.rest import ApiException
|
||
|
|
||
|
class ScanAll(base.Base):
|
||
|
def __init__(self):
|
||
|
super(ScanAll,self).__init__(api_type="scanall")
|
||
|
|
||
|
def create_scan_all_schedule(self, schedule_type, cron=None, expect_status_code=201, expect_response_body=None, **kwargs):
|
||
|
client = self._get_client(**kwargs)
|
||
|
|
||
|
schedule_obj = v2_swagger_client.ScheduleObj()
|
||
|
schedule_obj.type = schedule_type
|
||
|
if cron is not None:
|
||
|
schedule_obj.cron = cron
|
||
|
|
||
|
schedule = v2_swagger_client.Schedule()
|
||
|
schedule.schedule = schedule_obj
|
||
|
|
||
|
try:
|
||
|
_, status_code, _ = client.create_scan_all_schedule_with_http_info(schedule)
|
||
|
except ApiException as e:
|
||
|
if e.status == expect_status_code:
|
||
|
if expect_response_body is not None and e.body.strip() != expect_response_body.strip():
|
||
|
raise Exception(r"Create scan all schedule response body is not as expected {} actual status is {}.".format(expect_response_body.strip(), e.body.strip()))
|
||
|
else:
|
||
|
return e.reason, e.body
|
||
|
else:
|
||
|
raise Exception(r"Create scan all schedule result is not as expected {} actual status is {}.".format(expect_status_code, e.status))
|
||
|
base._assert_status_code(expect_status_code, status_code)
|
||
|
|
||
|
def scan_all_now(self, **kwargs):
|
||
|
self.create_scan_all_schedule('Manual', **kwargs)
|
||
|
|
||
|
def wait_until_scans_all_finish(self, **kwargs):
|
||
|
client = self._get_client(**kwargs)
|
||
|
timeout_count = 50
|
||
|
while True:
|
||
|
time.sleep(5)
|
||
|
timeout_count = timeout_count - 1
|
||
|
if (timeout_count == 0):
|
||
|
break
|
||
|
stats = client.get_latest_scan_all_metrics()
|
||
|
print("Scan all status:", stats)
|
||
|
if stats.ongoing is False:
|
||
|
return
|
||
|
raise Exception("Error: Scan all job is timeout.")
|