35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package models
 | 
						|
 | 
						|
import (
 | 
						|
	"cloud.o-forge.io/core/oc-catalog/models/rtype"
 | 
						|
)
 | 
						|
 | 
						|
type Link struct {
 | 
						|
	// ID        		primitive.ObjectID	`json:"ID" bson:"_id" required:"true" example:"5099803df3f4948bd2f98391"`
 | 
						|
	Source 			string				`json:"source" description:"id in the workflow of the source object"`
 | 
						|
	Destination 	string				`json:"destination" description:"id in the workflow of the destination object"`
 | 
						|
	DCLink			bool				`json:"dcLink" description:"is this a link with a datacenter"`
 | 
						|
}
 | 
						|
 | 
						|
// Use ResourceObject parameter to process certain components type differently
 | 
						|
// and Id's to identify each component as a node in an oriented graph
 | 
						|
 | 
						|
func NewLink(src ResourceObject, srcId string, dst ResourceObject, dstId string) (link Link) {
 | 
						|
 | 
						|
	link.Source = srcId
 | 
						|
	link.Destination = dstId
 | 
						|
 | 
						|
	if (src.getRtype() == rtype.DATACENTER || dst.getRtype() == rtype.DATACENTER){
 | 
						|
		link.DCLink = true
 | 
						|
 | 
						|
		
 | 
						|
	}
 | 
						|
	
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
// So far only computing components expect the ID of the DC in their attributes
 | 
						|
// func (l *Link) AddLinkToDataCenter(component models.ComputingModel) {
 | 
						|
// 	} 
 | 
						|
 |