| @@ -1788,7 +1788,8 @@ func DeleteRepository(doer *User, uid, repoID int64) error { | |||||
| // Delete dataset attachment record and remove related files | // Delete dataset attachment record and remove related files | ||||
| deleteDatasetAttachmentByRepoId(sess, repoID) | deleteDatasetAttachmentByRepoId(sess, repoID) | ||||
| // Delete cloudbrain task record | |||||
| deleteCloudbrainByRepoId(sess, repoID) | |||||
| if err = deleteBeans(sess, | if err = deleteBeans(sess, | ||||
| &Access{RepoID: repo.ID}, | &Access{RepoID: repo.ID}, | ||||
| &Action{RepoID: repo.ID}, | &Action{RepoID: repo.ID}, | ||||
| @@ -1988,6 +1989,26 @@ func deleteDatasetAttachmentByRepoId(sess *xorm.Session, repoId int64) error { | |||||
| return err | return err | ||||
| } | } | ||||
| func deleteCloudbrainByRepoId(sess *xorm.Session, repoId int64) error { | |||||
| cloudbrains := make([]*Cloudbrain, 0) | |||||
| if err := sess. | |||||
| Where("repo_id = ?", repoId). | |||||
| Find(&cloudbrains); err != nil { | |||||
| return err | |||||
| } | |||||
| if len(cloudbrains) == 0 { | |||||
| return nil | |||||
| } | |||||
| for _, cloudbrain := range cloudbrains { | |||||
| err := DeleteJob(cloudbrain) | |||||
| if err != nil { | |||||
| return err | |||||
| } | |||||
| } | |||||
| return nil | |||||
| } | |||||
| // GetRepositoryByOwnerAndName returns the repository by given ownername and reponame. | // GetRepositoryByOwnerAndName returns the repository by given ownername and reponame. | ||||
| func GetRepositoryByOwnerAndName(ownerName, repoName string) (*Repository, error) { | func GetRepositoryByOwnerAndName(ownerName, repoName string) (*Repository, error) { | ||||
| return getRepositoryByOwnerAndName(x, ownerName, repoName) | return getRepositoryByOwnerAndName(x, ownerName, repoName) | ||||