Merge pull request #7772 from Lyndon-Li/issue-fix-7535

Issue fix 7535: don't skip must have resources for label selector
pull/7786/head
Wenkai Yin(尹文开) 2024-05-08 15:44:04 +08:00 committed by GitHub
commit 0d85a647b5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 22 additions and 20 deletions

View File

@ -2303,29 +2303,31 @@ func (ctx *restoreContext) getSelectedRestoreableItems(resource string, original
continue
}
if !ctx.selector.Matches(labels.Set(obj.GetLabels())) {
continue
}
// Processing OrLabelSelectors when specified in the restore request. LabelSelectors as well as OrLabelSelectors
// cannot co-exist, only one of them can be specified
var skipItem = false
var skip = 0
ctx.log.Debugf("orSelectors specified: %s for item: %s", ctx.OrSelectors, item)
for _, s := range ctx.OrSelectors {
if !s.Matches(labels.Set(obj.GetLabels())) {
skip++
if !ctx.resourceMustHave.Has(resource) {
if !ctx.selector.Matches(labels.Set(obj.GetLabels())) {
continue
}
if len(ctx.OrSelectors) == skip && skip > 0 {
ctx.log.Infof("setting skip flag to true for item: %s", item)
skipItem = true
}
}
// Processing OrLabelSelectors when specified in the restore request. LabelSelectors as well as OrLabelSelectors
// cannot co-exist, only one of them can be specified
var skipItem = false
var skip = 0
ctx.log.Debugf("orSelectors specified: %s for item: %s", ctx.OrSelectors, item)
for _, s := range ctx.OrSelectors {
if !s.Matches(labels.Set(obj.GetLabels())) {
skip++
}
if skipItem {
ctx.log.Infof("restore orSelector labels did not match, skipping restore of item: %s", skipItem, item)
continue
if len(ctx.OrSelectors) == skip && skip > 0 {
ctx.log.Infof("setting skip flag to true for item: %s", item)
skipItem = true
}
}
if skipItem {
ctx.log.Infof("restore orSelector labels did not match, skipping restore of item: %s", skipItem, item)
continue
}
}
selectedItem := restoreableItem{