diff --git a/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition.go b/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition.go index d64bc99571..4d0c6b10dc 100644 --- a/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition.go +++ b/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition.go @@ -129,6 +129,10 @@ func (mnlp ManageNVLinkLogicalPartition) UpdateNVLinkLogicalPartitionsInDB(ctx c // Update status if necessary if controllerNvllp.Status != nil { + if nvllp.Status == cdbm.NVLinkLogicalPartitionStatusDeleting { + continue + } + var mapped cdbm.NVLinkLogicalPartitionStatus mapped.FromProto(controllerNvllp.Status.State) if mapped != "" && mapped != nvllp.Status { diff --git a/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition_test.go b/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition_test.go index 3623b74e7c..d15dcca009 100644 --- a/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition_test.go +++ b/rest-api/workflow/pkg/activity/nvlinklogicalpartition/nvlinklogicalpartition_test.go @@ -224,14 +224,15 @@ func TestManageNVLinkLogicalPartition_UpdateNVLinkLogicalPartitionsInDB(t *testi } tests := []struct { - name string - fields fields - args args - updatedNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition - readyNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition - deletedNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition - missingNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition - restoredNVLinkLogicalPartition *cdbm.NVLinkLogicalPartition + name string + fields fields + args args + updatedNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition + readyNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition + deletedNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition + missingNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition + deletingNVLinkLogicalPartitions []*cdbm.NVLinkLogicalPartition + restoredNVLinkLogicalPartition *cdbm.NVLinkLogicalPartition wantErr bool }{ @@ -331,10 +332,11 @@ func TestManageNVLinkLogicalPartition_UpdateNVLinkLogicalPartitionsInDB(t *testi }, }, }, - updatedNVLinkLogicalPartitions: []*cdbm.NVLinkLogicalPartition{nvllp1, nvllp3}, - deletedNVLinkLogicalPartitions: []*cdbm.NVLinkLogicalPartition{nvllp5, nvllp6}, - missingNVLinkLogicalPartitions: []*cdbm.NVLinkLogicalPartition{nvllp7, nvllp11}, - restoredNVLinkLogicalPartition: nvllp8, + updatedNVLinkLogicalPartitions: []*cdbm.NVLinkLogicalPartition{nvllp1}, + deletedNVLinkLogicalPartitions: []*cdbm.NVLinkLogicalPartition{nvllp5, nvllp6}, + missingNVLinkLogicalPartitions: []*cdbm.NVLinkLogicalPartition{nvllp7, nvllp11}, + deletingNVLinkLogicalPartitions: []*cdbm.NVLinkLogicalPartition{nvllp3}, + restoredNVLinkLogicalPartition: nvllp8, wantErr: false, }, { @@ -455,6 +457,11 @@ func TestManageNVLinkLogicalPartition_UpdateNVLinkLogicalPartitionsInDB(t *testi assert.Equal(t, cdbm.NVLinkLogicalPartitionStatusError, uv.Status) } + for _, nvllp := range tt.deletingNVLinkLogicalPartitions { + uv, _ := nvllpDAO.GetByID(ctx, nil, nvllp.ID, nil) + assert.Equal(t, cdbm.NVLinkLogicalPartitionStatusDeleting, uv.Status, "Deleting status should not be overwritten by inventory") + } + if tt.restoredNVLinkLogicalPartition != nil { rv, _ := nvllpDAO.GetByID(ctx, nil, tt.restoredNVLinkLogicalPartition.ID, nil) assert.False(t, rv.IsMissingOnSite)