}
}
}
- }
- grouping ovsdb-external-ids-attributes {
- list external-ids {
- description "Port/Interface external id";
+ list port-external-ids {
+ description "Port external ids";
key "external-id-key";
leaf external-id-key {
description "external-id name/key";
type string;
mandatory true;
}
- }
+ }
+
+ list interface-external-ids {
+ description "Interface external ids";
+ key "external-id-key";
+ leaf external-id-key {
+ description "external-id name/key";
+ type string;
+ mandatory true;
+ }
+ leaf external-id-value {
+ description "external-id value";
+ type string;
+ mandatory true;
+ }
+ }
}
grouping ovsdb-other-config-attributes {
description "Augment topology node for an ovsdb node";
ext:augment-identifier "ovsdb-node-augmentation";
uses ovsdb-node-attributes;
- uses ovsdb-external-ids-attributes;
uses ovsdb-other-config-attributes;
}
description "Augment topology node termination-point for an ovsdb port/interface";
ext:augment-identifier "ovsdb-termination-point-augmentation";
uses ovsdb-port-interface-attributes;
- uses ovsdb-external-ids-attributes;
}
}
import org.opendaylight.ovsdb.southbound.SouthboundMapper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.external.ids.attributes.ExternalIds;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.InterfaceExternalIds;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.PortExternalIds;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Trunks;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
import org.opendaylight.yangtools.yang.binding.DataObject;
}
}
- List<ExternalIds> externalIds = terminationPoint.getExternalIds();
- if (externalIds != null && !externalIds.isEmpty()) {
+ List<InterfaceExternalIds> interfaceExternalIds =
+ terminationPoint.getInterfaceExternalIds();
+ if (interfaceExternalIds != null && !interfaceExternalIds.isEmpty()) {
HashMap<String, String> externalIdsMap = new HashMap<String, String>();
- for (ExternalIds externalId: externalIds) {
+ for (InterfaceExternalIds externalId: interfaceExternalIds) {
externalIdsMap.put(externalId.getExternalIdKey(), externalId.getExternalIdValue());
}
try {
}
port.setTrunks(portTrunks);
}
+
+ List<PortExternalIds> portExternalIds = terminationPoint.getPortExternalIds();
+ if (portExternalIds != null && !portExternalIds.isEmpty()) {
+ HashMap<String, String> externalIdsMap = new HashMap<String, String>();
+ for (PortExternalIds externalId: portExternalIds) {
+ externalIdsMap.put(externalId.getExternalIdKey(), externalId.getExternalIdValue());
+ }
+ try {
+ port.setExternalIds(ImmutableMap.copyOf(externalIdsMap));
+ } catch (NullPointerException e) {
+ LOG.warn("Incomplete OVSDB port external_ids");
+ }
+ }
transaction.add(op.insert(port).withId(portUuid));
//Configure bridge with the above port details
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentationBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.external.ids.attributes.ExternalIds;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.external.ids.attributes.ExternalIdsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.InterfaceExternalIds;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.InterfaceExternalIdsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.PortExternalIds;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.PortExternalIdsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Trunks;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.TrunksBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
}
}
ovsdbTerminationPointBuilder.setTrunks(modelTrunks);
+
+ Map<String, String> portExternalIds = port.getExternalIdsColumn().getData();
+ if (portExternalIds != null && !portExternalIds.isEmpty()) {
+ Set<String> externalIdKeys = portExternalIds.keySet();
+ List<PortExternalIds> externalIdsList = new ArrayList<PortExternalIds>();
+ String externalIdValue;
+ for (String externalIdKey : externalIdKeys) {
+ externalIdValue = portExternalIds.get(externalIdKey);
+ if (externalIdKey != null && externalIdValue != null) {
+ externalIdsList.add(new PortExternalIdsBuilder()
+ .setExternalIdKey(externalIdKey)
+ .setExternalIdValue(externalIdValue).build());
+ }
+ }
+ ovsdbTerminationPointBuilder.setPortExternalIds(externalIdsList);
+ }
+
Column<GenericTableSchema, Set<UUID>> iface = port.getInterfacesColumn();
Set<UUID> ifUuid = iface.getData();
Collection<Interface> ifUpdateRows = TyperUtils.extractRowsUpdated(
}
}
- Map<String, String> externalIds = interfIter.getExternalIdsColumn().getData();
- if (externalIds != null && !externalIds.isEmpty()) {
- Set<String> externalIdKeys = externalIds.keySet();
- ArrayList<ExternalIds> externalIdsList = new ArrayList<ExternalIds>();
+ Map<String, String> interfaceExternalIds =
+ interfIter.getExternalIdsColumn().getData();
+ if (interfaceExternalIds != null && !interfaceExternalIds.isEmpty()) {
+ Set<String> externalIdKeys = interfaceExternalIds.keySet();
+ List<InterfaceExternalIds> externalIdsList =
+ new ArrayList<InterfaceExternalIds>();
String externalIdValue;
for (String externalIdKey : externalIdKeys) {
- externalIdValue = externalIds.get(externalIdKey);
+ externalIdValue = interfaceExternalIds.get(externalIdKey);
if (externalIdKey != null && externalIdValue != null) {
- externalIdsList.add(new ExternalIdsBuilder()
+ externalIdsList.add(new InterfaceExternalIdsBuilder()
.setExternalIdKey(externalIdKey)
.setExternalIdValue(externalIdValue).build());
}
}
- ovsdbTerminationPointBuilder.setExternalIds(externalIdsList);
+ ovsdbTerminationPointBuilder.setInterfaceExternalIds(externalIdsList);
}
Map<String, String> optionsMap = interfIter.getOptionsColumn().getData();