diff --git a/models/workflow/workflow.go b/models/workflow/workflow.go index 2226274..b43a7ba 100644 --- a/models/workflow/workflow.go +++ b/models/workflow/workflow.go @@ -14,6 +14,7 @@ import ( "cloud.o-forge.io/core/oc-lib/models/common" "cloud.o-forge.io/core/oc-lib/models/common/models" "cloud.o-forge.io/core/oc-lib/models/common/pricing" + "cloud.o-forge.io/core/oc-lib/models/live" "cloud.o-forge.io/core/oc-lib/models/peer" "cloud.o-forge.io/core/oc-lib/models/resources" "cloud.o-forge.io/core/oc-lib/models/utils" @@ -199,11 +200,30 @@ func (d *Workflow) ExtractFromPlantUML(plantUML multipart.File, request *tools.A func (d *Workflow) generateResource(datas []resources.ResourceInterface, request *tools.APIRequest) error { for _, d := range datas { - access := d.GetAccessor(request) - if _, _, err := access.LoadOne(d.GetID()); err == nil { + if d.GetType() == tools.COMPUTE_RESOURCE.String() { + access := live.NewAccessor[*live.LiveDatacenter](tools.LIVE_DATACENTER, request) + if b, err := json.Marshal(d); err == nil { + var liv live.LiveDatacenter + json.Unmarshal(b, &liv) + data, _, err := access.StoreOne(&liv) + if err == nil { + d.GetAccessor(request).CopyOne(data) + } + } + continue + } else if d.GetType() == tools.STORAGE_RESOURCE.String() { + access := live.NewAccessor[*live.LiveStorage](tools.LIVE_STORAGE, request) + if b, err := json.Marshal(d); err == nil { + var liv live.LiveStorage + json.Unmarshal(b, &liv) + data, _, err := access.StoreOne(&liv) + if err == nil { + d.GetAccessor(request).CopyOne(data) + } + } continue } - _, _, err := access.StoreOne(d) + _, _, err := d.GetAccessor(request).StoreOne(d) fmt.Println("ERR", err) } return nil @@ -257,7 +277,7 @@ func (d *Workflow) extractResourcePlantUML(line string, resource resources.Resou if len(splitted) <= 1 { return "", nil, errors.New("Can't deserialize Object, there's no name") } - resource.SetName(strings.ReplaceAll(splitted[1], "\\n", "")) + resource.SetName(strings.ReplaceAll(splitted[1], "\\n", " ")) splittedComments := strings.Split(line, "'") if len(splittedComments) > 1 {