Optical Intent compiler fix and ADVA OLS testing derived adjustments
Change-Id: I986431b751e3ba060cf81f357938b34f3a68f5aa
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
index 2fced48..58c9d49 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
@@ -306,7 +306,10 @@
// Sort available lambdas
List<OchSignal> lambdaList = new ArrayList<>(lambdas);
lambdaList.sort(new DefaultOchSignalComparator());
-
+ //Means there is only exactly one set of lambdas available
+ if (lambdaList.size() == count) {
+ return lambdaList;
+ }
// Look ahead by count and ensure spacing multiplier is as expected (i.e., no gaps)
for (int i = 0; i < lambdaList.size() - count; i++) {
if (lambdaList.get(i).spacingMultiplier() + 2 * count ==
diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceDescriptionDiscovery.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceDescriptionDiscovery.java
index 2c35a29..71e338e 100644
--- a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceDescriptionDiscovery.java
+++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceDescriptionDiscovery.java
@@ -54,6 +54,7 @@
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.SUPPORTED_LAYER_PROTOCOL_QUALIFIER;
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.UUID;
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.getOchSignal;
+import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.removeInitalConnectivityServices;
import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription;
import static org.slf4j.LoggerFactory.getLogger;
@@ -119,9 +120,13 @@
log.error("Can't discover port details at {}", SIP_REQUEST_DATA_API);
return ImmutableList.of();
}
- return parseTapiPorts(jsonNode);
+ List<PortDescription> ports = parseTapiPorts(jsonNode);
+ //Removing any initial connectivity services
+ removeInitalConnectivityServices(deviceId, handler());
+ return ports;
} catch (IOException e) {
log.error("Exception discoverPortDetails() {}", did(), e);
+ removeInitalConnectivityServices(deviceId, handler());
return ImmutableList.of();
}
}
diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceHelper.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceHelper.java
index efbc12d..d73daeb 100644
--- a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceHelper.java
+++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiDeviceHelper.java
@@ -18,16 +18,30 @@
package org.onosproject.drivers.odtn.tapi;
import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectReader;
+import com.google.common.collect.ImmutableSet;
+import org.apache.http.HttpStatus;
+import org.onosproject.drivers.odtn.impl.DeviceConnectionCache;
import org.onosproject.net.ChannelSpacing;
+import org.onosproject.net.DeviceId;
import org.onosproject.net.GridType;
import org.onosproject.net.OchSignal;
+import org.onosproject.net.driver.DriverHandler;
+import org.onosproject.protocol.rest.RestSBController;
import org.slf4j.Logger;
+import javax.ws.rs.core.MediaType;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
+import java.util.concurrent.CompletableFuture;
import java.util.stream.IntStream;
+import static com.google.common.base.Preconditions.checkNotNull;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -55,6 +69,8 @@
public static final String LOWER_FREQUENCY = "lower-frequency";
public static final long BASE_FREQUENCY = 193100000; //Working in Mhz
public static final String TAPI_CONNECTIVITY_CONNECTIVITY_SERVICE = "tapi-connectivity:connectivity-service";
+ public static final String TAPI_CONNECTIVITY_CONNECTIVITY_CONTEXT = "tapi-connectivity:connectivity-context";
+ public static final String CONNECTIVITY_SERVICE = "connectivity-service";
public static final String END_POINT = "end-point";
public static final String SERVICE_LAYER = "service-layer";
public static final String SERVICE_TYPE = "service-type";
@@ -67,12 +83,20 @@
public static final String AVAILABLE_SPECTRUM = "available-spectrum";
protected static final String SUPPORTABLE_SPECTRUM = "supportable-spectrum";
- private TapiDeviceHelper(){}
+ protected static final String CONN_REQ_POST_API = "/restconf/data/tapi-common:context/" +
+ "tapi-connectivity:connectivity-context/";
+ protected static final String CONN_REQ_REMOVE_DATA_API = "/restconf/data/tapi-common:context/" +
+ "tapi-connectivity:connectivity-context/connectivity-service=";
+ protected static final String CONN_REQ_GET_API = "/restconf/data/tapi-common:context/" +
+ "tapi-connectivity:connectivity-context/";
+
+ private TapiDeviceHelper() {
+ }
/**
* Returns the slot granularity corresponding to a channelSpacing.
*
- * @param chSpacing OchSingal channel spacing {@link ChannelSpacing}
+ * @param chSpacing OchSingal channel spacing {@link ChannelSpacing}
* @return OchSignal slot width granularity
*/
public static int getSlotGranularity(ChannelSpacing chSpacing) {
@@ -113,10 +137,10 @@
}
/**
- * To Mbps conversion from Hz.
+ * To Mbps conversion from Hz.
*
- * @param speed the speed in Hz
- * @return the speed in Mbps
+ * @param speed the speed in Hz
+ * @return the speed in Mbps
*/
public static long toMbpsFromHz(long speed) {
return speed / 1000000;
@@ -148,22 +172,41 @@
JsonNode availableSpec = iterAvailable.next();
availableUpperFrec = availableSpec.get(UPPER_FREQUENCY).asLong();
availableLowerFrec = availableSpec.get(LOWER_FREQUENCY).asLong();
- log.info("availableUpperFrec {}, availableLowerFrec {}", availableUpperFrec,
+ log.debug("availableUpperFrec {}, availableLowerFrec {}", availableUpperFrec,
availableLowerFrec);
availableAdjustmentGranularity = availableSpec.get(FREQUENCY_CONSTRAINT)
.get(ADJUSTMENT_GRANULARITY).textValue();
availableGridType = availableSpec.get(FREQUENCY_CONSTRAINT).get(GRID_TYPE).textValue();
-
+ log.debug("adjustment {}, availableLowerFrec {}", availableUpperFrec,
+ availableLowerFrec);
int slotGranularity;
ChannelSpacing chSpacing = getChannelSpacing(availableAdjustmentGranularity);
- double spacingFrequency = chSpacing.frequency().asGHz();
+ double spacingFrequency = chSpacing.frequency().asMHz();
int lambdaCount = (int) ((availableUpperFrec - availableLowerFrec) / spacingFrequency);
GridType gridType = GridType.valueOf(availableGridType);
if (gridType == GridType.DWDM) {
slotGranularity = getSlotGranularity(chSpacing);
int finalSlotGranularity = slotGranularity;
- IntStream.range(0, lambdaCount).forEach(x -> lambdas.add(new OchSignal(GridType.DWDM, chSpacing,
- x - (lambdaCount / 2), finalSlotGranularity)));
+ long finalAvailableUpperFrec = availableUpperFrec;
+ long finalAvailableLowerFrec = availableLowerFrec;
+ IntStream.range(0, lambdaCount).forEach(x -> {
+ int spacingMultiplier = 0;
+ if (finalAvailableUpperFrec > BASE_FREQUENCY) {
+ spacingMultiplier = (int) (((finalAvailableUpperFrec -
+ (chSpacing.frequency().asMHz() * lambdaCount * x) - slotGranularity / 2)
+ - BASE_FREQUENCY) / (chSpacing.frequency().asMHz()));
+ } else {
+ spacingMultiplier = (int) ((BASE_FREQUENCY - (finalAvailableLowerFrec +
+ (chSpacing.frequency().asMHz() * lambdaCount * x) + slotGranularity / 2))
+ / (chSpacing.frequency().asMHz()));
+ }
+ OchSignal ochSignal = new OchSignal(GridType.DWDM, chSpacing,
+ spacingMultiplier, finalSlotGranularity);
+ log.debug("Spacing Freq {}, LambdaCount {}, FinalSlotGran {}, Spacing mult {}, CentralFreq {}",
+ spacingFrequency, lambdaCount, finalSlotGranularity, spacingMultiplier,
+ ochSignal.centralFrequency());
+ lambdas.add(ochSignal);
+ });
} else if (gridType == GridType.CWDM) {
log.warn("GridType CWDM. Not implemented");
} else if (gridType == GridType.FLEX) {
@@ -174,4 +217,73 @@
}
return lambdas;
}
+
+ static DeviceConnectionCache getConnectionCache() {
+ return DeviceConnectionCache.init();
+ }
+
+ protected static Set<String> getUuids(DeviceId deviceId, DriverHandler handler) {
+ RestSBController controller = checkNotNull(handler.get(RestSBController.class));
+ ObjectMapper om = new ObjectMapper();
+ final ObjectReader reader = om.reader();
+ InputStream response = controller.get(deviceId, CONN_REQ_GET_API, MediaType.APPLICATION_JSON_TYPE);
+ JsonNode jsonNode;
+ try {
+ jsonNode = reader.readTree(response);
+ if (jsonNode == null) {
+ log.error("JsonNode is null for response {}", response);
+ return ImmutableSet.of();
+ }
+ return parseTapiGetConnectivityRequest(jsonNode);
+ } catch (IOException e) {
+ log.error("Exception while reading response {}", response, e);
+ return ImmutableSet.of();
+ }
+ }
+
+ protected static Set<String> parseTapiGetConnectivityRequest(JsonNode tapiConnectivityReply) {
+ /*
+ {
+ "tapi-connectivity:connectivity-context": {
+ "connectivity-service": [
+ {
+ "uuid": "f4088e82-e8bd-4d00-a96c-40d9fcfa1d4d",
+ ......
+ ]
+ }
+ }
+ */
+ Set<String> uuids = new HashSet<>();
+ if (tapiConnectivityReply.has(TAPI_CONNECTIVITY_CONNECTIVITY_CONTEXT)
+ && tapiConnectivityReply.get(TAPI_CONNECTIVITY_CONNECTIVITY_CONTEXT).has(CONNECTIVITY_SERVICE)) {
+ tapiConnectivityReply.get(TAPI_CONNECTIVITY_CONNECTIVITY_CONTEXT).get(CONNECTIVITY_SERVICE).elements()
+ .forEachRemaining(node -> uuids.add(node.get(TapiDeviceHelper.UUID).asText()));
+ } else {
+ log.warn("Can't retrieve connectivity UUID from {}", tapiConnectivityReply);
+ }
+ //This is only one uuid or empty in case of failures
+ return uuids;
+ }
+
+ protected static void removeInitalConnectivityServices(DeviceId deviceId, DriverHandler handler) {
+ RestSBController controller = checkNotNull(handler.get(RestSBController.class));
+ //If no connections are there removing all previous (if any) connections during first installation
+ if (getConnectionCache().size(deviceId) == 0) {
+ Set<String> uuids = getUuids(deviceId, handler);
+ uuids.forEach(uuid -> {
+ CompletableFuture<Integer> flowRemoval =
+ CompletableFuture.supplyAsync(() -> controller.delete(deviceId,
+ CONN_REQ_REMOVE_DATA_API + uuid,
+ null, MediaType.APPLICATION_JSON_TYPE));
+ flowRemoval.thenApply(result -> {
+ if (result == HttpStatus.SC_NO_CONTENT || result == HttpStatus.SC_OK) {
+ log.info("Removed connectivity service {} from {}, result {}", uuid, deviceId, result);
+ } else {
+ log.error("Can't remove connectivity service {}, result {}", uuid, result);
+ }
+ return result;
+ });
+ });
+ }
+ }
}
diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammable.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammable.java
index ce09453..36e0e6c 100644
--- a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammable.java
+++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammable.java
@@ -20,7 +20,6 @@
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.collect.ImmutableList;
import org.apache.http.HttpStatus;
import org.onosproject.drivers.odtn.impl.DeviceConnection;
@@ -45,13 +44,14 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.CONN_REQ_POST_API;
+import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.CONN_REQ_REMOVE_DATA_API;
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.END_POINT;
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.LAYER_PROTOCOL_NAME;
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.LAYER_PROTOCOL_QUALIFIER;
@@ -64,6 +64,8 @@
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.SERVICE_TYPE;
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.TAPI_CONNECTIVITY_CONNECTIVITY_SERVICE;
import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.TAPI_PHOTONIC_MEDIA_PHOTONIC_LAYER_QUALIFIER_NMC;
+import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.getConnectionCache;
+import static org.onosproject.drivers.odtn.tapi.TapiDeviceHelper.getUuids;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -75,47 +77,13 @@
implements FlowRuleProgrammable {
private static final Logger log = getLogger(TapiFlowRuleProgrammable.class);
- private static final String CONN_REQ_POST_API = "/restconf/data/tapi-common:context/" +
- "tapi-connectivity:connectivity-context/";
- private static final String CONN_REQ_REMOVE_DATA_API = "/restconf/data/tapi-common:context/" +
- "tapi-connectivity:connectivity-context/connectivity-service=";
- private static final String CONN_REQ_GET_API = "/restconf/data/tapi-common:context/" +
- "tapi-connectivity:connectivity-context/";
@Override
public Collection<FlowEntry> getFlowEntries() {
DeviceId deviceId = did();
//TODO this is a blocking call on ADVA OLS, right now using cache.
-// RestSBController controller = checkNotNull(handler().get(RestSBController.class));
-// ObjectMapper om = new ObjectMapper();
-// final ObjectReader reader = om.reader();
-// InputStream response = controller.get(deviceId, CONN_REQ_GET_API, MediaType.APPLICATION_JSON_TYPE);
-// JsonNode jsonNode = null;
-// try {
-// jsonNode = reader.readTree(response);
-// if (jsonNode == null) {
-// log.error("JsonNode is null for response {}", response);
-// return ImmutableList.of();
-// }
-// Set<String> uuids = parseTapiGetConnectivityRequest(jsonNode);
-// DeviceConnectionCache cache = getConnectionCache();
-// if (cache.get(deviceId) == null) {
-// return ImmutableList.of();
-// }
-// List<FlowEntry> entries = new ArrayList<>();
-// uuids.forEach(uuid -> {
-// FlowRule rule = cache.get(deviceId, uuid);
-// if (rule != null) {
-// entries.add(new DefaultFlowEntry(rule, FlowEntry.FlowEntryState.ADDED, 0, 0, 0));
-// } else {
-// log.info("Non existing rule for uuid {}", uuid);
-// }
-// });
-// return entries;
-// } catch (IOException e) {
-// return ImmutableList.of();
-// }
+ //return getFlowsFromConnectivityServices(deviceId);
List<FlowEntry> entries = new ArrayList<>();
Set<FlowRule> rules = getConnectionCache().get(deviceId);
if (rules != null) {
@@ -135,21 +103,23 @@
String uuid = createUuid();
ByteArrayOutputStream applyConnectivityRequest = createConnectivityRequest(uuid, flowRule);
if (applyConnectivityRequest.size() != 0) {
- CompletableFuture<Integer> flowInstallation =
+ log.debug("Connectivity request {}", applyConnectivityRequest.toString());
+ CompletableFuture<Integer> flowInstallation =
CompletableFuture.supplyAsync(() -> controller.post(deviceId, CONN_REQ_POST_API,
- new ByteArrayInputStream(applyConnectivityRequest.toByteArray()),
- MediaType.APPLICATION_JSON_TYPE));
+ new ByteArrayInputStream(applyConnectivityRequest.toByteArray()),
+ MediaType.APPLICATION_JSON_TYPE));
+ log.debug("Added {} to {}", flowRule, deviceId);
+ getConnectionCache().add(deviceId, uuid, flowRule);
+ added.add(flowRule);
flowInstallation.thenApply(result -> {
- if (result == HttpStatus.SC_CREATED) {
- getConnectionCache().add(deviceId, uuid, flowRule);
- added.add(flowRule);
+ if (result == HttpStatus.SC_CREATED || result == HttpStatus.SC_OK) {
+ log.info("Added {} to deviceId {}", flowRule, deviceId);
} else {
- log.error("Can't add flow {}, result {}", flowRule, result);
+ log.error("Can't add flow {}, result {}", flowRule, result);
+ getConnectionCache().remove(deviceId, flowRule);
}
return result;
});
- // TODO retrieve the UUID from the location and store with that identifier
- // at the moment is implied that the sent one is the same used by the TAPI server.
}
});
//TODO workaround for blocking call on ADVA OLS should return added
@@ -168,11 +138,11 @@
flowRule.id(), deviceId);
return;
}
- CompletableFuture<Integer> flowInstallation =
+ CompletableFuture<Integer> flowRemoval =
CompletableFuture.supplyAsync(() -> controller.delete(deviceId,
CONN_REQ_REMOVE_DATA_API + conn.getId(),
null, MediaType.APPLICATION_JSON_TYPE));
- flowInstallation.thenApply(result -> {
+ flowRemoval.thenApply(result -> {
if (result == HttpStatus.SC_NO_CONTENT) {
getConnectionCache().remove(deviceId, flowRule);
removed.add(flowRule);
@@ -195,31 +165,28 @@
return handler().data().deviceId();
}
- private DeviceConnectionCache getConnectionCache() {
- return DeviceConnectionCache.init();
+ //Currently uused because get is a blocking call on ADVA
+ private Collection<FlowEntry> getFlowsFromConnectivityServices(DeviceId deviceId) {
+ Set<String> uuids = getUuids(deviceId, handler());
+ if (uuids.isEmpty()) {
+ return ImmutableList.of();
+ }
+ DeviceConnectionCache cache = getConnectionCache();
+ if (cache.get(deviceId) == null) {
+ return ImmutableList.of();
+ }
+ List<FlowEntry> entries = new ArrayList<>();
+ uuids.forEach(uuid -> {
+ FlowRule rule = cache.get(deviceId, uuid);
+ if (rule != null) {
+ entries.add(new DefaultFlowEntry(rule, FlowEntry.FlowEntryState.ADDED, 0, 0, 0));
+ } else {
+ log.info("Non existing rule for uuid {}", uuid);
+ }
+ });
+ return entries;
}
- protected Set<String> parseTapiGetConnectivityRequest(JsonNode tapiConnectivityReply) {
- /*
- {
- "tapi-connectivity:connectivity-service":[
- {
- "uuid":"ffb006d4-349e-4d2f-817e-0906c88458d0",
- <other fields>
- }
- ]
- }
- */
- Set<String> uuids = new HashSet<>();
- if (tapiConnectivityReply.has(TAPI_CONNECTIVITY_CONNECTIVITY_SERVICE)) {
- tapiConnectivityReply.get(TAPI_CONNECTIVITY_CONNECTIVITY_SERVICE).elements()
- .forEachRemaining(node -> uuids.add(node.get(TapiDeviceHelper.UUID).asText()));
- } else {
- log.warn("Can't retrieve connectivity UUID from {}", tapiConnectivityReply);
- }
- //This is only one uuid or empty in case of failures
- return uuids;
- }
ByteArrayOutputStream createConnectivityRequest(String uuid, FlowRule rule) {
/*
@@ -272,8 +239,9 @@
generator.writeStringField(SERVICE_LAYER, PHOTONIC_MEDIA);
generator.writeStringField(SERVICE_TYPE, POINT_TO_POINT_CONNECTIVITY);
generator.writeArrayFieldStart(END_POINT);
- addEndPoint(generator, inputPortUuid);
- addEndPoint(generator, outputPortUuid);
+ //ADVA OLS requires these to be 1,2 for every connection
+ addEndPoint(generator, inputPortUuid, 1);
+ addEndPoint(generator, outputPortUuid, 2);
generator.writeEndArray();
generator.writeEndObject();
generator.writeEndArray();
@@ -290,6 +258,7 @@
JsonFactory factory = new JsonFactory();
return factory.createGenerator(stream, JsonEncoding.UTF8);
}
+
/*
{
"local-id":"1",
@@ -300,9 +269,10 @@
}
}
*/
- private void addEndPoint(JsonGenerator generator, String sipUuid) throws IOException {
+ private void addEndPoint(JsonGenerator generator, String sipUuid, int localId) throws IOException {
generator.writeStartObject();
- generator.writeStringField(LOCAL_ID, sipUuid);
+ //ADVA OLS requires Local-id to be integer incremental numbers
+ generator.writeStringField(LOCAL_ID, Integer.toString(localId));
generator.writeStringField(LAYER_PROTOCOL_NAME, PHOTONIC_MEDIA);
generator.writeStringField(LAYER_PROTOCOL_QUALIFIER,
TAPI_PHOTONIC_MEDIA_PHOTONIC_LAYER_QUALIFIER_NMC);
diff --git a/drivers/odtn-driver/src/test/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammableTest.java b/drivers/odtn-driver/src/test/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammableTest.java
index a3128af..c0fdff4 100644
--- a/drivers/odtn-driver/src/test/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammableTest.java
+++ b/drivers/odtn-driver/src/test/java/org/onosproject/drivers/odtn/tapi/TapiFlowRuleProgrammableTest.java
@@ -113,16 +113,16 @@
private static final String CONNECTIVITY_REQUEST = "{\"tapi-connectivity:connectivity-service\":" +
"[{\"uuid\":\"" + CONNECTION_UUID + "\",\"service-layer\":\"PHOTONIC_MEDIA\",\"service-type\"" +
- ":\"POINT_TO_POINT_CONNECTIVITY\",\"end-point\":[{\"local-id\":\"" + END_POINT_1_UUID + "\"," +
+ ":\"POINT_TO_POINT_CONNECTIVITY\",\"end-point\":[{\"local-id\":\"" + 1 + "\"," +
"\"layer-protocol-name\":" + "\"PHOTONIC_MEDIA\",\"layer-protocol-qualifier\":" +
"\"tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC\"," + "\"service-interface-point\":" +
"{\"service-interface-point-uuid\":\"" + END_POINT_1_UUID + "\"}}," +
- "{\"local-id\":\"" + END_POINT_2_UUID + "\",\"layer-protocol-name\":\"PHOTONIC_MEDIA\"," +
+ "{\"local-id\":\"" + 2 + "\",\"layer-protocol-name\":\"PHOTONIC_MEDIA\"," +
"\"layer-protocol-qualifier\":" + "\"tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC\"," +
"\"service-interface-point\":{" + "\"service-interface-point-uuid\":\"" + END_POINT_2_UUID + "\"}}]}]}";
- private static final String GET_CONNECTIVITY_REQUEST_REPLY = "{\"tapi-connectivity:connectivity-service\" : " +
- "[{\"uuid\" : \"" + CONNECTION_UUID + "\"}]}";
+ private static final String GET_CONNECTIVITY_REQUEST_REPLY = "{\"tapi-connectivity:connectivity-context\": " +
+ "{\"connectivity-service\" : [{\"uuid\" : \"" + CONNECTION_UUID + "\"}]}}}";
private static final Set<String> CONNECTION_UUIDS = ImmutableSet.of(CONNECTION_UUID);
@@ -144,10 +144,9 @@
@Test
public void parseConnReply() throws IOException {
- TapiFlowRuleProgrammable tapiFrp = new TapiFlowRuleProgrammable();
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonReply = mapper.readTree(GET_CONNECTIVITY_REQUEST_REPLY);
- Set<String> output = tapiFrp.parseTapiGetConnectivityRequest(jsonReply);
+ Set<String> output = TapiDeviceHelper.parseTapiGetConnectivityRequest(jsonReply);
assertEquals("Wrong Tapi UUIDS", CONNECTION_UUIDS, output);
}