func (mapper *OpenContrailMapper) onVhostAdded(node *graph.Node, itf collection.Element) { phyItf, err := itf.GetField("physical_interface") if err != nil { return } mapper.vHost = node m := graph.Metadata{"Name": phyItf} nodes := mapper.graph.LookupChildren(mapper.root, m, graph.Metadata{"RelationType": "ownership"}) switch { case len(nodes) == 0: logging.GetLogger().Errorf("Physical interface %s not found", phyItf) return case len(nodes) > 1: logging.GetLogger().Errorf("Multiple physical interfaces found : %v", nodes) return } mapper.linkToVhost(nodes[0]) for _, n := range mapper.pendingLinks { mapper.linkToVhost(n) } mapper.pendingLinks = mapper.pendingLinks[:0] mapper.graph.AddMetadata(nodes[0], "MPLSUDPPort", mapper.mplsUDPPort) }
func (mapper *OpenContrailMapper) retrieveExtIDs(metadata graph.Metadata, itf collection.Element) (*ExtIDs, error) { name := metadata["Name"].(string) logging.GetLogger().Debugf("Retrieving extIDs from OpenContrail for Name: %s", name) port_uuid, err := itf.GetField("uuid") if err != nil { return nil, err } mac, err := itf.GetField("mac_addr") if err != nil { return nil, err } logging.GetLogger().Debugf("Interface from contrail: port: %s mac: %s", port_uuid, mac) e := &ExtIDs{ IfaceID: port_uuid, AttachedMac: mac, } return e, nil }