mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #267 in YUNIONIO/onecloud from ~QUXUAN/onecloud:hotfix/qx-sec-detail to release/2.0.0
* commit '8fc8d892fae001d5e5e988113a40d8bf4e1b84ad': 显示安全组规则
This commit is contained in:
@@ -1151,7 +1151,7 @@ func (self *SGuest) getAdminSecgroupName() string {
|
||||
func (self *SGuest) getSecurityRules() string {
|
||||
secgrp := self.getSecgroup()
|
||||
if secgrp != nil {
|
||||
return secgrp.getSecurityRuleString()
|
||||
return secgrp.getSecurityRuleString("")
|
||||
} else {
|
||||
return options.Options.DefaultSecurityRules
|
||||
}
|
||||
@@ -1160,7 +1160,7 @@ func (self *SGuest) getSecurityRules() string {
|
||||
func (self *SGuest) getAdminSecurityRules() string {
|
||||
secgrp := self.getAdminSecgroup()
|
||||
if secgrp != nil {
|
||||
return secgrp.getSecurityRuleString()
|
||||
return secgrp.getSecurityRuleString("")
|
||||
} else {
|
||||
return options.Options.DefaultAdminSecurityRules
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/pkg/utils"
|
||||
"yunion.io/x/sqlchemy"
|
||||
)
|
||||
|
||||
@@ -56,7 +57,7 @@ func (self *SSecurityGroup) GetGuests() []SGuest {
|
||||
func (self *SSecurityGroup) GetExtraDetails(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) *jsonutils.JSONDict {
|
||||
extra := self.SSharableVirtualResourceBase.GetExtraDetails(ctx, userCred, query)
|
||||
extra.Add(jsonutils.NewInt(int64(len(self.GetGuests()))), "guest_cnt")
|
||||
extra.Add(jsonutils.NewString(self.getSecurityRuleString()), "rules")
|
||||
extra.Add(jsonutils.NewString(self.getSecurityRuleString("")), "rules")
|
||||
return extra
|
||||
}
|
||||
|
||||
@@ -65,6 +66,8 @@ func (self *SSecurityGroup) GetCustomizeColumns(ctx context.Context, userCred mc
|
||||
extra.Add(jsonutils.NewInt(int64(len(self.GetGuests()))), "guest_cnt")
|
||||
extra.Add(jsonutils.NewTimeString(self.CreatedAt), "created_at")
|
||||
extra.Add(jsonutils.NewString(self.Description), "description")
|
||||
extra.Add(jsonutils.NewString(self.getSecurityRuleString("in")), "in_rules")
|
||||
extra.Add(jsonutils.NewString(self.getSecurityRuleString("out")), "out_rules")
|
||||
return extra
|
||||
}
|
||||
|
||||
@@ -89,9 +92,12 @@ func (manager *SSecurityGroupManager) FetchSecgroupById(secId string) *SSecurity
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *SSecurityGroup) getSecurityRules() (rules []SSecurityGroupRule) {
|
||||
func (self *SSecurityGroup) getSecurityRules(direction string) (rules []SSecurityGroupRule) {
|
||||
secgrouprules := SecurityGroupRuleManager.Query().SubQuery()
|
||||
sql := secgrouprules.Query().Filter(sqlchemy.Equals(secgrouprules.Field("secgroup_id"), self.Id))
|
||||
sql := secgrouprules.Query().Filter(sqlchemy.Equals(secgrouprules.Field("secgroup_id"), self.Id)).Desc("priority")
|
||||
if len(direction) > 0 && utils.IsInStringArray(direction, []string{"in", "out"}) {
|
||||
sql = sql.Equals("direction", direction)
|
||||
}
|
||||
if err := db.FetchModelObjects(SecurityGroupRuleManager, sql, &rules); err != nil {
|
||||
log.Errorf("GetGuests fail %s", err)
|
||||
return nil
|
||||
@@ -99,8 +105,8 @@ func (self *SSecurityGroup) getSecurityRules() (rules []SSecurityGroupRule) {
|
||||
return
|
||||
}
|
||||
|
||||
func (self *SSecurityGroup) getSecurityRuleString() string {
|
||||
secgrouprules := self.getSecurityRules()
|
||||
func (self *SSecurityGroup) getSecurityRuleString(direction string) string {
|
||||
secgrouprules := self.getSecurityRules(direction)
|
||||
var rules []string
|
||||
for _, rule := range secgrouprules {
|
||||
rules = append(rules, rule.GetRule())
|
||||
@@ -138,7 +144,7 @@ func (self *SSecurityGroup) PerformClone(ctx context.Context, userCred mcclient.
|
||||
return nil, err
|
||||
//db.OpsLog.LogCloneEvent(self, secgroup, userCred, nil)
|
||||
}
|
||||
secgrouprules := self.getSecurityRules()
|
||||
secgrouprules := self.getSecurityRules("")
|
||||
for _, rule := range secgrouprules {
|
||||
secgrouprule := &SSecurityGroupRule{}
|
||||
secgrouprule.SetModelManager(SecurityGroupRuleManager)
|
||||
|
||||
@@ -8,7 +8,7 @@ func init() {
|
||||
SecGroups = NewComputeManager("secgroup", "secgroups",
|
||||
[]string{"ID", "Name", "Rules",
|
||||
"Is_public", "Created_at",
|
||||
"Guest_cnt", "Description"},
|
||||
"Guest_cnt", "Description", "in_rules", "out_rules"},
|
||||
[]string{})
|
||||
|
||||
registerCompute(&SecGroups)
|
||||
|
||||
Reference in New Issue
Block a user