diff --git a/models/cloudbrain_image.go b/models/cloudbrain_image.go index 96fc47ebd1..83cff33cfd 100755 --- a/models/cloudbrain_image.go +++ b/models/cloudbrain_image.go @@ -217,8 +217,21 @@ func GetImageByID(id int64) (*Image, error) { return rel, nil } -func GetImageByTag(tag string, cloudbrainType int) (*Image, error) { +func GetImageByTag(tag string) (*Image, error) { + image := &Image{Tag: tag} + has, err := x. + Get(image) + if err != nil { + return nil, err + } else if !has { + return nil, ErrImageNotExist{Tag: tag} + } + + return image, nil +} + +func GetImageByTagAndCloudbrainType(tag string, cloudbrainType int) (*Image, error) { image := &Image{Tag: tag} has, err := x. Where("cloudbrain_type=?", cloudbrainType). diff --git a/modules/cloudbrain/resty.go b/modules/cloudbrain/resty.go index 1dd5819b11..616b579140 100755 --- a/modules/cloudbrain/resty.go +++ b/modules/cloudbrain/resty.go @@ -274,7 +274,17 @@ func getQueryString(page int, size int, name string) string { func CommitImage(jobID string, params models.CommitImageParams, doer *models.User) error { imageTag := strings.TrimSpace(params.ImageTag) - dbImage, err := models.GetImageByTag(imageTag, models.TypeCloudBrainOne) + dbImageInC2net, err := models.GetImageByTagAndCloudbrainType(imageTag, models.TypeC2Net) + if err != nil && !models.IsErrImageNotExist(err) { + return fmt.Errorf("resty CommitImage: %v", err) + } + if dbImageInC2net != nil { + return models.ErrorImageTagExist{ + Tag: imageTag, + } + } + + dbImage, err := models.GetImageByTagAndCloudbrainType(imageTag, models.TypeCloudBrainOne) if err != nil && !models.IsErrImageNotExist(err) { return fmt.Errorf("resty CommitImage: %v", err) diff --git a/modules/grampus/resty.go b/modules/grampus/resty.go index 31fb81a634..e48e7bc08f 100755 --- a/modules/grampus/resty.go +++ b/modules/grampus/resty.go @@ -599,7 +599,7 @@ sendjob: func CommitImage(jobID string, params models.CommitGrampusImageParams, doer *models.User) error { imageTag := strings.TrimSpace(params.ImageVersion) - dbImage, err := models.GetImageByTag(imageTag, models.TypeC2Net) + dbImage, err := models.GetImageByTag(imageTag) if err != nil && !models.IsErrImageNotExist(err) { return fmt.Errorf("resty CommitImage: %v", err)