@Override
protected Reports getValidReports(final List<Object> objects, final List<Message> errors) {
- final Reports validReports = super.getValidReports(objects, errors);
final Optional<Object> find = Iterables.tryFind(objects, Predicates.instanceOf(BandwidthUsage.class));
- final Path path = validReports.getPath();
- if (find.isPresent() && path != null) {
- final Object object = find.get();
+ final Object object;
+ if (find.isPresent()) {
+ object = find.get();
objects.remove(object);
- return new ReportsBuilder(validReports).setPath(new PathBuilder(path).setBandwidth(
- setBandwidthUsage(path.getBandwidth(), (BandwidthUsage) object)).build()).build();
+ } else {
+ object = null;
+ }
+ final Reports validReports = super.getValidReports(objects, errors);
+ if (object != null && validReports != null) {
+ final Path path = validReports.getPath();
+ if (path != null) {
+ return new ReportsBuilder(validReports).setPath(new PathBuilder(path).setBandwidth(
+ setBandwidthUsage(path.getBandwidth(), (BandwidthUsage) object)).build()).build();
+ }
}
return validReports;
}
import io.netty.buffer.Unpooled;
import java.util.Collections;
import java.util.List;
+import javax.xml.bind.DatatypeConverter;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.protocol.pcep.ietf.stateful07.StatefulActivator;
import org.opendaylight.protocol.pcep.impl.Activator;
+import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException;
import org.opendaylight.protocol.pcep.spi.pojo.SimplePCEPExtensionProviderContext;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev160109.Bandwidth1;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev160109.Bandwidth1Builder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev160109.bandwidth.usage.object.BandwidthUsage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev160109.bandwidth.usage.object.BandwidthUsageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Pcrpt;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.lsp.object.Lsp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.lsp.object.LspBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.pcrpt.message.pcrpt.message.Reports;
private SimplePCEPExtensionProviderContext ctx;
private Activator act;
private StatefulActivator statefulAct;
+ private org.opendaylight.protocol.pcep.auto.bandwidth.extension.Activator autoBwActivator;
@Before
public void setUp() {
this.act.start(this.ctx);
this.statefulAct = new StatefulActivator();
this.statefulAct.start(this.ctx);
+ this.autoBwActivator = new org.opendaylight.protocol.pcep.auto.bandwidth.extension.Activator(5);
+ this.autoBwActivator.start(this.ctx);
}
@After
public void tearDown() {
this.act.stop();
this.statefulAct.stop();
+ this.autoBwActivator.stop();
}
@Test
Assert.assertTrue(buffer.readableBytes() > 0);
}
+ @Test
+ public void testReportMsgWithRro() throws PCEPDeserializerException {
+ final byte[] parseHexBinary = DatatypeConverter.parseHexBinary("2010003c0084a019001100106e79636e7932316372735f7432313231001200100a0000d2004008490a0000d40a0000d4001f0006000005dd700000000710001401080a000706200001080a0000d420000910001400000000000000000000000005050100051000084998968005500008513a43b70810002401080a0000d42020030801010000000001080a00070620000308010100000000");
+ final Pcrpt msg = (Pcrpt) this.ctx.getMessageHandlerRegistry().parseMessage(10, Unpooled.wrappedBuffer(parseHexBinary), Collections.<Message>emptyList());
+ Assert.assertNotNull(msg.getPcrptMessage().getReports().get(0).getPath().getBandwidth().getAugmentation(Bandwidth1.class));
+ }
+
}