@cryptotaxi247 / netdata-1 / commits / 533b98d44

Fix handling of no data in platform EOL checks. (#14617)

Also, re-enable EOL checking for Debian.

Austin S. Hemmelgarn committed Feb 28, 2023 at 09:03 UTC 533b98d44d9954d35e90b41ba5b5f1110e804ec3
3 files changed +18 -7
.github/data/distros.yml
+1 -1
@@ -92,7 +92,7 @@ include:
92 distro: debian
93 version: "12"
94 base_image: debian:bookworm
95 - eol_check: false
95 + eol_check: true
96 env_prep: |
97 apt-get update
98 jsonc_removal: |
.github/scripts/platform-impending-eol.py
+12 -5
@@ -17,18 +17,25 @@ LEAD_DAYS = datetime.timedelta(days=30)
17 DISTRO = sys.argv[1]
18 RELEASE = sys.argv[2]
19
20 +EXIT_NOT_IMPENDING = 0
21 +EXIT_IMPENDING = 1
22 +EXIT_NO_DATA = 2
23 +EXIT_FAILURE = 3
24
25 with urllib.request.urlopen(f'{ URL_BASE }/{ DISTRO }/{ RELEASE }.json') as response:
26 match response.status:
27 case 200:
28 data = json.load(response)
29 case 404:
26 - sys.exit(f'No data available for { DISTRO } { RELEASE }.')
30 + print(f'No data available for { DISTRO } { RELEASE }.', file=sys.stderr)
31 + sys.exit(EXIT_NO_DATA)
32 case _:
28 - sys.exit(
33 + print(
34 f'Failed to retrieve data for { DISTRO } { RELEASE } ' +
30 - f'(status: { response.status }).'
35 + f'(status: { response.status }).',
36 + file=sys.stderr
37 )
38 + sys.exit(EXIT_FAILURE)
39
40 eol = datetime.date.fromisoformat(data['eol'])
41
@@ -36,6 +43,6 @@ offset = abs(eol - NOW)
43
44 if offset <= LEAD_DAYS:
45 print(data['eol'])
39 - sys.exit(2)
46 + sys.exit(EXIT_IMPENDING)
47 else:
41 - sys.exit(0)
48 + sys.exit(EXIT_NOT_IMPENDING)
.github/workflows/platform-eol-check.yml
+5 -1
@@ -54,10 +54,14 @@ jobs:
54 d="$(.github/scripts/platform-impending-eol.py ${{ matrix.distro }} ${{ matrix.release }})"
55 case $? in
56 0) echo "pending=false" >> "${GITHUB_OUTPUT}" ;;
57 - 2)
57 + 1)
58 echo "pending=true" >> "${GITHUB_OUTPUT}"
59 echo "date=${d}" >> "${GITHUB_OUTPUT}"
60 ;;
61 + 2)
62 + echo "pending=false" >> "${GITHUB_OUTPUT}"
63 + echo "::info::No EOL information found for ${{ matrix.distro }} ${{ matrix.release }}"
64 + ;;
65 *)
66 echo "::error::Failed to check EOL date for ${{ matrix.distro }} ${{ matrix.release }}"
67 exit 1