diff --git a/entrypoint.go b/entrypoint.go index d50b0fa..1deb482 100644 --- a/entrypoint.go +++ b/entrypoint.go @@ -7,29 +7,36 @@ import ( "cloud.o-forge.io/core/oc-lib/utils" ) -type LibData resources.ResourceType +const ( + INVALID = resources.INVALID + DATA = resources.DATA + PROCESSING = resources.PROCESSING + STORAGE = resources.STORAGE + DATACENTER = resources.DATACENTER + WORKFLOW = resources.WORKFLOW +) const ( - WORKFLOW LibData = 5 + MONGO = utils.MONGO ) func Init() { mongo.MONGOService.Init(models.GetModelsNames(), GetConfig()) } -func LoadOne(name string, driver utils.Driver, id string) interface{} { - return models.Model(name).GetAccessor(driver).LoadOne(id) +func LoadOne(name string, id string) interface{} { + return models.Model(name).GetAccessor().LoadOne(id) } -func UpdateOne(name string, driver utils.Driver, set map[string]interface{}, id string) interface{} { - return models.Model(name).GetAccessor(driver).UpdateOne(set, id) +func UpdateOne(name string, set map[string]interface{}, id string) interface{} { + return models.Model(name).GetAccessor().UpdateOne(set, id) } -func DeleteOne(name string, driver utils.Driver, id string) interface{} { - return models.Model(name).GetAccessor(driver).DeleteOne(id) +func DeleteOne(name string, id string) interface{} { + return models.Model(name).GetAccessor().DeleteOne(id) } -func StoreOne(name string, driver utils.Driver, object map[string]interface{}) interface{} { +func StoreOne(name string, object map[string]interface{}) interface{} { model := models.Model(name) - return model.GetAccessor(driver).StoreOne(model.Deserialize(object)) + return model.GetAccessor().StoreOne(model.Deserialize(object)) } diff --git a/models/resources/data/data.go b/models/resources/data/data.go index 9444aef..1eb44a6 100644 --- a/models/resources/data/data.go +++ b/models/resources/data/data.go @@ -5,7 +5,6 @@ import ( resources "cloud.o-forge.io/core/oc-lib/models/resources" "cloud.o-forge.io/core/oc-lib/models/utils" - tool "cloud.o-forge.io/core/oc-lib/utils" ) type Data struct { @@ -28,14 +27,8 @@ func (d *Data) GetType() resources.ResourceType { return resources.DATA } -func (d *Data) GetAccessor(driver tool.Driver) utils.Accessor { - var data utils.Accessor - switch driver { - case tool.MONGO: - data = &DataMongoAccessor{} - default: - data = &DataMongoAccessor{} - } +func (d *Data) GetAccessor() utils.Accessor { + data := &DataMongoAccessor{} data.SetLogger() return data } diff --git a/models/resources/datacenter/datacenter.go b/models/resources/datacenter/datacenter.go index e2a1d0f..4f13dec 100644 --- a/models/resources/datacenter/datacenter.go +++ b/models/resources/datacenter/datacenter.go @@ -1,9 +1,10 @@ package datacenter import ( + "encoding/json" + resources "cloud.o-forge.io/core/oc-lib/models/resources" "cloud.o-forge.io/core/oc-lib/models/utils" - tool "cloud.o-forge.io/core/oc-lib/utils" ) type Datacenter struct { @@ -36,18 +37,21 @@ type DatacenterGpuModel struct { TensorCores uint `bson:"tensor_cores,omitempty" json:"tensor_cores,omitempty"` } +func (dma *Datacenter) Deserialize(j map[string]interface{}) utils.DBObject { + b, err := json.Marshal(j) + if err != nil { + return nil + } + json.Unmarshal(b, dma) + return dma +} + func (d *Datacenter) GetType() resources.ResourceType { return resources.DATACENTER } -func (d *Datacenter) GetAccessor(driver tool.Driver) utils.Accessor { - var data utils.Accessor - switch driver { - case tool.MONGO: - data = &DatacenterMongoAccessor{} - default: - data = &DatacenterMongoAccessor{} - } +func (d *Datacenter) GetAccessor() utils.Accessor { + data := &DatacenterMongoAccessor{} data.SetLogger() return data } diff --git a/models/resources/processing/processing.go b/models/resources/processing/processing.go index 1df4cf0..f5d72d7 100644 --- a/models/resources/processing/processing.go +++ b/models/resources/processing/processing.go @@ -5,7 +5,6 @@ import ( resources "cloud.o-forge.io/core/oc-lib/models/resources" "cloud.o-forge.io/core/oc-lib/models/utils" - tool "cloud.o-forge.io/core/oc-lib/utils" ) type Processing struct { @@ -45,14 +44,8 @@ func (p *Processing) GetType() resources.ResourceType { return resources.PROCESSING } -func (d *Processing) GetAccessor(driver tool.Driver) utils.Accessor { - var data utils.Accessor - switch driver { - case tool.MONGO: - data = &ProcessingMongoAccessor{} - default: - data = &ProcessingMongoAccessor{} - } +func (d *Processing) GetAccessor() utils.Accessor { + data := &ProcessingMongoAccessor{} data.SetLogger() return data } diff --git a/models/resources/storage/storage.go b/models/resources/storage/storage.go index bd6f365..0c138c5 100644 --- a/models/resources/storage/storage.go +++ b/models/resources/storage/storage.go @@ -5,7 +5,6 @@ import ( resources "cloud.o-forge.io/core/oc-lib/models/resources" "cloud.o-forge.io/core/oc-lib/models/utils" - tool "cloud.o-forge.io/core/oc-lib/utils" ) type URL struct { @@ -38,14 +37,8 @@ func (s *Storage) GetType() resources.ResourceType { return resources.STORAGE } -func (d *Storage) GetAccessor(driver tool.Driver) utils.Accessor { - var data utils.Accessor - switch driver { - case tool.MONGO: - data = &StorageMongoAccessor{} - default: - data = &StorageMongoAccessor{} - } +func (d *Storage) GetAccessor() utils.Accessor { + data := &StorageMongoAccessor{} data.SetLogger() return data } diff --git a/models/utils/interfaces.go b/models/utils/interfaces.go index bce57a4..97db5d1 100644 --- a/models/utils/interfaces.go +++ b/models/utils/interfaces.go @@ -1,11 +1,9 @@ package utils -import "cloud.o-forge.io/core/oc-lib/utils" - type DBObject interface { GetName() string Deserialize(j map[string]interface{}) DBObject - GetAccessor(driver utils.Driver) Accessor + GetAccessor() Accessor } type Accessor interface { diff --git a/models/workflow/workflow.go b/models/workflow/workflow.go index a78d684..910b080 100644 --- a/models/workflow/workflow.go +++ b/models/workflow/workflow.go @@ -10,7 +10,6 @@ import ( "cloud.o-forge.io/core/oc-lib/models/resources/storage" "cloud.o-forge.io/core/oc-lib/models/utils" "cloud.o-forge.io/core/oc-lib/models/workflow/graph" - tool "cloud.o-forge.io/core/oc-lib/utils" ) const WORKFLOW = "workflow" @@ -25,14 +24,8 @@ type Workflow struct { Schedule WorkflowSchedule `bson:"schedule,omitempty" json:"schedule,omitempty"` } -func (d *Workflow) GetAccessor(driver tool.Driver) utils.Accessor { - var data utils.Accessor - switch driver { - case tool.MONGO: - data = &WorkflowMongoAccessor{} - default: - data = &WorkflowMongoAccessor{} - } +func (d *Workflow) GetAccessor() utils.Accessor { + data := &WorkflowMongoAccessor{} data.SetLogger() return data } diff --git a/utils/enums.go b/utils/enums.go deleted file mode 100644 index be56b32..0000000 --- a/utils/enums.go +++ /dev/null @@ -1,8 +0,0 @@ -package utils - -type Driver int - -const ( - INVALID Driver = iota - MONGO -)