update component id with the one in the links
This commit is contained in:
		
							
								
								
									
										60
									
								
								graph.go
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								graph.go
									
									
									
									
									
								
							@@ -168,13 +168,13 @@ func (g *Graph) GetWorkflowComponents(workflow string){
 | 
			
		||||
				if (comp_id != "") {
 | 
			
		||||
					switch component_type {
 | 
			
		||||
						case "computing":
 | 
			
		||||
							g.AddComputingModel(comp_id, value)
 | 
			
		||||
							g.AddComputingModel(comp_id, value, id.Str)
 | 
			
		||||
						case "data":
 | 
			
		||||
							g.AddDataModel(comp_id, value)
 | 
			
		||||
							g.AddDataModel(comp_id, value, id.Str)
 | 
			
		||||
						case "datacenter":
 | 
			
		||||
							g.AddDatacenterModel(comp_id, value)
 | 
			
		||||
							g.AddDatacenterModel(comp_id, value, id.Str)
 | 
			
		||||
						case "storage":
 | 
			
		||||
							g.AddStorageModel(comp_id, value)			
 | 
			
		||||
							g.AddStorageModel(comp_id, value, id.Str)			
 | 
			
		||||
						default :
 | 
			
		||||
							logs.Critical("Component type doesn't match a know type : " + component_type)
 | 
			
		||||
					}
 | 
			
		||||
@@ -186,47 +186,7 @@ func (g *Graph) GetWorkflowComponents(workflow string){
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (g *Graph) AddComponentObject(comp_type string, component interface{}){
 | 
			
		||||
 | 
			
		||||
	switch comp_type {
 | 
			
		||||
		case "computing":
 | 
			
		||||
			g.Computings = append(g.Computings, component.(models.ComputingModel))
 | 
			
		||||
 | 
			
		||||
		case "data":
 | 
			
		||||
			g.Datas = append(g.Datas, component.(models.DataModel))
 | 
			
		||||
 | 
			
		||||
		case "datacenter":
 | 
			
		||||
			g.Datacenters = append(g.Datacenters, component.(models.DatacenterModel))
 | 
			
		||||
 | 
			
		||||
		case "storage":
 | 
			
		||||
			g.Storages = append(g.Storages, component.(models.StorageModel))	
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Construct the object corresponding to component_type from its ID, retrieved in
 | 
			
		||||
// the xml graph, in order to merge the user input with the base model
 | 
			
		||||
 | 
			
		||||
func (g *Graph) GetComponentById(component_type string, id string) (map[string]interface{}, error) {
 | 
			
		||||
	// TODO : Add a verification that g.ws is initialized ?
 | 
			
		||||
 | 
			
		||||
	body , err := g.ws.Get("v1/"+component_type+"/"+id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	comp := make(map[string]interface{})
 | 
			
		||||
	jsonified := gjson.ParseBytes(body)
 | 
			
		||||
	jsonified.ForEach(func(key, value gjson.Result) bool {
 | 
			
		||||
		comp[key.Str] = value.String()
 | 
			
		||||
		return true // keep iterating
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	return comp, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (g *Graph) AddDataModel(id string, user_input gjson.Result) error {
 | 
			
		||||
func (g *Graph) AddDataModel(id string, user_input gjson.Result, wf_id string) error {
 | 
			
		||||
	var d models.DataModel
 | 
			
		||||
	resp, err := g.ws.Get("v1/data/" + id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -234,11 +194,12 @@ func (g *Graph) AddDataModel(id string, user_input gjson.Result) error {
 | 
			
		||||
	}
 | 
			
		||||
	json.Unmarshal(resp, &d)
 | 
			
		||||
	json.Unmarshal([]byte(user_input.Raw),&d.DataNEWModel)
 | 
			
		||||
	d.ID = wf_id
 | 
			
		||||
	g.Datas = append(g.Datas, d)
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (g *Graph) AddDatacenterModel(id string, user_input gjson.Result) error {
 | 
			
		||||
func (g *Graph) AddDatacenterModel(id string, user_input gjson.Result, wf_id string) error {
 | 
			
		||||
	var d models.DatacenterModel
 | 
			
		||||
	resp, err := g.ws.Get("v1/datacenter/" + id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -246,11 +207,12 @@ func (g *Graph) AddDatacenterModel(id string, user_input gjson.Result) error {
 | 
			
		||||
	}
 | 
			
		||||
	json.Unmarshal(resp, &d)
 | 
			
		||||
	json.Unmarshal([]byte(user_input.Raw),&d.DatacenterNEWModel)
 | 
			
		||||
	d.ID = wf_id
 | 
			
		||||
	g.Datacenters = append(g.Datacenters, d)
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (g *Graph) AddComputingModel(id string, user_input gjson.Result) error {
 | 
			
		||||
func (g *Graph) AddComputingModel(id string, user_input gjson.Result, wf_id string) error {
 | 
			
		||||
	var c models.ComputingModel
 | 
			
		||||
	resp, err := g.ws.Get("v1/computing/" + id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -258,11 +220,12 @@ func (g *Graph) AddComputingModel(id string, user_input gjson.Result) error {
 | 
			
		||||
	}
 | 
			
		||||
	json.Unmarshal(resp, &c)
 | 
			
		||||
	json.Unmarshal([]byte(user_input.Raw),&c.ComputingNEWModel)
 | 
			
		||||
	c.ID = wf_id
 | 
			
		||||
	g.Computings = append(g.Computings, c)
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (g *Graph) AddStorageModel(id string, user_input gjson.Result) error {
 | 
			
		||||
func (g *Graph) AddStorageModel(id string, user_input gjson.Result, wf_id string) error {
 | 
			
		||||
	var s models.StorageModel
 | 
			
		||||
	resp, err := g.ws.Get("v1/data/" + id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -270,6 +233,7 @@ func (g *Graph) AddStorageModel(id string, user_input gjson.Result) error {
 | 
			
		||||
	}
 | 
			
		||||
	json.Unmarshal(resp, &s)
 | 
			
		||||
	json.Unmarshal([]byte(user_input.Raw),&s.StorageNEWModel)
 | 
			
		||||
	s.ID = wf_id
 | 
			
		||||
	g.Storages = append(g.Storages, s)
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user