"ON h.host_id = o.host_id "
"LEFT JOIN ipv6_reservations AS r "
"ON h.host_id = r.host_id "
- "WHERE h.dhcp6_subnet_id = ? AND r.address = ? "
+ "WHERE h.dhcp6_subnet_id = ? AND h.host_id = "
+ "( SELECT host_id FROM ipv6_reservations "
+ "WHERE address = ? ) "
"ORDER BY h.host_id, o.option_id, r.reservation_id"},
// Retrieves host information along with the DHCPv4 options associated with
"FROM hosts AS h "
"LEFT JOIN dhcp6_options AS o ON h.host_id = o.host_id "
"LEFT JOIN ipv6_reservations AS r ON h.host_id = r.host_id "
- "WHERE h.dhcp6_subnet_id = $1 AND r.address = $2 "
+ "WHERE h.dhcp6_subnet_id = $1 AND h.host_id = "
+ " (SELECT host_id FROM ipv6_reservations "
+ " WHERE address = $2) "
"ORDER BY h.host_id, o.option_id, r.reservation_id"
},
LibDHCP::setRuntimeOptionDefs(defs);
}
+void
+GenericHostDataSourceTest::addIPv6Address(const HostPtr& host, const std::string& address) const {
+ host->addReservation(IPv6Resrv(IPv6Resrv::TYPE_NA, IOAddress(address)));
+}
+
void
GenericHostDataSourceTest::testReadOnlyDatabase(const char* valid_db_type) {
ASSERT_TRUE(hdsptr_);
// Let's create a couple of hosts...
HostPtr host1 = HostDataSourceUtils::initializeHost6("2001:db8:1::", Host::IDENT_DUID, true);
+ addIPv6Address(host1, "2001:db8:1::10");
HostPtr host2 = HostDataSourceUtils::initializeHost6("2001:db8:2::", Host::IDENT_DUID, true);
+ addIPv6Address(host2, "2001:db8:1::20");
HostPtr host3 = HostDataSourceUtils::initializeHost6("2001:db8:3::", Host::IDENT_DUID, true);
+ addIPv6Address(host3, "2001:db8:1::30");
HostPtr host4 = HostDataSourceUtils::initializeHost6("2001:db8:4::", Host::IDENT_DUID, true);
+ addIPv6Address(host4, "2001:db8:1::40");
// ... and add them to the data source.
ASSERT_NO_THROW(hdsptr_->add(host1));
isc::data::ConstElementPtr user_context =
isc::data::ConstElementPtr()) const;
+ /// @brief Adds an IPv6 address to the host.
+ ///
+ /// @param host pointer to the host instance.
+ /// @param address an IPv6 address to be added as a string.
+ void addIPv6Address(const HostPtr& host, const std::string& address) const;
+
/// @brief Pointer to the host data source
HostDataSourcePtr hdsptr_;