summaryrefslogtreecommitdiffstats
path: root/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java
diff options
context:
space:
mode:
authorMaros Marsalek <mmarsale@cisco.com>2016-10-26 12:18:53 +0200
committerMaros Marsalek <mmarsale@cisco.com>2016-10-28 11:06:17 +0000
commitaecc708c8918476ca0fa6e5c52cb3366e58cffc1 (patch)
treeca71fa94edfdfc5108e13bff8082191fb52fa943 /nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java
parentd7f6277b713614d71932f278061940b74a5c851f (diff)
Honeycomb-73 Extensible initializers for nat
Change-Id: Ic3f28ecf2a798a9ff084abb551f90bad516d3a13 Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Diffstat (limited to 'nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java')
-rw-r--r--nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java
index 206b15e63..959bfbdc1 100644
--- a/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java
+++ b/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ExternalIpPoolCustomizer.java
@@ -18,7 +18,9 @@ package io.fd.honeycomb.nat.read;
import io.fd.honeycomb.translate.read.ReadContext;
import io.fd.honeycomb.translate.read.ReadFailedException;
-import io.fd.honeycomb.translate.spi.read.ListReaderCustomizer;
+import io.fd.honeycomb.translate.spi.read.Initialized;
+import io.fd.honeycomb.translate.spi.read.InitializingListReaderCustomizer;
+import io.fd.honeycomb.translate.util.RWUtils;
import io.fd.honeycomb.translate.util.read.cache.DumpCacheManager;
import io.fd.honeycomb.translate.util.read.cache.EntityDumpExecutor;
import io.fd.honeycomb.translate.vpp.util.Ipv4Translator;
@@ -46,7 +48,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
final class ExternalIpPoolCustomizer implements
- ListReaderCustomizer<ExternalIpAddressPool, ExternalIpAddressPoolKey, ExternalIpAddressPoolBuilder>,
+ InitializingListReaderCustomizer<ExternalIpAddressPool, ExternalIpAddressPoolKey, ExternalIpAddressPoolBuilder>,
JvppReplyConsumer, Ipv4Translator {
private static final Logger LOG = LoggerFactory.getLogger(ExternalIpPoolCustomizer.class);
@@ -116,6 +118,19 @@ final class ExternalIpPoolCustomizer implements
((NatCurrentConfigBuilder) builder).setExternalIpAddressPool(readData);
}
+ @Override
+ public Initialized<ExternalIpAddressPool> init(
+ @Nonnull final InstanceIdentifier<ExternalIpAddressPool> id,
+ @Nonnull final ExternalIpAddressPool readValue,
+ @Nonnull final ReadContext ctx) {
+ return Initialized.create(getCfgId(id), readValue);
+ }
+
+ static InstanceIdentifier<ExternalIpAddressPool> getCfgId(final @Nonnull InstanceIdentifier<ExternalIpAddressPool> id) {
+ return NatInstanceCustomizer.getCfgId(RWUtils.cutId(id, NatInstance.class))
+ .child(ExternalIpAddressPool.class, id.firstKeyOf(ExternalIpAddressPool.class));
+ }
+
static final class AddressRangeDumpExecutor implements EntityDumpExecutor<SnatAddressDetailsReplyDump, Void>,
JvppReplyConsumer {
private final FutureJVppSnatFacade jvppSnat;