Skip to content

Commit 7f2a7ce

Browse files
MinerYangAYDEV-FR
authored andcommitted
lazy load v2_swagger_client module (goharbor#22154)
Signed-off-by: my036811 <[email protected]>
1 parent f2e80f9 commit 7f2a7ce

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

tests/apitests/python/library/base.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
import subprocess
44
import time
55

6-
import v2_swagger_client
6+
import importlib
77

88
try:
99
from urllib import getproxies
1010
except ImportError:
1111
from urllib.request import getproxies
1212

13+
def swagger_module():
14+
module = importlib.import_module("v2_swagger_client")
15+
return module
16+
1317
class Server:
1418
def __init__(self, endpoint, verify_ssl):
1519
self.endpoint = endpoint
@@ -26,6 +30,7 @@ def get_endpoint():
2630
return os.environ.get("HARBOR_HOST_SCHEMA", "https")+ "://"+harbor_server+"/api/v2.0"
2731

2832
def _create_client(server, credential, debug, api_type):
33+
v2_swagger_client = swagger_module()
2934
cfg = v2_swagger_client.Configuration()
3035
cfg.host = server.endpoint
3136
cfg.verify_ssl = server.verify_ssl

tests/apitests/python/library/repository.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@
22

33
import time
44
import base
5-
import v2_swagger_client
5+
import importlib
66
import docker_api
77
from docker_api import DockerAPI
8-
from v2_swagger_client.rest import ApiException
8+
# from v2_swagger_client.rest import ApiException
99
from testutils import DOCKER_USER, DOCKER_PWD
1010

11+
def swagger_module():
12+
module = importlib.import_module("v2_swagger_client")
13+
return module
14+
1115
def pull_harbor_image(registry, username, password, image, tag, expected_login_error_message = None, expected_error_message = None):
1216
_docker_api = DockerAPI()
1317
_docker_api.docker_login(registry, username, password, expected_error_message = expected_login_error_message)
@@ -122,6 +126,7 @@ def get_repository(self, project_name, repo_name, **kwargs):
122126

123127
def add_label_to_tag(self, repo_name, tag, label_id, expect_status_code = 200, **kwargs):
124128
client = self._get_client(**kwargs)
129+
v2_swagger_client = swagger_module()
125130
label = v2_swagger_client.Label(id=label_id)
126131
_, status_code, _ = client.repositories_repo_name_tags_tag_labels_post_with_http_info(repo_name, tag, label)
127132
base._assert_status_code(expect_status_code, status_code)
@@ -158,11 +163,12 @@ def signature_should_exist(self, repo_name, tag, **kwargs):
158163

159164
def retag_image(self, repo_name, tag, src_image, override=True, expect_status_code = 200, expect_response_body = None, **kwargs):
160165
client = self._get_client(**kwargs)
166+
v2_swagger_client = swagger_module()
161167
request = v2_swagger_client.RetagReq(tag=tag, src_image=src_image, override=override)
162168

163169
try:
164170
data, status_code, _ = client.repositories_repo_name_tags_post_with_http_info(repo_name, request)
165-
except ApiException as e:
171+
except v2_swagger_client.rest.ApiException as e:
166172
base._assert_status_code(expect_status_code, e.status)
167173
if expect_response_body is not None:
168174
base._assert_status_body(expect_response_body, e.body)

tests/apitests/python/testutils.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
files_directory = os.getcwd() + "/tests/files/"
1717

18-
import v2_swagger_client
18+
import importlib
1919

2020
admin_user = "admin"
2121
admin_pwd = "Harbor12345"
@@ -35,9 +35,12 @@
3535
BASE_IMAGE = dict(name='busybox', tag='latest')
3636
BASE_IMAGE_ABS_PATH_NAME = '/' + BASE_IMAGE['name'] + '.tar'
3737

38-
38+
def swagger_module():
39+
module = importlib.import_module("v2_swagger_client")
40+
return module
41+
3942
def GetRepositoryApi(username, password, harbor_server= os.environ.get("HARBOR_HOST", '')):
40-
43+
v2_swagger_client = swagger_module()
4144
cfg = v2_swagger_client.Configuration()
4245
cfg.host = "https://"+harbor_server+"/api/v2.0"
4346
cfg.username = username
@@ -49,6 +52,7 @@ def GetRepositoryApi(username, password, harbor_server= os.environ.get("HARBOR_H
4952
return api_instance
5053

5154
def GetUserGroupApi(username, password, harbor_server= os.environ.get("HARBOR_HOST", '')):
55+
v2_swagger_client = swagger_module()
5256
cfg = v2_swagger_client.Configuration()
5357
cfg.host = "https://"+harbor_server+"/api/v2.0"
5458
cfg.username = username

0 commit comments

Comments
 (0)