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 } -