T3: CLI enhancements and absent group buckets fix
- Print the packet in the H2H command
- Print Ip next to the hosts in pingall
- Fixed wrong output when there is an error due to group buckets missing
Change-Id: Iaf33fa6608565aa5e735e0fc7c8efc45c8a9bb31
(cherry picked from commit c108337ae0121b892c67f52bdd4ea1c15d20924c)
diff --git a/src/test/java/org/onosproject/t3/impl/T3TestObjects.java b/src/test/java/org/onosproject/t3/impl/T3TestObjects.java
index 0885653..aeffbb2 100644
--- a/src/test/java/org/onosproject/t3/impl/T3TestObjects.java
+++ b/src/test/java/org/onosproject/t3/impl/T3TestObjects.java
@@ -593,6 +593,36 @@
static final ConnectPoint LLDP_FLOW_CP = ConnectPoint.deviceConnectPoint(LLDP_FLOW_DEVICE + "/" + 1);
+ //No Buckets
+
+ static final DeviceId NO_BUCKET_DEVICE = DeviceId.deviceId("nobucket");
+
+ private static final TrafficSelector NO_BUCKET_SELECTOR = DefaultTrafficSelector.builder()
+ .matchInPort(PortNumber.portNumber(1))
+ .build();
+
+ private static final GroupId NO_BUCKET_GROUP_ID = GroupId.valueOf(1);
+
+ private static final TrafficTreatment NO_BUCKET_TREATMENT = DefaultTrafficTreatment.builder()
+ .group(NO_BUCKET_GROUP_ID)
+ .build();
+ private static final FlowRule NO_BUCKET_FLOW = DefaultFlowEntry.builder().forDevice(NO_BUCKET_DEVICE)
+ .forTable(0)
+ .withPriority(100)
+ .withSelector(NO_BUCKET_SELECTOR)
+ .withTreatment(NO_BUCKET_TREATMENT)
+ .fromApp(new DefaultApplicationId(0, "TestApp"))
+ .makePermanent()
+ .build();
+ static final FlowEntry NO_BUCKET_ENTRY = new DefaultFlowEntry(NO_BUCKET_FLOW);
+
+ private static final GroupBuckets NO_BUCKETS = new GroupBuckets(ImmutableList.of());
+
+ static final Group NO_BUCKET_GROUP =
+ new DefaultGroup(NO_BUCKET_GROUP_ID, NO_BUCKET_DEVICE, Group.Type.SELECT, NO_BUCKETS);
+
+ static final ConnectPoint NO_BUCKET_CP = ConnectPoint.deviceConnectPoint(NO_BUCKET_DEVICE + "/" + 1);
+
//helper elements
static final String MASTER_1 = "Master1";
diff --git a/src/test/java/org/onosproject/t3/impl/TroubleshootManagerTest.java b/src/test/java/org/onosproject/t3/impl/TroubleshootManagerTest.java
index 6a80c12..fa19d22 100644
--- a/src/test/java/org/onosproject/t3/impl/TroubleshootManagerTest.java
+++ b/src/test/java/org/onosproject/t3/impl/TroubleshootManagerTest.java
@@ -35,8 +35,8 @@
import org.onosproject.net.DeviceId;
import org.onosproject.net.Host;
import org.onosproject.net.Link;
-import org.onosproject.net.PortNumber;
import org.onosproject.net.Port;
+import org.onosproject.net.PortNumber;
import org.onosproject.net.device.DeviceServiceAdapter;
import org.onosproject.net.driver.DefaultDriver;
import org.onosproject.net.driver.Driver;
@@ -160,6 +160,20 @@
}
/**
+ * Test group with no buckets.
+ */
+ @Test
+ public void noBucketsTest() throws Exception {
+
+ StaticPacketTrace traceFail = mngr.trace(PACKET_OK, NO_BUCKET_CP);
+ assertNotNull("Trace should not be null", traceFail);
+ assertTrue("Trace should be unsuccessful",
+ traceFail.resultMessage().contains("no buckets"));
+ log.info("trace {}", traceFail.resultMessage());
+
+ }
+
+ /**
* Test a single flow rule that has output port in it.
*/
@Test
@@ -416,6 +430,8 @@
return ImmutableList.of(LLDP_FLOW_ENTRY);
} else if (deviceId.equals(MULTICAST_GROUP_FLOW_DEVICE)) {
return ImmutableList.of(MULTICAST_GROUP_FLOW_ENTRY);
+ } else if (deviceId.equals(NO_BUCKET_DEVICE)) {
+ return ImmutableList.of(NO_BUCKET_ENTRY);
}
return ImmutableList.of();
}
@@ -444,6 +460,8 @@
return ImmutableList.of(DUAL_LINK_GROUP);
} else if (deviceId.equals(MULTICAST_GROUP_FLOW_DEVICE)) {
return ImmutableList.of(MULTICAST_GROUP);
+ } else if (deviceId.equals(NO_BUCKET_DEVICE)) {
+ return ImmutableList.of(NO_BUCKET_GROUP);
}
return ImmutableList.of();
}