Bug-2171: pcc-mock - logging level configuration 74/12074/1
authorMilos Fabian <milfabia@cisco.com>
Fri, 10 Oct 2014 08:42:02 +0000 (10:42 +0200)
committerMilos Fabian <milfabia@cisco.com>
Mon, 20 Oct 2014 12:10:41 +0000 (12:10 +0000)
+ Default logging level is INFO
+ New optional command line parametter --log-level <LEVEL>
+ Varied level of log statement

-other minor fixes:
+ SymbolicPathName contains ingress IP address too.
     + Fixed issue with ByteBuffer sometimes exceeding String size.

Change-Id: Id1ded1c75d2dfc173d88c8372d7ce7e621a19aab
Signed-off-by: Milos Fabian <milfabia@cisco.com>
(cherry picked from commit 3498eac61c0ce5792631be804de6cf238c07585c)

pcep/pcc-mock/pom.xml
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/Main.java
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/MsgBuilderUtil.java
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/SimpleSessionListener.java
pcep/pcc-mock/src/test/java/org/opendaylight/protocol/pcep/pcc/mock/PCCMockTest.java
pcep/pcc-mock/src/test/java/org/opendaylight/protocol/pcep/pcc/mock/SimpleSessionListenerTest.java
pcep/topology-provider/src/test/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListenerTest.java

index bbf543e3f4871d06e0ec44514d52accc94443699..f7477fa0a614700ef7de1d2aa3042ab01e180868 100644 (file)
@@ -68,7 +68,6 @@
     <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
-      <scope>runtime</scope>
     </dependency>
     <dependency>
        <groupId>org.opendaylight.yangtools.model</groupId>
       </plugin>
     </plugins>
   </build>
-</project>
\ No newline at end of file
+</project>
index 9bda4d5990f80ce782af7995df70a3d5a907a5d8..721732d4edff239e54087712b6adc19fc8406f55 100644 (file)
@@ -8,7 +8,11 @@
 
 package org.opendaylight.protocol.pcep.pcc.mock;
 
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.LoggerContext;
 import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
 import com.google.common.net.InetAddresses;
 import io.netty.util.concurrent.DefaultPromise;
 import io.netty.util.concurrent.GlobalEventExecutor;
@@ -42,7 +46,7 @@ public final class Main {
     public static void main(String[] args) throws InterruptedException, ExecutionException, UnknownHostException {
 
         if (args.length < 2) {
-            LOG.info("Insufficient number of arguments {}.", args.length);
+            LOG.error("Insufficient number of arguments {}.", args.length);
             return;
         }
 
@@ -51,24 +55,23 @@ public final class Main {
         int pccCount = 1;
         int lsps = 1;
         boolean pcError = false;
+        final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
 
+        getRootLogger(lc).setLevel(ch.qos.logback.classic.Level.INFO);
         int argIdx = 0;
         while (argIdx < args.length) {
             if (args[argIdx].equals("--local-address")) {
-                localAddress = InetAddress.getByName(args[argIdx + 1]);
-                argIdx++;
+                localAddress = InetAddress.getByName(args[++argIdx]);
             } else if (args[argIdx].equals("--remote-address")) {
-                remoteAddress = InetAddress.getByName(args[argIdx + 1]);
-                argIdx++;
+                remoteAddress = InetAddress.getByName(args[++argIdx]);
             } else if (args[argIdx].equals("--pcc")) {
-                pccCount = Integer.valueOf(args[argIdx + 1]);
-                argIdx++;
+                pccCount = Integer.valueOf(args[++argIdx]);
             } else if (args[argIdx].equals("--lsp")) {
-                lsps = Integer.valueOf(args[argIdx + 1]);
-                argIdx++;
+                lsps = Integer.valueOf(args[++argIdx]);
             } else if (args[argIdx].equals("--pcerr")) {
                 pcError = true;
-                argIdx++;
+            } else if (args[argIdx].equals("--log-level")) {
+                getRootLogger(lc).setLevel(Level.toLevel(args[++argIdx], ch.qos.logback.classic.Level.INFO));
             } else {
                 LOG.warn("WARNING: Unrecognized argument: {}", args[argIdx]);
             }
@@ -95,7 +98,6 @@ public final class Main {
         InetAddress currentAddress = localAddress;
         int i = 0;
         while (i < pccCount) {
-            final int pccNumber = i + 1;
             final InetAddress pccAddress = currentAddress;
             pcc.createClient(new InetSocketAddress(pccAddress, 0), new InetSocketAddress(pceAddress, DEFAULT_PORT),
                     new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE, RECONNECT_STRATEGY_TIMEOUT),
@@ -103,7 +105,7 @@ public final class Main {
 
                         @Override
                         public PCEPSessionListener getSessionListener() {
-                            return new SimpleSessionListener(lspsPerPcc, pcerr, pccNumber, pccAddress);
+                            return new SimpleSessionListener(lspsPerPcc, pcerr, pccAddress);
                         }
                     }).get();
             i++;
@@ -111,4 +113,13 @@ public final class Main {
         }
     }
 
+    private static ch.qos.logback.classic.Logger getRootLogger(final LoggerContext lc) {
+        return Iterables.find(lc.getLoggerList(), new Predicate<Logger>() {
+            @Override
+            public boolean apply(Logger input) {
+                return input.getName().equals(Logger.ROOT_LOGGER_NAME);
+            }
+        });
+    }
+
 }
index 76a822b504c90b0efbd5ce421bf9e858ebd537bb..77a730f9b1c81591fbb6d2ad36841bfc5d96305c 100644 (file)
@@ -124,8 +124,9 @@ public final class MsgBuilderUtil {
                                                 new Ipv4ExtendedTunnelId(extendedTunnelAddress.getHostAddress()))
                                         .build()).build()).setTunnelId(new TunnelId((int) lspId)).build());
         if (symbolicPathName) {
+            final String pathName = "pcc_" + tunnelSender.getHostAddress() + "_tunnel_" + lspId;
             tlvs.setSymbolicPathName(new SymbolicPathNameBuilder().setPathName(
-                    new SymbolicPathName(Charsets.UTF_8.encode("tunnel" + lspId).array())).build());
+                    new SymbolicPathName(pathName.getBytes(Charsets.UTF_8))).build());
         }
         return tlvs.build();
     }
index 555411a961cfa5cd1ac11182dd4f084f60859a76..21e8052e16e2247199a115a412539c22e699705a 100644 (file)
@@ -42,23 +42,20 @@ public class SimpleSessionListener implements PCEPSessionListener {
 
     private static final Logger LOG = LoggerFactory.getLogger(SimpleSessionListener.class);
 
-    private final int pccNumber;
     private final int lspsCount;
     private final boolean pcError;
     private final InetAddress address;
 
-    public SimpleSessionListener(final int lspsCount, final boolean pcError, final int pccNumber,
-            final InetAddress address) {
+    public SimpleSessionListener(final int lspsCount, final boolean pcError, final InetAddress address) {
         Preconditions.checkArgument(lspsCount > 0);
         this.lspsCount = lspsCount;
         this.pcError = pcError;
-        this.pccNumber = pccNumber;
         this.address = address;
     }
 
     @Override
     public void onMessage(final PCEPSession session, final Message message) {
-        LOG.debug("Received message: {}", message);
+        LOG.trace("Received message: {}", message);
         if (message instanceof Pcupd) {
             final Pcupd updMsg = (Pcupd) message;
             final Updates updates = updMsg.getPcupdMessage().getUpdates().get(0);
@@ -79,10 +76,10 @@ public class SimpleSessionListener implements PCEPSessionListener {
     public void onSessionUp(final PCEPSession session) {
         LOG.debug("Session up.");
         for (int i = 1; i <= this.lspsCount; i++) {
-            final Tlvs tlvs = MsgBuilderUtil.createLspTlvs(i * this.pccNumber, true, this.address, this.address,
+            final Tlvs tlvs = MsgBuilderUtil.createLspTlvs(i, true, this.address, this.address,
                     this.address);
             session.sendMessage(createPcRtpMessage(
-                    createLsp(i * this.pccNumber, true, Optional.<Tlvs> fromNullable(tlvs)), Optional.<Srp> absent(),
+                    createLsp(i, true, Optional.<Tlvs> fromNullable(tlvs)), Optional.<Srp> absent(),
                     createPath(Collections.<Subobject> emptyList())));
         }
         // end-of-sync marker
@@ -92,13 +89,13 @@ public class SimpleSessionListener implements PCEPSessionListener {
 
     @Override
     public void onSessionDown(final PCEPSession session, final Exception e) {
-        LOG.debug("Session down with cause : {} or exception: {}", e.getCause(), e, e);
+        LOG.info("Session down with cause : {} or exception: {}", e.getCause(), e, e);
         session.close();
     }
 
     @Override
     public void onSessionTerminated(final PCEPSession session, final PCEPTerminationReason cause) {
-        LOG.debug("Session terminated. Cause : {}", cause.toString());
+        LOG.info("Session terminated. Cause : {}", cause.toString());
     }
 
     private InetAddress getDestinationAddress(final List<Subobject> subobjects) {
@@ -108,7 +105,7 @@ public class SimpleSessionListener implements PCEPSessionListener {
             try {
                 return InetAddress.getByName(prefix.substring(0, prefix.indexOf('/')));
             } catch (UnknownHostException e) {
-                LOG.debug("Unknown host name {}", prefix);
+                LOG.warn("Unknown host name {}", prefix);
             }
         }
         return this.address;
index cd9daee6a94a8db127e37c75c2d278b6ece020a1..31906002c32100565fcc6d5ecfae39f4f717fa67 100644 (file)
@@ -30,9 +30,9 @@ public class PCCMockTest {
     public void testSessionEstablishment() {
         try {
             org.opendaylight.protocol.pcep.testtool.Main.main(new String[]{"-a", "127.0.1.0:4189", "-ka", "10", "-d", "0", "--stateful", "--active"});
-            Main.main(new String[] {"--local-address", "127.0.0.1", "--remote-address", "127.0.1.0", "--pcc", "2", "--lsp", "1"});
+            Main.main(new String[] {"--local-address", "127.0.0.1", "--remote-address", "127.0.1.0", "--pcc", "2", "--lsp", "1", "--log-level", "DEBUG"});
         } catch (Exception e) {
-            Assert.fail();
+            Assert.fail(e.getMessage());
         }
     }
 
index f6ec5a9ffc640e3184ffa9a729cdda05e56cf05b..fb03a346d347103b413f49439cebdb4e26999051 100644 (file)
@@ -71,8 +71,7 @@ public class SimpleSessionListenerTest {
 
     @Test
     public void testSessionListenerPcRpt() throws UnknownHostException {
-        final SimpleSessionListener sessionListser = new SimpleSessionListener(1, false, 1,
-                InetAddress.getByName(IP_ADDRESS));
+        final SimpleSessionListener sessionListser = new SimpleSessionListener(1, false, InetAddress.getByName(IP_ADDRESS));
 
         sessionListser.onSessionUp(this.mockedSession);
         // one lsp + end-of-sync marker
@@ -93,8 +92,7 @@ public class SimpleSessionListenerTest {
 
     @Test
     public void testSessionListenerPcErr() throws UnknownHostException {
-        final SimpleSessionListener sessionListser = new SimpleSessionListener(1, true, 1,
-                InetAddress.getByName(IP_ADDRESS));
+        final SimpleSessionListener sessionListser = new SimpleSessionListener(1, true, InetAddress.getByName(IP_ADDRESS));
 
         sessionListser.onMessage(this.mockedSession, createUpdMsg());
         // send PcErr as a response to PcUpd
index 7dd9bb3e3dd3ab153bff579e4a33811817393b25..5c94d726b354afbf40497d35860aa4c040eb25ca 100644 (file)
@@ -92,6 +92,8 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
 
 public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTest<Stateful07TopologySessionListenerFactory> {
 
+    private static final String TUNNEL_NAME = "pcc_" + TEST_ADDRESS + "_tunnel_0";
+
     private Stateful07TopologySessionListener listener;
 
     @Before
@@ -146,7 +148,7 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
         pcc = topology.getNode().get(0).getAugmentation(Node1.class).getPathComputationClient();
         assertEquals(1, pcc.getReportedLsp().size());
         ReportedLsp reportedLsp = pcc.getReportedLsp().get(0);
-        assertEquals(TEST_LSP_NAME, reportedLsp.getName());
+        assertEquals(TUNNEL_NAME, reportedLsp.getName());
         assertEquals(1, reportedLsp.getPath().size());
         Path path = reportedLsp.getPath().get(0);
         assertEquals(1, path.getEro().getSubobject().size());
@@ -164,7 +166,7 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
         org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder updArgsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder();
         updArgsBuilder.setEro(createEroWithIpPrefixes(Lists.newArrayList(ERO_IP_PREFIX, DST_IP_PREFIX)));
         updArgsBuilder.addAugmentation(Arguments3.class, new Arguments3Builder().setLsp(new LspBuilder().setDelegate(true).setAdministrative(true).build()).build());
-        final UpdateLspInput update = new UpdateLspInputBuilder().setArguments(updArgsBuilder.build()).setName(TEST_LSP_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
+        final UpdateLspInput update = new UpdateLspInputBuilder().setArguments(updArgsBuilder.build()).setName(TUNNEL_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
         this.topologyRpcs.updateLsp(update);
         assertEquals(2, this.receivedMsgs.size());
         assertTrue(this.receivedMsgs.get(1) instanceof Pcupd);
@@ -180,7 +182,7 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
         pcc = topology.getNode().get(0).getAugmentation(Node1.class).getPathComputationClient();
         assertEquals(1, pcc.getReportedLsp().size());
         reportedLsp = pcc.getReportedLsp().get(0);
-        assertEquals(TEST_LSP_NAME, reportedLsp.getName());
+        assertEquals(TUNNEL_NAME, reportedLsp.getName());
         assertEquals(1, reportedLsp.getPath().size());
         path = reportedLsp.getPath().get(0);
         assertEquals(2, path.getEro().getSubobject().size());
@@ -201,13 +203,13 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
         // ensure-operational
         final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.ensure.lsp.operational.args.ArgumentsBuilder ensureArgs = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.ensure.lsp.operational.args.ArgumentsBuilder();
         ensureArgs.addAugmentation(Arguments1.class, new Arguments1Builder().setOperational(OperationalStatus.Active).build());
-        final EnsureLspOperationalInput ensure = new EnsureLspOperationalInputBuilder().setArguments(ensureArgs.build()).setName(TEST_LSP_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
+        final EnsureLspOperationalInput ensure = new EnsureLspOperationalInputBuilder().setArguments(ensureArgs.build()).setName(TUNNEL_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
         final OperationResult result = this.topologyRpcs.ensureLspOperational(ensure).get().getResult();
         //check result
         assertNull(result.getFailure());
 
         // remove-lsp
-        final RemoveLspInput remove = new RemoveLspInputBuilder().setName(TEST_LSP_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
+        final RemoveLspInput remove = new RemoveLspInputBuilder().setName(TUNNEL_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
         this.topologyRpcs.removeLsp(remove);
         assertEquals(3, this.receivedMsgs.size());
         assertTrue(this.receivedMsgs.get(2) instanceof Pcinitiate);
@@ -318,6 +320,6 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
         argsBuilder.setEndpointsObj(new EndpointsObjBuilder().setAddressFamily(ipv4Builder.build()).build());
         argsBuilder.setEro(createEroWithIpPrefixes(Lists.newArrayList(ERO_IP_PREFIX)));
         argsBuilder.addAugmentation(Arguments2.class, new Arguments2Builder().setLsp(new LspBuilder().setDelegate(true).setAdministrative(true).build()).build());
-        return new AddLspInputBuilder().setName(TEST_LSP_NAME).setArguments(argsBuilder.build()).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
+        return new AddLspInputBuilder().setName(TUNNEL_NAME).setArguments(argsBuilder.build()).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
     }
 }