Policy rules remove redundant function (#193)

This commit is contained in:
Igor Gov 2021-08-10 16:45:47 +03:00 committed by GitHub
parent 8c9b8d3217
commit c4afeee5b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 20 deletions

View File

@ -54,17 +54,9 @@ type BaseEntryDetails struct {
}
type ApplicableRules struct {
Latency int64 `json:"latency,omitempty"`
Status bool `json:"status,omitempty"`
NumberOfRules int `json:"numberOfRules,omitempty"`
}
func NewApplicableRules(status bool, latency int64, number int) ApplicableRules {
ar := ApplicableRules{}
ar.Status = status
ar.Latency = latency
ar.NumberOfRules = number
return ar
Latency int64 `json:"latency,omitempty"`
Status bool `json:"status,omitempty"`
NumberOfRules int `json:"numberOfRules,omitempty"`
}
type FullEntryDetails struct {
@ -219,8 +211,6 @@ func (fewp *FullEntryWithPolicy) UnmarshalData(entry *MizuEntry) error {
}
func RunValidationRulesState(harEntry har.Entry, service string) ApplicableRules {
numberOfRules, resultPolicyToSend := rules.MatchRequestPolicy(harEntry, service)
statusPolicyToSend, latency, numberOfRules := rules.PassedValidationRules(resultPolicyToSend, numberOfRules)
ar := NewApplicableRules(statusPolicyToSend, latency, numberOfRules)
return ar
_, resultPolicyToSend := rules.MatchRequestPolicy(harEntry, service)
return rules.PassedValidationRules(resultPolicyToSend)
}

View File

@ -3,6 +3,7 @@ package rules
import (
"encoding/json"
"fmt"
"mizuserver/pkg/models"
"reflect"
"regexp"
"strings"
@ -92,19 +93,35 @@ func MatchRequestPolicy(harEntry har.Entry, service string) (int, []RulesMatched
return len(enforcePolicy.Rules), resultPolicyToSend
}
func PassedValidationRules(rulesMatched []RulesMatched, numberOfRules int) (bool, int64, int) {
func PassedValidationRules(rulesMatched []RulesMatched) models.ApplicableRules {
if len(rulesMatched) == 0 {
return false, 0, 0
return models.ApplicableRules{
Status: false,
Latency: 0,
NumberOfRules: 0,
}
}
for _, rule := range rulesMatched {
if rule.Matched == false {
return false, -1, len(rulesMatched)
return models.ApplicableRules{
Status: false,
Latency: -1,
NumberOfRules: len(rulesMatched),
}
}
}
for _, rule := range rulesMatched {
if strings.ToLower(rule.Rule.Type) == "latency" {
return true, rule.Rule.Latency, len(rulesMatched)
return models.ApplicableRules{
Status: true,
Latency: rule.Rule.Latency,
NumberOfRules: len(rulesMatched),
}
}
}
return true, -1, len(rulesMatched)
return models.ApplicableRules{
Status: true,
Latency: -1,
NumberOfRules: len(rulesMatched),
}
}