feat: update EOL (#1598)
This commit is contained in:
		
							
								
								
									
										13
									
								
								config/os.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								config/os.go
									
									
									
									
									
								
							@@ -287,6 +287,7 @@ func GetEOL(family, release string) (eol EOL, found bool) {
 | 
			
		||||
			"3.14": {StandardSupportUntil: time.Date(2023, 5, 1, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"3.15": {StandardSupportUntil: time.Date(2023, 11, 1, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"3.16": {StandardSupportUntil: time.Date(2024, 5, 23, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"3.17": {StandardSupportUntil: time.Date(2024, 11, 22, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
		}[majorDotMinor(release)]
 | 
			
		||||
	case constant.FreeBSD:
 | 
			
		||||
		// https://www.freebsd.org/security/
 | 
			
		||||
@@ -296,17 +297,19 @@ func GetEOL(family, release string) (eol EOL, found bool) {
 | 
			
		||||
			"9":  {Ended: true},
 | 
			
		||||
			"10": {Ended: true},
 | 
			
		||||
			"11": {StandardSupportUntil: time.Date(2021, 9, 30, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"12": {StandardSupportUntil: time.Date(2024, 6, 30, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"12": {StandardSupportUntil: time.Date(2023, 12, 31, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"13": {StandardSupportUntil: time.Date(2026, 1, 31, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
		}[major(release)]
 | 
			
		||||
	case constant.Fedora:
 | 
			
		||||
		// https://docs.fedoraproject.org/en-US/releases/eol/
 | 
			
		||||
		// https://endoflife.date/fedora
 | 
			
		||||
		eol, found = map[string]EOL{
 | 
			
		||||
			"32": {StandardSupportUntil: time.Date(2021, 5, 25, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"33": {StandardSupportUntil: time.Date(2021, 11, 30, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"34": {StandardSupportUntil: time.Date(2022, 5, 17, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"35": {StandardSupportUntil: time.Date(2022, 12, 7, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"32": {StandardSupportUntil: time.Date(2021, 5, 24, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"33": {StandardSupportUntil: time.Date(2021, 11, 29, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"34": {StandardSupportUntil: time.Date(2022, 6, 6, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"35": {StandardSupportUntil: time.Date(2022, 12, 12, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"36": {StandardSupportUntil: time.Date(2023, 5, 16, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
			"37": {StandardSupportUntil: time.Date(2023, 12, 15, 23, 59, 59, 0, time.UTC)},
 | 
			
		||||
		}[major(release)]
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
 
 | 
			
		||||
@@ -446,14 +446,30 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) {
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Alpine 3.17 not found",
 | 
			
		||||
			name:     "Alpine 3.17 supported",
 | 
			
		||||
			fields:   fields{family: Alpine, release: "3.17"},
 | 
			
		||||
			now:      time.Date(2022, 1, 14, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Alpine 3.18 not found",
 | 
			
		||||
			fields:   fields{family: Alpine, release: "3.18"},
 | 
			
		||||
			now:      time.Date(2022, 1, 14, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    false,
 | 
			
		||||
		},
 | 
			
		||||
		// freebsd
 | 
			
		||||
		{
 | 
			
		||||
			name:     "freebsd 10 eol",
 | 
			
		||||
			fields:   fields{family: FreeBSD, release: "10"},
 | 
			
		||||
			now:      time.Date(2021, 1, 6, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "freebsd 11 supported",
 | 
			
		||||
			fields:   fields{family: FreeBSD, release: "11"},
 | 
			
		||||
@@ -486,27 +502,19 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) {
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "freebsd 10 eol",
 | 
			
		||||
			fields:   fields{family: FreeBSD, release: "10"},
 | 
			
		||||
			now:      time.Date(2021, 1, 6, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		// Fedora
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 32 supported",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "32"},
 | 
			
		||||
			now:      time.Date(2021, 5, 25, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2021, 5, 24, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 32 eol on 2021-5-25",
 | 
			
		||||
			name:     "Fedora 32 eol since 2021-5-25",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "32"},
 | 
			
		||||
			now:      time.Date(2021, 5, 26, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2021, 5, 25, 0, 0, 0, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
@@ -514,15 +522,15 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) {
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 33 supported",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "33"},
 | 
			
		||||
			now:      time.Date(2021, 11, 30, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2021, 11, 29, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 33 eol on 2021-5-26",
 | 
			
		||||
			name:     "Fedora 33 eol since 2021-11-30",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "32"},
 | 
			
		||||
			now:      time.Date(2021, 5, 27, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2021, 11, 30, 0, 0, 0, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
@@ -530,15 +538,15 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) {
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 34 supported",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "34"},
 | 
			
		||||
			now:      time.Date(2022, 5, 17, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2022, 6, 6, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 32 eol on 2022-5-17",
 | 
			
		||||
			name:     "Fedora 34 eol since 2022-6-7",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "34"},
 | 
			
		||||
			now:      time.Date(2022, 5, 18, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2022, 6, 7, 0, 0, 0, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
@@ -546,19 +554,59 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) {
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 35 supported",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "35"},
 | 
			
		||||
			now:      time.Date(2022, 12, 7, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2022, 12, 12, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 35 eol on 2022-12-7",
 | 
			
		||||
			name:     "Fedora 35 eol since 2022-12-13",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "35"},
 | 
			
		||||
			now:      time.Date(2022, 12, 8, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			now:      time.Date(2022, 12, 13, 0, 0, 0, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 36 supported",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "36"},
 | 
			
		||||
			now:      time.Date(2023, 5, 16, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 36 eol since 2023-05-17",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "36"},
 | 
			
		||||
			now:      time.Date(2023, 5, 17, 0, 0, 0, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 37 supported",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "37"},
 | 
			
		||||
			now:      time.Date(2023, 12, 15, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 37 eol since 2023-12-16",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "37"},
 | 
			
		||||
			now:      time.Date(2023, 12, 16, 0, 0, 0, 0, time.UTC),
 | 
			
		||||
			stdEnded: true,
 | 
			
		||||
			extEnded: true,
 | 
			
		||||
			found:    true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:     "Fedora 38 not found",
 | 
			
		||||
			fields:   fields{family: Fedora, release: "38"},
 | 
			
		||||
			now:      time.Date(2023, 12, 15, 23, 59, 59, 0, time.UTC),
 | 
			
		||||
			stdEnded: false,
 | 
			
		||||
			extEnded: false,
 | 
			
		||||
			found:    false,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	for _, tt := range tests {
 | 
			
		||||
		t.Run(tt.name, func(t *testing.T) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user