Merge pull request #7338 from rainzm/secgroups/esxi_baram

fix(region): Remove default secgroup for esxi guest
This commit is contained in:
Zexi Li
2020-07-27 19:49:14 +08:00
committed by GitHub
2 changed files with 22 additions and 0 deletions
+21
View File
@@ -557,6 +557,26 @@ func (manager *SGuestManager) QueryDistinctExtraField(q *sqlchemy.SQuery, field
return q, httperrors.ErrNotFound
}
func (manager *SGuestManager) InitializeData() error {
guests := make([]SGuest, 0, 10)
q := manager.Query().Equals("hypervisor", "esxi")
err := db.FetchModelObjects(manager, q, &guests)
if err != nil {
return errors.Wrap(err, "db.FetchModelObjects")
}
// remove secgroup for esxi guest
for i := range guests {
if len(guests[i].SecgrpId) == 0 {
continue
}
db.Update(&guests[i], func() error {
guests[i].SecgrpId = ""
return nil
})
}
return nil
}
func (guest *SGuest) GetHypervisor() string {
if len(guest.Hypervisor) == 0 {
return api.HYPERVISOR_DEFAULT
@@ -1355,6 +1375,7 @@ func (manager *SGuestManager) validateCreateData(
maxSecgrpCount := GetDriver(hypervisor).GetMaxSecurityGroupCount()
if maxSecgrpCount == 0 { //esxi 不支持安全组
input.SecgroupId = ""
input.Secgroups = []string{}
} else if len(input.Secgroups)+1 > maxSecgrpCount {
return nil, httperrors.NewInputParameterError("%s shall bind up to %d security groups", hypervisor, maxSecgrpCount)
+1
View File
@@ -44,6 +44,7 @@ func InitDB() error {
SecurityGroupManager,
SecurityGroupCacheManager,
NetworkManager,
GuestManager,
LoadbalancerCertificateManager,
LoadbalancerAclManager,
LoadbalancerManager,