Skip to content

Commit

Permalink
fix metrics and return error if policy not exists
Browse files Browse the repository at this point in the history
  • Loading branch information
ruanxin committed Feb 6, 2025
1 parent a72fd9d commit 77ef6a2
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
3 changes: 2 additions & 1 deletion cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,9 @@ func initMaintenanceWindow(logger logr.Logger) *maintenancewindows.MaintenanceWi
if err != nil {
maintenanceWindowsMetrics.RecordConfigReadSuccess(false)
logger.Error(err, "unable to set maintenance windows policy")
} else {
maintenanceWindowsMetrics.RecordConfigReadSuccess(true)
}
maintenanceWindowsMetrics.RecordConfigReadSuccess(true)
return maintenanceWindow
}

Expand Down
7 changes: 5 additions & 2 deletions internal/maintenancewindows/maintenance_window.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ import (
"github.com/kyma-project/lifecycle-manager/maintenancewindows/resolver"
)

var ErrNoMaintenanceWindowPolicyConfigured = errors.New("no maintenance window policy configured")
var (
ErrNoMaintenanceWindowPolicyConfigured = errors.New("no maintenance window policy configured")
ErrPolicyFileNotFound = errors.New("maintenance window policy file not found")
)

type MaintenanceWindowPolicy interface {
Resolve(runtime *resolver.Runtime, opts ...interface{}) (*resolver.ResolvedWindow, error)
Expand Down Expand Up @@ -41,7 +44,7 @@ func InitializeMaintenanceWindow(log logr.Logger,
log.Info("maintenance windows policy file does not exist")
return &MaintenanceWindow{
MaintenanceWindowPolicy: nil,
}, nil
}, fmt.Errorf("maintenance windows policy file does not exist, %w", ErrPolicyFileNotFound)
}

maintenancePolicyPool, err := resolver.GetMaintenancePolicyPool()
Expand Down
20 changes: 12 additions & 8 deletions internal/maintenancewindows/maintenance_window_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,26 +30,26 @@ func TestMaintenancePolicyFileExists_FileExists(t *testing.T) {
require.True(t, got)
}

func TestInitializeMaintenanceWindowsPolicy_FileNotExist_NoError(t *testing.T) {
func TestInitializeMaintenanceWindowsPolicy_FileNotExist(t *testing.T) {
got, err := maintenancewindows.InitializeMaintenanceWindow(logr.Logger{},
"testdata",
"policy-1",
true,
20*time.Minute)

require.Nil(t, got.MaintenanceWindowPolicy)
require.NoError(t, err)
require.ErrorContains(t, err, maintenancewindows.ErrPolicyFileNotFound.Error())
}

func TestInitializeMaintenanceWindowsPolicy_DirectoryNotExist_NoError(t *testing.T) {
func TestInitializeMaintenanceWindowsPolicy_DirectoryNotExist(t *testing.T) {
got, err := maintenancewindows.InitializeMaintenanceWindow(logr.Logger{},
"files",
"policy",
true,
20*time.Minute)

require.Nil(t, got.MaintenanceWindowPolicy)
require.NoError(t, err)
require.ErrorContains(t, err, maintenancewindows.ErrPolicyFileNotFound.Error())
}

func TestInitializeMaintenanceWindowsPolicy_InvalidPolicy(t *testing.T) {
Expand Down Expand Up @@ -321,7 +321,8 @@ func Test_IsActive_Returns_False_And_Error_WhenNoPolicyConfigured(t *testing.T)

type maintenanceWindowInactiveStub struct{}

func (s maintenanceWindowInactiveStub) Resolve(runtime *resolver.Runtime, opts ...interface{}) (*resolver.ResolvedWindow, error) {
func (s maintenanceWindowInactiveStub) Resolve(runtime *resolver.Runtime,
opts ...interface{}) (*resolver.ResolvedWindow, error) {
return &resolver.ResolvedWindow{
Begin: time.Now().Add(1 * time.Hour),
End: time.Now().Add(2 * time.Hour),
Expand All @@ -330,7 +331,8 @@ func (s maintenanceWindowInactiveStub) Resolve(runtime *resolver.Runtime, opts .

type maintenanceWindowActiveStub struct{}

func (s maintenanceWindowActiveStub) Resolve(runtime *resolver.Runtime, opts ...interface{}) (*resolver.ResolvedWindow, error) {
func (s maintenanceWindowActiveStub) Resolve(runtime *resolver.Runtime, opts ...interface{}) (*resolver.ResolvedWindow,
error) {
return &resolver.ResolvedWindow{
Begin: time.Now().Add(-1 * time.Hour),
End: time.Now().Add(1 * time.Hour),
Expand All @@ -339,15 +341,17 @@ func (s maintenanceWindowActiveStub) Resolve(runtime *resolver.Runtime, opts ...

type maintenanceWindowErrorStub struct{}

func (s maintenanceWindowErrorStub) Resolve(runtime *resolver.Runtime, opts ...interface{}) (*resolver.ResolvedWindow, error) {
func (s maintenanceWindowErrorStub) Resolve(runtime *resolver.Runtime, opts ...interface{}) (*resolver.ResolvedWindow,
error) {
return &resolver.ResolvedWindow{}, errors.New("test error")
}

type maintenanceWindowRuntimeArgStub struct {
receivedRuntime *resolver.Runtime
}

func (s maintenanceWindowRuntimeArgStub) Resolve(runtime *resolver.Runtime, opts ...interface{}) (*resolver.ResolvedWindow, error) {
func (s maintenanceWindowRuntimeArgStub) Resolve(runtime *resolver.Runtime,
opts ...interface{}) (*resolver.ResolvedWindow, error) {
*s.receivedRuntime = *runtime

return &resolver.ResolvedWindow{}, nil
Expand Down

0 comments on commit 77ef6a2

Please sign in to comment.