mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 08:58:41 +00:00
fix: make sure going from include to exclude labels in gitops works (#26302)
> For #26290 # Checklist for submitter If some of the following don't apply, delete the relevant line. <!-- Note that API documentation changes are now addressed by the product design team. --> - [x] Added/updated automated tests - [x] Manual QA for all new/changed functionality
This commit is contained in:
parent
0971021094
commit
4c26bb289a
2 changed files with 60 additions and 1 deletions
|
|
@ -301,7 +301,7 @@ func (ds *Datastore) getExistingLabels(ctx context.Context, vppAppTeamID uint) (
|
|||
return &labels, nil
|
||||
|
||||
case len(inclAny) > 0:
|
||||
labels.LabelScope = fleet.LabelScopeExcludeAny
|
||||
labels.LabelScope = fleet.LabelScopeIncludeAny
|
||||
labels.ByName = make(map[string]fleet.LabelIdent, len(inclAny))
|
||||
for _, l := range inclAny {
|
||||
labels.ByName[l.LabelName] = fleet.LabelIdent{LabelName: l.LabelName, LabelID: l.LabelID}
|
||||
|
|
|
|||
|
|
@ -1829,4 +1829,63 @@ func testSetTeamVPPAppsWithLabels(t *testing.T, ds *Datastore) {
|
|||
_, ok := app2.VPPAppTeam.ValidatedLabels.ByName[l.LabelName]
|
||||
require.True(t, ok)
|
||||
}
|
||||
|
||||
// switch label types
|
||||
app1.VPPAppTeam = fleet.VPPAppTeam{VPPAppID: app1.VPPAppID, ValidatedLabels: &fleet.LabelIdentsWithScope{
|
||||
LabelScope: fleet.LabelScopeExcludeAny,
|
||||
ByName: map[string]fleet.LabelIdent{
|
||||
label1.Name: {
|
||||
LabelID: label1.ID,
|
||||
LabelName: label1.Name,
|
||||
},
|
||||
label2.Name: {
|
||||
LabelID: label2.ID,
|
||||
LabelName: label2.Name,
|
||||
},
|
||||
},
|
||||
}}
|
||||
|
||||
app2.VPPAppTeam = fleet.VPPAppTeam{VPPAppID: app2.VPPAppID, ValidatedLabels: &fleet.LabelIdentsWithScope{
|
||||
LabelScope: fleet.LabelScopeIncludeAny,
|
||||
ByName: map[string]fleet.LabelIdent{
|
||||
label1.Name: {
|
||||
LabelID: label1.ID,
|
||||
LabelName: label1.Name,
|
||||
},
|
||||
label2.Name: {
|
||||
LabelID: label2.ID,
|
||||
LabelName: label2.Name,
|
||||
},
|
||||
},
|
||||
}}
|
||||
|
||||
err = ds.SetTeamVPPApps(ctx, &team.ID, []fleet.VPPAppTeam{
|
||||
app1.VPPAppTeam,
|
||||
app2.VPPAppTeam,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
assigned, err = ds.GetAssignedVPPApps(ctx, &team.ID)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, assigned, 2)
|
||||
|
||||
app1Meta, err = ds.GetVPPAppMetadataByTeamAndTitleID(ctx, &team.ID, app1.TitleID)
|
||||
require.NoError(t, err)
|
||||
|
||||
app2Meta, err = ds.GetVPPAppMetadataByTeamAndTitleID(ctx, &team.ID, app2.TitleID)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Len(t, app1Meta.LabelsIncludeAny, 0)
|
||||
require.Len(t, app1Meta.LabelsExcludeAny, 2)
|
||||
for _, l := range app1Meta.LabelsExcludeAny {
|
||||
_, ok := app1.VPPAppTeam.ValidatedLabels.ByName[l.LabelName]
|
||||
require.True(t, ok)
|
||||
}
|
||||
|
||||
require.Len(t, app2Meta.LabelsExcludeAny, 0)
|
||||
require.Len(t, app2Meta.LabelsIncludeAny, 2)
|
||||
for _, l := range app2Meta.LabelsIncludeAny {
|
||||
_, ok := app2.VPPAppTeam.ValidatedLabels.ByName[l.LabelName]
|
||||
require.True(t, ok)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue