diff --git a/pkg/compute/service/service.go b/pkg/compute/service/service.go index eea2e24024..7951d211e0 100644 --- a/pkg/compute/service/service.go +++ b/pkg/compute/service/service.go @@ -159,9 +159,7 @@ func StartServiceWithJobs(jobs func(cron *cronman.SCronJobManager)) { cron.AddJobAtIntervals("CleanExpiredPostpaidNatGateways", time.Duration(opts.PrepaidExpireCheckSeconds)*time.Second, models.NatGatewayManager.DeleteExpiredPostpaids) cron.AddJobAtIntervals("CleanExpiredPostpaidNas", time.Duration(opts.PrepaidExpireCheckSeconds)*time.Second, models.FileSystemManager.DeleteExpiredPostpaids) - if !opts.EnableHostHealthCheck { - cron.AddJobAtIntervals("StartHostPingDetectionTask", time.Duration(opts.HostOfflineDetectionInterval)*time.Second, models.HostManager.PingDetectionTask) - } + cron.AddJobAtIntervals("StartHostPingDetectionTask", time.Duration(opts.HostOfflineDetectionInterval)*time.Second, models.HostManager.PingDetectionTask) cron.AddJobAtIntervals("RefreshCloudproviderHostStatus", time.Duration(opts.ManagedHostSyncStatusIntervalSeconds)*time.Second, models.RefreshCloudproviderHostStatus) diff --git a/pkg/compute/tasks/guest_create_task.go b/pkg/compute/tasks/guest_create_task.go index d72103b285..da53097bb5 100644 --- a/pkg/compute/tasks/guest_create_task.go +++ b/pkg/compute/tasks/guest_create_task.go @@ -25,6 +25,7 @@ import ( "yunion.io/x/pkg/util/billing" api "yunion.io/x/onecloud/pkg/apis/compute" + imageapi "yunion.io/x/onecloud/pkg/apis/image" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" @@ -135,6 +136,18 @@ func (self *GuestCreateTask) OnSecurityGroupPrepared(ctx context.Context, guest } if len(cdrom) > 0 { + image, err := models.CachedimageManager.GetImageInfo(ctx, self.UserCred, cdrom, false) + if err != nil { + log.Errorf("failed get image %s info: %s", cdrom, err) + } else { + imagePros := map[string]interface{}{} + for _, k := range []string{imageapi.IMAGE_OS_ARCH, imageapi.IMAGE_OS_DISTRO, imageapi.IMAGE_OS_VERSION, imageapi.IMAGE_OS_TYPE} { + if v, ok := image.Properties[k]; ok { + imagePros[k] = v + } + } + guest.SetAllMetadata(ctx, imagePros, self.UserCred) + } self.SetStage("OnCdromPrepared", nil) guest.GetDriver().RequestGuestCreateInsertIso(ctx, cdrom, bootIndex, self, guest) } else {