Skip to content

Commit e3fdac4

Browse files
author
Daniele De Lorenzi
committed
feat(probe-builder): Ability to crawl EulerOS kernel packages
Signed-off-by: Daniele De Lorenzi <daniele.delorenzi@sysdig.com>
1 parent a15510f commit e3fdac4

4 files changed

Lines changed: 26 additions & 1 deletion

File tree

probe_builder/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ def get_kernels(self, _workspace, packages, _download_config, _crawler_filter):
8484
'CentOS': CrawlDistro('centos', 'centos', 'CentOS'),
8585
'CentOSStream': CrawlDistro('centosstream', 'centos', 'CentOSStream'),
8686
'Debian': CrawlDistro('debian', 'debian', 'Debian'),
87+
'EulerOS': CrawlDistro('euleros', 'centos', 'EulerOS'),
8788
'Fedora': CrawlDistro('fedora', 'centos', 'Fedora'),
8889
'Flatcar': CrawlDistro('flatcar', 'flatcar', 'Flatcar'),
8990
'Oracle6': CrawlDistro('oracle6', 'oracle', 'Oracle6'),

probe_builder/kernel_crawler/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from .almalinux import AlmaLinuxMirror
33
from .amazonlinux import AmazonLinux1Mirror, AmazonLinux2Mirror, AmazonLinux2022Mirror
44
from .centos import CentosMirror, CentosStreamMirror
5+
from .euleros import EulerOSMirror
56
from .fedora import FedoraMirror
67
from .oracle import Oracle6Mirror, Oracle7Mirror, Oracle8Mirror, Oracle9Mirror
78
from .photon_os import PhotonOsMirror
@@ -20,6 +21,7 @@
2021
'AmazonLinux2022': AmazonLinux2022Mirror,
2122
'CentOS': CentosMirror,
2223
'CentOSStream': CentosStreamMirror,
24+
'EulerOS': EulerOSMirror,
2325
'Fedora': FedoraMirror,
2426
'Oracle6': Oracle6Mirror,
2527
'Oracle7': Oracle7Mirror,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from . import repo
2+
from . import rpm
3+
4+
def v2(ver):
5+
return ver.startswith('2')
6+
7+
class EulerOSMirror(repo.Distro):
8+
def get_mirrors(self, crawler_filter):
9+
mirrors = [
10+
# EulerOS 2
11+
# Lifecycle:
12+
# https://developer.huaweicloud.com/intl/en-us/euleros/lifecycle-management.html
13+
# Mirror list:
14+
# http://mirrors.huaweicloud.com/euler/
15+
rpm.RpmMirror('http://mirrors.huaweicloud.com/euler/', 'os/{}/'.format(crawler_filter.machine), v2),
16+
rpm.RpmMirror('http://mirrors.huaweicloud.com/euler/', 'updates/{}/'.format(crawler_filter.machine), v2),
17+
18+
]
19+
return mirrors

probe_builder/kernel_crawler/rpm.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,10 @@ def list_drel_repos(self, crawler_filter):
118118
dists.raise_for_status()
119119
dists = dists.content
120120
doc = html.fromstring(dists, self.base_url)
121-
dists = doc.xpath('/html/body//a[not(@href="../")]/@href')
121+
# Huawei Cloud loves do things differently
122+
# Their page uses a table ouside body tags
123+
# this additional filter catch it
124+
dists = doc.xpath('/html/body//a[not(@href="../")]/@href | //table/tbody//a[not(@href="../")]/@href')
122125

123126
fdists = [dist for dist in dists
124127
if dist.endswith('/')

0 commit comments

Comments
 (0)