Add TAPI object resolver and DCS-dependent data provider ( to update cache )
- refactor TapiInstanceBuilder and add some util method
- add skeleton code for tapi-common get RPCs
Change-Id: I548623ad29f9b72b425713720c5081d790b42bd2
diff --git a/apps/odtn/api/BUCK b/apps/odtn/api/BUCK
index c3cdf13..0c5811f 100644
--- a/apps/odtn/api/BUCK
+++ b/apps/odtn/api/BUCK
@@ -6,6 +6,7 @@
'//models/tapi:onos-models-tapi',
'//models/openconfig:onos-models-openconfig',
'//apps/yang:onos-apps-yang',
+ '//apps/config:onos-apps-config',
]
TEST_DEPS = [
diff --git a/apps/odtn/api/pom.xml b/apps/odtn/api/pom.xml
index 1d971fc..19b5101 100644
--- a/apps/odtn/api/pom.xml
+++ b/apps/odtn/api/pom.xml
@@ -76,6 +76,11 @@
<scope>test</scope>
<classifier>tests</classifier>
</dependency>
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-apps-config</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNepRef.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNepRef.java
index aa8e553..12df8cb 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNepRef.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNepRef.java
@@ -16,12 +16,18 @@
package org.onosproject.odtn.utils.tapi;
-import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.Uuid;
+import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.node.OwnedNodeEdgePoint;
+import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topology.Node;
+import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.Topology;
-public class DcsBasedTapiNepRef extends TapiNepRef {
+public final class DcsBasedTapiNepRef extends TapiNepRef {
- public DcsBasedTapiNepRef(Uuid topologyId, Uuid nodeId, Uuid nepId) {
- super(topologyId.toString(), nodeId.toString(), nepId.toString());
+ private DcsBasedTapiNepRef(Topology topology, Node node, OwnedNodeEdgePoint nep) {
+ super(topology.uuid().toString(), node.uuid().toString(), nep.uuid().toString());
+ }
+
+ public static DcsBasedTapiNepRef create(Topology topology, Node node, OwnedNodeEdgePoint nep) {
+ return new DcsBasedTapiNepRef(topology, node, nep);
}
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNodeRef.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNodeRef.java
index 5e3c79b..cfc38e2 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNodeRef.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/DcsBasedTapiNodeRef.java
@@ -16,11 +16,16 @@
package org.onosproject.odtn.utils.tapi;
-import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.Uuid;
+import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topology.Node;
+import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.Topology;
-public class DcsBasedTapiNodeRef extends TapiNodeRef {
+public final class DcsBasedTapiNodeRef extends TapiNodeRef {
- public DcsBasedTapiNodeRef(Uuid topologyId, Uuid nodeId) {
- super(topologyId.toString(), nodeId.toString());
+ private DcsBasedTapiNodeRef(Topology topology, Node node) {
+ super(topology.uuid().toString(), node.uuid().toString());
+ }
+
+ public static DcsBasedTapiNodeRef create(Topology topology, Node node) {
+ return new DcsBasedTapiNodeRef(topology, node);
}
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiContextBuilder.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiContextBuilder.java
index 2d24dc4..720d436 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiContextBuilder.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiContextBuilder.java
@@ -18,8 +18,6 @@
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.DefaultContext;
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.Uuid;
-import org.onosproject.yang.model.ModelObject;
-import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ModelObjectId;
/**
@@ -38,13 +36,13 @@
}
@Override
- public ModelObjectData build() {
- ModelObjectId objId = ModelObjectId.builder().build();
- return getModelObjectData(context, objId);
+ public ModelObjectId getModelObjectId() {
+ return ModelObjectId.builder().build();
}
@Override
- public ModelObject getModelObject() {
+ @SuppressWarnings("unchecked")
+ public DefaultContext getModelObject() {
return context;
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java
index 834c927..2af7fed 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiGlobalClassUtil.java
@@ -91,7 +91,7 @@
* @param kvs key-value map
* @param <T> type of ModelObject
*/
- public static <T extends ModelObject> void setNameList(T obj, Map<String, String> kvs) {
+ public static <T extends ModelObject> void addNameList(T obj, Map<String, String> kvs) {
@SuppressWarnings("unchecked")
Class<T> cls = (Class<T>) obj.getClass();
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiInstanceBuilder.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiInstanceBuilder.java
index fa4a903..dc4fd10 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiInstanceBuilder.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiInstanceBuilder.java
@@ -16,11 +16,26 @@
package org.onosproject.odtn.utils.tapi;
+import java.util.List;
+import org.onlab.util.XmlString;
+import org.onosproject.config.DynamicConfigService;
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.Uuid;
+import org.onosproject.yang.model.DataNode;
import org.onosproject.yang.model.DefaultModelObjectData;
+import org.onosproject.yang.model.ModelConverter;
import org.onosproject.yang.model.ModelObject;
import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ModelObjectId;
+import org.onosproject.yang.model.ResourceData;
+
+import static org.onlab.osgi.DefaultServiceDirectory.getService;
+import static org.onosproject.odtn.utils.YangToolUtil.toCharSequence;
+import static org.onosproject.odtn.utils.YangToolUtil.toCompositeData;
+import static org.onosproject.odtn.utils.YangToolUtil.toXmlCompositeStream;
+
+import org.onosproject.yang.model.ResourceId;
+import org.slf4j.Logger;
+import static org.slf4j.LoggerFactory.getLogger;
/**
* Utility builder class for TAPI modelobject creation with DCS.
@@ -33,29 +48,80 @@
public static final String ODTN_PORT_TYPE = "odtn-port-type";
+ private final Logger log = getLogger(getClass());
+
+ private ModelConverter modelConverter;
+ private DynamicConfigService dcs;
+
/**
* Generate DCS modelObjectData.
- * @return ModelObjectData to be built
+ *
+ * @return ModelObjectId of build target
*/
- public abstract ModelObjectData build();
+ public abstract ModelObjectId getModelObjectId();
/**
* Get modelObject instance.
+ *
+ * @param <T> build target class
* @return ModelObject of build target
*/
- public abstract ModelObject getModelObject();
+ public abstract <T extends ModelObject> T getModelObject();
/**
* Get modelObject uuid.
+ *
* @return Uuid of build target
*/
public abstract Uuid getUuid();
+ /**
+ * Get modelObjectData instance.
+ *
+ * @return ModelObjectData of build target
+ */
+ public ModelObjectData getModelObjectData() {
+ ModelObject obj = getModelObject();
+ ModelObjectId objId = getModelObjectId();
- ModelObjectData getModelObjectData(ModelObject obj, ModelObjectId objId) {
return DefaultModelObjectData.builder()
.addModelObject(obj)
.identifier(objId)
.build();
}
+
+ /**
+ * Add built modelObject to Dcs store.
+ */
+ public void build() {
+ dcs = getService(DynamicConfigService.class);
+ modelConverter = getService(ModelConverter.class);
+ addModelObjectDataToDcs(getModelObjectData());
+ }
+
+ private void addModelObjectDataToDcs(ModelObjectData input) {
+
+ ResourceData rnode = modelConverter.createDataNode(input);
+
+ // for debug
+ CharSequence strNode = toCharSequence(toXmlCompositeStream(toCompositeData(rnode)));
+ log.info("XML:\n{}", XmlString.prettifyXml(strNode));
+
+ addResourceDataToDcs(rnode);
+ }
+
+ private void addResourceDataToDcs(ResourceData input) {
+ addResourceDataToDcs(input, input.resourceId());
+ }
+
+ private void addResourceDataToDcs(ResourceData input, ResourceId rid) {
+ if (input == null || input.dataNodes() == null) {
+ return;
+ }
+ List<DataNode> dataNodes = input.dataNodes();
+ for (DataNode node : dataNodes) {
+ dcs.createNode(rid, node);
+ }
+ }
+
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiLinkBuilder.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiLinkBuilder.java
index 93fbe5b..31107ae 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiLinkBuilder.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiLinkBuilder.java
@@ -22,8 +22,6 @@
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topology.DefaultLink;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.DefaultTopology;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.TopologyKeys;
-import org.onosproject.yang.model.ModelObject;
-import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ModelObjectId;
import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.setUuid;
@@ -49,7 +47,7 @@
return this;
}
- public TapiLinkBuilder setNep(TapiNepRef nepRef) {
+ public TapiLinkBuilder addNep(TapiNepRef nepRef) {
DefaultNodeEdgePoint nep = new DefaultNodeEdgePoint();
nep.topologyId(nepRef.getTopologyId());
nep.nodeId(nepRef.getNodeId());
@@ -59,19 +57,19 @@
}
@Override
- public ModelObjectData build() {
+ public ModelObjectId getModelObjectId() {
TopologyKeys topologyKey = new TopologyKeys();
topologyKey.uuid(topologyUuid);
- ModelObjectId objId = ModelObjectId.builder()
+ return ModelObjectId.builder()
.addChild(DefaultContext.class)
.addChild(DefaultTopology.class, topologyKey)
.build();
- return getModelObjectData(link, objId);
}
@Override
- public ModelObject getModelObject() {
+ @SuppressWarnings("unchecked")
+ public DefaultLink getModelObject() {
return link;
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepBuilder.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepBuilder.java
index 3524d63..1148511 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepBuilder.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepBuilder.java
@@ -19,9 +19,8 @@
import java.util.HashMap;
import java.util.Map;
import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.Port;
-import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.setNameList;
+import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.addNameList;
import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.setUuid;
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.DefaultContext;
@@ -32,8 +31,6 @@
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topology.NodeKeys;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.DefaultTopology;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.TopologyKeys;
-import org.onosproject.yang.model.ModelObject;
-import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ModelObjectId;
/**
@@ -65,18 +62,13 @@
return this;
}
- public TapiNepBuilder setPort(Port port) {
- cp = new ConnectPoint(port.element().id(), port.number());
- kvs.put(ONOS_CP, cp.toString());
- return this;
- }
-
public TapiNepBuilder setConnectPoint(ConnectPoint cp) {
kvs.put(ONOS_CP, cp.toString());
+ addNameList(nep, kvs);
return this;
}
- public TapiNepBuilder setSip(Uuid sipUuid) {
+ public TapiNepBuilder addSip(Uuid sipUuid) {
DefaultMappedServiceInterfacePoint mappedSip = new DefaultMappedServiceInterfacePoint();
mappedSip.serviceInterfacePointId(sipUuid);
nep.addToMappedServiceInterfacePoint(mappedSip);
@@ -88,7 +80,8 @@
}
@Override
- public ModelObject getModelObject() {
+ @SuppressWarnings("unchecked")
+ public DefaultOwnedNodeEdgePoint getModelObject() {
return nep;
}
@@ -98,21 +91,18 @@
}
@Override
- public ModelObjectData build() {
- setNameList(nep, kvs);
-
+ public ModelObjectId getModelObjectId() {
TopologyKeys topologyKey = new TopologyKeys();
topologyKey.uuid(topologyUuid);
NodeKeys nodeKey = new NodeKeys();
nodeKey.uuid(nodeUuid);
- ModelObjectId objId = ModelObjectId.builder()
+ return ModelObjectId.builder()
.addChild(DefaultContext.class)
.addChild(DefaultTopology.class, topologyKey)
.addChild(DefaultNode.class, nodeKey)
.build();
- return getModelObjectData(nep, objId);
}
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepRef.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepRef.java
index a28d53d..d837362 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepRef.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNepRef.java
@@ -16,6 +16,7 @@
package org.onosproject.odtn.utils.tapi;
+import java.util.Optional;
import java.util.UUID;
import org.onosproject.net.ConnectPoint;
@@ -28,8 +29,18 @@
private final UUID topologyId;
private final UUID nodeId;
private final UUID nepId;
- private UUID sipId;
- private ConnectPoint cp;
+ private UUID sipId = null;
+ private ConnectPoint cp = null;
+
+ TapiNepRef(String topologyId, String nodeId, String nepId) {
+ this.topologyId = UUID.fromString(topologyId);
+ this.nodeId = UUID.fromString(nodeId);
+ this.nepId = UUID.fromString(nepId);
+ }
+
+ public static TapiNepRef create(String topologyId, String nodeId, String nepId) {
+ return new TapiNepRef(topologyId, nodeId, nepId);
+ }
public String getTopologyId() {
return topologyId.toString();
@@ -44,7 +55,9 @@
}
public String getSipId() {
- return sipId.toString();
+ return Optional.ofNullable(sipId)
+ .map(UUID::toString)
+ .orElse(null);
}
public ConnectPoint getConnectPoint() {
@@ -61,12 +74,6 @@
return this;
}
- public TapiNepRef(String topologyId, String nodeId, String nepId) {
- this.topologyId = UUID.fromString(topologyId);
- this.nodeId = UUID.fromString(nodeId);
- this.nepId = UUID.fromString(nepId);
- }
-
public String toString() {
return toStringHelper(getClass())
// .add("topologyId", topologyId)
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeBuilder.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeBuilder.java
index 868df72..21e812c 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeBuilder.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeBuilder.java
@@ -18,7 +18,7 @@
import java.util.HashMap;
import java.util.Map;
-import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.setNameList;
+import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.addNameList;
import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.setUuid;
import org.onosproject.net.DeviceId;
@@ -28,8 +28,6 @@
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topology.DefaultNode;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.DefaultTopology;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.TopologyKeys;
-import org.onosproject.yang.model.ModelObject;
-import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ModelObjectId;
/**
@@ -39,7 +37,6 @@
private Uuid topologyUuid;
private DefaultNode node = new DefaultNode();
- private Map<String, String> kvs = new HashMap<>();
private TapiNodeBuilder() {
setUuid(node);
@@ -54,18 +51,21 @@
return this;
}
- public TapiNodeBuilder setNep(OwnedNodeEdgePoint nep) {
+ public TapiNodeBuilder addNep(OwnedNodeEdgePoint nep) {
node.addToOwnedNodeEdgePoint(nep);
return this;
}
public TapiNodeBuilder setDeviceId(DeviceId deviceId) {
+ Map<String, String> kvs = new HashMap<>();
kvs.put(DEVICE_ID, deviceId.toString());
+ addNameList(node, kvs);
return this;
}
@Override
- public ModelObject getModelObject() {
+ @SuppressWarnings("unchecked")
+ public DefaultNode getModelObject() {
return node;
}
@@ -75,16 +75,13 @@
}
@Override
- public ModelObjectData build() {
- setNameList(node, kvs);
-
+ public ModelObjectId getModelObjectId() {
TopologyKeys topologyKey = new TopologyKeys();
topologyKey.uuid(topologyUuid);
- ModelObjectId objId = ModelObjectId.builder()
+ return ModelObjectId.builder()
.addChild(DefaultContext.class)
.addChild(DefaultTopology.class, topologyKey)
.build();
- return getModelObjectData(node, objId);
}
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeRef.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeRef.java
index 0fd762b..ae2a968 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeRef.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiNodeRef.java
@@ -29,6 +29,15 @@
private final UUID nodeId;
private DeviceId deviceId;
+ TapiNodeRef(String topologyId, String nodeId) {
+ this.topologyId = UUID.fromString(topologyId);
+ this.nodeId = UUID.fromString(nodeId);
+ }
+
+ public static TapiNodeRef create(String topologyId, String nodeId) {
+ return new TapiNodeRef(topologyId, nodeId);
+ }
+
public String getNodeId() {
return nodeId.toString();
}
@@ -37,13 +46,9 @@
return deviceId;
}
- public void setDeviceId(DeviceId deviceId) {
+ public TapiNodeRef setDeviceId(DeviceId deviceId) {
this.deviceId = deviceId;
- }
-
- public TapiNodeRef(String topologyId, String nodeId) {
- this.topologyId = UUID.fromString(topologyId);
- this.nodeId = UUID.fromString(nodeId);
+ return this;
}
public String toString() {
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiResolver.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiResolver.java
deleted file mode 100644
index 6ec62ff..0000000
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiResolver.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright 2018-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.odtn.utils.tapi;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NoSuchElementException;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.ElementId;
-import org.slf4j.Logger;
-import static org.slf4j.LoggerFactory.getLogger;
-
-
-/**
- * TAPI instance resolver.
- * FIXME: This resolver should provide DCS read cache
- */
-public class TapiResolver {
-
- private final Logger log = getLogger(getClass());
-
- private List<TapiNodeRef> tapiNodeRefList = new ArrayList<>();
- private List<TapiNepRef> tapiNepRefList = new ArrayList<>();
-
-
- /**
- * Check existence of TAPI node associated with deviceId.
- * @param deviceId search key
- * @return boolean
- */
- public boolean hasNodeRef(ElementId deviceId) {
- return tapiNodeRefList.stream()
- .anyMatch(node -> node.getDeviceId().equals(deviceId));
- }
-
- /**
- * Check existence of TAPI nep associated with ConnectPoint.
- * @param cp search key
- * @return TapiNepRef
- */
- public boolean hasNepRef(ConnectPoint cp) {
- return tapiNepRefList.stream()
- .anyMatch(nep -> nep.getConnectPoint().equals(cp));
- }
-
- /**
- * Check existence of TAPI nep associated with TAPI sipId.
- * @param sipId search key
- * @return TapiNepRef
- */
- public boolean hasNepRef(String sipId) {
- return tapiNepRefList.stream()
- .anyMatch(nep -> nep.getSipId().equals(sipId));
- }
-
- /**
- * Resolve TAPI node associated with deviceId.
- * @param deviceId search key
- * @return TapiNodeRef
- */
- public TapiNodeRef getNodeRef(ElementId deviceId) {
- TapiNodeRef ret = null;
- try {
- ret = tapiNodeRefList.stream()
- .filter(node -> node.getDeviceId().equals(deviceId))
- .findFirst().get();
- } catch (NoSuchElementException e) {
- log.error("Node not found associated with {}", deviceId);
- throw e;
- }
- return ret;
- }
-
- /**
- * Resolve TAPI nep associated with ConnectPoint.
- * @param cp search key
- * @return TapiNepRef
- */
- public TapiNepRef getNepRef(ConnectPoint cp) {
- TapiNepRef ret = null;
- try {
- ret = tapiNepRefList.stream()
- .filter(nep -> nep.getConnectPoint().equals(cp))
- .findFirst().get();
- } catch (NoSuchElementException e) {
- log.error("Nep not found associated with {}", cp);
- throw e;
- }
- return ret;
- }
-
- /**
- * Resolve TAPI nep associated with TAPI sipId.
- * @param sipId search key
- * @return TapiNepRef
- */
- public TapiNepRef getNepRef(String sipId) {
- TapiNepRef ret = null;
- try {
- ret = tapiNepRefList.stream()
- .filter(nep -> nep.getSipId().equals(sipId))
- .findFirst().get();
- } catch (NoSuchElementException e) {
- log.error("Nep not found associated with {}", sipId);
- throw e;
- }
- return ret;
- }
-
- public TapiResolver addNodeRef(TapiNodeRef nodeRef) {
- tapiNodeRefList.add(nodeRef);
- log.info("Nodes: {}", tapiNodeRefList);
- return this;
- }
-
- public TapiResolver addNepRef(TapiNepRef nepRef) {
- tapiNepRefList.add(nepRef);
- log.info("Neps: {}", tapiNepRefList);
- return this;
- }
-
-}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiSipBuilder.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiSipBuilder.java
index a12a425..5e24b33 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiSipBuilder.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiSipBuilder.java
@@ -19,18 +19,15 @@
import java.util.HashMap;
import java.util.Map;
import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.Port;
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.DefaultContext;
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.LayerProtocolName;
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.Uuid;
-import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.setNameList;
+import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.addNameList;
import static org.onosproject.odtn.utils.tapi.TapiGlobalClassUtil.setUuid;
import static org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.layerprotocolname.LayerProtocolNameEnum.DSR;
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.tapicontext.DefaultServiceInterfacePoint;
-import org.onosproject.yang.model.ModelObject;
-import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ModelObjectId;
/**
@@ -39,7 +36,6 @@
public final class TapiSipBuilder extends TapiInstanceBuilder {
private DefaultServiceInterfacePoint sip = new DefaultServiceInterfacePoint();
- private Map<String, String> kvs = new HashMap<>();
private TapiSipBuilder() {
setUuid(sip);
@@ -51,36 +47,35 @@
/**
* Check this builder dealing with port for SIP or not.
- * @param port onos port
+ * @param cp onos connectPoint
* @return Is this builder for SIP or not
*/
- public static boolean isSip(Port port) {
+ public static boolean isSip(ConnectPoint cp) {
// FIXME modify this method to appropriate way
- ConnectPoint cp = new ConnectPoint(port.element().id(), port.number());
return cp.toString().contains("TRANSCEIVER");
}
- public TapiSipBuilder setPort(Port port) {
- if (!isSip(port)) {
+ public TapiSipBuilder setConnectPoint(ConnectPoint cp) {
+ if (!isSip(cp)) {
throw new IllegalStateException("Not allowed to use this port as SIP.");
}
- ConnectPoint cp = new ConnectPoint(port.element().id(), port.number());
+ Map<String, String> kvs = new HashMap<>();
kvs.put(ONOS_CP, cp.toString());
+ addNameList(sip, kvs);
sip.addToLayerProtocolName(LayerProtocolName.of(DSR));
return this;
}
@Override
- public ModelObjectData build() {
- setNameList(sip, kvs);
- ModelObjectId objId = ModelObjectId.builder()
+ public ModelObjectId getModelObjectId() {
+ return ModelObjectId.builder()
.addChild(DefaultContext.class)
.build();
- return getModelObjectData(sip, objId);
}
@Override
- public ModelObject getModelObject() {
+ @SuppressWarnings("unchecked")
+ public DefaultServiceInterfacePoint getModelObject() {
return sip;
}
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiTopologyBuilder.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiTopologyBuilder.java
index 82e83d7..4c96133 100644
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiTopologyBuilder.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiTopologyBuilder.java
@@ -22,8 +22,6 @@
import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.Uuid;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.context.DefaultAugmentedTapiCommonContext;
import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.DefaultTopology;
-import org.onosproject.yang.model.ModelObject;
-import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ModelObjectId;
/**
@@ -44,17 +42,17 @@
@Override
- public ModelObjectData build() {
+ public ModelObjectId getModelObjectId() {
DefaultAugmentedTapiCommonContext topologyContext = new DefaultAugmentedTapiCommonContext();
topologyContext.addToTopology(topology);
- ModelObjectId objId = ModelObjectId.builder().addChild(DefaultContext.class).build();
- return getModelObjectData(topologyContext, objId);
+ return ModelObjectId.builder().addChild(DefaultContext.class).build();
}
@Override
- public ModelObject getModelObject() {
+ @SuppressWarnings("unchecked")
+ public DefaultTopology getModelObject() {
return topology;
}
diff --git a/apps/odtn/api/src/test/java/org/onosproject/odtn/utils/tapi/TapiResolverTest.java b/apps/odtn/api/src/test/java/org/onosproject/odtn/utils/tapi/TapiResolverTest.java
deleted file mode 100644
index 0d420d8..0000000
--- a/apps/odtn/api/src/test/java/org/onosproject/odtn/utils/tapi/TapiResolverTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 2018-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.odtn.utils.tapi;
-
-import java.util.NoSuchElementException;
-import org.junit.Before;
-import org.junit.Test;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.PortNumber;
-
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.*;
-
-public class TapiResolverTest {
-
- private TapiResolver tapiResolver;
-
- private TapiNodeRef nodeRef;
- private TapiNepRef nepRef;
- private DeviceId deviceId;
- private ConnectPoint cp;
- private String sipId;
-
- private DeviceId dummyDeviceId;
- private Integer dummyPort;
- private ConnectPoint dummyCp;
- private String dummySipId;
-
-
- @Before
- public void setUp() {
- nodeRef = new TapiNodeRef(
- "49e2ac46-3975-44b4-b84f-8fab28222a39",
- "5638e8e6-ac17-40d9-86e4-7c1febab6f1a");
- nepRef = new TapiNepRef(
- "59e2ac46-3975-44b4-b84f-8fab28222a39",
- "6638e8e6-ac17-40d9-86e4-7c1febab6f1a",
- "cd673055-e2b2-4f67-88c8-adfae96385bc");
- deviceId = DeviceId.deviceId("netconf:172.24.3.5:11011");
- cp = new ConnectPoint(deviceId, PortNumber.portNumber("42"));
- sipId = "01c39723-7c0d-4754-8d64-fd9ff412404c";
- nodeRef.setDeviceId(deviceId);
- nepRef.setConnectPoint(cp).setSipId(sipId);
-
- dummyDeviceId = DeviceId.deviceId("dummy");
- dummyPort = 4;
- dummyCp = new ConnectPoint(dummyDeviceId, PortNumber.portNumber(dummyPort));
- dummySipId = "00000000-0000-0000-0000-000000000000";
-
- tapiResolver = new TapiResolver();
- }
-
- @Test
- public void testGetNodeRef() {
- assertThat(nodeRef, is(tapiResolver.addNodeRef(nodeRef).getNodeRef(deviceId)));
- }
-
- @Test
- public void testGetNepRefWithConnectPoint() {
- assertThat(nepRef, is(tapiResolver.addNepRef(nepRef).getNepRef(cp)));
- }
-
- @Test
- public void testGetNepRefWithSipId() {
- assertThat(nepRef, is(tapiResolver.addNepRef(nepRef).getNepRef(sipId)));
- }
-
- @Test(expected = NoSuchElementException.class)
- public void testGetNodeRefWhenEmpty() {
- tapiResolver.getNodeRef(deviceId);
- }
-
- @Test(expected = NoSuchElementException.class)
- public void testGetNepRefWithConnectPointWhenEmpty() {
- tapiResolver.getNepRef(cp);
- }
-
- @Test(expected = NoSuchElementException.class)
- public void testGetNepRefWithSipIdWhenEmpty() {
- tapiResolver.getNepRef(cp);
- }
-
- @Test(expected = NoSuchElementException.class)
- public void testGetNodeRefNotExist() {
- tapiResolver.addNodeRef(nodeRef);
- tapiResolver.getNodeRef(dummyDeviceId);
- }
-
- @Test(expected = NoSuchElementException.class)
- public void testGetNepRefWithConnectPointNotExist() {
- tapiResolver.addNepRef(nepRef);
- tapiResolver.getNepRef(dummyCp);
- }
-
- @Test(expected = NoSuchElementException.class)
- public void testGetNepRefWithSipIdNotExist() {
- tapiResolver.addNepRef(nepRef);
- tapiResolver.getNepRef(dummySipId);
- }
-
-}
\ No newline at end of file