mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-04 16:05:17 +00:00
[397-cb-implement-mysqlconfigbackenddhcpv6] checkpoint: unit tests to update
This commit is contained in:
@@ -366,15 +366,18 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// interface
|
// interface
|
||||||
last_subnet->setIface(out_bindings[3]->getStringOrDefault(""));
|
if (!out_bindings[3]->amNull()) {
|
||||||
|
last_subnet->setIface(out_bindings[3]->getString());
|
||||||
|
}
|
||||||
|
|
||||||
// modification_ts
|
// modification_ts
|
||||||
last_subnet->setModificationTime(out_bindings[4]->getTimestamp());
|
last_subnet->setModificationTime(out_bindings[4]->getTimestamp());
|
||||||
// 5 is preferred_lifetime
|
// 5 is preferred_lifetime
|
||||||
|
|
||||||
// rapid_commit
|
// rapid_commit
|
||||||
last_subnet->setRapidCommit(static_cast<bool>
|
if (!out_bindings[6]->amNull()) {
|
||||||
(out_bindings[6]->getIntegerOrDefault<uint8_t>(0)));
|
last_subnet->setRapidCommit(out_bindings[6]->getBool());
|
||||||
|
}
|
||||||
|
|
||||||
// 7 is rebind_timer
|
// 7 is rebind_timer
|
||||||
|
|
||||||
@@ -414,11 +417,15 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// reservation_mode
|
// reservation_mode
|
||||||
last_subnet->setHostReservationMode(static_cast<Subnet6::HRMode>
|
if (!out_bindings[11]->amNull()) {
|
||||||
(out_bindings[11]->getIntegerOrDefault<uint8_t>(Subnet6::HR_ALL)));
|
last_subnet->setHostReservationMode(static_cast<Subnet4::HRMode>
|
||||||
|
(out_bindings[11]->getInteger<uint8_t>()));
|
||||||
|
}
|
||||||
|
|
||||||
// shared_network_name
|
// shared_network_name
|
||||||
last_subnet->setSharedNetworkName(out_bindings[12]->getStringOrDefault(""));
|
if (!out_bindings[12]->amNull()) {
|
||||||
|
last_subnet->setSharedNetworkName(out_bindings[12]->getString());
|
||||||
|
}
|
||||||
|
|
||||||
// user_context
|
// user_context
|
||||||
ElementPtr user_context = out_bindings[13]->getJSON();
|
ElementPtr user_context = out_bindings[13]->getJSON();
|
||||||
@@ -840,6 +847,16 @@ public:
|
|||||||
required_classes_element->add(Element::create(*required_class));
|
required_classes_element->add(Element::create(*required_class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create binding for host reservation mode.
|
||||||
|
MySqlBindingPtr hr_mode_binding;
|
||||||
|
auto hr_mode = subnet->getHostReservationMode();
|
||||||
|
if (!hr_mode.unspecified()) {
|
||||||
|
hr_mode_binding = MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>
|
||||||
|
(hr_mode.get()));
|
||||||
|
} else {
|
||||||
|
hr_mode_binding = MySqlBinding::createNull();
|
||||||
|
}
|
||||||
|
|
||||||
// Create binding with shared network name if the subnet belongs to a
|
// Create binding with shared network name if the subnet belongs to a
|
||||||
// shared network.
|
// shared network.
|
||||||
MySqlBindingPtr shared_network_binding;
|
MySqlBindingPtr shared_network_binding;
|
||||||
@@ -874,13 +891,13 @@ public:
|
|||||||
MySqlBinding::condCreateString(subnet->getClientClass()),
|
MySqlBinding::condCreateString(subnet->getClientClass()),
|
||||||
MySqlBinding::condCreateString(subnet->getIface()),
|
MySqlBinding::condCreateString(subnet->getIface()),
|
||||||
MySqlBinding::createTimestamp(subnet->getModificationTime()),
|
MySqlBinding::createTimestamp(subnet->getModificationTime()),
|
||||||
MySqlBinding::createInteger<uint32_t>(subnet->getPreferred()),
|
createBinding(subnet->getPreferred()),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(subnet->getRapidCommit())),
|
MySqlBinding::condCreateBool(subnet->getRapidCommit()),
|
||||||
createBinding(subnet->getT2()),
|
createBinding(subnet->getT2()),
|
||||||
createInputRelayBinding(subnet),
|
createInputRelayBinding(subnet),
|
||||||
createBinding(subnet->getT1()),
|
createBinding(subnet->getT1()),
|
||||||
createInputRequiredClassesBinding(subnet),
|
createInputRequiredClassesBinding(subnet),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(subnet->getHostReservationMode())),
|
hr_mode_binding,
|
||||||
shared_network_binding,
|
shared_network_binding,
|
||||||
createInputContextBinding(subnet),
|
createInputContextBinding(subnet),
|
||||||
createBinding(subnet->getValid())
|
createBinding(subnet->getValid())
|
||||||
@@ -896,7 +913,7 @@ public:
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// Try to insert subnet. If this duplicates primary key, i.e. this
|
// Try to insert subnet. If this duplicates unique key, i.e. this
|
||||||
// subnet already exists it will throw DuplicateEntry exception in
|
// subnet already exists it will throw DuplicateEntry exception in
|
||||||
// which case we'll try an update.
|
// which case we'll try an update.
|
||||||
conn_.insertQuery(MySqlConfigBackendDHCPv6Impl::INSERT_SUBNET6,
|
conn_.insertQuery(MySqlConfigBackendDHCPv6Impl::INSERT_SUBNET6,
|
||||||
@@ -920,8 +937,9 @@ public:
|
|||||||
deletePdPools6(subnet);
|
deletePdPools6(subnet);
|
||||||
deleteOptions6(server_selector, subnet);
|
deleteOptions6(server_selector, subnet);
|
||||||
|
|
||||||
// Need to add one more binding for WHERE clause.
|
// Need to add two more bindings for WHERE clause.
|
||||||
in_bindings.push_back(MySqlBinding::createInteger<uint32_t>(subnet->getID()));
|
in_bindings.push_back(MySqlBinding::createInteger<uint32_t>(subnet->getID()));
|
||||||
|
in_bindings.push_back(MySqlBinding::createString(subnet->toText()));
|
||||||
conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl::UPDATE_SUBNET6,
|
conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl::UPDATE_SUBNET6,
|
||||||
in_bindings);
|
in_bindings);
|
||||||
}
|
}
|
||||||
@@ -1171,7 +1189,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// interface
|
// interface
|
||||||
last_network->setIface(out_bindings[3]->getStringOrDefault(""));
|
if (!out_bindings[3]->amNull()) {
|
||||||
|
last_network->setIface(out_bindings[3]->getString());
|
||||||
|
}
|
||||||
|
|
||||||
// modification_ts
|
// modification_ts
|
||||||
last_network->setModificationTime(out_bindings[4]->getTimestamp());
|
last_network->setModificationTime(out_bindings[4]->getTimestamp());
|
||||||
@@ -1182,8 +1202,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// rapid_commit
|
// rapid_commit
|
||||||
last_network->setRapidCommit(static_cast<bool>
|
if (!out_bindings[6]->amNull()) {
|
||||||
(out_bindings[6]->getIntegerOrDefault<uint8_t>(0)));
|
last_network->setRapidCommit(out_bindings[6]->getBool());
|
||||||
|
}
|
||||||
|
|
||||||
// rebind_timer
|
// rebind_timer
|
||||||
if (!out_bindings[7]->amNull()) {
|
if (!out_bindings[7]->amNull()) {
|
||||||
@@ -1229,8 +1250,10 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// reservation_mode
|
// reservation_mode
|
||||||
last_network->setHostReservationMode(static_cast<Subnet6::HRMode>
|
if (!out_bindings[11]->amNull()) {
|
||||||
(out_bindings[11]->getIntegerOrDefault<uint8_t>(Subnet6::HR_ALL)));
|
last_network->setHostReservationMode(static_cast<Subnet4::HRMode>
|
||||||
|
(out_bindings[11]->getIntegerOrDefault<uint8_t>(Subnet4::HR_ALL)));
|
||||||
|
}
|
||||||
|
|
||||||
// user_context
|
// user_context
|
||||||
ElementPtr user_context = out_bindings[12]->getJSON();
|
ElementPtr user_context = out_bindings[12]->getJSON();
|
||||||
@@ -1341,19 +1364,28 @@ public:
|
|||||||
|
|
||||||
auto tag = getServerTag(server_selector, "creating or updating shared network");
|
auto tag = getServerTag(server_selector, "creating or updating shared network");
|
||||||
|
|
||||||
|
// Create binding for host reservation mode.
|
||||||
|
MySqlBindingPtr hr_mode_binding;
|
||||||
|
auto hr_mode = shared_network->getHostReservationMode();
|
||||||
|
if (!hr_mode.unspecified()) {
|
||||||
|
hr_mode_binding = MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>
|
||||||
|
(hr_mode.get()));
|
||||||
|
} else {
|
||||||
|
hr_mode_binding = MySqlBinding::createNull();
|
||||||
|
}
|
||||||
|
|
||||||
MySqlBindingCollection in_bindings = {
|
MySqlBindingCollection in_bindings = {
|
||||||
MySqlBinding::createString(shared_network->getName()),
|
MySqlBinding::createString(shared_network->getName()),
|
||||||
MySqlBinding::condCreateString(shared_network->getClientClass()),
|
MySqlBinding::condCreateString(shared_network->getClientClass()),
|
||||||
MySqlBinding::condCreateString(shared_network->getIface()),
|
MySqlBinding::condCreateString(shared_network->getIface()),
|
||||||
MySqlBinding::createTimestamp(shared_network->getModificationTime()),
|
MySqlBinding::createTimestamp(shared_network->getModificationTime()),
|
||||||
MySqlBinding::createInteger<uint32_t>(shared_network->getPreferred()),
|
createBinding(shared_network->getPreferred()),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(shared_network->getRapidCommit())),
|
MySqlBinding::condCreateBool(shared_network->getRapidCommit()),
|
||||||
createBinding(shared_network->getT2()),
|
createBinding(shared_network->getT2()),
|
||||||
createInputRelayBinding(shared_network),
|
createInputRelayBinding(shared_network),
|
||||||
createBinding(shared_network->getT1()),
|
createBinding(shared_network->getT1()),
|
||||||
createInputRequiredClassesBinding(shared_network),
|
createInputRequiredClassesBinding(shared_network),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>
|
hr_mode_binding,
|
||||||
(shared_network->getHostReservationMode())),
|
|
||||||
createInputContextBinding(shared_network),
|
createInputContextBinding(shared_network),
|
||||||
createBinding(shared_network->getValid())
|
createBinding(shared_network->getValid())
|
||||||
};
|
};
|
||||||
@@ -1459,7 +1491,7 @@ public:
|
|||||||
createOptionValueBinding(option),
|
createOptionValueBinding(option),
|
||||||
MySqlBinding::condCreateString(option->formatted_value_),
|
MySqlBinding::condCreateString(option->formatted_value_),
|
||||||
MySqlBinding::condCreateString(option->space_name_),
|
MySqlBinding::condCreateString(option->space_name_),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(option->persistent_)),
|
MySqlBinding::createBool(option->persistent_),
|
||||||
MySqlBinding::createNull(),
|
MySqlBinding::createNull(),
|
||||||
MySqlBinding::createNull(),
|
MySqlBinding::createNull(),
|
||||||
MySqlBinding::createInteger<uint8_t>(0),
|
MySqlBinding::createInteger<uint8_t>(0),
|
||||||
@@ -1522,7 +1554,7 @@ public:
|
|||||||
createOptionValueBinding(option),
|
createOptionValueBinding(option),
|
||||||
MySqlBinding::condCreateString(option->formatted_value_),
|
MySqlBinding::condCreateString(option->formatted_value_),
|
||||||
MySqlBinding::condCreateString(option->space_name_),
|
MySqlBinding::condCreateString(option->space_name_),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(option->persistent_)),
|
MySqlBinding::createBool(option->persistent_),
|
||||||
MySqlBinding::createNull(),
|
MySqlBinding::createNull(),
|
||||||
MySqlBinding::createInteger<uint32_t>(static_cast<uint32_t>(subnet_id)),
|
MySqlBinding::createInteger<uint32_t>(static_cast<uint32_t>(subnet_id)),
|
||||||
MySqlBinding::createInteger<uint8_t>(1),
|
MySqlBinding::createInteger<uint8_t>(1),
|
||||||
@@ -1663,7 +1695,7 @@ public:
|
|||||||
// space
|
// space
|
||||||
in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
|
in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
|
||||||
// persistent
|
// persistent
|
||||||
in_bindings.push_back(MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(option->persistent_)));
|
in_bindings.push_back(MySqlBinding::createBool(option->persistent_));
|
||||||
// dhcp_client_class
|
// dhcp_client_class
|
||||||
in_bindings.push_back(MySqlBinding::createNull());
|
in_bindings.push_back(MySqlBinding::createNull());
|
||||||
// dhcp[46]_subnet_id
|
// dhcp[46]_subnet_id
|
||||||
@@ -1758,7 +1790,7 @@ public:
|
|||||||
createOptionValueBinding(option),
|
createOptionValueBinding(option),
|
||||||
MySqlBinding::condCreateString(option->formatted_value_),
|
MySqlBinding::condCreateString(option->formatted_value_),
|
||||||
MySqlBinding::condCreateString(option->space_name_),
|
MySqlBinding::condCreateString(option->space_name_),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(option->persistent_)),
|
MySqlBinding::createBool(option->persistent_),
|
||||||
MySqlBinding::createNull(),
|
MySqlBinding::createNull(),
|
||||||
MySqlBinding::createNull(),
|
MySqlBinding::createNull(),
|
||||||
MySqlBinding::createInteger<uint8_t>(4),
|
MySqlBinding::createInteger<uint8_t>(4),
|
||||||
@@ -1835,7 +1867,7 @@ public:
|
|||||||
"dhcp6" : option_def->getOptionSpaceName()),
|
"dhcp6" : option_def->getOptionSpaceName()),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint16_t>(option_def->getType())),
|
MySqlBinding::createInteger<uint8_t>(static_cast<uint16_t>(option_def->getType())),
|
||||||
MySqlBinding::createTimestamp(option_def->getModificationTime()),
|
MySqlBinding::createTimestamp(option_def->getModificationTime()),
|
||||||
MySqlBinding::createInteger<uint8_t>(static_cast<uint8_t>(option_def->getArrayType())),
|
MySqlBinding::createBool(option_def->getArrayType()),
|
||||||
MySqlBinding::createString(option_def->getEncapsulatedSpace()),
|
MySqlBinding::createString(option_def->getEncapsulatedSpace()),
|
||||||
record_types_binding,
|
record_types_binding,
|
||||||
createInputContextBinding(option_def)
|
createInputContextBinding(option_def)
|
||||||
@@ -2388,7 +2420,7 @@ TaggedStatementArray tagged_statements = { {
|
|||||||
" shared_network_name = ?,"
|
" shared_network_name = ?,"
|
||||||
" user_context = ?,"
|
" user_context = ?,"
|
||||||
" valid_lifetime = ? "
|
" valid_lifetime = ? "
|
||||||
"WHERE subnet_id = ?" },
|
"WHERE subnet_id = ? OR subnet_prefix = ?" },
|
||||||
|
|
||||||
// Update existing shared network.
|
// Update existing shared network.
|
||||||
{ MySqlConfigBackendDHCPv6Impl::UPDATE_SHARED_NETWORK6,
|
{ MySqlConfigBackendDHCPv6Impl::UPDATE_SHARED_NETWORK6,
|
||||||
|
@@ -1378,6 +1378,9 @@ ALTER TABLE dhcp6_subnet
|
|||||||
ALTER TABLE dhcp6_subnet
|
ALTER TABLE dhcp6_subnet
|
||||||
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE dhcp6_subnet
|
||||||
|
MODIFY COLUMN rapid_commit TINYINT(1) DEFAULT NULL;
|
||||||
|
|
||||||
ALTER TABLE dhcp6_shared_network
|
ALTER TABLE dhcp6_shared_network
|
||||||
ADD COLUMN calculate_tee_times TINYINT(1) DEFAULT NULL,
|
ADD COLUMN calculate_tee_times TINYINT(1) DEFAULT NULL,
|
||||||
ADD COLUMN t1_percent FLOAT DEFAULT NULL,
|
ADD COLUMN t1_percent FLOAT DEFAULT NULL,
|
||||||
@@ -1386,6 +1389,8 @@ ALTER TABLE dhcp6_shared_network
|
|||||||
ALTER TABLE dhcp6_shared_network
|
ALTER TABLE dhcp6_shared_network
|
||||||
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE dhcp6_shared_network
|
||||||
|
MODIFY COLUMN rapid_commit TINYINT(1) DEFAULT NULL;
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Make sure that constraints on the 7.0 schema tables
|
-- Make sure that constraints on the 7.0 schema tables
|
||||||
|
@@ -61,6 +61,9 @@ ALTER TABLE dhcp6_subnet
|
|||||||
ALTER TABLE dhcp6_subnet
|
ALTER TABLE dhcp6_subnet
|
||||||
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE dhcp6_subnet
|
||||||
|
MODIFY COLUMN rapid_commit TINYINT(1) DEFAULT NULL;
|
||||||
|
|
||||||
ALTER TABLE dhcp6_shared_network
|
ALTER TABLE dhcp6_shared_network
|
||||||
ADD COLUMN calculate_tee_times TINYINT(1) DEFAULT NULL,
|
ADD COLUMN calculate_tee_times TINYINT(1) DEFAULT NULL,
|
||||||
ADD COLUMN t1_percent FLOAT DEFAULT NULL,
|
ADD COLUMN t1_percent FLOAT DEFAULT NULL,
|
||||||
@@ -69,6 +72,9 @@ ALTER TABLE dhcp6_shared_network
|
|||||||
ALTER TABLE dhcp6_shared_network
|
ALTER TABLE dhcp6_shared_network
|
||||||
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
MODIFY COLUMN reservation_mode TINYINT(3) DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE dhcp6_shared_network
|
||||||
|
MODIFY COLUMN rapid_commit TINYINT(1) DEFAULT NULL;
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Make sure that constraints on the 7.0 schema tables
|
-- Make sure that constraints on the 7.0 schema tables
|
||||||
-- have appropriate referential actions. All tables
|
-- have appropriate referential actions. All tables
|
||||||
|
Reference in New Issue
Block a user