Skip to content

Commit 2d2de75

Browse files
authored
Add try/except block to trace error uri (#40)
1. Remove --arch option instand of default arch 'aarch64' 2. Remove --file-type option instand of default type 'html' 3. Add try/except block to trace error uri 4. Update README.md
1 parent 80ba3ba commit 2d2de75

3 files changed

Lines changed: 37 additions & 37 deletions

File tree

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ RUN mkdir /opt/app/images_versions && \
1010
chmod 777 /opt/app/images_versions
1111

1212
ENTRYPOINT [ "python3", "./VersionStatus.py"]
13-
CMD [ "-r", "victoria/21.03,queens/rocky,rocky/20.03-LTS-SP2" ]
13+
CMD [ "-r", "victoria/21.03,rocky/20.03-LTS-SP2" ]

README.md

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,23 @@ https://kiwik.github.io/os-version-checker/
88
os-version-checker will check and compare self from upstream against openEuler
99
or other version of OpenStack.
1010

11+
Command execute:
12+
1113
pip install -r requirements.txt
1214

1315
python3 VersionsStatus.py
1416

15-
Usage: VersionStatus.py [OPTIONS]
16-
17-
Options:
18-
-r, --releases <release-distro>
19-
Comma separated releases with openstack or
20-
distribution of openEuler to check, for
21-
example: rocky/20.03-LTS-SP2,rocky/train
22-
[required]
17+
Command usage:
2318

24-
-t, --file-type [txt|html] Output file format [default: html]
25-
-n, --file-name-os TEXT Output file name of openstack version
26-
checker [default: index.html]
19+
Usage: python -m VersionStatus [OPTIONS]
2720

28-
-a, --arch [aarch64|x86_64] CPU architecture of distribution [default:
29-
aarch64]
30-
31-
-h, --help Show this message and exit.
21+
Options:
22+
-r, --releases TEXT Comma separated releases with openstack/openEuler
23+
to check, for example: rocky/20.03-LTS-
24+
SP2,train/20.03-LTS-SP3 [default: train/20.03-LTS-
25+
SP3]
26+
-n, --file-name TEXT Output file name of openstack version checker
27+
[default: index.html]
28+
-p, --proxy TEXT HTTP proxy url
29+
-b, --bypass-ssl-verify Bypass SSL verify [default: False]
30+
-h, --help Show this message and exit.

VersionStatus.py

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242
"/Epol:/Multi-Version:/OpenStack:/{5}/standard_{3}/{4}",
4343
}
4444
OPENEULER_REPO_DOMAIN = "repo.openeuler.org"
45+
DEFAULT_ARCH = 'aarch64'
4546
RPM_119_SUB_DIR = 'noarch'
47+
DEFAULT_FILE_TYPE = 'html'
4648
STATUS_NONE = ["0", "NONE"]
4749
STATUS_OUTDATED = ["1", "OUTDATED"]
4850
STATUS_MISMATCH = ["2", "MISMATCH"]
@@ -58,7 +60,7 @@
5860

5961

6062
class ReleasesConfig:
61-
def __init__(self, content, arch):
63+
def __init__(self, content, arch=DEFAULT_ARCH):
6264
if not isinstance(content, str):
6365
raise RuntimeError('Input Error')
6466
self.releases = [r.strip() for r in content.split(',') if r]
@@ -330,47 +332,46 @@ def filter_upstream(_base_pkg_name):
330332
help='Comma separated releases with openstack/openEuler '
331333
'to check, for example: '
332334
'rocky/20.03-LTS-SP2,train/20.03-LTS-SP3')
333-
@click.option('-t', '--file-type', default='html', required=False,
334-
show_default=True, help='Output file format',
335-
type=click.Choice(['txt', 'html']))
336335
@click.option('-n', '--file-name', default='index.html',
337336
required=False, show_default=True,
338337
help='Output file name of openstack version checker')
339-
@click.option('-a', '--arch', default='aarch64',
340-
required=False, show_default=True,
341-
type=click.Choice(['aarch64', 'x86_64']),
342-
help='CPU architecture of distribution')
343338
@click.option('-p', '--proxy', required=False, help='HTTP proxy url')
344339
@click.option('-b', '--bypass-ssl-verify', default=False,
345340
required=False, show_default=True, is_flag=True,
346341
help='Bypass SSL verify')
347-
def run(releases, file_type, file_name, arch, proxy, bypass_ssl_verify):
342+
def run(releases, file_name, proxy, bypass_ssl_verify):
348343
if isinstance(proxy, str) and validators.url(proxy):
349344
REQUESTS_ARGS.update({'proxies': {'http': proxy, 'https': proxy}})
350345
REQUESTS_ARGS.update({'verify': not bypass_ssl_verify})
351-
releases_config = ReleasesConfig(releases, arch)
346+
releases_config = ReleasesConfig(releases)
352347
ver_data = {}
353348

354349
for release in releases_config.releases:
355350
_release_config = releases_config.releases_config[release]
356351
from_os_uri = _release_config['os_ver_uri'][0]
357-
from_os_data = UpstreamVersions(from_os_uri).upstream_versions
358-
# openstack version check openEuler
359-
_rpm_os_ver_uri = _release_config['rpm_os_ver_uri']
360-
if _rpm_os_ver_uri:
361-
to_os_data = RPMVersions(_rpm_os_ver_uri).rpm_versions
362-
# openstack version check openstack
363-
else:
364-
to_os_uri = _release_config['os_ver_uri'][-1]
365-
to_os_data = UpstreamVersions(to_os_uri).upstream_versions
352+
try:
353+
from_os_data = UpstreamVersions(from_os_uri).upstream_versions
354+
# openstack version check openEuler
355+
rpm_os_ver_uri = _release_config['rpm_os_ver_uri']
356+
if rpm_os_ver_uri:
357+
to_os_data = RPMVersions(rpm_os_ver_uri).rpm_versions
358+
# openstack version check openstack
359+
else:
360+
to_os_uri = _release_config['os_ver_uri'][-1]
361+
to_os_data = UpstreamVersions(to_os_uri).upstream_versions
362+
except Exception as e:
363+
print('from_os_uri: {}\nrpm_os_ver_uri: {}\n'.format(
364+
from_os_uri,
365+
rpm_os_ver_uri))
366+
raise e
366367

367368
ver_data[release] = VersionsComparator(from_os_data,
368369
to_os_data).compared_data
369370
ver_data[release]['apt'] = _release_config['os_ver_uri'] + \
370371
_release_config['rpm_os_ver_uri']
371372

372-
Renderer(ver_data, "template_os_checker.j2", file_type,
373-
file_name).render()
373+
Renderer(ver_data, "template_os_checker.j2", DEFAULT_FILE_TYPE, file_name
374+
).render()
374375

375376

376377
if __name__ == '__main__':

0 commit comments

Comments
 (0)