@@ -23,7 +23,9 @@ import (
2323 "yunion.io/x/pkg/gotypes"
2424
2525 "yunion.io/x/onecloud/pkg/cloudcommon/db"
26+ "yunion.io/x/onecloud/pkg/compute/options"
2627 "yunion.io/x/onecloud/pkg/mcclient"
28+ "yunion.io/x/onecloud/pkg/mcclient/auth"
2729 "yunion.io/x/onecloud/pkg/util/yunionmeta"
2830)
2931
@@ -153,6 +155,7 @@ func (self *SCloudimage) syncWithImage(ctx context.Context, userCred mcclient.To
153155
154156 skuUrl := region .getMetaUrl (meta .ImageBase , image .GetGlobalId ())
155157
158+ s := auth .GetAdminSession (ctx , options .Options .Region )
156159 obj , err := db .FetchByExternalId (CachedimageManager , image .GetGlobalId ())
157160 if err != nil {
158161 if errors .Cause (err ) != sql .ErrNoRows {
@@ -168,26 +171,31 @@ func (self *SCloudimage) syncWithImage(ctx context.Context, userCred mcclient.To
168171 }
169172
170173 cachedImage .IsPublic = true
171- cachedImage .ProjectId = "system"
174+ cachedImage .ProjectId = s . GetProjectId ()
172175 err = CachedimageManager .TableSpec ().Insert (ctx , cachedImage )
173176 if err != nil {
174177 return errors .Wrapf (err , "Insert cachedimage" )
175178 }
176179 return nil
177180 }
178181 cachedImage := obj .(* SCachedimage )
179- if gotypes . IsNil (cachedImage . Info ) {
180- err = meta . Get ( skuUrl , & image )
181- if err != nil {
182- return errors . Wrapf ( err , "Get" )
183- }
184- _ , err := db . Update ( cachedImage , func () error {
182+ _ , err = db . Update (cachedImage , func () error {
183+ if gotypes . IsNil ( cachedImage . Info ) {
184+ err = meta . Get ( skuUrl , & image )
185+ if err != nil {
186+ return errors . Wrapf ( err , "Get" )
187+ }
185188 cachedImage .Info = image .Info
186189 cachedImage .Size = image .Size
187190 cachedImage .UEFI = image .UEFI
188- return nil
189- })
190- return err
191+ }
192+ if cachedImage .ProjectId == "system" {
193+ cachedImage .ProjectId = s .GetProjectId ()
194+ }
195+ return nil
196+ })
197+ if err != nil {
198+ return errors .Wrapf (err , "Update cachedimage" )
191199 }
192200 return nil
193201}
0 commit comments