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) { // }