Skip to content

Commit

Permalink
address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicolas Ontiveros committed Jul 12, 2023
1 parent 0cddd29 commit b0302d6
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 10 deletions.
12 changes: 4 additions & 8 deletions pkg/monitor/cluster/maintenance.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,19 @@ func (mon *Monitor) emitPucmState(ctx context.Context) error {
}

func getPucmState(clusterProperties api.OpenShiftClusterProperties) pucmState {
var state pucmState

if pucmOngoing(clusterProperties) {
if clusterProperties.PucmPending {
state = pucmPlannedOngoing
return pucmPlannedOngoing
} else {
state = pucmUnplannedOngoing
return pucmUnplannedOngoing
}
} else {
if clusterProperties.PucmPending {
state = pucmPending
} else {
state = pucmNone
return pucmPending
}
}

return state
return pucmNone
}

func pucmOngoing(clusterProperties api.OpenShiftClusterProperties) bool {
Expand Down
87 changes: 85 additions & 2 deletions pkg/monitor/cluster/maintenance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,95 @@ import (
"context"
"testing"

"github.com/golang/mock/gomock"

"github.com/Azure/ARO-RP/pkg/api"
"github.com/Azure/ARO-RP/pkg/metrics"
mock_metrics "github.com/Azure/ARO-RP/pkg/util/mocks/metrics"
"github.com/golang/mock/gomock"
)

func TestEmitPucmState(t *testing.T) {
for _, tt := range []struct {
name string
provisioningState api.ProvisioningState
pucmPending bool
adminUpdateErr string
expectedPucmState pucmState
}{
{
name: "state none",
provisioningState: api.ProvisioningStateSucceeded,
pucmPending: false,
adminUpdateErr: "",
expectedPucmState: pucmNone,
},
{
name: "state pending",
provisioningState: api.ProvisioningStateSucceeded,
pucmPending: true,
adminUpdateErr: "",
expectedPucmState: pucmPending,
},
{
name: "state unplanned ongoing - admin updating in flight and no admin update error",
provisioningState: api.ProvisioningStateAdminUpdating,
pucmPending: false,
adminUpdateErr: "",
expectedPucmState: pucmUnplannedOngoing,
},
{
name: "state planned ongoing - admin updating in flight and no admin update error",
provisioningState: api.ProvisioningStateAdminUpdating,
pucmPending: true,
adminUpdateErr: "",
expectedPucmState: pucmPlannedOngoing,
},
{
name: "state unplanned ongoing - not admin updating but admin update error",
provisioningState: api.ProvisioningStateFailed,
pucmPending: false,
adminUpdateErr: "PUCM failed",
expectedPucmState: pucmUnplannedOngoing,
},
{
name: "state planned ongoing - not admin updating but admin update error",
provisioningState: api.ProvisioningStateFailed,
pucmPending: true,
adminUpdateErr: "PUCM failed",
expectedPucmState: pucmPlannedOngoing,
},
} {
t.Run(tt.name, func(t *testing.T) {
ctx := context.Background()

controller := gomock.NewController(t)
defer controller.Finish()

m := mock_metrics.NewMockEmitter(controller)
oc := &api.OpenShiftCluster{
Properties: api.OpenShiftClusterProperties{
ProvisioningState: tt.provisioningState,
PucmPending: tt.pucmPending,
LastAdminUpdateError: tt.adminUpdateErr,
},
}
mon := &Monitor{
m: m,
oc: oc,
}

m.EXPECT().EmitGauge("cluster.maintenance.pucm", int64(1), map[string]string{
"state": tt.expectedPucmState.String(),
})

err := mon.emitPucmState(ctx)
if err != nil {
t.Fatal(err)
}
})
}
}

/*
func TestEmitPucmState(t *testing.T) {
ctx := context.Background()
Expand Down Expand Up @@ -88,6 +170,7 @@ func TestEmitPucmState(t *testing.T) {
t.Fatal(err)
}
}
*/

func getMonitor(oc *api.OpenShiftCluster, m metrics.Emitter) *Monitor {

Check failure on line 175 in pkg/monitor/cluster/maintenance_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

func `getMonitor` is unused (unused)
return &Monitor{
Expand Down

0 comments on commit b0302d6

Please sign in to comment.