@@ -18,14 +18,32 @@ and parses the result. Three regexes cover three output formats:
1818 - `mysql Ver 14.14 Distrib X.Y.Z, for ...` (legacy mysql client)
1919 - `mariadb from X.Y.Z-MariaDB, client ...` (MariaDB 11.4+ client)
2020
21- Fixtures in `stdout/` come from a mix of sources:
22-
23- - `quay.io/sclorg/mysql-{80,84}-c{8,9,10}s` and
24- `quay.io/sclorg/mariadb-{105,1011}-c{8,9,10}s` for the Red Hat /
25- CentOS Stream packaging
26- - `docker.io/library/mariadb:<tag>` for the older 5.5 and 10.4
27- cycles plus the upstream-only 10.6, 11.4, 11.8, 12.0, 12.1 and
28- 12.2 MariaDB releases (no Red Hat container ships those yet)
21+ Fixtures in `stdout/` cover every MariaDB cycle that endoflife.date
22+ currently lists (5.5 through 12.2) plus the MySQL 8.0 / 8.4 line, with
23+ captures from multiple sources whenever possible:
24+
25+ - `<vendor>-<version>-c{8,9,10}s` : Red Hat / CentOS Stream sclorg
26+ (`quay.io/sclorg/mariadb-105-c8s`,
27+ `mysql-80-c9s`, etc.)
28+ - `<vendor>-<version>-rocky{8,9,10}`: Rocky Linux + the official MariaDB
29+ yum repo at https://yum.mariadb.org
30+ (or `archive.mariadb.org` for
31+ retired cycles)
32+ - `<vendor>-<version>-centos7` : CentOS 7 + the archive yum repo
33+ (only used for very old MariaDB
34+ like 5.5 that no longer ships on
35+ Rocky)
36+ - `<vendor>-<version>-debian` : `docker.io/library/mariadb:<tag>`
37+ (kept side-by-side with the Red
38+ Hat captures so the parser also
39+ sees the upstream Debian package
40+ suffixes like `-1~trusty` and
41+ `-ubu2404`)
42+ - `<vendor>-<version>-debian-client`: same as debian, but captured via
43+ the new `mariadb --version`
44+ client banner that MariaDB 11.4
45+ introduced (the regex case
46+ starting with `from X.Y.Z`)
2947
3048Each testcase pins the expected Nagios state to whatever
3149`lib.version.check_eol()` returned when these fixtures were saved
@@ -44,82 +62,142 @@ import lib.lftest
4462
4563
4664TESTS = [
47- # ---- MariaDB ---- ----------------------------------------------
65+ # ---- MariaDB 5.5 ----------------------------------------------
4866 {
49- 'id' : 'warn-mariadb-5-5-eol' ,
50- 'test' : 'stdout/mysqld-version-mariadb-5.5,,0' ,
67+ 'id' : 'warn-mariadb-5-5-centos7-eol' ,
68+ 'test' : 'stdout/mariadb-5.5-centos7,,0' ,
69+ 'assert-retc' : STATE_WARN ,
70+ 'assert-in' : ['MariaDB v5.5.68' , 'EOL 2020-04-11' , '[WARNING]' ],
71+ },
72+ {
73+ 'id' : 'warn-mariadb-5-5-debian-eol' ,
74+ 'test' : 'stdout/mariadb-5.5-debian,,0' ,
5175 'assert-retc' : STATE_WARN ,
5276 'assert-in' : ['MariaDB v5.5.64' , 'EOL 2020-04-11' , '[WARNING]' ],
5377 },
78+ # ---- MariaDB 10.4 ---------------------------------------------
5479 {
55- 'id' : 'warn-mariadb-10-4-eol' ,
56- 'test' : 'stdout/mysqld-version- mariadb-10.4,,0' ,
80+ 'id' : 'warn-mariadb-10-4-rocky8- eol' ,
81+ 'test' : 'stdout/mariadb-10.4-rocky8 ,,0' ,
5782 'assert-retc' : STATE_WARN ,
5883 'assert-in' : ['MariaDB v10.4.34' , 'EOL 2024-06-18' , '[WARNING]' ],
5984 },
85+ {
86+ 'id' : 'warn-mariadb-10-4-debian-eol' ,
87+ 'test' : 'stdout/mariadb-10.4-debian,,0' ,
88+ 'assert-retc' : STATE_WARN ,
89+ 'assert-in' : ['MariaDB v10.4.34' , 'EOL 2024-06-18' , '[WARNING]' ],
90+ },
91+ # ---- MariaDB 10.5 ---------------------------------------------
6092 {
6193 'id' : 'warn-mariadb-10-5-c8s-eol' ,
62- 'test' : 'stdout/mysqld-version- mariadb-10.5-c8s,,0' ,
94+ 'test' : 'stdout/mariadb-10.5-c8s,,0' ,
6395 'assert-retc' : STATE_WARN ,
6496 'assert-in' : ['MariaDB v10.5.9' , 'EOL 2025-06-24' , '[WARNING]' ],
6597 },
6698 {
6799 'id' : 'warn-mariadb-10-5-c9s-eol' ,
68- 'test' : 'stdout/mysqld-version- mariadb-10.5-c9s,,0' ,
100+ 'test' : 'stdout/mariadb-10.5-c9s,,0' ,
69101 'assert-retc' : STATE_WARN ,
70102 'assert-in' : ['MariaDB v10.5.29' , 'EOL 2025-06-24' , '[WARNING]' ],
71103 },
104+ # ---- MariaDB 10.6 ---------------------------------------------
105+ {
106+ 'id' : 'ok-mariadb-10-6-rocky9-supported' ,
107+ 'test' : 'stdout/mariadb-10.6-rocky9,,0' ,
108+ 'assert-retc' : STATE_OK ,
109+ 'assert-in' : ['MariaDB v10.6.25' , 'EOL 2026-07-06' ],
110+ },
72111 {
73- # MariaDB 10.6 LTS, EOL 2026-07-06.
74- 'id' : 'ok-mariadb-10-6-supported' ,
75- 'test' : 'stdout/mysqld-version-mariadb-10.6,,0' ,
112+ 'id' : 'ok-mariadb-10-6-debian-supported' ,
113+ 'test' : 'stdout/mariadb-10.6-debian,,0' ,
76114 'assert-retc' : STATE_OK ,
77115 'assert-in' : ['MariaDB v10.6.25' , 'EOL 2026-07-06' ],
78116 },
117+ # ---- MariaDB 10.11 (LTS) --------------------------------------
79118 {
80- # MariaDB 10.11 LTS, EOL 2028-02-16.
81119 'id' : 'ok-mariadb-10-11-c10s-supported' ,
82- 'test' : 'stdout/mysqld-version- mariadb-10.11-c10s,,0' ,
120+ 'test' : 'stdout/mariadb-10.11-c10s,,0' ,
83121 'assert-retc' : STATE_OK ,
84122 'assert-in' : ['MariaDB v10.11.15' , 'EOL 2028-02-16' ],
85123 },
124+ # ---- MariaDB 11.4 (LTS) ---------------------------------------
86125 {
87- # MariaDB 11.4 LTS via the new `mariadb --version` client
88- # banner. Exercises the third parser regex (`from X.Y.Z,`).
89- 'id' : 'ok-mariadb-11-4-client-banner-supported' ,
90- 'test' : 'stdout/mariadb-version-client-11.4,,0' ,
126+ 'id' : 'ok-mariadb-11-4-rocky9-supported' ,
127+ 'test' : 'stdout/mariadb-11.4-rocky9,,0' ,
91128 'assert-retc' : STATE_OK ,
92129 'assert-in' : ['MariaDB v11.4.10' , 'EOL 2029-05-29' ],
93130 },
94131 {
95- 'id' : 'ok-mariadb-11-8-client-banner-supported' ,
96- 'test' : 'stdout/mariadb-version-client-11.8,,0' ,
132+ # Exercises the third parser regex (`from X.Y.Z, client...`)
133+ # introduced by MariaDB 11.4.
134+ 'id' : 'ok-mariadb-11-4-debian-client-banner-supported' ,
135+ 'test' : 'stdout/mariadb-11.4-debian-client,,0' ,
136+ 'assert-retc' : STATE_OK ,
137+ 'assert-in' : ['MariaDB v11.4.10' , 'EOL 2029-05-29' ],
138+ },
139+ # ---- MariaDB 11.8 ---------------------------------------------
140+ {
141+ 'id' : 'ok-mariadb-11-8-rocky9-supported' ,
142+ 'test' : 'stdout/mariadb-11.8-rocky9,,0' ,
143+ 'assert-retc' : STATE_OK ,
144+ 'assert-in' : ['MariaDB v11.8.6' , 'EOL 2028-06-04' ],
145+ },
146+ {
147+ 'id' : 'ok-mariadb-11-8-debian-client-banner-supported' ,
148+ 'test' : 'stdout/mariadb-11.8-debian-client,,0' ,
97149 'assert-retc' : STATE_OK ,
98150 'assert-in' : ['MariaDB v11.8.6' , 'EOL 2028-06-04' ],
99151 },
152+ # ---- MariaDB 12.0 ---------------------------------------------
100153 {
101- 'id' : 'warn-mariadb-12-0-near-eol' ,
102- 'test' : 'stdout/mariadb-version-client- 12.0,,0' ,
154+ 'id' : 'warn-mariadb-12-0-rocky9- near-eol' ,
155+ 'test' : 'stdout/mariadb-12.0-rocky9 ,,0' ,
103156 'assert-retc' : STATE_WARN ,
104157 'assert-in' : ['MariaDB v12.0.2' , 'EOL 2025-11-18' , '[WARNING]' ],
105158 },
106159 {
107- 'id' : 'warn-mariadb-12-1-near-eol' ,
108- 'test' : 'stdout/mariadb-version-client-12.1,,0' ,
160+ 'id' : 'warn-mariadb-12-0-debian-client-near-eol' ,
161+ 'test' : 'stdout/mariadb-12.0-debian-client,,0' ,
162+ 'assert-retc' : STATE_WARN ,
163+ 'assert-in' : ['MariaDB v12.0.2' , 'EOL 2025-11-18' , '[WARNING]' ],
164+ },
165+ # ---- MariaDB 12.1 ---------------------------------------------
166+ {
167+ 'id' : 'warn-mariadb-12-1-rocky9-near-eol' ,
168+ 'test' : 'stdout/mariadb-12.1-rocky9,,0' ,
169+ 'assert-retc' : STATE_WARN ,
170+ 'assert-in' : ['MariaDB v12.1.2' , 'EOL 2026-02-13' , '[WARNING]' ],
171+ },
172+ {
173+ 'id' : 'warn-mariadb-12-1-debian-client-near-eol' ,
174+ 'test' : 'stdout/mariadb-12.1-debian-client,,0' ,
109175 'assert-retc' : STATE_WARN ,
110176 'assert-in' : ['MariaDB v12.1.2' , 'EOL 2026-02-13' , '[WARNING]' ],
111177 },
178+ # ---- MariaDB 12.2 ---------------------------------------------
179+ {
180+ 'id' : 'warn-mariadb-12-2-rocky9-near-eol' ,
181+ 'test' : 'stdout/mariadb-12.2-rocky9,,0' ,
182+ 'assert-retc' : STATE_WARN ,
183+ 'assert-in' : ['MariaDB v12.2.2' , 'EOL 2026-05-13' , '[WARNING]' ],
184+ },
185+ {
186+ 'id' : 'warn-mariadb-12-2-rocky10-near-eol' ,
187+ 'test' : 'stdout/mariadb-12.2-rocky10,,0' ,
188+ 'assert-retc' : STATE_WARN ,
189+ 'assert-in' : ['MariaDB v12.2.2' , 'EOL 2026-05-13' , '[WARNING]' ],
190+ },
112191 {
113- 'id' : 'warn-mariadb-12-2-near-eol' ,
114- 'test' : 'stdout/mariadb-version-client- 12.2,,0' ,
192+ 'id' : 'warn-mariadb-12-2-debian-client- near-eol' ,
193+ 'test' : 'stdout/mariadb-12.2-debian-client ,,0' ,
115194 'assert-retc' : STATE_WARN ,
116195 'assert-in' : ['MariaDB v12.2.2' , 'EOL 2026-05-13' , '[WARNING]' ],
117196 },
118- # ---- MySQL ---- ------------------------------------------------
197+ # ---- MySQL 8.0 ------------------------------------------------
119198 {
120- # MySQL 8.0 - full support already ended, hard EOL 2026-04-30.
121199 'id' : 'warn-mysql-8-0-c8s-near-eol' ,
122- 'test' : 'stdout/mysqld-version- mysql-8.0-c8s,,0' ,
200+ 'test' : 'stdout/mysql-8.0-c8s,,0' ,
123201 'assert-retc' : STATE_WARN ,
124202 'assert-in' : [
125203 'MySQL v8.0.26' ,
@@ -130,14 +208,14 @@ TESTS = [
130208 },
131209 {
132210 'id' : 'warn-mysql-8-0-c9s-near-eol' ,
133- 'test' : 'stdout/mysqld-version- mysql-8.0-c9s,,0' ,
211+ 'test' : 'stdout/mysql-8.0-c9s,,0' ,
134212 'assert-retc' : STATE_WARN ,
135213 'assert-in' : ['MySQL v8.0.45' , 'EOL 2026-04-30' , '[WARNING]' ],
136214 },
215+ # ---- MySQL 8.4 (LTS) ------------------------------------------
137216 {
138- # MySQL 8.4 LTS, EOL 2032-04-30.
139217 'id' : 'ok-mysql-8-4-c10s-supported' ,
140- 'test' : 'stdout/mysqld-version- mysql-8.4-c10s,,0' ,
218+ 'test' : 'stdout/mysql-8.4-c10s,,0' ,
141219 'assert-retc' : STATE_OK ,
142220 'assert-in' : ['MySQL v8.4.8' , 'EOL 2032-04-30' ],
143221 },
0 commit comments