Refactor PCE and PCEP test adapters to remove redundant classes
Change-Id: I407c3dcd42588c03ba7f5c438d0bf61409d64d69
diff --git a/providers/pcep/topology/BUCK b/providers/pcep/topology/BUCK
index dbb033a..2299326 100644
--- a/providers/pcep/topology/BUCK
+++ b/providers/pcep/topology/BUCK
@@ -13,6 +13,13 @@
'//lib:netty',
]
+TEST_DEPS = [
+ '//lib:TEST',
+ '//protocols/pcep/server/api:onos-protocols-pcep-server-api-tests',
+ '//apps/pcep-api:onos-apps-pcep-api-tests',
+]
+
osgi_jar_with_tests (
deps = COMPILE_DEPS,
+ test_deps = TEST_DEPS,
)
diff --git a/providers/pcep/topology/pom.xml b/providers/pcep/topology/pom.xml
index c7f6e46..583615f 100644
--- a/providers/pcep/topology/pom.xml
+++ b/providers/pcep/topology/pom.xml
@@ -43,5 +43,19 @@
<artifactId>onos-optical-model</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-pcep-server-api</artifactId>
+ <version>${project.version}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-apps-pcep-api</artifactId>
+ <version>${project.version}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientAdapter.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientAdapter.java
deleted file mode 100644
index 5174091..0000000
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientAdapter.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright 2016-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.provider.pcep.topology.impl;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.RejectedExecutionException;
-
-import org.jboss.netty.channel.Channel;
-import org.onosproject.pcep.server.ClientCapability;
-import org.onosproject.pcep.server.PccId;
-import org.onosproject.pcep.server.LspKey;
-import org.onosproject.pcep.server.PcepClient;
-import org.onosproject.pcep.server.PcepSyncStatus;
-import org.onosproject.pcepio.protocol.PcepFactories;
-import org.onosproject.pcepio.protocol.PcepFactory;
-import org.onosproject.pcepio.protocol.PcepMessage;
-import org.onosproject.pcepio.protocol.PcepStateReport;
-import org.onosproject.pcepio.protocol.PcepVersion;
-
-/**
- * Representation of PCEP client adapter.
- */
-public class PcepClientAdapter implements PcepClient {
-
- private Channel channel;
- protected String channelId;
-
- private boolean connected;
- private PccId pccId;
- private ClientCapability capability;
-
- private PcepVersion pcepVersion;
- private PcepSyncStatus lspDbSyncStatus;
- private PcepSyncStatus labelDbSyncStatus;
- private Map<LspKey, Boolean> lspDelegationInfo = new HashMap<>();
-
- /**
- * Initialize instance with specified parameters.
- *
- * @param pccId PCC id
- * @param pcepVersion PCEP message version
- */
- public void init(PccId pccId, PcepVersion pcepVersion) {
- this.pccId = pccId;
- this.pcepVersion = pcepVersion;
- }
-
- @Override
- public final void disconnectClient() {
- this.channel.close();
- }
-
- @Override
- public final void sendMessage(PcepMessage m) {
- }
-
- @Override
- public final void sendMessage(List<PcepMessage> msgs) {
- try {
- PcepMessage pcepMsg = msgs.get(0);
- assertNotNull("PCEP MSG should be created.", pcepMsg);
- } catch (RejectedExecutionException e) {
- throw e;
- }
- }
-
- @Override
- public final boolean isConnected() {
- return this.connected;
- }
-
- @Override
- public String channelId() {
- return channelId;
- }
-
- @Override
- public final PccId getPccId() {
- return this.pccId;
- }
-
- @Override
- public final String getStringId() {
- return this.pccId.toString();
- }
-
- @Override
- public final void handleMessage(PcepMessage m) {
- }
-
- @Override
- public boolean isOptical() {
- return false;
- }
-
- @Override
- public PcepFactory factory() {
- return PcepFactories.getFactory(pcepVersion);
- }
-
- @Override
- public void setLspDbSyncStatus(PcepSyncStatus syncStatus) {
- this.lspDbSyncStatus = syncStatus;
- }
-
- @Override
- public PcepSyncStatus lspDbSyncStatus() {
- return lspDbSyncStatus;
- }
-
- @Override
- public void setLabelDbSyncStatus(PcepSyncStatus syncStatus) {
- this.labelDbSyncStatus = syncStatus;
- }
-
- @Override
- public PcepSyncStatus labelDbSyncStatus() {
- return labelDbSyncStatus;
- }
-
- @Override
- public void setCapability(ClientCapability capability) {
- this.capability = capability;
- }
-
- @Override
- public ClientCapability capability() {
- return capability;
- }
-
- @Override
- public void addNode(PcepClient pc) {
- }
-
- @Override
- public void deleteNode(PccId pccId) {
- }
-
- @Override
- public void setLspAndDelegationInfo(LspKey lspKey, boolean dFlag) {
- lspDelegationInfo.put(lspKey, dFlag);
- }
-
- @Override
- public Boolean delegationInfo(LspKey lspKey) {
- return lspDelegationInfo.get(lspKey);
- }
-
- @Override
- public void initializeSyncMsgList(PccId pccId) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public List<PcepStateReport> getSyncMsgList(PccId pccId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void removeSyncMsgList(PccId pccId) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void addSyncMsgToList(PccId pccId, PcepStateReport rptMsg) {
- // TODO Auto-generated method stub
-
- }
-}
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientControllerAdapter.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientControllerAdapter.java
deleted file mode 100644
index 5e3a58e..0000000
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientControllerAdapter.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * Copyright 2016-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.provider.pcep.topology.impl;
-
-
-
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.onlab.packet.IpAddress;
-import org.onosproject.incubator.net.tunnel.DefaultLabelStack;
-import org.onosproject.incubator.net.tunnel.LabelStack;
-import org.onosproject.incubator.net.tunnel.Tunnel;
-import org.onosproject.net.Path;
-import org.onosproject.pcep.server.ClientCapability;
-import org.onosproject.pcep.server.PccId;
-import org.onosproject.pcep.server.PcepClient;
-import org.onosproject.pcep.server.PcepClientController;
-import org.onosproject.pcep.server.PcepClientListener;
-import org.onosproject.pcep.server.PcepEventListener;
-import org.onosproject.pcep.server.PcepNodeListener;
-import org.onosproject.pcep.server.driver.PcepAgent;
-import org.onosproject.pcepio.protocol.PcepError;
-import org.onosproject.pcepio.protocol.PcepErrorInfo;
-import org.onosproject.pcepio.protocol.PcepErrorMsg;
-import org.onosproject.pcepio.protocol.PcepErrorObject;
-import org.onosproject.pcepio.protocol.PcepFactory;
-import org.onosproject.pcepio.protocol.PcepMessage;
-import org.onosproject.pcepio.protocol.PcepVersion;
-import org.onosproject.pcepio.types.PcepValueType;
-
-import com.google.common.collect.Sets;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.onosproject.pcepio.types.PcepErrorDetailInfo.ERROR_TYPE_19;
-import static org.onosproject.pcepio.types.PcepErrorDetailInfo.ERROR_VALUE_5;
-
-/**
- * Representation of PCEP client controller adapter.
- */
-public class PcepClientControllerAdapter implements PcepClientController {
-
- protected ConcurrentHashMap<PccId, PcepClient> connectedClients =
- new ConcurrentHashMap<PccId, PcepClient>();
-
- protected PcepClientAgent agent = new PcepClientAgent();
- protected Set<PcepClientListener> pcepClientListener = new HashSet<>();
-
- protected Set<PcepEventListener> pcepEventListener = Sets.newHashSet();
- public Set<PcepNodeListener> pcepNodeListener = Sets.newHashSet();
-
- @Activate
- public void activate() {
- }
-
- @Deactivate
- public void deactivate() {
- }
-
- @Override
- public Collection<PcepClient> getClients() {
- return connectedClients.values();
- }
-
- @Override
- public PcepClient getClient(PccId pccId) {
- if (null != connectedClients.get(pccId)) {
- return connectedClients.get(pccId);
- }
- PcepClientAdapter pc = new PcepClientAdapter();
- if (pccId.ipAddress().equals(IpAddress.valueOf(0xC010103))
- || pccId.ipAddress().equals(IpAddress.valueOf(0xB6024E22))) {
- pc.setCapability(new ClientCapability(true, false, false, false, false));
- } else {
- pc.setCapability(new ClientCapability(true, true, true, false, false));
- }
- pc.init(PccId.pccId(pccId.ipAddress()), PcepVersion.PCEP_1);
- connectedClients.put(pccId, pc);
- return pc;
- }
-
- @Override
- public void addListener(PcepClientListener listener) {
- if (!pcepClientListener.contains(listener)) {
- this.pcepClientListener.add(listener);
- }
- }
-
- @Override
- public void addNodeListener(PcepNodeListener listener) {
- pcepNodeListener.add(listener);
- }
-
- @Override
- public void removeNodeListener(PcepNodeListener listener) {
- pcepNodeListener.remove(listener);
- }
-
- @Override
- public void removeListener(PcepClientListener listener) {
- this.pcepClientListener.remove(listener);
- }
-
- @Override
- public void addEventListener(PcepEventListener listener) {
- pcepEventListener.add(listener);
- }
-
- @Override
- public void removeEventListener(PcepEventListener listener) {
- pcepEventListener.remove(listener);
- }
-
- @Override
- public void writeMessage(PccId pccId, PcepMessage msg) {
- this.getClient(pccId).sendMessage(msg);
- }
-
- @Override
- public void processClientMessage(PccId pccId, PcepMessage msg) {
-
- PcepClient pc = getClient(pccId);
-
- switch (msg.getType()) {
- case NONE:
- break;
- case OPEN:
- break;
- case KEEP_ALIVE:
- //log.debug("Sending Keep Alive Message to {" + pccIpAddress.toString() + "}");
- pc.sendMessage(Collections.singletonList(pc.factory().buildKeepaliveMsg().build()));
- break;
- case PATH_COMPUTATION_REQUEST:
- break;
- case PATH_COMPUTATION_REPLY:
- break;
- case NOTIFICATION:
- break;
- case ERROR:
- break;
- case CLOSE:
- //log.debug("Sending Close Message to { }", pccIpAddress.toString());
- pc.sendMessage(Collections.singletonList(pc.factory().buildCloseMsg().build()));
- break;
- case INITIATE:
- if (!pc.capability().pcInstantiationCapability()) {
- pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
- ERROR_TYPE_19, ERROR_VALUE_5)));
- }
- break;
- case REPORT:
- //Only update the listener if respective capability is supported else send PCEP-ERR msg
- if (pc.capability().statefulPceCapability()) {
- for (PcepEventListener l : pcepEventListener) {
- l.handleMessage(pccId, msg);
- }
- } else {
- // Send PCEP-ERROR message.
- pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
- ERROR_TYPE_19, ERROR_VALUE_5)));
- }
- break;
- case UPDATE:
- if (!pc.capability().statefulPceCapability()) {
- pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
- ERROR_TYPE_19, ERROR_VALUE_5)));
- }
- break;
- case LABEL_UPDATE:
- if (!pc.capability().pceccCapability()) {
- pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
- ERROR_TYPE_19, ERROR_VALUE_5)));
- }
- break;
- case MAX:
- break;
- case END:
- break;
- default:
- break;
- }
- }
-
- @Override
- public void closeConnectedClients() {
- PcepClient pc;
- for (PccId id : connectedClients.keySet()) {
- pc = getClient(id);
- pc.disconnectClient();
- }
- }
-
- private PcepErrorMsg getErrMsg(PcepFactory factory, byte errorType, byte errorValue) {
- LinkedList<PcepError> llPcepErr = new LinkedList<>();
-
- LinkedList<PcepErrorObject> llerrObj = new LinkedList<>();
- PcepErrorMsg errMsg;
-
- PcepErrorObject errObj = factory.buildPcepErrorObject().setErrorValue(errorValue).setErrorType(errorType)
- .build();
-
- llerrObj.add(errObj);
- PcepError pcepErr = factory.buildPcepError().setErrorObjList(llerrObj).build();
-
- llPcepErr.add(pcepErr);
-
- PcepErrorInfo errInfo = factory.buildPcepErrorInfo().setPcepErrorList(llPcepErr).build();
-
- errMsg = factory.buildPcepErrorMsg().setPcepErrorInfo(errInfo).build();
- return errMsg;
- }
-
- /**
- * Implementation of an Pcep Agent which is responsible for
- * keeping track of connected clients and the state in which
- * they are.
- */
- public class PcepClientAgent implements PcepAgent {
-
- @Override
- public boolean addConnectedClient(PccId pccId, PcepClient pc) {
-
- if (connectedClients.get(pccId) != null) {
- return false;
- } else {
- connectedClients.put(pccId, pc);
- for (PcepClientListener l : pcepClientListener) {
- l.clientConnected(pccId);
- }
- return true;
- }
- }
-
- @Override
- public boolean validActivation(PccId pccId) {
- if (connectedClients.get(pccId) == null) {
- //log.error("Trying to activate client but is not in "
- // + "connected switches: pccIp {}. Aborting ..", pccIpAddress.toString());
- return false;
- }
-
- return true;
- }
-
- @Override
- public void removeConnectedClient(PccId pccId) {
- connectedClients.remove(pccId);
- for (PcepClientListener l : pcepClientListener) {
- //log.warn("removal for {}", pccIpAddress.toString());
- l.clientDisconnected(pccId);
- }
- }
-
- @Override
- public void processPcepMessage(PccId pccId, PcepMessage m) {
- processClientMessage(pccId, m);
- }
-
- @Override
- public void addNode(PcepClient pc) {
- for (PcepNodeListener l : pcepNodeListener) {
- l.addDevicePcepConfig(pc);
- }
- }
-
- @Override
- public void deleteNode(PccId pccId) {
- for (PcepNodeListener l : pcepNodeListener) {
- l.deleteDevicePcepConfig(pccId);
- }
- }
-
- @Override
- public boolean analyzeSyncMsgList(PccId pccId) {
- // TODO Auto-generated method stub
- return false;
- }
- }
-
- @Override
- public LabelStack computeLabelStack(Path path) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public LinkedList<PcepValueType> createPcepLabelStack(DefaultLabelStack labelStack, Path path) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Map<String, List<String>> getPcepExceptions() {
- return null;
- }
-
- @Override
- public Map<Integer, Integer> getPcepErrorMsg() {
- return null;
- }
-
- @Override
- public Map<String, String> getPcepSessionMap() {
- return null;
- }
-
- @Override
- public Map<String, Byte> getPcepSessionIdMap() {
- return null;
- }
-
- @Override
- public void peerErrorMsg(String peerId, Integer errorType, Integer errValue) {
- return;
- }
-
-
- @Override
- public boolean allocateLocalLabel(Tunnel tunnel) {
- // TODO Auto-generated method stub
- return false;
- }
-}
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepControllerAdapter.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepControllerAdapter.java
deleted file mode 100644
index 086bbf1..0000000
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepControllerAdapter.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2016-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.provider.pcep.topology.impl;
-
-import org.onosproject.net.DeviceId;
-import org.onosproject.pcep.api.PcepController;
-import org.onosproject.pcep.api.PcepDpid;
-import org.onosproject.pcep.api.PcepLinkListener;
-import org.onosproject.pcep.api.PcepSwitch;
-import org.onosproject.pcep.api.PcepSwitchListener;
-import org.onosproject.pcep.api.PcepTunnel;
-import org.onosproject.pcep.api.PcepTunnelListener;
-
-/**
- * Implementation of PCEP controller.
- */
-public class PcepControllerAdapter implements PcepController {
-
- @Override
- public Iterable<PcepSwitch> getSwitches() {
- return null;
- }
-
- @Override
- public PcepSwitch getSwitch(PcepDpid did) {
- return null;
- }
-
- @Override
- public void addListener(PcepSwitchListener listener) {
-
- }
-
- @Override
- public void removeListener(PcepSwitchListener listener) {
- }
-
- @Override
- public void addLinkListener(PcepLinkListener listener) {
- }
-
- @Override
- public void removeLinkListener(PcepLinkListener listener) {
- }
-
- @Override
- public void addTunnelListener(PcepTunnelListener listener) {
- }
-
- @Override
- public void removeTunnelListener(PcepTunnelListener listener) {
- }
-
- @Override
- public PcepTunnel applyTunnel(DeviceId srcDid, DeviceId dstDid, long srcPort, long dstPort, long bandwidth,
- String name) {
- return null;
- }
-
- @Override
- public Boolean deleteTunnel(String id) {
- return null;
- }
-
- @Override
- public Boolean updateTunnelBandwidth(String id, long bandwidth) {
- return null;
- }
-
- @Override
- public void getTunnelStatistics(String pcepTunnelId) {
-
- }
-}
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java
index 991122d..84231e0 100644
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java
+++ b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java
@@ -12,15 +12,10 @@
*/
package org.onosproject.provider.pcep.topology.impl;
-import static org.onosproject.net.Link.State.ACTIVE;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -50,18 +45,24 @@
import org.onosproject.net.link.LinkProviderService;
import org.onosproject.net.provider.ProviderId;
import org.onosproject.pcep.api.DeviceCapability;
+import org.onosproject.pcep.api.PcepControllerAdapter;
import org.onosproject.pcep.server.ClientCapability;
import org.onosproject.pcep.server.PccId;
import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepClientControllerAdapter;
import org.onosproject.pcep.server.PcepNodeListener;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNull.nullValue;
+import static org.onosproject.net.Link.State.ACTIVE;
/**
* Test for PCEP topology provider.
*/