diff --git a/models/meshmodel/core/v1beta1/models.go b/models/meshmodel/core/v1beta1/models.go index 49fbe9ea..e3094f6c 100644 --- a/models/meshmodel/core/v1beta1/models.go +++ b/models/meshmodel/core/v1beta1/models.go @@ -102,10 +102,28 @@ func (m *Model) Create(db *database.Handler, hostID uuid.UUID) (uuid.UUID, error if err != nil { return uuid.UUID{}, err } + err = registerModel(db, hostID, modelID) + if err != nil { + return uuid.UUID{}, err + } return m.ID, nil } return model.ID, nil } +func registerModel(db *database.Handler, regID, modelID uuid.UUID) error { + var count int64 + err := db.Table("registries").Where("registrant_id=?", regID).Where("type = ?", "model").Where("entity = ?", modelID).Count(&count).Error + if err != nil && err != gorm.ErrRecordNotFound { + return err + } + if count == 0 { + err = db.Exec("INSERT INTO registries (registrant_id, entity,type) VALUES (?, ?, ?)", regID, modelID, "model").Error + if err != nil { + return err + } + } + return nil +} func (m *Model) UpdateStatus(db *database.Handler, status entity.EntityStatus) error { err := db.Model(&Model{}).Where("id = ?", m.ID).Update("status", status).Error @@ -116,22 +134,21 @@ func (m *Model) UpdateStatus(db *database.Handler, status entity.EntityStatus) e } // WriteModelDefinition writes out the model to the given `modelDefPath` in the `outputType` format. -// `outputType` can be `yaml` or `json`. +// `outputType` can be `yaml` or `json`. // Usage: model.WriteModelDefinition("./modelName/model.yaml", "yaml") func (c Model) WriteModelDefinition(modelDefPath string, outputType string) error { err := utils.CreateDirectory(filepath.Dir(modelDefPath)) if err != nil { return err } - if(outputType == "json"){ - err = utils.WriteJSONToFile[Model](modelDefPath, c) - } - if(outputType == "yaml"){ - err = utils.WriteYamlToFile[Model](modelDefPath, c) - } + if outputType == "json" { + err = utils.WriteJSONToFile[Model](modelDefPath, c) + } + if outputType == "yaml" { + err = utils.WriteYamlToFile[Model](modelDefPath, c) + } if err != nil { return err } return nil } - diff --git a/utils/utils.go b/utils/utils.go index e037a6ec..c1f41a5d 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -213,7 +213,7 @@ func GetLatestReleaseTagsSorted(org string, repo string) ([]string, error) { defer safeClose(resp.Body) if resp.StatusCode != http.StatusOK { - return nil, ErrGettingLatestReleaseTag(err) + return nil, ErrGettingLatestReleaseTag(fmt.Errorf("unable to get latest release tag")) } body, err := io.ReadAll(resp.Body)