diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 283070f5d5..bca3d61497 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -1713,11 +1713,13 @@ func (guest *SGuest) PostCreate(ctx context.Context, userCred mcclient.TokenCred guest.setUserData(ctx, userCred, userData) } secgroups, _ := jsonutils.GetStringArray(data, "secgroups") - for _, secgroup := range secgroups { - gs := SGuestsecgroup{} - gs.SecgroupId = secgroup - gs.GuestId = guest.Id - GuestsecgroupManager.TableSpec().Insert(ctx, &gs) + for _, secgroupId := range secgroups { + if secgroupId != guest.SecgrpId { + gs := SGuestsecgroup{} + gs.SecgroupId = secgroupId + gs.GuestId = guest.Id + GuestsecgroupManager.TableSpec().Insert(ctx, &gs) + } } }