TE Topoplogy subsystem I2RS API changes
This submission contains the following:
1. Major changes in apps/tetopology. The changes are mainly introduced
to support new searching keys in TE Topology.
2. Add RESTCONF notification support in the TE Provider. i.e., for
south-bound RESTCONF communication with the domain controller.
Change-Id: I6786959deb66c98626edc65ff52694dcf08981a3
diff --git a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/EnumConverter.java b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/EnumConverter.java
index 49b69a6..f784fa7 100644
--- a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/EnumConverter.java
+++ b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/EnumConverter.java
@@ -15,12 +15,6 @@
*/
package org.onosproject.teyang.utils.topology;
-import org.onosproject.tetopology.management.api.node.TeStatus;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeAdminStatus;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeOperStatus;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.teadminstatus.TeAdminStatusEnum;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.teoperstatus.TeOperStatusEnum;
-
/**
* The Enum conversion functions.
*/
@@ -30,104 +24,5 @@
private EnumConverter() {
}
- /**
- * Converts YANG Operation Status Enum to TE Topology TeStatus Enum.
- *
- * @param opStatus YANG Operation Status
- * @return the equivalent Enum from TE Topology TeStatus or null if not
- * found
- */
- public static TeStatus yang2TeSubsystemOpStatus(TeOperStatus opStatus) {
- switch (opStatus.enumeration()) {
- case DOWN:
- return TeStatus.DOWN;
- case UP:
- return TeStatus.UP;
- case MAINTENANCE:
- return TeStatus.MAINTENANCE;
- case PREPARING_MAINTENANCE:
- return TeStatus.PREPARING_MAINTENANCE;
- case TESTING:
- return TeStatus.TESTING;
- case UNKNOWN:
- return TeStatus.UNKNOWN;
- default:
- return null;
- }
- }
-
- /**
- * Converts YANG TeAdminStatus Enum to TE Topology TeStatus Enum.
- *
- * @param adminStatus YANG Admin Status
- * @return the equivalent Enum from TE Topology TeStatus or null if not
- * found
- */
- public static TeStatus yang2TeSubsystemAdminStatus(TeAdminStatus adminStatus) {
- switch (adminStatus.enumeration()) {
- case DOWN:
- return TeStatus.DOWN;
- case UP:
- return TeStatus.UP;
- case TESTING:
- return TeStatus.TESTING;
- case MAINTENANCE:
- return TeStatus.MAINTENANCE;
- case PREPARING_MAINTENANCE:
- return TeStatus.PREPARING_MAINTENANCE;
- default:
- return TeStatus.UNKNOWN;
- }
- }
-
- /**
- * Converts TE Topology TeStatus Enum to YANG TeAdminStatus Enum.
- *
- * @param adminStatus TE Topology admin status
- * @return the equivalent Enum from YANG TeAdminStatus or null if not found
- */
- public static TeAdminStatus teSubsystem2YangAdminStatus(TeStatus adminStatus) {
- switch (adminStatus) {
- case DOWN:
- return TeAdminStatus.of(TeAdminStatusEnum.DOWN);
- case UP:
- return TeAdminStatus.of(TeAdminStatusEnum.UP);
- case TESTING:
- return TeAdminStatus.of(TeAdminStatusEnum.TESTING);
- case MAINTENANCE:
- return TeAdminStatus.of(TeAdminStatusEnum.MAINTENANCE);
- case PREPARING_MAINTENANCE:
- return TeAdminStatus.of(TeAdminStatusEnum.PREPARING_MAINTENANCE);
- case UNKNOWN:
- return null;
- default:
- return null;
- }
- }
-
- /**
- * Converts TE Topology TeStatus Enum to YANG TeOperStatus Enum.
- *
- * @param opStatus TE Topology operation status
- * @return the equivalent Enum from YANG TeOperStatus or null if not found
- */
- public static TeOperStatus teSubsystem2YangOperStatus(TeStatus opStatus) {
- switch (opStatus) {
- case DOWN:
- return TeOperStatus.of(TeOperStatusEnum.DOWN);
- case UP:
- return TeOperStatus.of(TeOperStatusEnum.UP);
- case TESTING:
- return TeOperStatus.of(TeOperStatusEnum.TESTING);
- case MAINTENANCE:
- return TeOperStatus.of(TeOperStatusEnum.MAINTENANCE);
- case PREPARING_MAINTENANCE:
- return TeOperStatus.of(TeOperStatusEnum.PREPARING_MAINTENANCE);
- case UNKNOWN:
- return TeOperStatus.of(TeOperStatusEnum.UNKNOWN);
- default:
- return null;
- }
- }
-
+// TODO: implementation of this class will be submitted as a separate review.
}
diff --git a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java
index f8aeca2..6b10176 100644
--- a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java
+++ b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java
@@ -15,733 +15,68 @@
*/
package org.onosproject.teyang.utils.topology;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.List;
-
-import org.onlab.packet.Ip4Address;
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.IpAddress.Version;
-import org.onosproject.tetopology.management.api.KeyId;
-import org.onosproject.tetopology.management.api.link.ElementType;
-import org.onosproject.tetopology.management.api.link.ExternalDomain;
-import org.onosproject.tetopology.management.api.link.LinkProtectionType;
+import org.onosproject.tetopology.management.api.TeTopologyService;
+import org.onosproject.tetopology.management.api.link.NetworkLink;
import org.onosproject.tetopology.management.api.link.NetworkLinkKey;
-import org.onosproject.tetopology.management.api.link.PathElement;
-import org.onosproject.tetopology.management.api.link.TeIpv4;
-import org.onosproject.tetopology.management.api.link.TeLink;
-import org.onosproject.tetopology.management.api.link.UnderlayBackupPath;
-import org.onosproject.tetopology.management.api.link.UnderlayPath;
-import org.onosproject.tetopology.management.api.node.TeNetworkTopologyId;
-import org.onosproject.tetopology.management.api.node.TerminationPointKey;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NetworkId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NodeId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.LinkId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.TpId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.DefaultLink;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.DefaultLink.LinkBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.Link;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.link.DefaultDestination;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.link.DefaultSource;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.link.DefaultSupportingLink;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.link.Destination
- .DestinationBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.link.Source.SourceBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.link.SupportingLink;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.link.SupportingLink
- .SupportingLinkBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.link.AugmentedNtLink;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.link.DefaultAugmentedNtLink;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.link.DefaultAugmentedNtLink.AugmentedNtLinkBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.DefaultTe;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.DefaultTe.TeBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.te.Config;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.te.DefaultConfig;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.te.DefaultConfig.ConfigBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.te.DefaultState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.te.DefaultState.StateBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkaugment.te.State;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.DefaultTeLinkAttributes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.DefaultTeLinkAttributes.TeLinkAttributesBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.TeLinkAttributes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.telinkattributes.DefaultExternalDomain;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.telinkattributes.DefaultExternalDomain.ExternalDomainBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.telinkattributes.DefaultUnderlay;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.telinkattributes.DefaultUnderlay.UnderlayBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconfigattributes.telinkattributes.Underlay;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconnectivityattributes.DefaultTeSrlgs;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconnectivityattributes.DefaultTeSrlgs.TeSrlgsBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconnectivityattributes.DefaultUnreservedBandwidth;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconnectivityattributes.DefaultUnreservedBandwidth.UnreservedBandwidthBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkconnectivityattributes.UnreservedBandwidth;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkinfoattributes.LinkProtectionTypeEnum;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.DefaultUnderlayBackupPath;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.DefaultUnderlayBackupPath.UnderlayBackupPathBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.DefaultUnderlayPrimaryPath;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.DefaultUnderlayPrimaryPath.UnderlayPrimaryPathBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.DefaultUnderlayTrailDes.UnderlayTrailDesBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.DefaultUnderlayTrailSrc.UnderlayTrailSrcBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.UnderlayPrimaryPath;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.underlayprimarypath.DefaultPathElement;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.telinkunderlayattributes.underlayprimarypath.DefaultPathElement.PathElementBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.Srlg;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeLinkAccessType;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeNodeId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeTopologyId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeTpId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.explicitroutesubobject.Type;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.explicitroutesubobject.type.AsNumber;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.explicitroutesubobject.type.DefaultAsNumber;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.explicitroutesubobject.type.DefaultIpv4Address;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.explicitroutesubobject.type.DefaultUnnumberedLink;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.explicitroutesubobject.type.Ipv4Address;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.explicitroutesubobject.type.UnnumberedLink;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705
- .ietftetypes.telinkaccesstype.TeLinkAccessTypeEnum;
-
-import com.google.common.collect.Lists;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
+ .networks.network.augmentedndnetwork.Link;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.TeLinkEvent;
/**
* The conversion functions.
*/
public final class LinkConverter {
- private static final String
- E_NULL_TELINK_UNDERLAY_PATH = "TeSubsystem link underlayPath object cannot be null";
- private static final String
- E_NULL_TELINK_DATA = "TeSubsystem teLinkAttrBuilder data cannot be null";
- private static final String
- E_NULL_TELINK = "TeSubsystem teLink object cannot be null";
- private static final String
- E_NULL_YANG_TELINK_CONFIG = "YANG telink config object cannot be null";
- private static final String
- E_NULL_YANG_TELINK = "YANG Link object cannot be null";
+ private static final String E_NULL_TELINK_UNDERLAY_PATH =
+ "TeSubsystem link underlayPath object cannot be null";
+ private static final String E_NULL_TELINK_DATA =
+ "TeSubsystem teLinkAttrBuilder data cannot be null";
+ private static final String E_NULL_TELINK =
+ "TeSubsystem teLink object cannot be null";
+ private static final String E_NULL_YANG_TELINK_CONFIG =
+ "YANG telink config object cannot be null";
+ private static final String E_NULL_YANG_TELINK =
+ "YANG Link object cannot be null";
// no instantiation
private LinkConverter() {
}
- private static UnderlayBuilder te2YangConfigUnderlayPrimaryPath(
- UnderlayBuilder yangBuilder,
- org.onosproject.tetopology.management.api.link.UnderlayPrimaryPath tePath) {
- UnderlayPrimaryPathBuilder pathBuilder =
- DefaultUnderlayPrimaryPath.builder();
- if (tePath.pathElements() != null) {
- for (PathElement pathElementTe : tePath.pathElements()) {
- PathElementBuilder pathElementYangBuilder = DefaultPathElement
- .builder();
- pathElementYangBuilder = pathElementYangBuilder
- .pathElementId(pathElementTe.pathElementId())
- .type(findYangTypeConfigPrimaryPath(pathElementTe.type()));
- pathBuilder = pathBuilder
- .addToPathElement(pathElementYangBuilder.build());
- }
- }
- pathBuilder = pathBuilder.networkIdRef(NetworkId.fromString(
- tePath.ref().getNetworkId().toString()))
- .teTopologyIdRef(TeTopologyId.fromString(
- tePath.ref().getTopologyId().topologyId()));
- return yangBuilder.underlayPrimaryPath(pathBuilder.build());
- }
-
- private static UnderlayBuilder te2YangConfigUnderlayBackupPaths(
- UnderlayBuilder yangBuilder,
- List<org.onosproject.tetopology.management.api.link.UnderlayBackupPath> tePaths) {
-
- for (UnderlayBackupPath tePath : tePaths) {
- UnderlayBackupPathBuilder pathBuilder = DefaultUnderlayBackupPath.builder();
- pathBuilder = pathBuilder.index(tePath.index());
- pathBuilder = pathBuilder.networkIdRef(NetworkId.fromString(
- tePath.ref().getNetworkId().toString()))
- .teTopologyIdRef(TeTopologyId.fromString(
- tePath.ref().getTopologyId().topologyId()));
- for (PathElement backupPathElementTe : tePath.pathElements()) {
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.telinkunderlayattributes.underlaybackuppath.DefaultPathElement.
- PathElementBuilder backupPathElementYangBuilder =
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.telinkunderlayattributes.underlaybackuppath.DefaultPathElement.builder();
- backupPathElementYangBuilder = backupPathElementYangBuilder
- .pathElementId(backupPathElementTe.pathElementId());
- backupPathElementYangBuilder = backupPathElementYangBuilder
- .type(findYangTypeConfigPrimaryPath(backupPathElementTe
- .type()));
- pathBuilder = pathBuilder.addToPathElement(backupPathElementYangBuilder.build());
- }
- yangBuilder = yangBuilder.addToUnderlayBackupPath(pathBuilder.build());
- }
-
- return yangBuilder;
- }
-
- private static Type findYangTypeConfigPrimaryPath(ElementType type) {
- if (type instanceof org.onosproject.tetopology.management.api.link.AsNumber) {
- AsNumber.AsNumberBuilder yangAsNumberBuilder = DefaultAsNumber
- .builder();
- yangAsNumberBuilder.asNumber(((AsNumber) type).asNumber());
- return yangAsNumberBuilder.build();
- } else if (type instanceof TeIpv4) {
- Ipv4Address.Ipv4AddressBuilder yangIpv4AddrBuilder = DefaultIpv4Address
- .builder();
- yangIpv4AddrBuilder = yangIpv4AddrBuilder
- .v4Address(new org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types
- .rev20130715.ietfinettypes.Ipv4Address(((TeIpv4) type)
- .v4Address().toString()));
- yangIpv4AddrBuilder = yangIpv4AddrBuilder
- .v4Loose(((TeIpv4) type).v4Loose());
- yangIpv4AddrBuilder = yangIpv4AddrBuilder
- .v4PrefixLength((((TeIpv4) type).v4PrefixLength()));
- return yangIpv4AddrBuilder.build();
- } else if (type instanceof org.onosproject.tetopology.management.api.link.UnnumberedLink) {
- UnnumberedLink.UnnumberedLinkBuilder unnumberedLinkBuilder = DefaultUnnumberedLink.builder();
- unnumberedLinkBuilder.routerId(org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
- .inet.types.rev20130715.ietfinettypes.IpAddress
- .fromString(((org.onosproject.tetopology.management.api.link.UnnumberedLink) type)
- .routerId().toString()))
- .interfaceId(((org.onosproject.tetopology.management.api.link.UnnumberedLink) type)
- .interfaceId());
- return unnumberedLinkBuilder.build();
- }
- return null;
- }
-
- /**
- * TE Link underlay path Config object conversion from TE Topology subsystem to YANG.
- *
- * @param tePath TE underlay path object
- * @return Link underlay path Config YANG object
- */
- private static Underlay teSubsystem2YangConfigUnderlayPath(UnderlayPath tePath) {
- checkNotNull(tePath, E_NULL_TELINK_UNDERLAY_PATH);
- UnderlayBuilder builder =
- DefaultUnderlay.builder().underlayProtectionType(tePath.protectionType());
-
- if (tePath.primaryPath() != null) {
- builder = te2YangConfigUnderlayPrimaryPath(builder, tePath.primaryPath());
- }
- if (tePath.trailSrc() != null) {
- builder = builder.underlayTrailSrc(
- new UnderlayTrailSrcBuilder()
- .networkRef(NetworkId.fromString(
- tePath.trailSrc().networkId().toString()))
- .nodeRef(NodeId.fromString(
- tePath.trailSrc().nodeId().toString()))
- .tpRef(TpId.fromString(
- tePath.trailSrc().tpId().toString()))
- .build());
- }
- if (tePath.trailDes() != null) {
- builder = builder.underlayTrailDes(
- new UnderlayTrailDesBuilder()
- .networkRef(NetworkId.fromString(
- tePath.trailDes().networkId().toString()))
- .nodeRef(NodeId.fromString(
- tePath.trailDes().nodeId().toString()))
- .tpRef(TpId.fromString(
- tePath.trailDes().tpId().toString()))
- .build());
- }
- if (tePath.backupPaths() != null) {
- builder = te2YangConfigUnderlayBackupPaths(builder, tePath.backupPaths());
- }
-
- return builder.build();
- }
-
- private static Config teLink2YangConfig(TeLinkAttributesBuilder teLinkAttrBuilder) {
- checkNotNull(teLinkAttrBuilder, E_NULL_TELINK_DATA);
-
- ConfigBuilder yangConfigBuilder = DefaultConfig.builder()
- .teLinkAttributes(teLinkAttrBuilder.build());
- return yangConfigBuilder.build();
- }
-
- private static TeLinkAttributesBuilder teLink2YangAttrBuilder(TeLink teLink) {
- checkNotNull(teLink, E_NULL_TELINK_DATA);
-
- TeLinkAttributesBuilder attrBuilder = DefaultTeLinkAttributes.builder();
- if (teLink.linkIndex() != null) {
- attrBuilder = attrBuilder.linkIndex(teLink.linkIndex());
- }
- if (teLink.name() != null) {
- attrBuilder = attrBuilder.name(teLink.name());
- }
- if (teLink.adminStatus() != null) {
- attrBuilder = attrBuilder
- .adminStatus(EnumConverter
- .teSubsystem2YangAdminStatus(teLink
- .adminStatus()));
- }
- if (teLink.accessType() != null) {
- attrBuilder = attrBuilder
- .accessType(teSubsystem2YangTeLinkAccess(teLink
- .accessType()));
- }
- if (teLink.linkProtectionType() != null) {
- attrBuilder = attrBuilder
- .linkProtectionType(teSubsystem2YangLinkProtectionType(teLink
- .linkProtectionType()));
- }
- if (teLink.maxLinkBandwidth() != null) {
- attrBuilder = attrBuilder.maxLinkBandwidth(teLink.maxLinkBandwidth());
- }
- if (teLink.maxResvLinkBandwidth() != null) {
- attrBuilder = attrBuilder.maxResvLinkBandwidth(teLink.maxResvLinkBandwidth());
- }
- attrBuilder = attrBuilder.teDefaultMetric(teLink.teDefaultMetric());
- if (teLink.teSrlgs() != null) {
- TeSrlgsBuilder teSrlgsBuilder = DefaultTeSrlgs.builder();
- for (Long srlgLongVal : teLink.teSrlgs()) {
- teSrlgsBuilder = teSrlgsBuilder.addToValue(new Srlg(srlgLongVal));
- }
- attrBuilder = attrBuilder.teSrlgs(teSrlgsBuilder.build());
- }
- attrBuilder = attrBuilder.isAbstract(teLink.isAbstract());
- if (teLink.underlayPath() != null) {
- attrBuilder = attrBuilder.underlay(
- teSubsystem2YangConfigUnderlayPath(teLink.underlayPath()));
- }
- if (teLink.externalDomain() != null) {
- ExternalDomainBuilder edBuilder =
- DefaultExternalDomain.builder()
- .plugId(teLink.externalDomain().plugId())
- .remoteTeLinkTpId(TeTpId.fromString(
- teLink.externalDomain().remoteTeLinkTpId().toString()))
- .remoteTeNodeId(TeNodeId.fromString(
- teLink.externalDomain().remoteTeNodeId().toString()));
- attrBuilder = attrBuilder.externalDomain(edBuilder.build());
- }
-
- if (teLink.unreservedBandwidths() != null) {
- for (org.onosproject.tetopology.management.api.link.UnreservedBandwidth unResBwTe :
- teLink.unreservedBandwidths()) {
- UnreservedBandwidthBuilder urBuilder =
- DefaultUnreservedBandwidth.builder()
- .bandwidth(unResBwTe.bandwidth())
- .priority(unResBwTe.priority());
- attrBuilder = attrBuilder.addToUnreservedBandwidth(urBuilder.build());
- }
- }
-
- return attrBuilder;
- }
-
- private static LinkProtectionTypeEnum
- teSubsystem2YangLinkProtectionType(LinkProtectionType linkProtectionType) {
- switch (linkProtectionType) {
- case ENHANCED:
- return LinkProtectionTypeEnum.ENHANCED;
- case EXTRA_TRAFFIC:
- return LinkProtectionTypeEnum.EXTRA_TRAFFIC;
- case SHARED:
- return LinkProtectionTypeEnum.SHARED;
- case UNPROTECTED:
- return LinkProtectionTypeEnum.UNPROTECTED;
- case YANGAUTOPREFIX1_FOR_1:
- return LinkProtectionTypeEnum.YANGAUTOPREFIX1_FOR_1;
- case YANGAUTOPREFIX1_PLUS_1:
- return LinkProtectionTypeEnum.YANGAUTOPREFIX1_PLUS_1;
- default:
- return null;
- }
- }
-
- private static TeLinkAccessType teSubsystem2YangTeLinkAccess(
- org.onosproject.tetopology.management.api.link.TeLinkAccessType accessType) {
- switch (accessType) {
- case MULTI_ACCESS:
- return TeLinkAccessType.of(TeLinkAccessTypeEnum.MULTI_ACCESS);
- case POINT_TO_POINT:
- return TeLinkAccessType.of(TeLinkAccessTypeEnum.POINT_TO_POINT);
- default:
- return null;
- }
- }
-
- private static State teLink2YangState(TeLinkAttributesBuilder teLinkAttrBuilder, TeLink teLink) {
- StateBuilder yangStateBuilder = DefaultState.builder()
- .teLinkAttributes(teLinkAttrBuilder.build());
-
- if (teLink.opStatus() != null) {
- yangStateBuilder = yangStateBuilder
- .operStatus(EnumConverter
- .teSubsystem2YangOperStatus(teLink
- .opStatus()));
- }
-
- // TODO: once stateDerived Underlay is available in core TE Topology
- // object model, set the value properly
- // stateDerivedUnderlay = org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology
- // .rev20160708.ietftetopology.telinkstatederived.Underlay
- // yangStateBuilder = yangStateBuilder.underlay(stateDerivedUnderlay);
-
- return yangStateBuilder.build();
- }
-
- /**
- * Link object conversion from TE Topology subsystem to YANG.
- *
- * @param teLink TE subsystem link object
- * @return YANG link object
- */
- public static Link teSubsystem2YangLink(
- org.onosproject.tetopology.management.api.link.NetworkLink teLink) {
- checkNotNull(teLink, E_NULL_TELINK);
-
- LinkId linkId = LinkId.fromString(teLink.linkId().toString());
- LinkBuilder builder = DefaultLink.builder().linkId(linkId);
- if (teLink.getSupportingLinkIds() != null) {
- List<SupportingLink> slinks = Lists.newArrayList();
- SupportingLinkBuilder spLinkBuilder = DefaultSupportingLink.builder();
- for (NetworkLinkKey linkKey : teLink.getSupportingLinkIds()) {
- slinks.add(spLinkBuilder.networkRef(NetworkId.fromString(
- linkKey.networkId().toString()))
- .linkRef(LinkId.fromString(
- linkKey.linkId().toString()))
- .build());
- }
- builder = builder.supportingLink(slinks);
- }
- if (teLink.getSource() != null) {
- SourceBuilder sourceBuilder = DefaultSource
- .builder()
- .sourceNode(NodeId.fromString(
- teLink.getSource().nodeId().toString()))
- .sourceTp(TpId.fromString(
- teLink.getSource().tpId().toString()));
- builder = builder.source(sourceBuilder.build());
- }
- if (teLink.getDestination() != null) {
- DestinationBuilder destBuilder = DefaultDestination
- .builder()
- .destNode(NodeId.fromString(
- teLink.getDestination().nodeId().toString()))
- .destTp(TpId.fromString(
- teLink.getDestination().tpId().toString()));
- builder = builder.destination(destBuilder.build());
- }
-
- if (teLink.getTe() != null) {
- TeLink teData = teLink.getTe();
- TeLinkAttributesBuilder attrBuilder = teLink2YangAttrBuilder(teData);
-
- TeBuilder yangTeBuilder = DefaultTe.builder()
- .config(teLink2YangConfig(attrBuilder))
- .state(teLink2YangState(attrBuilder, teData));
- AugmentedNtLinkBuilder linkAugmentBuilder =
- DefaultAugmentedNtLink.builder()
- .te(yangTeBuilder.build());
- builder.addYangAugmentedInfo(linkAugmentBuilder.build(), AugmentedNtLink.class);
- }
-
- return builder.build();
- }
-
- private static org.onosproject.tetopology.management.api.link.UnderlayPath
- yang2TeSubsystemUnderlayPrimaryPath(
- org.onosproject.tetopology.management.api.link.UnderlayPath teUnderlay,
- UnderlayPrimaryPath yangpath) {
- org.onosproject.tetopology.management.api.link.UnderlayPrimaryPath teUnderlayPrimaryPath =
- new org.onosproject.tetopology.management.api.link.UnderlayPrimaryPath();
- teUnderlayPrimaryPath.setRef(new TeNetworkTopologyId(KeyId.keyId(
- yangpath.networkIdRef().toString()),
- new org.onosproject.tetopology.management.api.TeTopologyId(
- ((long) yangpath.providerIdRef()),
- ((long) yangpath.clientIdRef()),
- yangpath.teTopologyIdRef().toString())));
-
- List<PathElement> pathElementList = Lists.newArrayList();
- for (org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .telinkunderlayattributes.underlayprimarypath.PathElement pathElementConfigYang :
- yangpath.pathElement()) {
- PathElement tePathElement = new PathElement(pathElementConfigYang.pathElementId(),
- findElementType(pathElementConfigYang.type()));
- pathElementList.add(tePathElement);
- }
- teUnderlayPrimaryPath.setPathElement(pathElementList);
- teUnderlay.setPrimaryPath(teUnderlayPrimaryPath);
-
- return teUnderlay;
- }
-
- private static org.onosproject.tetopology.management.api.link.UnderlayPath
- yang2TeSubsystemUnderlayBackupPaths(
- org.onosproject.tetopology.management.api.link.UnderlayPath teUnderlay,
- List<org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology
- .rev20160708.ietftetopology.telinkunderlayattributes.UnderlayBackupPath> yangpaths) {
- List<UnderlayBackupPath> underlayBackupPathsList = Lists.newArrayList();
- for (org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.telinkunderlayattributes.UnderlayBackupPath yangConfig : yangpaths) {
- UnderlayBackupPath ubp = new UnderlayBackupPath();
- ubp.setIndex(yangConfig.index());
- ubp.setRef(new TeNetworkTopologyId(KeyId.keyId(yangConfig.networkIdRef().toString()),
- new org.onosproject.tetopology.management.api.TeTopologyId(
- ((long) yangConfig.providerIdRef()),
- ((long) yangConfig.clientIdRef()),
- yangConfig.teTopologyIdRef().toString()
- )));
- List<PathElement> backupPathElementList = Lists.newArrayList();
- for (org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.telinkunderlayattributes.underlaybackuppath.PathElement
- pathElementBackupYang : yangConfig.pathElement()) {
- PathElement tePathElementBackup =
- new PathElement(pathElementBackupYang.pathElementId(),
- findElementType(pathElementBackupYang.type()));
- backupPathElementList.add(tePathElementBackup);
- }
- ubp.setPathElement(backupPathElementList);
- underlayBackupPathsList.add(ubp);
- }
- teUnderlay.setBackupPath(underlayBackupPathsList);
-
- return teUnderlay;
- }
-
- private static ElementType findElementType(Type type) {
- ElementType el = null;
- if (type instanceof AsNumber) {
- org.onosproject.tetopology.management.api.link.AsNumber elementTypeAsNumber = new org.onosproject
- .tetopology.management.api.link.AsNumber(((AsNumber) type).asNumber());
- return elementTypeAsNumber;
- } else if (type instanceof Ipv4Address) {
- TeIpv4 elementTypeIpv4 = new TeIpv4();
- String ipVal = ((Ipv4Address) type).v4Address().toString();
- elementTypeIpv4.setV4Address(Ip4Address.valueOf(Version.INET, ipVal.getBytes()).getIp4Address());
- boolean v4Loose = ((Ipv4Address) type).v4Loose();
- elementTypeIpv4.setV4Loose(v4Loose);
- short v4PrefixLength = ((Ipv4Address) type).v4PrefixLength();
- elementTypeIpv4.setV4PrefixLength(v4PrefixLength);
- return elementTypeIpv4;
- } else if (type instanceof UnnumberedLink) {
- org.onosproject.tetopology.management.api.link.UnnumberedLink elementTypeUnnumberedLink = new org
- .onosproject.tetopology.management.api.link.UnnumberedLink();
- long interfaceId = ((UnnumberedLink) type).interfaceId();
- elementTypeUnnumberedLink.setInterfaceId(interfaceId);
- IpAddress routerId = IpAddress.valueOf(((UnnumberedLink) type).routerId().toString());
- elementTypeUnnumberedLink.setRouterId(routerId);
- return elementTypeUnnumberedLink;
- }
- // TODO: as an improvement in future, construct the tePathElement object
- // properly using pathElementConfigYang
- // More types need to be added to the above if/else statements.
- // Now, I only have AsNumber, Ipv4Address, and UnnumberedLink
- return el;
- }
-
- /**
- * TE Link underlay path Config object conversion from YANG to TE Topology subsystem.
- *
- * @param yangLinkAtrr YANG link Config YANG object
- * @return teSubsystem TE underlay path object
- */
- private static org.onosproject.tetopology.management.api.link.UnderlayPath
- yang2TeSubsystemUnderlayPath(TeLinkAttributes yangLinkAtrr) {
- checkNotNull(yangLinkAtrr, E_NULL_YANG_TELINK_CONFIG);
-
- org.onosproject.tetopology.management.api.link.UnderlayPath teUnderlay =
- new org.onosproject.tetopology.management.api.link.UnderlayPath();
-
- teUnderlay.setProtectionType(yangLinkAtrr.underlay().underlayProtectionType());
-
- if (yangLinkAtrr.underlay().underlayPrimaryPath() != null) {
- teUnderlay = yang2TeSubsystemUnderlayPrimaryPath(teUnderlay,
- yangLinkAtrr.underlay().underlayPrimaryPath());
- }
-
- if (yangLinkAtrr.underlay().underlayBackupPath() != null) {
- teUnderlay = yang2TeSubsystemUnderlayBackupPaths(teUnderlay,
- yangLinkAtrr.underlay().underlayBackupPath());
- }
-
- if (yangLinkAtrr.underlay().underlayTrailSrc() != null) {
- teUnderlay.setTrailSrc(new TerminationPointKey(
- KeyId.keyId(yangLinkAtrr.underlay().underlayTrailSrc()
- .networkRef().toString()),
- KeyId.keyId(yangLinkAtrr.underlay().underlayTrailSrc()
- .nodeRef().toString()),
- KeyId.keyId(yangLinkAtrr.underlay().underlayTrailSrc()
- .tpRef().toString())));
- }
-
- if (yangLinkAtrr.underlay().underlayTrailDes() != null) {
- teUnderlay.setTrailDes(new TerminationPointKey(
- KeyId.keyId(yangLinkAtrr.underlay().underlayTrailDes()
- .networkRef().toString()),
- KeyId.keyId(yangLinkAtrr.underlay().underlayTrailDes()
- .nodeRef().toString()),
- KeyId.keyId(yangLinkAtrr.underlay().underlayTrailDes()
- .tpRef().toString())));
- }
-
- return teUnderlay;
- }
-
- private static TeLink yang2TeLinkAttributes(TeLinkAttributes yangLinkAtrr,
- State opState) {
- TeLink te = new TeLink(yangLinkAtrr.linkIndex());
- if (yangLinkAtrr.name() != null) {
- te.setName(yangLinkAtrr.name());
- }
- if (yangLinkAtrr.adminStatus() != null) {
- te.setAdminStatus(EnumConverter.yang2TeSubsystemAdminStatus(
- yangLinkAtrr.adminStatus()));
- }
- if (opState != null && opState.operStatus() != null) {
- te.setOpStatus(EnumConverter.yang2TeSubsystemOpStatus(
- opState.operStatus()));
- }
- if (yangLinkAtrr.accessType() != null) {
- te.setAccessType(yang2TeSubsystemAccessType(
- yangLinkAtrr.accessType()));
- }
- if (yangLinkAtrr.linkProtectionType() != null) {
- te.setLinkProtectionType(yang2TeSubsystemLinkProtectionType(
- yangLinkAtrr.linkProtectionType()));
- }
- if (yangLinkAtrr.maxLinkBandwidth() != null) {
- te.setMaxLinkBandwidth(yangLinkAtrr.maxLinkBandwidth());
- }
- if (yangLinkAtrr.maxResvLinkBandwidth() != null) {
- te.setMaxResvLinkBandwidth(yangLinkAtrr.maxResvLinkBandwidth());
- }
- te.setTeDefaultMetric(yangLinkAtrr.teDefaultMetric());
- te.setIsAbstract(yangLinkAtrr.isAbstract());
- if (yangLinkAtrr.teSrlgs() != null) {
- List<Long> srlgs = Lists.newArrayList();
- for (Srlg srlgConfigYang : yangLinkAtrr.teSrlgs().value()) {
- srlgs.add(srlgConfigYang.uint32());
- }
- te.setTeSrlgs(srlgs);
- }
- if (yangLinkAtrr.externalDomain() != null) {
- te.setExternalDomain(new ExternalDomain(
- KeyId.keyId(yangLinkAtrr.externalDomain()
- .remoteTeNodeId().toString()),
- KeyId.keyId(yangLinkAtrr.externalDomain()
- .remoteTeLinkTpId().toString()),
- yangLinkAtrr.externalDomain().plugId()));
- }
- if (yangLinkAtrr.underlay() != null) {
- te.setUnderlayPath(yang2TeSubsystemUnderlayPath(yangLinkAtrr));
- }
- if (yangLinkAtrr.unreservedBandwidth() != null) {
- List<org.onosproject.tetopology.management.api.link.UnreservedBandwidth>
- unreservedBandwidths = Lists.newArrayList();
- for (UnreservedBandwidth urBwYang : yangLinkAtrr.unreservedBandwidth()) {
- org.onosproject.tetopology.management.api.link.UnreservedBandwidth unResBw =
- new org.onosproject.tetopology.management.api.link.UnreservedBandwidth(
- urBwYang.priority(),
- urBwYang.bandwidth());
- unreservedBandwidths.add(unResBw);
- }
- te.setUnreservedBandwidths(unreservedBandwidths);
- }
- return te;
- }
-
- private static LinkProtectionType
- yang2TeSubsystemLinkProtectionType(LinkProtectionTypeEnum linkProtectionType) {
- switch (linkProtectionType) {
- case ENHANCED:
- return LinkProtectionType.ENHANCED;
- case EXTRA_TRAFFIC:
- return LinkProtectionType.EXTRA_TRAFFIC;
- case SHARED:
- return LinkProtectionType.SHARED;
- case UNPROTECTED:
- return LinkProtectionType.UNPROTECTED;
- case YANGAUTOPREFIX1_FOR_1:
- return LinkProtectionType.YANGAUTOPREFIX1_FOR_1;
- case YANGAUTOPREFIX1_PLUS_1:
- return LinkProtectionType.YANGAUTOPREFIX1_PLUS_1;
- default:
- return null;
- }
- }
-
- private static org.onosproject.tetopology.management.api.link.TeLinkAccessType
- yang2TeSubsystemAccessType(TeLinkAccessType accessType) {
- switch (accessType.enumeration()) {
- case MULTI_ACCESS:
- return org.onosproject.tetopology.management.api.link.TeLinkAccessType.MULTI_ACCESS;
- case POINT_TO_POINT:
- return org.onosproject.tetopology.management.api.link.TeLinkAccessType.POINT_TO_POINT;
- default:
- return null;
- }
- }
/**
* Link object conversion from YANG to TE Topology subsystem.
*
- * @param yangLink YANG link object
- * @param networkId YANG networkId object
- * @return TE subsystem link object
+ * @param yangLink YANG link
+ * @param networkId YANG networkId
+ * @return TE subsystem link
*/
public static org.onosproject.tetopology.management.api.link.NetworkLink
- yang2TeSubsystemLink(Link yangLink, NetworkId networkId) {
- checkNotNull(yangLink, E_NULL_YANG_TELINK);
+ yang2TeSubsystemLink(Link yangLink, NetworkId networkId) {
- org.onosproject.tetopology.management.api.link.DefaultNetworkLink link =
- new org.onosproject.tetopology.management.api.link.DefaultNetworkLink(
- KeyId.keyId(yangLink.linkId().uri().toString()));
+ //TODO: Implementation will be submitted as a separate review
- if (yangLink.supportingLink() != null) {
- List<NetworkLinkKey> spLinkIds = Lists.newArrayList();
- for (SupportingLink yangSpLink : yangLink.supportingLink()) {
- NetworkLinkKey linkKey = new NetworkLinkKey(KeyId.keyId(yangSpLink.networkRef().uri().toString()),
- KeyId.keyId(yangSpLink.linkRef().uri().toString()));
- spLinkIds.add(linkKey);
- }
- link.setSupportingLinkIds(spLinkIds);
- }
-
- if (yangLink.source() != null) {
- TerminationPointKey source = new TerminationPointKey(
- KeyId.keyId(networkId.uri().toString()),
- KeyId.keyId(yangLink.source().sourceNode().uri().toString()),
- KeyId.keyId(yangLink.source().sourceTp().uri().toString()));
- link.setSource(source);
- }
-
- if (yangLink.destination() != null) {
- TerminationPointKey destination = new TerminationPointKey(
- KeyId.keyId(networkId.uri().toString()),
- KeyId.keyId(yangLink.destination().destNode().uri().toString()),
- KeyId.keyId(yangLink.destination().destTp().uri().toString()));
- link.setDestination(destination);
- }
-
- if (yangLink.yangAugmentedInfoMap() != null && !yangLink.yangAugmentedInfoMap().isEmpty()) {
-
- AugmentedNtLink yangLinkAugment =
- (AugmentedNtLink) yangLink.yangAugmentedInfo(AugmentedNtLink.class);
- if (yangLinkAugment != null &&
- yangLinkAugment.te() != null &&
- yangLinkAugment.te().config() != null) {
- TeLinkAttributes yangLinkAtrr =
- yangLinkAugment.te().config().teLinkAttributes();
- if (yangLinkAtrr != null && yangLinkAtrr.linkIndex() != null) {
- TeLink te = yang2TeLinkAttributes(yangLinkAtrr, yangLinkAugment.te().state());
- link.setTe(te);
- }
- }
- }
- return link;
+ return null;
}
+ public static Link teSubsystem2YangLink(NetworkLink link) {
+
+ //TODO: Implementation will be submitted as a separate review
+
+ return null;
+ }
+
+ public static NetworkLinkKey yangLinkEvent2NetworkLinkKey(TeLinkEvent yangLinkEvent) {
+
+ //TODO: Implementation will be submitted as a separate review
+
+ return null;
+ }
+
+ public static NetworkLink yangLinkEvent2NetworkLink(TeLinkEvent yangLinkEvent,
+ TeTopologyService teTopologyService) {
+
+ //TODO: Implementation will be submitted as a separate review
+
+ return null;
+ }
}
diff --git a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NetworkConverter.java b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NetworkConverter.java
index cb24d60..2205778 100644
--- a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NetworkConverter.java
+++ b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NetworkConverter.java
@@ -15,72 +15,74 @@
*/
package org.onosproject.teyang.utils.topology;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-
-import java.util.List;
-
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.onosproject.net.DeviceId;
import org.onosproject.tetopology.management.api.KeyId;
import org.onosproject.tetopology.management.api.TeTopologyEvent;
import org.onosproject.tetopology.management.api.link.NetworkLink;
import org.onosproject.tetopology.management.api.node.NetworkNode;
import org.onosproject.teyang.api.OperationType;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.IetfNetwork.OnosYangOpType;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.DefaultNetworks;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.DefaultNetworksState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.NetworkId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.Networks;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.NetworksState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.DefaultNetwork;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.Network;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.Network.NetworkBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.DefaultNetworkTypes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.DefaultSupportingNetwork;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network.DefaultSupportingNetwork.SupportingNetworkBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.NetworkTypes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.Node;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.SupportingNetwork;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.AugmentedNdNetwork;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.DefaultAugmentedNdNetwork;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology.networks.network.DefaultAugmentedNdNetwork.AugmentedNdNetworkBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.augmentedndnetwork.Link;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.AugmentedNwNetwork;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.DefaultAugmentedNwNetwork;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.networktypes.AugmentedNwNetworkTypes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.networktypes.DefaultAugmentedNwNetworkTypes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tetopologyaugment.DefaultTe;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tetopologyaugment.Te;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tetopologytype.DefaultTeTopology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tetopologytype.TeTopology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.IetfTeTopologyEvent;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705
- .ietftetypes.TeGlobalId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705
- .ietftetypes.TeTopologyId;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.DefaultNetworks;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork
+ .DefaultNetworksState;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NetworkId;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.Networks;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NetworksState;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks
+ .DefaultNetwork;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.Network;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.Network
+ .NetworkBuilder;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
+ .DefaultNetworkTypes;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
+ .DefaultSupportingNetwork;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
+ .DefaultSupportingNetwork.SupportingNetworkBuilder;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
+ .NetworkTypes;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
+ .Node;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
+ .SupportingNetwork;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
+ .networks.network.AugmentedNdNetwork;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
+ .networks.network.DefaultAugmentedNdNetwork;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
+ .networks.network.DefaultAugmentedNdNetwork.AugmentedNdNetworkBuilder;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
+ .networks.network.augmentedndnetwork.Link;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
+ .IetfTeTopologyEvent;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks
+ .network.AugmentedNwNetwork;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks
+ .network.DefaultAugmentedNwNetwork;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks
+ .network.networktypes.AugmentedNwNetworkTypes;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks
+ .network.networktypes.DefaultAugmentedNwNetworkTypes;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
+ .tetopologyaugment.DefaultTe;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
+ .tetopologyaugment.Te;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
+ .tetopologytype.DefaultTeTopology;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
+ .tetopologytype.TeTopology;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeGlobalId;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeTopologyId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.collect.Lists;
+import java.util.List;
+import java.util.Map;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
/**
@@ -88,29 +90,29 @@
*/
public final class NetworkConverter {
private static final String
- E_NULL_TE_NETWORKS = "TeSubsystem networks cannot be null";
+ E_NULL_TE_NETWORKS = "TeSubsystem networks cannot be null";
private static final String
- E_NULL_TE_NETWORK_LIST = "TeSubsystem network list cannot be null";
+ E_NULL_TE_NETWORK_LIST = "TeSubsystem network list cannot be null";
private static final String
- E_NULL_TE_NETWORK = "TeSubsystem network cannot be null";
+ E_NULL_TE_NETWORK = "TeSubsystem network cannot be null";
private static final String
- E_NULL_TE_NETWORKID = "TeSubsystem networkId cannot be null";
+ E_NULL_TE_NETWORKID = "TeSubsystem networkId cannot be null";
private static final String
- E_NULL_YANG_NETWORKS = "YANG networks cannot be null";
+ E_NULL_YANG_NETWORKS = "YANG networks cannot be null";
private static final String
- E_NULL_YANG_NETWORK_LIST = "YANG network list cannot be null";
+ E_NULL_YANG_NETWORK_LIST = "YANG network list cannot be null";
private static final String
- E_NULL_YANG_NETWORK = "YANG network cannot be null";
+ E_NULL_YANG_NETWORK = "YANG network cannot be null";
private static final String
- E_NULL_YANG_NETWORKID = "YANG networkId cannot be null";
+ E_NULL_YANG_NETWORKID = "YANG networkId cannot be null";
private static final String
- E_NULL_YANG_NETWORKSSTATE = "YANG networksState cannot be null";
+ E_NULL_YANG_NETWORKSSTATE = "YANG networksState cannot be null";
private static final String
- E_DIFF_YANG_NETWORKID = "YANG networkId must be same in Network and NetworkState";
+ E_DIFF_YANG_NETWORKID = "YANG networkId must be same in Network and NetworkState";
private static final String
- E_NULL_YANG_NETWORKSSTATE_NETWORK = "YANG networksState network cannot be null";
+ E_NULL_YANG_NETWORKSSTATE_NETWORK = "YANG networksState network cannot be null";
private static final String
- E_NULL_YANG_NETWORKSSTATE_NETWORKREF = "YANG networksState networkRef cannot be null";
+ E_NULL_YANG_NETWORKSSTATE_NETWORKREF = "YANG networksState networkRef cannot be null";
private static final Logger log = LoggerFactory.getLogger(NetworkConverter.class);
@@ -120,23 +122,23 @@
private static OnosYangOpType toNetworksOperationType(OperationType operation) {
switch (operation) {
- case CREATE:
- return OnosYangOpType.CREATE;
+ case CREATE:
+ return OnosYangOpType.CREATE;
- case DELETE:
- return OnosYangOpType.DELETE;
+ case DELETE:
+ return OnosYangOpType.DELETE;
- case REMOVE:
- return OnosYangOpType.REMOVE;
+ case REMOVE:
+ return OnosYangOpType.REMOVE;
- case MERGE:
- return OnosYangOpType.MERGE;
+ case MERGE:
+ return OnosYangOpType.MERGE;
- case REPLACE:
- return OnosYangOpType.REPLACE;
+ case REPLACE:
+ return OnosYangOpType.REPLACE;
- default:
- return OnosYangOpType.NONE;
+ default:
+ return OnosYangOpType.NONE;
}
}
@@ -144,7 +146,7 @@
* Networks object conversion from TE Topology subsystem to YANG.
*
* @param teSubsystem TE Topology subsystem networks object
- * @param operation operation type
+ * @param operation operation type
* @return Networks YANG object
*/
public static Networks teSubsystem2YangNetworks(
@@ -167,7 +169,7 @@
* Network States object conversion from TE Topology subsystem to YANG.
*
* @param teSubsystem TE Topology subsystem networks object
- * @param operation operation type
+ * @param operation operation type
* @return NetworkStates YANG object
*/
public static NetworksState teSubsystem2YangNetworkStates(
@@ -208,7 +210,7 @@
/**
* Networks object conversion from YANG to TE Topology subsystem.
*
- * @param yangNetworks Networks YANG object
+ * @param yangNetworks Networks YANG object
* @param yangNetworkStates NetworkStates YANG object
* @return teSubsystem TE Topology subsystem networks object
*/
@@ -218,17 +220,15 @@
checkNotNull(yangNetworks.network(), E_NULL_YANG_NETWORK_LIST);
checkNotNull(yangNetworkStates, E_NULL_YANG_NETWORKSSTATE);
- org.onosproject.tetopology.management.api.DefaultNetworks defaultNetworks =
- new org.onosproject.tetopology.management.api.DefaultNetworks();
List<org.onosproject.tetopology.management.api.Network> networks = Lists.newArrayList();
for (Network network : yangNetworks.network()) {
org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
.ietfnetwork.networksstate.Network stateNetwork =
- networkStateNetwork(network, yangNetworkStates);
+ networkStateNetwork(network, yangNetworkStates);
org.onosproject.tetopology.management.api.Network teNetwork;
if (stateNetwork == null) {
log.info("networkId {} can't be found in yangNetworkStates",
- network.networkId());
+ network.networkId());
teNetwork = yang2TeSubsystemNetwork(network);
} else {
teNetwork = yang2TeSubsystemNetwork(network, stateNetwork);
@@ -236,7 +236,8 @@
networks.add(teNetwork);
}
- defaultNetworks.setNetworks(networks);
+ org.onosproject.tetopology.management.api.DefaultNetworks defaultNetworks =
+ new org.onosproject.tetopology.management.api.DefaultNetworks(networks);
return defaultNetworks;
}
@@ -246,29 +247,27 @@
SupportingNetworkBuilder spNetworkBuilder = DefaultSupportingNetwork.builder();
for (KeyId teSpNwKey : teSpptNetworkIds) {
snws.add(spNetworkBuilder
- .networkRef(NetworkId.fromString(teSpNwKey.toString()))
- .build());
+ .networkRef(NetworkId.fromString(teSpNwKey.toString()))
+ .build());
}
return builder.supportingNetwork(snws);
}
private static NetworkBuilder te2YangNodes(NetworkBuilder builder,
- List<NetworkNode> teNodes) {
+ Map<KeyId, NetworkNode> teNodes) {
List<Node> nodeList = Lists.newArrayList();
- // Add each node
- for (org.onosproject.tetopology.management.api.node.NetworkNode node : teNodes) {
- // Convert the te node to a YO.
+
+ for (org.onosproject.tetopology.management.api.node.NetworkNode node : teNodes.values()) {
nodeList.add(NodeConverter.teSubsystem2YangNode(node));
}
return builder.node(nodeList);
}
private static NetworkBuilder te2YangLinks(NetworkBuilder builder,
- List<NetworkLink> teLinks) {
+ Map<KeyId, NetworkLink> teLinks) {
List<Link> linkList = Lists.newArrayList();
- // Add each link
- for (org.onosproject.tetopology.management.api.link.NetworkLink link : teLinks) {
- // Convert the te link to a YO
+
+ for (org.onosproject.tetopology.management.api.link.NetworkLink link : teLinks.values()) {
linkList.add(LinkConverter.teSubsystem2YangLink(link));
}
AugmentedNdNetworkBuilder ndAugment = DefaultAugmentedNdNetwork.builder();
@@ -278,7 +277,8 @@
}
private static NetworkBuilder te2YangNetworkType(NetworkBuilder builder,
- org.onosproject.tetopology.management.api.TeTopologyId teTopologyId) {
+ org.onosproject.tetopology.management.api.TeTopologyId
+ teTopologyId) {
NetworkTypes.NetworkTypesBuilder nwType = DefaultNetworkTypes.builder();
if (teTopologyId != null) {
// Set "te-topology" network type.
@@ -292,11 +292,12 @@
}
private static NetworkBuilder te2YangTopologyIds(NetworkBuilder builder,
- org.onosproject.tetopology.management.api.TeTopologyId teTopologyId) {
+ org.onosproject.tetopology.management.api.TeTopologyId
+ teTopologyId) {
Te.TeBuilder teBuilder = DefaultTe.builder();
teBuilder.clientId(new TeGlobalId(teTopologyId.clientId()));
teBuilder.providerId(new TeGlobalId(teTopologyId.providerId()));
- if (teTopologyId.topologyId() != null) {
+ if (teTopologyId.topologyId() != null) {
teBuilder.teTopologyId(new TeTopologyId(teTopologyId.topologyId()));
}
@@ -304,7 +305,7 @@
.builder();
nwAugment.te(teBuilder.build());
builder.addYangAugmentedInfo(nwAugment.build(),
- AugmentedNwNetwork.class);
+ AugmentedNwNetwork.class);
return builder;
}
@@ -312,7 +313,7 @@
* Network object conversion from TE Topology subsystem to YANG.
*
* @param teSubsystem TE Topology subsystem network object
- * @param operation operation type
+ * @param operation operation type
* @return Network YANG object
*/
public static Network teSubsystem2YangNetwork(
@@ -324,31 +325,31 @@
// Generate a network builder with the specific networkId.
NetworkId networkId = NetworkId.fromString(teSubsystem.networkId().toString());
NetworkBuilder builder = DefaultNetwork.builder()
- .yangNetworkOpType(
- toNetworksOperationType(operation))
- .networkId(networkId);
+ .yangNetworkOpType(
+ toNetworksOperationType(operation))
+ .networkId(networkId);
// Supporting networks
- if (teSubsystem.getSupportingNetworkIds() != null) {
- builder = te2YangSupportingNetwork(builder, teSubsystem.getSupportingNetworkIds());
+ if (teSubsystem.supportingNetworkIds() != null) {
+ builder = te2YangSupportingNetwork(builder, teSubsystem.supportingNetworkIds());
}
// Nodes
- if (teSubsystem.getNodes() != null) {
- builder = te2YangNodes(builder, teSubsystem.getNodes());
+ if (teSubsystem.nodes() != null) {
+ builder = te2YangNodes(builder, teSubsystem.nodes());
}
// Network types
- builder = te2YangNetworkType(builder, teSubsystem.getTeTopologyId());
+ builder = te2YangNetworkType(builder, teSubsystem.teTopologyId());
// Add links - link is the augmentation
- if (teSubsystem.getLinks() != null) {
- builder = te2YangLinks(builder, teSubsystem.getLinks());
+ if (teSubsystem.links() != null) {
+ builder = te2YangLinks(builder, teSubsystem.links());
}
// TE Topology IDs
- if (teSubsystem.getTeTopologyId() != null) {
- builder = te2YangTopologyIds(builder, teSubsystem.getTeTopologyId());
+ if (teSubsystem.teTopologyId() != null) {
+ builder = te2YangTopologyIds(builder, teSubsystem.teTopologyId());
}
return builder.build();
@@ -358,21 +359,21 @@
* Network State object conversion from TE Topology subsystem to YANG.
*
* @param teSubsystem TE Topology subsystem network object
- * @param operation operation type
+ * @param operation operation type
* @return Network YANG object
*/
public static org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network
- .rev20151208.ietfnetwork.networksstate.Network
- teSubsystem2YangNetworkState(
- org.onosproject.tetopology.management.api.Network teSubsystem,
- OperationType operation) {
+ .rev20151208.ietfnetwork.networksstate.Network
+ teSubsystem2YangNetworkState(
+ org.onosproject.tetopology.management.api.Network teSubsystem,
+ OperationType operation) {
checkNotNull(teSubsystem, E_NULL_TE_NETWORK);
checkNotNull(teSubsystem.networkId(), E_NULL_TE_NETWORKID);
org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
.ietfnetwork.networksstate.Network.NetworkBuilder stateBuilder =
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networksstate.DefaultNetwork.builder();
+ org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
+ .ietfnetwork.networksstate.DefaultNetwork.builder();
if (teSubsystem.networkId() != null) {
stateBuilder.networkRef(NetworkId.fromString(teSubsystem.networkId().toString()));
@@ -387,65 +388,78 @@
/**
* Network conversion from YANG to TE Topology subsystem.
*
- * @param yangNetwork Network YANG object
+ * @param yangNetwork Network YANG object
+ * @param yangNetworkState NetworkState YANG object
* @return TE Topology subsystem defaultNetwork object
*/
private static org.onosproject.tetopology.management.api.DefaultNetwork yang2TeDefaultNetwork(
- Network yangNetwork) {
+ Network yangNetwork,
+ org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.
+ yang.ietf.network.rev20151208.ietfnetwork.networksstate.
+ Network yangNetworkState) {
checkNotNull(yangNetwork, E_NULL_YANG_NETWORK);
checkNotNull(yangNetwork.networkId(), E_NULL_YANG_NETWORKID);
String networkId = yangNetwork.networkId().uri().string();
- org.onosproject.tetopology.management.api.DefaultNetwork teNetwork =
- new org.onosproject.tetopology.management.api.DefaultNetwork(KeyId.keyId(networkId));
+
+ KeyId networkKeyId = KeyId.keyId(networkId);
+ List<KeyId> supportingNetworkIds = null;
+ Map<KeyId, NetworkNode> teNodes = null;
+ Map<KeyId, NetworkLink> teLinks = null;
+ org.onosproject.tetopology.management.api.TeTopologyId teTopologyId = null;
+ boolean serverProvided = false;
+ DeviceId ownerId = null;
// Supporting networks
if (yangNetwork.supportingNetwork() != null) {
- List<KeyId> supportingNetworkIds = Lists.newArrayList();
+ supportingNetworkIds = Lists.newArrayList();
for (SupportingNetwork supportNw : yangNetwork.supportingNetwork()) {
supportingNetworkIds.add(
KeyId.keyId(supportNw.networkRef().uri().string()));
}
- teNetwork.setSupportingNetworkIds(supportingNetworkIds);
}
// Nodes
if (yangNetwork.node() != null) {
- List<org.onosproject.tetopology.management.api.node.NetworkNode>
- teNodes = Lists.newArrayList();
+ teNodes = Maps.newHashMap();
for (Node node : yangNetwork.node()) {
// Convert the Yang Node to a TE node.
- teNodes.add(NodeConverter.yang2TeSubsystemNode(node, yangNetwork.networkId()));
+ teNodes.put(KeyId.keyId(node.nodeId().uri().string()),
+ NodeConverter.yang2TeSubsystemNode(node, yangNetwork.networkId()));
}
- teNetwork.setNodes(teNodes);
}
// Links
if (yangNetwork.yangAugmentedInfo(AugmentedNdNetwork.class) != null) {
AugmentedNdNetwork augmentLink =
(AugmentedNdNetwork) yangNetwork.yangAugmentedInfo(AugmentedNdNetwork.class);
- List<org.onosproject.tetopology.management.api.link.NetworkLink>
- teLinks = Lists.newArrayList();
+ teLinks = Maps.newHashMap();
for (Link link : augmentLink.link()) {
// Convert the Yang Link to a TE link.
- teLinks.add(LinkConverter.yang2TeSubsystemLink(link, yangNetwork.networkId()));
+ teLinks.put(KeyId.keyId(link.linkId().uri().string()),
+ LinkConverter.yang2TeSubsystemLink(link, yangNetwork.networkId()));
}
- teNetwork.setLinks(teLinks);
}
// TE Topology Ids
if (yangNetwork.yangAugmentedInfo(AugmentedNwNetwork.class) != null) {
AugmentedNwNetwork augmentTeIds =
(AugmentedNwNetwork) yangNetwork.yangAugmentedInfo(AugmentedNwNetwork.class);
- org.onosproject.tetopology.management.api.TeTopologyId teTopologyId =
+ teTopologyId =
new org.onosproject.tetopology.management.api.TeTopologyId(
augmentTeIds.te().clientId().uint32(),
augmentTeIds.te().providerId().uint32(),
augmentTeIds.te().teTopologyId().string());
-
- teNetwork.setTeTopologyId(teTopologyId);
}
- return teNetwork;
+ if (yangNetworkState != null) {
+ serverProvided = yangNetworkState.serverProvided();
+ }
+
+ org.onosproject.tetopology.management.api.DefaultNetwork network =
+ new org.onosproject.tetopology.management.api.DefaultNetwork(networkKeyId, supportingNetworkIds,
+ teNodes, teLinks, teTopologyId,
+ serverProvided, ownerId);
+ return network;
}
/**
@@ -455,30 +469,37 @@
* @return network TE Topology subsystem networks object
*/
public static org.onosproject.tetopology.management.api.Network yang2TeSubsystemNetwork(Network yangNetwork) {
- return yang2TeDefaultNetwork(yangNetwork);
+ return yang2TeDefaultNetwork(yangNetwork, null);
}
/**
* Network and State object conversion from YANG to TE Topology subsystem.
*
- * @param yangNetwork Network YANG object
+ * @param yangNetwork Network YANG object
* @param yangNetworkState NetworkState YANG object
* @return teSubsystem TE Topology subsystem networks object
*/
- public static org.onosproject.tetopology.management.api.Network yang2TeSubsystemNetwork(Network yangNetwork,
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork
- .networksstate.Network yangNetworkState) {
- org.onosproject.tetopology.management.api.DefaultNetwork teNetwork =
- yang2TeDefaultNetwork(yangNetwork);
-
+ public static org.onosproject.tetopology.management.api.Network
+ yang2TeSubsystemNetwork(Network yangNetwork,
+ org.onosproject.yang.gen
+ .v1.urn.ietf
+ .params.xml.ns
+ .yang.ietf
+ .network
+ .rev20151208.ietfnetwork
+ .networksstate
+ .Network
+ yangNetworkState) {
checkNotNull(yangNetworkState, E_NULL_YANG_NETWORKSSTATE_NETWORK);
checkNotNull(yangNetworkState.networkRef(), E_NULL_YANG_NETWORKSSTATE_NETWORKREF);
+
+ org.onosproject.tetopology.management.api.DefaultNetwork teNetwork =
+ yang2TeDefaultNetwork(yangNetwork, yangNetworkState);
+
String networkref = yangNetworkState.networkRef().toString();
checkState(teNetwork.networkId().toString().equals(networkref),
E_DIFF_YANG_NETWORKID);
- teNetwork.setServerProvided(yangNetworkState.serverProvided());
-
return teNetwork;
}
@@ -490,8 +511,8 @@
* @return YANG Object converted from event
*/
public static IetfTeTopologyEvent teTopoEvent2YangIetfTeTopoEvent(TeTopologyEvent event) {
- // TODO: implementation will be submitted as a seperate review.
- return null;
+ // TODO: implementation will be submitted as a seperate review.
+ return null;
}
}
diff --git a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java
index 9f85e79..b0daeee 100644
--- a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java
+++ b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java
@@ -15,502 +15,71 @@
*/
package org.onosproject.teyang.utils.topology;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.List;
-
-import org.onosproject.tetopology.management.api.KeyId;
-import org.onosproject.tetopology.management.api.node.InterfaceSwitchingCapability;
+import org.onosproject.tetopology.management.api.TeTopologyService;
+import org.onosproject.tetopology.management.api.node.NetworkNode;
import org.onosproject.tetopology.management.api.node.NetworkNodeKey;
-import org.onosproject.tetopology.management.api.node.TeNetworkTopologyId;
-import org.onosproject.tetopology.management.api.node.TeNode;
-import org.onosproject.tetopology.management.api.node.TerminationCapability;
-import org.onosproject.tetopology.management.api.node.TerminationPoint;
-import org.onosproject.tetopology.management.api.node.TerminationPointKey;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev20130715.ietfinettypes.DomainName;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NetworkId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NodeId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.DefaultNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.Node;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.node.DefaultSupportingNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
- .ietfnetwork.networks.network.node.SupportingNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.TpId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.node.AugmentedNdNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.node.DefaultAugmentedNdNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.node.AugmentedNwNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.node.DefaultAugmentedNwNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.DefaultTe;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.DefaultTe.TeBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.Te;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.Config;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.DefaultConfig;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.DefaultState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.DefaultTunnelTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.State;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.TunnelTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconfigattributes.DefaultTeNodeAttributes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconfigattributes.TeNodeAttributes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.ConnectivityMatrix;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.DefaultConnectivityMatrix;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.connectivitymatrix.DefaultFrom;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.connectivitymatrix.DefaultTo;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeinfoattributes.DefaultUnderlayTopology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeinfoattributes.UnderlayTopology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodetunnelterminationcapability.DefaultTerminationCapability;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodetunnelterminationcapability.DefaultTerminationCapability.TerminationCapabilityBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeNodeId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeTopologyId;
-
-import com.google.common.collect.Lists;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
+ .Node;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.TeNodeEvent;
/**
* Node conversion functions.
*/
public final class NodeConverter {
- private static final String E_NULL_TE_SUBSYSTEM_TE_NODE = "TeSubsystem teNode object cannot be null";
- private static final String E_NULL_TE_SUBSYSTEM_TE_TUNNEL_TP = "TeSubsystem teTunnelTp object cannot be null";
- private static final String E_NULL_TE_SUBSYSTEM_NODE = "TeSubsystem ndoe object cannot be null";
- private static final String E_NULL_YANG_NODE = "Yang node object cannot be null";
+ private static final String E_NULL_TE_SUBSYSTEM_TE_NODE =
+ "TeSubsystem teNode object cannot be null";
+ private static final String E_NULL_TE_SUBSYSTEM_TE_TUNNEL_TP =
+ "TeSubsystem teTunnelTp object cannot be null";
+ private static final String E_NULL_TE_SUBSYSTEM_NODE =
+ "TeSubsystem ndoe object cannot be null";
+ private static final String E_NULL_YANG_NODE =
+ "Yang node object cannot be null";
// no instantiation
private NodeConverter() {
}
- /**
- * TE Node Config object conversion from TE Topology subsystem to YANG.
- *
- * @param teSubsystemTeNode TE node object
- * @return TE Node Config YANG object
- */
- private static Config teNode2YangConfig(TeNode teSubsystemTeNode) {
- checkNotNull(teSubsystemTeNode, E_NULL_TE_SUBSYSTEM_TE_NODE);
- TeNodeAttributes.TeNodeAttributesBuilder teNodeAttributesConfigBuilder =
- DefaultTeNodeAttributes.builder()
- .isAbstract(teSubsystemTeNode.isAbstract());
- if (teSubsystemTeNode.adminStatus() != null) {
- teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
- .adminStatus(EnumConverter
- .teSubsystem2YangAdminStatus(teSubsystemTeNode
- .adminStatus()));
- }
-
- if (teSubsystemTeNode.name() != null) {
- teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
- .name(DomainName.fromString(teSubsystemTeNode.name()));
- }
-
- if (teSubsystemTeNode.underlayTopology() != null) {
- teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
- .underlayTopology(teNode2YangUnderlayConfig(teSubsystemTeNode.underlayTopology()));
- }
-
- if (teSubsystemTeNode.connectivityMatrices() != null) {
- ConnectivityMatrix.ConnectivityMatrixBuilder connectivityMatrixConfigBuilder =
- DefaultConnectivityMatrix.builder();
- for (org.onosproject.tetopology.management.api.node.ConnectivityMatrix teCm : teSubsystemTeNode.
- connectivityMatrices()) {
- connectivityMatrixConfigBuilder = connectivityMatrixConfigBuilder
- .id(teCm.id())
- .isAllowed(teCm.isAllowed())
- .from(new DefaultFrom.FromBuilder()
- .tpRef(TpId.fromString(teCm.from().tpId()
- .toString()))
- .build())
- .to(new DefaultTo.ToBuilder()
- .tpRef(TpId.fromString(teCm.to().tpId()
- .toString()))
- .build());
- teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
- .addToConnectivityMatrix(connectivityMatrixConfigBuilder
- .build());
- }
- }
-
-
- Config.ConfigBuilder yangConfigBuilder = DefaultConfig.builder();
- yangConfigBuilder = yangConfigBuilder.teNodeAttributes(teNodeAttributesConfigBuilder.build());
-
- return yangConfigBuilder.build();
- }
-
- private static UnderlayTopology teNode2YangUnderlayConfig(TeNetworkTopologyId underlayTopology) {
- UnderlayTopology.UnderlayTopologyBuilder underlayConfigBuilder = DefaultUnderlayTopology
- .builder()
- .networkIdRef(NetworkId.fromString(underlayTopology.getNetworkId().toString()))
- .teTopologyIdRef(TeTopologyId
- .fromString(underlayTopology
- .getTopologyId().topologyId()));
- return underlayConfigBuilder.build();
- }
-
- /**
- * TE Node State object conversion from TE Topology subsystem to YANG.
- *
- * @param teSubsystemTeNode TE node object
- * @return TE Node State YANG object
- */
- private static State teNode2YangState(TeNode teSubsystemTeNode) {
- checkNotNull(teSubsystemTeNode, E_NULL_TE_SUBSYSTEM_TE_NODE);
-
- TeNodeAttributes.TeNodeAttributesBuilder teNodeAttributesStateBuilder = DefaultTeNodeAttributes
- .builder()
- .isAbstract(teSubsystemTeNode.isAbstract());
-
- if (teSubsystemTeNode.adminStatus() != null) {
- teNodeAttributesStateBuilder = teNodeAttributesStateBuilder
- .adminStatus(EnumConverter
- .teSubsystem2YangAdminStatus(teSubsystemTeNode
- .adminStatus()));
- }
-
- if (teSubsystemTeNode.name() != null) {
- teNodeAttributesStateBuilder = teNodeAttributesStateBuilder
- .name(DomainName.fromString(teSubsystemTeNode.name()));
- }
-
- if (teSubsystemTeNode.underlayTopology() != null) {
- UnderlayTopology.UnderlayTopologyBuilder underlayStateBuilder = DefaultUnderlayTopology
- .builder();
- underlayStateBuilder = underlayStateBuilder
- .networkIdRef(NetworkId.fromString(teSubsystemTeNode
- .underlayTopology().getNetworkId().toString()))
- .teTopologyIdRef(TeTopologyId.fromString(teSubsystemTeNode
- .underlayTopology().getTopologyId().topologyId()));
- teNodeAttributesStateBuilder = teNodeAttributesStateBuilder
- .underlayTopology(underlayStateBuilder.build());
- }
-
- if (teSubsystemTeNode.connectivityMatrices() != null) {
- ConnectivityMatrix.ConnectivityMatrixBuilder connectivityMatrixStateBuilder = DefaultConnectivityMatrix
- .builder();
- for (org.onosproject.tetopology.management.api.node.ConnectivityMatrix teCm : teSubsystemTeNode
- .connectivityMatrices()) {
- connectivityMatrixStateBuilder = connectivityMatrixStateBuilder
- .id(teCm.id())
- .isAllowed(teCm.isAllowed())
- .from(new DefaultFrom.FromBuilder()
- .tpRef(TpId.fromString(teCm.from().tpId()
- .toString()))
- .build())
- .to(new DefaultTo.ToBuilder()
- .tpRef(TpId.fromString(teCm.to().tpId()
- .toString()))
- .build());
- teNodeAttributesStateBuilder = teNodeAttributesStateBuilder
- .addToConnectivityMatrix(connectivityMatrixStateBuilder
- .build());
- }
- }
-
- State.StateBuilder yangStateBuilder = DefaultState.builder();
- yangStateBuilder = yangStateBuilder.teNodeAttributes(teNodeAttributesStateBuilder.build());
-
- if (teSubsystemTeNode.opStatus() != null) {
- yangStateBuilder = yangStateBuilder.operStatus(EnumConverter
- .teSubsystem2YangOperStatus(teSubsystemTeNode
- .opStatus()));
- }
-
- return yangStateBuilder.build();
- }
-
- /**
- * TE Node TunnelTerminationPoint object conversion from TE Topology subsystem to YANG.
- *
- * @param teTunnelTp TE TunnelTerminationPoint object
- * @return TunnelTerminationPoint YANG object
- */
- private static TunnelTerminationPoint teSubsystem2YangTtp(
- org.onosproject.tetopology.management.api.node.TunnelTerminationPoint teTunnelTp) {
- checkNotNull(teTunnelTp, E_NULL_TE_SUBSYSTEM_TE_TUNNEL_TP);
-
- TunnelTerminationPoint.TunnelTerminationPointBuilder tunnelTpBuilder =
- DefaultTunnelTerminationPoint.builder().tunnelTpId(teTunnelTp.getTunnelTpId());
-
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.
- Config.ConfigBuilder ttpConfigBuilder =
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.DefaultConfig.builder();
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.
- State.StateBuilder ttpStateBuilder =
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.DefaultState.builder();
-
- if (Long.valueOf(teTunnelTp.getInterLayerLockId()) != null) {
- ttpConfigBuilder = ttpConfigBuilder.interLayerLockId(teTunnelTp.getInterLayerLockId());
- ttpStateBuilder = ttpStateBuilder.interLayerLockId(teTunnelTp.getInterLayerLockId());
- }
-
- if (teTunnelTp.getSwitchingCapabilities() != null) {
- // FIXME: switchingCapabilities is a list in
- // teSubsystem, but is not a list in yang. how to handle
- // this?
- for (InterfaceSwitchingCapability iscTe : teTunnelTp.getSwitchingCapabilities()) {
- // ttpConfigBuilder =
- // ttpConfigBuilder.switchingCapability(switchingCapability)
- // ttpStateBuilder =
- // ttpStateBuilder.switchingCapability(switchingCapability)
- }
- }
-
- if (teTunnelTp.getTerminationCapabilities() != null) {
- for (TerminationCapability tcap : teTunnelTp.getTerminationCapabilities()) {
- TerminationCapabilityBuilder tcapBuilder = DefaultTerminationCapability
- .builder();
- // FIXME: at this moment, tcap does not have any getter or setter.
- // add the following getLinkTpId possibly other attributes to Core data structure
- // tcapConfigBuilder =
- // tcapConfigBuilder.linkTp(TpId.fromString(tcap.getLinkTpId.toString()));
- ttpConfigBuilder = ttpConfigBuilder
- .addToTerminationCapability(tcapBuilder.build());
- ttpStateBuilder = ttpStateBuilder
- .addToTerminationCapability(tcapBuilder.build());
- }
- }
-
- tunnelTpBuilder = tunnelTpBuilder.config(ttpConfigBuilder.build())
- .state(ttpStateBuilder.build());
-
- return tunnelTpBuilder.build();
- }
/**
* Node object conversion from TE Topology subsystem to YANG.
*
- * @param teSubsystem TE subsystem node object
- * @return YANG node object
+ * @param teSubsystem TE subsystem node
+ * @return YANG node
*/
public static Node teSubsystem2YangNode(org.onosproject.tetopology.management.api.node.NetworkNode teSubsystem) {
- checkNotNull(teSubsystem, E_NULL_TE_SUBSYSTEM_NODE);
-
- NodeId nodeId = NodeId.fromString(teSubsystem.nodeId().toString());
- Node.NodeBuilder builder = DefaultNode.builder().nodeId(nodeId);
-
- if (teSubsystem.getSupportingNodeIds() != null) {
- List<SupportingNode> sNodes = Lists.newArrayList();
- SupportingNode.SupportingNodeBuilder spNodeBuilder = DefaultSupportingNode
- .builder();
- for (NetworkNodeKey nodeKey : teSubsystem.getSupportingNodeIds()) {
- sNodes.add(spNodeBuilder
- .networkRef(NetworkId
- .fromString(nodeKey.networkId().toString()))
- .nodeRef(NodeId.fromString(nodeKey.nodeId().toString()))
- .build());
- }
- builder = builder.supportingNode(sNodes);
- }
-
- if (teSubsystem.getTerminationPoints() != null) {
- AugmentedNdNode.AugmentedNdNodeBuilder tpAugmentBuilder = DefaultAugmentedNdNode
- .builder();
- List<TerminationPoint> teSubsystemTeTp = teSubsystem
- .getTerminationPoints();
- for (TerminationPoint teTp : teSubsystemTeTp) {
- tpAugmentBuilder.addToTerminationPoint(TerminationPointConverter
- .teSubsystem2YangTerminationPoint(teTp));
- }
- builder.addYangAugmentedInfo(tpAugmentBuilder.build(),
- AugmentedNdNode.class);
- }
-
- if (teSubsystem.getTe() != null) {
- AugmentedNwNode.AugmentedNwNodeBuilder nodeAugmentBuilder = DefaultAugmentedNwNode
- .builder();
-
- TeNode teSubsystemTeNode = teSubsystem.getTe();
-
- TeBuilder yangTeBuilder = DefaultTe.builder();
-
- if (teSubsystemTeNode.teNodeId() != null) {
- yangTeBuilder = yangTeBuilder.teNodeId(TeNodeId
- .fromString(teSubsystemTeNode.teNodeId().toString()));
- }
-
- // Set configuration data
- // Set state data
- yangTeBuilder = yangTeBuilder.config(teNode2YangConfig(teSubsystemTeNode))
- .state(teNode2YangState(teSubsystemTeNode));
-
- if (teSubsystemTeNode.tunnelTerminationPoints() != null) {
- for (org.onosproject.tetopology.management.api.node.TunnelTerminationPoint
- teTunnelTp : teSubsystemTeNode.tunnelTerminationPoints()) {
- yangTeBuilder = yangTeBuilder.addToTunnelTerminationPoint(teSubsystem2YangTtp(teTunnelTp));
- }
- }
-
- nodeAugmentBuilder = nodeAugmentBuilder.te(yangTeBuilder.build());
- builder.addYangAugmentedInfo(nodeAugmentBuilder.build(),
- AugmentedNwNode.class);
- }
- return builder.build();
+ //TODO: implementation to be submitted as a separate review
+ return null;
}
/**
* Node object conversion from YANG to TE Topology subsystem.
*
- * @param yangNode YANG node object
- * @param yangNetworkId YANG networkId object
- * @return TE subsystem node object
+ * @param yangNode Network node in YANG model
+ * @param yangNetworkId YANG network identifier in YANG model
+ * @return TE subsystem node
*/
public static org.onosproject.tetopology.management.api.node.NetworkNode
- yang2TeSubsystemNode(Node yangNode, NetworkId yangNetworkId) {
- checkNotNull(yangNode, E_NULL_YANG_NODE);
+ yang2TeSubsystemNode(Node yangNode, NetworkId yangNetworkId) {
- org.onosproject.tetopology.management.api.node.DefaultNetworkNode node =
- new org.onosproject.tetopology.management.api.node.DefaultNetworkNode(
- KeyId.keyId(yangNode.nodeId().uri().string()));
+ //TODO: implementation to be submitted as separate review
- if (yangNode.supportingNode() != null) {
- List<NetworkNodeKey> spNodes = Lists.newArrayList();
- for (SupportingNode yangSpNode : yangNode.supportingNode()) {
- NetworkNodeKey nodeKey = new NetworkNodeKey(KeyId.keyId(yangSpNode.nodeRef().uri().toString()),
- KeyId.keyId(yangSpNode.networkRef().uri().toString()));
- spNodes.add(nodeKey);
- }
- node.setSupportingNodeIds(spNodes);
- }
-
- if (yangNode.yangAugmentedInfoMap() != null
- && !yangNode.yangAugmentedInfoMap().isEmpty()) {
-
- AugmentedNdNode yangTpNodeAugment = (AugmentedNdNode) yangNode
- .yangAugmentedInfo(AugmentedNdNode.class);
- if (yang2TeSubsystemTpNodeAugment(yangTpNodeAugment) != null) {
- node.setTerminationPoints(yang2TeSubsystemTpNodeAugment(yangTpNodeAugment));
- }
-
- AugmentedNwNode yangNodeAugment = (AugmentedNwNode) yangNode
- .yangAugmentedInfo(AugmentedNwNode.class);
- if (yangNodeAugment != null && yangNodeAugment.te() != null && yangNodeAugment.te().teNodeId() != null) {
- Te yangNodeAugTe = yangNodeAugment.te();
- TeNode teNode = yang2TeSubsystemNodeAugment(yangNodeAugTe, yangNetworkId, yangNode.nodeId());
- node.setTe(teNode);
- }
- }
-
- return node;
+ return null;
}
- private static TeNode yang2TeSubsystemNodeConnectivityMatrix(TeNode teNode,
- String networkId, String nodeId, List<ConnectivityMatrix> yangMatrix) {
- List<org.onosproject.tetopology.management.api.node.ConnectivityMatrix> teCmList =
- Lists.newArrayList();
- for (ConnectivityMatrix cmYang : yangMatrix) {
- Long id = cmYang.id();
- TerminationPointKey from = new TerminationPointKey(
- KeyId.keyId(networkId),
- KeyId.keyId(nodeId),
- KeyId.keyId(cmYang.from().tpRef().toString()));
- TerminationPointKey to = new TerminationPointKey(
- KeyId.keyId(networkId),
- KeyId.keyId(nodeId),
- KeyId.keyId(cmYang.to().tpRef().toString()));
- boolean isAllowed = cmYang.isAllowed();
- org.onosproject.tetopology.management.api.node.ConnectivityMatrix cmTe =
- new org.onosproject.tetopology.management.api.node.ConnectivityMatrix(
- id, from, to, isAllowed);
- teCmList.add(cmTe);
- }
- teNode.setConnectivityMatrices(teCmList);
- return teNode;
+ public static NetworkNodeKey yangNodeEvent2NetworkNodeKey(TeNodeEvent yangNodeEvent) {
+
+ //TODO: implementation to be submitted as separate review
+
+ return null;
}
- private static TeNode yang2TeSubsystemNodeUnderlayTopology(TeNode teNode,
- UnderlayTopology ut) {
- TeNetworkTopologyId underlayTopology =
- new TeNetworkTopologyId(KeyId.keyId(ut.networkIdRef().toString()),
- new org.onosproject.tetopology.management.api.TeTopologyId(
- ((long) ut.providerIdRef()),
- ((long) ut.clientIdRef()),
- ut.teTopologyIdRef().toString()));
- teNode.setUnderlayTopology(underlayTopology);
- return teNode;
- }
+ public static NetworkNode yangNodeEvent2NetworkNode(TeNodeEvent yangNodeEvent,
+ TeTopologyService teTopologyService) {
- private static TeNode yang2TeSubsystemTtp(TeNode teNode,
- List<TunnelTerminationPoint> ttps) {
- List<org.onosproject.tetopology.management.api.node.TunnelTerminationPoint> ttpTeList =
- Lists.newArrayList();
- for (TunnelTerminationPoint ttpYang : ttps) {
- org.onosproject.tetopology.management.api.node.TunnelTerminationPoint ttpTe =
- new org.onosproject.tetopology.management.api.node.TunnelTerminationPoint(
- ttpYang.tunnelTpId());
- ttpTe.setInterLayerLockId(ttpYang.config().interLayerLockId());
- // FIXME: go through
- // ttpYang.config().switchingCapability() and populate
- // ttpTe.setSwitchingCapabilities(switchingCapabilities);
- // FIXME: go through
- // ttpYang.config().terminationCapability() and populate
- // ttpTe.setTerminationCapability(terminationCapability);
- ttpTeList.add(ttpTe);
- }
- teNode.setTunnelTerminationPoints(ttpTeList);
+ //TODO: implementation to be submitted as separate review
- return teNode;
- }
-
- private static TeNode yang2TeSubsystemNodeAugment(Te yangNodeAugTe,
- NetworkId yangNetworkId, NodeId yangNodeId) {
- TeNode teNode = new TeNode(yangNodeAugTe.teNodeId().toString());
- Config ynodeAugCfg = yangNodeAugTe.config();
- if (ynodeAugCfg != null) {
- TeNodeAttributes teNodeAttr = ynodeAugCfg.teNodeAttributes();
- if (teNodeAttr != null) {
- teNode.setAbstract(teNodeAttr.isAbstract());
-
- if (teNodeAttr.adminStatus() != null) {
- teNode.setAdminStatus(EnumConverter.yang2TeSubsystemAdminStatus(
- ynodeAugCfg.teNodeAttributes().adminStatus()));
- }
-
- if (yangNodeAugTe.state() != null &&
- yangNodeAugTe.state().operStatus() != null) {
- teNode.setOpStatus(EnumConverter.yang2TeSubsystemOpStatus(
- yangNodeAugTe.state().operStatus()));
- }
-
- if (teNodeAttr.connectivityMatrix() != null) {
- teNode = yang2TeSubsystemNodeConnectivityMatrix(teNode,
- yangNetworkId.uri().toString(),
- yangNodeId.uri().toString(),
- teNodeAttr.connectivityMatrix());
- }
-
- if (teNodeAttr.underlayTopology() != null) {
- teNode = yang2TeSubsystemNodeUnderlayTopology(teNode,
- teNodeAttr.underlayTopology());
- }
- }
- }
-
- if (yangNodeAugTe.tunnelTerminationPoint() != null) {
- teNode = yang2TeSubsystemTtp(teNode, yangNodeAugTe.tunnelTerminationPoint());
- }
- return teNode;
- }
-
- private static List<TerminationPoint> yang2TeSubsystemTpNodeAugment(AugmentedNdNode yangTpNodeAugment) {
- if (yangTpNodeAugment.terminationPoint() != null) {
- List<TerminationPoint> teTpList = Lists.newArrayList();
- for (org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology
- .rev20151208.ietfnetworktopology.networks.network.node.augmentedndnode.TerminationPoint
- yangTpnode : yangTpNodeAugment.terminationPoint()) {
- teTpList.add(TerminationPointConverter.yang2teSubsystemTerminationPoint(yangTpnode));
- }
- return teTpList;
- }
return null;
}
}
diff --git a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/TerminationPointConverter.java b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/TerminationPointConverter.java
index 945ad56..2084f3e 100644
--- a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/TerminationPointConverter.java
+++ b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/TerminationPointConverter.java
@@ -15,50 +15,18 @@
*/
package org.onosproject.teyang.utils.topology;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.List;
-
-import org.onosproject.tetopology.management.api.KeyId;
-import org.onosproject.tetopology.management.api.node.TeTerminationPoint;
-import org.onosproject.tetopology.management.api.node.TerminationPointKey;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NetworkId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NodeId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.TpId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.node.augmentedndnode.DefaultTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.node.augmentedndnode.TerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.node.augmentedndnode.terminationpoint
- .DefaultSupportingTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
- .ietfnetworktopology.networks.network.node.augmentedndnode.terminationpoint
- .SupportingTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.interfaceswitchingcapabilitylist.DefaultInterfaceSwitchingCapability;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.interfaceswitchingcapabilitylist.InterfaceSwitchingCapability;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.node.terminationpoint.AugmentedNtTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.networks.network.node.terminationpoint.DefaultAugmentedNtTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.teterminationpointaugment.DefaultTe;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.teterminationpointaugment.DefaultTe.TeBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.teterminationpointaugment.te.Config;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.teterminationpointaugment.te.DefaultConfig;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.teterminationpointaugment.te.DefaultState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.teterminationpointaugment.te.State;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeTpId;
-
-import com.google.common.collect.Lists;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
+ .networks.network.node.augmentedndnode.TerminationPoint;
/**
* The termination point translations.
*/
public final class TerminationPointConverter {
- private static final String E_NULL_TE_SUBSYSTEM_TP = "TeSubsystem terminationPoint object cannot be null";
- private static final String E_NULL_YANG_TP = "YANG terminationPoint object cannot be null";
+ private static final String E_NULL_TE_SUBSYSTEM_TP =
+ "TeSubsystem terminationPoint object cannot be null";
+ private static final String E_NULL_YANG_TP =
+ "YANG terminationPoint object cannot be null";
// no instantiation
private TerminationPointConverter() {
@@ -67,142 +35,28 @@
/**
* TerminationPoint object translation from TE Topology subsystem to YANG.
*
- * @param teSubsystem TE Topology subsystem termination point object
- * @return TerminationPoint YANG object
+ * @param teSubsystem TE Topology subsystem termination point
+ * @return Termination point in YANG Java data structure
*/
public static TerminationPoint teSubsystem2YangTerminationPoint(
- org.onosproject.tetopology.management.api.node.TerminationPoint teSubsystem) {
- checkNotNull(teSubsystem, E_NULL_TE_SUBSYSTEM_TP);
+ org.onosproject.tetopology.management.api.node.TerminationPoint teSubsystem) {
- TpId tpId = TpId.fromString(teSubsystem.id().toString());
- TerminationPoint.TerminationPointBuilder builder =
- new DefaultTerminationPoint.TerminationPointBuilder().tpId(tpId);
-
- if (teSubsystem.getSupportingTpIds() != null) {
- List<SupportingTerminationPoint> tps = Lists.newArrayList();
- SupportingTerminationPoint.SupportingTerminationPointBuilder
- spTpBuilder = DefaultSupportingTerminationPoint.builder();
- for (TerminationPointKey tpKey : teSubsystem.getSupportingTpIds()) {
- tps.add(spTpBuilder.networkRef(NetworkId.fromString(tpKey.networkId().toString()))
- .nodeRef(NodeId.fromString(tpKey.nodeId().toString()))
- .tpRef(TpId.fromString(tpKey.tpId().toString()))
- .build());
- }
- builder = builder.supportingTerminationPoint(tps);
- }
-
- if (teSubsystem.getTe() != null) {
- AugmentedNtTerminationPoint.AugmentedNtTerminationPointBuilder
- tpAugmentBuilder = DefaultAugmentedNtTerminationPoint.builder();
-
- TeTerminationPoint teSubsystemTe = teSubsystem.getTe();
- TeBuilder yangTeBuilder = DefaultTe.builder();
-
- if (teSubsystemTe.teTpId() != null) {
- yangTeBuilder = yangTeBuilder.teTpId(TeTpId.fromString(teSubsystemTe.teTpId().toString()));
- }
-
- Config yConfig = teSubsystem2YangTeAugConfig(teSubsystemTe);
- yangTeBuilder = yangTeBuilder.config(yConfig);
-
- State yState = teSubsystem2YangTeAugState(teSubsystemTe);
- yangTeBuilder = yangTeBuilder.state(yState);
-
- tpAugmentBuilder = tpAugmentBuilder.te(yangTeBuilder.build());
- builder.addYangAugmentedInfo(tpAugmentBuilder.build(), AugmentedNtTerminationPoint.class);
- }
-
- return builder.build();
+ //TODO: implementation to be submitted as a separate review
+ return null;
}
- private static State teSubsystem2YangTeAugState(TeTerminationPoint teSubsystemTe) {
- State.StateBuilder yangStateBuilder = DefaultState.builder();
- yangStateBuilder.interLayerLockId(teSubsystemTe.getInterLayerLockId());
-
- if (teSubsystemTe.interfaceSwitchingCapabilities() != null) {
- for (org.onosproject.tetopology.management.api.node.InterfaceSwitchingCapability teIsc :
- teSubsystemTe.interfaceSwitchingCapabilities()) {
- InterfaceSwitchingCapability.InterfaceSwitchingCapabilityBuilder isc =
- DefaultInterfaceSwitchingCapability.builder();
- // FIXME: teIsc at this moment is empty, therefore we cannot
- // really add its attributes to isc
- yangStateBuilder.addToInterfaceSwitchingCapability(isc.build());
- }
- }
- return yangStateBuilder.build();
- }
-
- private static Config teSubsystem2YangTeAugConfig(TeTerminationPoint teSubsystemTe) {
- Config.ConfigBuilder yangConfigBuilder = DefaultConfig.builder();
- yangConfigBuilder = yangConfigBuilder.interLayerLockId(teSubsystemTe.getInterLayerLockId());
- if (teSubsystemTe.interfaceSwitchingCapabilities() != null) {
- for (org.onosproject.tetopology.management.api.node.InterfaceSwitchingCapability teIsc :
- teSubsystemTe.interfaceSwitchingCapabilities()) {
- InterfaceSwitchingCapability.InterfaceSwitchingCapabilityBuilder
- isc = DefaultInterfaceSwitchingCapability.builder();
- // FIXME: teIsc at this moment is empty, therefore we cannot
- // really add its attributes to isc
- yangConfigBuilder = yangConfigBuilder.addToInterfaceSwitchingCapability(isc.build());
- }
- }
- return yangConfigBuilder.build();
- }
/**
* TerminationPoint object translation from YANG to TE Topology subsystem.
*
- * @param yangTp TerminationPoint YANG object
- * @return TerminationPoint TE Topology subsystem termination point object
+ * @param yangTp Termination point in YANG Java data structure
+ * @return TerminationPoint TE Topology subsystem termination point
*/
public static org.onosproject.tetopology.management.api.node.TerminationPoint
- yang2teSubsystemTerminationPoint(TerminationPoint yangTp) {
- checkNotNull(yangTp, E_NULL_YANG_TP);
+ yang2teSubsystemTerminationPoint(TerminationPoint yangTp) {
- org.onosproject.tetopology.management.api.node.DefaultTerminationPoint tp = new org.onosproject.tetopology
- .management.api.node.DefaultTerminationPoint(KeyId.keyId(yangTp.tpId().uri().string()));
-
- if (yangTp.supportingTerminationPoint() != null) {
- List<org.onosproject.tetopology.management.api.node.TerminationPointKey> spTps = Lists.newArrayList();
- for (SupportingTerminationPoint yangSptp : yangTp.supportingTerminationPoint()) {
- org.onosproject.tetopology.management.api.node.TerminationPointKey tpKey =
- new org.onosproject.tetopology.management.api.node.TerminationPointKey(
- KeyId.keyId(yangSptp.networkRef().uri().string()),
- KeyId.keyId(yangSptp.nodeRef().uri().string()),
- KeyId.keyId(yangSptp.tpRef().uri().string()));
- spTps.add(tpKey);
- }
- tp.setSupportingTpIds(spTps);
- }
-
- if (yangTp.yangAugmentedInfoMap() != null && !yangTp.yangAugmentedInfoMap().isEmpty()) {
- AugmentedNtTerminationPoint yangTpAugment =
- (AugmentedNtTerminationPoint) yangTp.yangAugmentedInfo(AugmentedNtTerminationPoint.class);
- if (yangTpAugment.te() != null && yangTpAugment.te().teTpId() != null) {
- KeyId teTpId = KeyId.keyId(yangTpAugment.te().teTpId().toString());
- if (yangTpAugment.te().config() != null) {
- long interLayerLockId = yangTpAugment.te().config().interLayerLockId();
- List<org.onosproject.tetopology.management.api.node.InterfaceSwitchingCapability>
- teIscList = Lists.newArrayList();
- if (yangTpAugment.te().config().interfaceSwitchingCapability() != null) {
- for (InterfaceSwitchingCapability iscConfigYang :
- yangTpAugment.te().config().interfaceSwitchingCapability()) {
- org.onosproject.tetopology.management.api.node.InterfaceSwitchingCapability iscTe =
- new org.onosproject.tetopology.management.api.node.InterfaceSwitchingCapability();
- // FIXME: at this moment, iscTe does not have any
- // attributes. Therefore, I cannot feed it with
- // attributes of iscConfigYang
- teIscList.add(iscTe);
- }
- }
-
- TeTerminationPoint teSubsystemTp = new TeTerminationPoint(teTpId,
- teIscList,
- interLayerLockId);
- tp.setTe(teSubsystemTp);
- }
- }
- }
- return tp;
+ // TODO: implementation to be submitted as separate review
+ return null;
}
}