diff --git a/pkg/compute/models/secgrouprules.go b/pkg/compute/models/secgrouprules.go index fdb1f21fcc..86aaa19041 100644 --- a/pkg/compute/models/secgrouprules.go +++ b/pkg/compute/models/secgrouprules.go @@ -273,6 +273,10 @@ func (self *SSecurityGroupRule) String() string { return fields[0] + strings.Join(fields[1:], " ") } +func (self *SSecurityGroupRule) toRule() (*secrules.SecurityRule, error) { + return secrules.ParseSecurityRule(self.String()) +} + func (self *SSecurityGroupRule) SingleRules() ([]secrules.SecurityRule, error) { rules := make([]secrules.SecurityRule, 0) ruleStr := self.String() diff --git a/pkg/compute/models/secgroups.go b/pkg/compute/models/secgroups.go index 68fcd19623..003eab0727 100644 --- a/pkg/compute/models/secgroups.go +++ b/pkg/compute/models/secgroups.go @@ -116,11 +116,13 @@ func (self *SSecurityGroup) getSecurityRules(direction string) (rules []SSecurit func (self *SSecurityGroup) getSecRules(direction string) []secrules.SecurityRule { rules := make([]secrules.SecurityRule, 0) for _, _rule := range self.getSecurityRules(direction) { - singleRules, err := _rule.SingleRules() + //这里没必要拆分为单个单个的端口,到公有云那边适配 + rule, err := _rule.toRule() if err != nil { log.Errorf(err.Error()) + continue } - rules = append(rules, singleRules...) + rules = append(rules, *rule) } return rules }