diff options
author | 2018-04-19 12:27:16 +0200 | |
---|---|---|
committer | 2018-04-19 12:27:18 +0200 | |
commit | 48566d84cd9f4047d96541540cdfc9ef4936acf8 (patch) | |
tree | f3e70dd17f225b05a555e95e2cccedccb5960aac /v3po/v3po2vpp/src/main/java | |
parent | afa38679ef6c8916bed9d2e423521d5826d9db78 (diff) |
HC2VPP-308: forbid local0 deletion
Adds special case for local0 in InterfaceCustomizer.deleteCurrentAttributes.
Change-Id: I1eb0826f90bd5dbbdb3b6cbb4b19ac5cadb1a68f
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'v3po/v3po2vpp/src/main/java')
-rw-r--r-- | v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java index be50aa6b7..2f155bb87 100644 --- a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java +++ b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java @@ -40,6 +40,8 @@ public class InterfaceCustomizer extends FutureJVppCustomizer implements ListWriterCustomizer<Interface, InterfaceKey>, JvppReplyConsumer { private static final Logger LOG = LoggerFactory.getLogger(InterfaceCustomizer.class); + private static final String LOCAL0_NAME = "local0"; + private final NamingContext interfaceContext; public InterfaceCustomizer(final FutureJVppCore vppApi, final NamingContext interfaceContext) { @@ -68,8 +70,14 @@ public class InterfaceCustomizer extends FutureJVppCustomizer @Override public void deleteCurrentAttributes(@Nonnull final InstanceIdentifier<Interface> id, @Nonnull final Interface dataBefore, - @Nonnull final WriteContext writeContext) { - // Nothing to be done here, customizers for specific interface types e.g. vxlan handle the delete + @Nonnull final WriteContext writeContext) + throws WriteFailedException.DeleteFailedException { + // Special handling for local0 interface (HC2VPP-308): + if (LOCAL0_NAME.equals(dataBefore.getName())) { + throw new WriteFailedException.DeleteFailedException(id, + new UnsupportedOperationException("Removing " + LOCAL0_NAME + " interface is not supported")); + } + // For other interfaces, delegate delete to customizers for specific interface types (e.g. VXLan, Tap). } private void setInterface(final InstanceIdentifier<Interface> id, final Interface swIf, |