Add config validation for vRouter and PIM configs
Change-Id: I97ddf4f745a19df6998b15ae47ebde5aa5f46238
diff --git a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceConfig.java b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceConfig.java
index 48969c3..63ceb36 100644
--- a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceConfig.java
+++ b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceConfig.java
@@ -112,4 +112,20 @@
}
return Optional.of(Short.parseShort(node.path(OVERRIDE_INTERVAL).asText()));
}
+
+ @Override
+ public boolean isValid() {
+ if (!hasOnlyFields(INTERFACE_NAME, ENABLED, HELLO_INTERVAL, HOLD_TIME,
+ PRIORITY, PROPAGATION_DELAY, OVERRIDE_INTERVAL)) {
+ return false;
+ }
+
+ return isString(INTERFACE_NAME, FieldPresence.MANDATORY) &&
+ isBoolean(ENABLED, FieldPresence.MANDATORY) &&
+ isIntegralNumber(HELLO_INTERVAL, FieldPresence.OPTIONAL) &&
+ isIntegralNumber(HOLD_TIME, FieldPresence.OPTIONAL) &&
+ isIntegralNumber(PRIORITY, FieldPresence.OPTIONAL) &&
+ isIntegralNumber(PROPAGATION_DELAY, FieldPresence.OPTIONAL) &&
+ isIntegralNumber(OVERRIDE_INTERVAL, FieldPresence.OPTIONAL);
+ }
}
diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/RouterConfig.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/RouterConfig.java
index 9099019..dbd49ff 100644
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/RouterConfig.java
+++ b/apps/routing-api/src/main/java/org/onosproject/routing/config/RouterConfig.java
@@ -82,4 +82,19 @@
return interfaces;
}
+ @Override
+ public boolean isValid() {
+ if (!hasOnlyFields(INTERFACES, CP_CONNECT_POINT, OSPF_ENABLED, PIM_ENABLED)) {
+ return false;
+ }
+
+ JsonNode intfNode = object.path(INTERFACES);
+ if (!intfNode.isMissingNode() && !intfNode.isArray()) {
+ return false;
+ }
+
+ return isConnectPoint(CP_CONNECT_POINT, FieldPresence.MANDATORY) &&
+ isBoolean(OSPF_ENABLED, FieldPresence.OPTIONAL) &&
+ isBoolean(PIM_ENABLED, FieldPresence.OPTIONAL);
+ }
}