diff options
author | Maros Marsalek <mmarsale@cisco.com> | 2016-10-10 15:37:04 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2016-10-17 08:16:30 +0000 |
commit | 957461dcfd741fc3290e4317c2297c5618b593b5 (patch) | |
tree | 81606cfe4aa746bcde2948f80bbf5666cc1f1d30 /nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/NatInstanceCustomizer.java | |
parent | 74d5f495d67f4e53d88142e9773559b15e0d9807 (diff) |
HONEYCOMB-249 Add External IP pool management
Change-Id: I3e57b09733b8c7060445ed1af7a5edb3348dd4e1
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Diffstat (limited to 'nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/NatInstanceCustomizer.java')
-rw-r--r-- | nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/NatInstanceCustomizer.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/NatInstanceCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/NatInstanceCustomizer.java index cb639b962..43f4f1e0c 100644 --- a/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/NatInstanceCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/NatInstanceCustomizer.java @@ -40,10 +40,11 @@ import org.slf4j.LoggerFactory; final class NatInstanceCustomizer implements ListReaderCustomizer<NatInstance, NatInstanceKey, NatInstanceBuilder> { private static final Logger LOG = LoggerFactory.getLogger(NatInstanceCustomizer.class); + static final NatInstanceKey DEFAULT_VRF_ID = new NatInstanceKey(0L); private final DumpCacheManager<SnatStaticMappingDetailsReplyDump, Void> dumpCacheManager; - public NatInstanceCustomizer(final DumpCacheManager<SnatStaticMappingDetailsReplyDump, Void> dumpCacheManager) { + NatInstanceCustomizer(final DumpCacheManager<SnatStaticMappingDetailsReplyDump, Void> dumpCacheManager) { this.dumpCacheManager = dumpCacheManager; } @@ -66,6 +67,8 @@ final class NatInstanceCustomizer implements ListReaderCustomizer<NatInstance, N public List<NatInstanceKey> getAllIds(@Nonnull final InstanceIdentifier<NatInstance> id, @Nonnull final ReadContext context) throws ReadFailedException { LOG.trace("Listing IDs for all nat-instances"); + + // Find the nat instance IDs (vrf-ids) by listing all static mappings and their VRF assignment final List<NatInstanceKey> vrfIds = dumpCacheManager.getDump(id, getClass().getName(), context.getModificationCache(), null) .or(new SnatStaticMappingDetailsReplyDump()).snatStaticMappingDetails.stream() @@ -73,6 +76,11 @@ final class NatInstanceCustomizer implements ListReaderCustomizer<NatInstance, N .map(vrfId -> new NatInstanceKey((long)vrfId)) .collect(Collectors.toList()); + // Add default vrf id if not present + if (!vrfIds.contains(DEFAULT_VRF_ID)) { + vrfIds.add(0, DEFAULT_VRF_ID); + } + LOG.debug("List of nat-instance keys (vrf-ids): {}", vrfIds); return vrfIds; } |