代码拉取完成,页面将自动刷新
同步操作将从 Hubery1003/cloudbases.io.kiali 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package checkers
import (
"github.com/kiali/kiali/business/checkers/virtual_services"
"github.com/kiali/kiali/kubernetes"
"github.com/kiali/kiali/models"
)
const VirtualCheckerType = "virtualservice"
type VirtualServiceChecker struct {
Namespace string
DestinationRules []kubernetes.IstioObject
VirtualServices []kubernetes.IstioObject
}
// An Object Checker runs all checkers for an specific object type (i.e.: pod, route rule,...)
// It run two kinds of checkers:
// 1. Individual checks: validating individual objects.
// 2. Group checks: validating behaviour between configurations.
func (in VirtualServiceChecker) Check() models.IstioValidations {
validations := models.IstioValidations{}
validations = validations.MergeValidations(in.runIndividualChecks())
validations = validations.MergeValidations(in.runGroupChecks())
return validations
}
// Runs individual checks for each virtual service
func (in VirtualServiceChecker) runIndividualChecks() models.IstioValidations {
validations := models.IstioValidations{}
for _, virtualService := range in.VirtualServices {
validations.MergeValidations(in.runChecks(virtualService))
}
return validations
}
// runGroupChecks runs group checks for all virtual services
func (in VirtualServiceChecker) runGroupChecks() models.IstioValidations {
validations := models.IstioValidations{}
enabledCheckers := []GroupChecker{
virtual_services.SingleHostChecker{Namespace: in.Namespace, VirtualServices: in.VirtualServices},
}
for _, checker := range enabledCheckers {
validations = validations.MergeValidations(checker.Check())
}
return validations
}
// runChecks runs all the individual checks for a single virtual service and appends the result into validations.
func (in VirtualServiceChecker) runChecks(virtualService kubernetes.IstioObject) models.IstioValidations {
virtualServiceName := virtualService.GetObjectMeta().Name
key := models.IstioValidationKey{Name: virtualServiceName, ObjectType: VirtualCheckerType}
rrValidation := &models.IstioValidation{
Name: virtualServiceName,
ObjectType: VirtualCheckerType,
Valid: true,
// Explicitly create an empty array as 0-values do not appear in json
Checks: []*models.IstioCheck{},
}
enabledCheckers := []Checker{
virtual_services.RouteChecker{Route: virtualService},
virtual_services.SubsetPresenceChecker{Namespace: in.Namespace, DestinationRules: in.DestinationRules, VirtualService: virtualService},
}
for _, checker := range enabledCheckers {
checks, validChecker := checker.Check()
rrValidation.Checks = append(rrValidation.Checks, checks...)
rrValidation.Valid = rrValidation.Valid && validChecker
}
return models.IstioValidations{key: rrValidation}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。