OID_INT8, // 10 min_preferred_lifetime
OID_INT8, // 11 max_preferred_lifetime
OID_TIMESTAMP, // 12 modification_ts
- OID_TEXT, // 13 user_conetx
+ OID_TEXT, // 13 user_context
OID_VARCHAR // 14 name (of class to update)
},
"UPDATE_CLIENT_CLASS6",
OID_INT8, // 10 min_preferred_lifetime
OID_INT8, // 11 max_preferred_lifetime
OID_TIMESTAMP, // 12 modification_ts
- OID_TEXT, // 13 user_conetx
+ OID_TEXT, // 13 user_context
OID_VARCHAR // 14 name (of class to update)
},
"UPDATE_CLIENT_CLASS6_SAME_POSITION",
// Parse user context
ConstElementPtr user_context = class_def_cfg->get("user-context");
+ if (user_context) {
+ if (user_context->getType() != Element::map) {
+ isc_throw(isc::dhcp::DhcpConfigError, "User context has to be a map ("
+ << user_context->getPosition() << ")");
+ }
+ }
// Let's try to parse the only-if-required flag
bool required = false;
}
}
+// Verifies that an invalid user-context fails to parse.
+TEST_F(ClientClassDefParserTest, invalidUserContext) {
+ std::string cfg_text =
+ "{ \n"
+ " \"name\": \"one\", \n"
+ " \"user-context\": \"i am not a map\" \n"
+ "} \n";
+
+ ClientClassDefPtr cclass;
+ ASSERT_THROW_MSG(cclass = parseClientClassDef(cfg_text, AF_INET),
+ DhcpConfigError, "User context has to be a map (<string>:3:20)");
+}
} // end of anonymous namespace
END $$
DELIMITER ;
--- Add user_context column to Client class tables.
+-- Add user_context column to client class tables.
ALTER TABLE dhcp4_client_class ADD COLUMN user_context LONGTEXT NULL;
ALTER TABLE dhcp6_client_class ADD COLUMN user_context LONGTEXT NULL;
END $$
DELIMITER ;
--- Add user_context column to Client class tables.
+-- Add user_context column to client class tables.
ALTER TABLE dhcp4_client_class ADD COLUMN user_context LONGTEXT NULL;
ALTER TABLE dhcp6_client_class ADD COLUMN user_context LONGTEXT NULL;
$dhcp6_shared_network_BDEL$
LANGUAGE plpgsql;
--- Add user_context column to Client class tables.
+-- Add user_context column to client class tables.
ALTER TABLE dhcp4_client_class ADD COLUMN user_context JSON DEFAULT NULL;
ALTER TABLE dhcp6_client_class ADD COLUMN user_context JSON DEFAULT NULL;
\$dhcp6_shared_network_BDEL\$
LANGUAGE plpgsql;
--- Add user_context column to Client class tables.
+-- Add user_context column to client class tables.
ALTER TABLE dhcp4_client_class ADD COLUMN user_context JSON DEFAULT NULL;
ALTER TABLE dhcp6_client_class ADD COLUMN user_context JSON DEFAULT NULL;