Skip to content

Commit 30cdbea

Browse files
authored
Fix 20.03-LTS-SP3 support R Q T (#38)
1. Enable 20.03-LTS-SP3 for OpenStack R Q versions 2. Add new CLI args "--proxy"
1 parent dd32552 commit 30cdbea

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

VersionStatus.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
import os
44
import re
55
import sys
6+
from collections import defaultdict
67
from collections import OrderedDict
78

89
import click
910
import jinja2
1011
import requests
1112
from packaging import version
13+
import validators
14+
1215

1316
OS_URI = "https://releases.openstack.org/{}"
1417
RPM_OS_URI_MAPPING = {
@@ -18,7 +21,14 @@
1821
"https://repo.oepkgs.net/openEuler/rpm/openEuler-{0}/budding-openeuler"
1922
"/openstack/{2}/{1}/Packages/",
2023
('20.03-LTS-SP3', '21.09'):
21-
"https://repo.openeuler.org/openEuler-{0}/EPOL/main/{1}/Packages/",
24+
defaultdict(
25+
lambda: "https://repo.openeuler.org/openEuler-{0}/EPOL/"
26+
"main/{1}/Packages/",
27+
dict(rocky="https://repo.oepkgs.net/openEuler/rpm/openEuler-{0}/"
28+
"budding-openeuler/openstack/{2}/{1}/Packages/",
29+
queens="https://repo.oepkgs.net/openEuler/rpm/openEuler-{0}/"
30+
"budding-openeuler/openstack/{2}/{1}/Packages/")
31+
),
2232
('22.03-LTS',):
2333
"https://repo.openeuler.org/openEuler-{0}/EPOL/multi_version"
2434
"/OpenStack/{2}/{1}/Packages/",
@@ -46,6 +56,7 @@
4656
re.compile(r"^[-_\w]+[-_]tempest[-_]plugin$"), # *-tempest-plugin
4757
]
4858
OPENEULER_DEFAULT_REPLACE = re.compile(r"[._]")
59+
PROXY = {}
4960

5061

5162
class ReleasesConfig:
@@ -64,6 +75,8 @@ def __init__(self, content, arch):
6475
for _to_version_tuple in RPM_OS_URI_MAPPING.keys():
6576
if to_os_version in _to_version_tuple:
6677
_url = RPM_OS_URI_MAPPING.get(_to_version_tuple)
78+
if isinstance(_url, dict):
79+
_url = _url[from_os_version]
6780
break
6881
# openstack vs openstack
6982
else:
@@ -157,7 +170,7 @@ def __init__(self, _rpm_os_ver_uri_list):
157170
def rpm_versions(self):
158171
results = dict()
159172
for _rpm_os_ver_uri in self.rpm_os_ver_uri_list:
160-
r = requests.get(_rpm_os_ver_uri)
173+
r = requests.get(_rpm_os_ver_uri, proxies=PROXY, verify=False)
161174
if r.status_code != requests.codes.ok:
162175
raise RuntimeError('CAN NOT GET {}'.format(_rpm_os_ver_uri))
163176
uri_content = r.content.decode()
@@ -184,7 +197,9 @@ def rpm_versions(self):
184197

185198
class UpstreamVersions:
186199
def __init__(self, _os_ver_uri):
187-
self.url_os_content = requests.get(_os_ver_uri).content.decode()
200+
self.url_os_content = requests.get(_os_ver_uri,
201+
proxies=PROXY,
202+
verify=False).content.decode()
188203

189204
@property
190205
def upstream_versions(self):
@@ -328,9 +343,13 @@ def filter_upstream(_base_pkg_name):
328343
required=False, show_default=True,
329344
type=click.Choice(['aarch64', 'x86_64']),
330345
help='CPU architecture of distribution')
331-
def run(releases, file_type, file_name_os, arch):
346+
@click.option('-p', '--proxy', required=False, help='HTTP proxy url')
347+
def run(releases, file_type, file_name_os, arch, proxy):
332348
if releases:
333349
releases_config = ReleasesConfig(releases, arch)
350+
if isinstance(proxy, str) and validators.url(proxy):
351+
PROXY.update({'http': proxy, 'https': proxy})
352+
334353
ver_data = dict()
335354
for release in releases_config.releases:
336355
_release_config = releases_config.releases_config.get(release)

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ requests>=2.24.0
33
Jinja2>=2.11.2
44
packaging>=20.4
55
click>=7.1.2
6-
htmlmin>=0.1.12
6+
htmlmin>=0.1.12
7+
validators

0 commit comments

Comments
 (0)