diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index f8a4be24cf..82994af4eb 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -4791,6 +4791,9 @@ func (manager *SGuestManager) CleanPendingDeleteServers(ctx context.Context, use for i := 0; i < len(guests); i += 1 { opts := api.ServerDeleteInput{ OverridePendingDelete: true, + DeleteSnapshots: options.Options.DeleteSnapshotExpiredRelease, + DeleteEip: options.Options.DeleteEipExpiredRelease, + DeleteDisks: options.Options.DeleteDisksExpiredRelease, } guests[i].StartDeleteGuestTask(ctx, userCred, "", opts) } @@ -4863,7 +4866,6 @@ func (manager *SGuestManager) DeleteExpiredPrepaidServers(ctx context.Context, u if guests == nil { return } - deleteSnapshot := options.Options.DeleteSnapshotExpiredRelease for i := 0; i < len(guests); i += 1 { // fake delete expired prepaid servers if len(guests[i].ExternalId) > 0 { @@ -4874,7 +4876,9 @@ func (manager *SGuestManager) DeleteExpiredPrepaidServers(ctx context.Context, u } guests[i].SetDisableDelete(userCred, false) opts := api.ServerDeleteInput{ - DeleteSnapshots: deleteSnapshot, + DeleteSnapshots: options.Options.DeleteSnapshotExpiredRelease, + DeleteEip: options.Options.DeleteEipExpiredRelease, + DeleteDisks: options.Options.DeleteDisksExpiredRelease, } guests[i].StartDeleteGuestTask(ctx, userCred, "", opts) } @@ -4903,7 +4907,6 @@ func (manager *SGuestManager) DeleteExpiredPostpaidServers(ctx context.Context, log.Infof("No expired postpaid guest") return } - deleteSnapshot := options.Options.DeleteSnapshotExpiredRelease for i := 0; i < len(guests); i++ { if len(guests[i].ExternalId) > 0 { err := guests[i].doExternalSync(ctx, userCred) @@ -4912,7 +4915,11 @@ func (manager *SGuestManager) DeleteExpiredPostpaidServers(ctx context.Context, } } guests[i].SetDisableDelete(userCred, false) - opts := api.ServerDeleteInput{DeleteSnapshots: deleteSnapshot} + opts := api.ServerDeleteInput{ + DeleteSnapshots: options.Options.DeleteSnapshotExpiredRelease, + DeleteEip: options.Options.DeleteEipExpiredRelease, + DeleteDisks: options.Options.DeleteDisksExpiredRelease, + } guests[i].StartDeleteGuestTask(ctx, userCred, "", opts) } } diff --git a/pkg/compute/options/options.go b/pkg/compute/options/options.go index a51209e452..3c71fc0db6 100644 --- a/pkg/compute/options/options.go +++ b/pkg/compute/options/options.go @@ -169,6 +169,8 @@ type ComputeOptions struct { EnableAutoMergeSecurityGroup bool `help:"Enable auto merge secgroup when sync security group from cloud, default False" default:"false"` DeleteSnapshotExpiredRelease bool `help:"Should the virtual machine be automatically deleted when the virtual machine expires?" default:"false"` + DeleteEipExpiredRelease bool `help:"Should the EIP be automatically deleted when the virtual machine expires?" default:"false"` + DeleteDisksExpiredRelease bool `help:"Should the Disks be automatically deleted when the virtual machine expires?" default:"false"` DefaultNetworkGatewayAddressEsxi uint32 `help:"Default address for network gateway" default:"1"`