mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-22 09:57:41 +00:00
[#2629] added origin for ha lease commands
This commit is contained in:
parent
5aa1ecfbd5
commit
fda083c259
@ -425,6 +425,26 @@ Examples:
|
|||||||
|
|
||||||
2018-01-06 01:02:12 CET Administrator deleted a lease for a device identified by: hw-address of 1a:1b:1c:1d:1e:1f
|
2018-01-06 01:02:12 CET Administrator deleted a lease for a device identified by: hw-address of 1a:1b:1c:1d:1e:1f
|
||||||
|
|
||||||
|
If High availability module is enabled, the partner will periodically send lease
|
||||||
|
commands which have a similar format, the only difference is that the issuer of
|
||||||
|
the command is 'HA partner' instead of 'Administrator'.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
*timestamp* HA partner added ...
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
*timestamp* HA partner updated ...
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
*timestamp* HA partner deleted ...
|
||||||
|
|
||||||
The ``request-parser-format`` and ``response-parser-format`` options can be used to
|
The ``request-parser-format`` and ``response-parser-format`` options can be used to
|
||||||
extract and log data from the incoming packet and server response packet,
|
extract and log data from the incoming packet and server response packet,
|
||||||
respectively. The configured value is an evaluated parsed expression returning a
|
respectively. The configured value is an evaluated parsed expression returning a
|
||||||
@ -730,6 +750,26 @@ Examples:
|
|||||||
|
|
||||||
2018-01-06 01:02:11 PST Administrator deleted a lease for a device identified by: duid of 1a:1b:1c:1d:1e:1f:20:21:22:23:24
|
2018-01-06 01:02:11 PST Administrator deleted a lease for a device identified by: duid of 1a:1b:1c:1d:1e:1f:20:21:22:23:24
|
||||||
|
|
||||||
|
If High availability module is enabled, the partner will periodically send lease
|
||||||
|
commands which have a similar format, the only difference is that the issuer of
|
||||||
|
the command is 'HA partner' instead of 'Administrator'.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
*timestamp* HA partner added ...
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
*timestamp* HA partner updated ...
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
*timestamp* HA partner deleted ...
|
||||||
|
|
||||||
The ``request-parser-format`` and ``response-parser-format`` options can be used to
|
The ``request-parser-format`` and ``response-parser-format`` options can be used to
|
||||||
extract and log data from the incoming packet and server response packet,
|
extract and log data from the incoming packet and server response packet,
|
||||||
respectively. The configured value is an evaluated parsed expression returning a
|
respectively. The configured value is an evaluated parsed expression returning a
|
||||||
|
@ -81,6 +81,7 @@ CommandCreator::createLease4Update(const Lease4& lease4) {
|
|||||||
ElementPtr lease_as_json = lease4.toElement();
|
ElementPtr lease_as_json = lease4.toElement();
|
||||||
insertLeaseExpireTime(lease_as_json);
|
insertLeaseExpireTime(lease_as_json);
|
||||||
lease_as_json->set("force-create", Element::create(true));
|
lease_as_json->set("force-create", Element::create(true));
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
ConstElementPtr command = config::createCommand("lease4-update", lease_as_json);
|
ConstElementPtr command = config::createCommand("lease4-update", lease_as_json);
|
||||||
insertService(command, HAServerType::DHCPv4);
|
insertService(command, HAServerType::DHCPv4);
|
||||||
return (command);
|
return (command);
|
||||||
@ -90,6 +91,7 @@ ConstElementPtr
|
|||||||
CommandCreator::createLease4Delete(const Lease4& lease4) {
|
CommandCreator::createLease4Delete(const Lease4& lease4) {
|
||||||
ElementPtr lease_as_json = lease4.toElement();
|
ElementPtr lease_as_json = lease4.toElement();
|
||||||
insertLeaseExpireTime(lease_as_json);
|
insertLeaseExpireTime(lease_as_json);
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
ConstElementPtr command = config::createCommand("lease4-del", lease_as_json);
|
ConstElementPtr command = config::createCommand("lease4-del", lease_as_json);
|
||||||
insertService(command, HAServerType::DHCPv4);
|
insertService(command, HAServerType::DHCPv4);
|
||||||
return (command);
|
return (command);
|
||||||
@ -149,6 +151,7 @@ CommandCreator::createLease6BulkApply(const Lease6CollectionPtr& leases,
|
|||||||
ElementPtr args = Element::createMap();
|
ElementPtr args = Element::createMap();
|
||||||
args->set("deleted-leases", deleted_leases_list);
|
args->set("deleted-leases", deleted_leases_list);
|
||||||
args->set("leases", leases_list);
|
args->set("leases", leases_list);
|
||||||
|
args->set("origin", Element::create("ha-partner"));
|
||||||
|
|
||||||
ConstElementPtr command = config::createCommand("lease6-bulk-apply", args);
|
ConstElementPtr command = config::createCommand("lease6-bulk-apply", args);
|
||||||
insertService(command, HAServerType::DHCPv6);
|
insertService(command, HAServerType::DHCPv6);
|
||||||
@ -175,6 +178,7 @@ CommandCreator::createLease6BulkApply(LeaseUpdateBacklog& leases) {
|
|||||||
ElementPtr args = Element::createMap();
|
ElementPtr args = Element::createMap();
|
||||||
args->set("deleted-leases", deleted_leases_list);
|
args->set("deleted-leases", deleted_leases_list);
|
||||||
args->set("leases", leases_list);
|
args->set("leases", leases_list);
|
||||||
|
args->set("origin", Element::create("ha-partner"));
|
||||||
|
|
||||||
ConstElementPtr command = config::createCommand("lease6-bulk-apply", args);
|
ConstElementPtr command = config::createCommand("lease6-bulk-apply", args);
|
||||||
insertService(command, HAServerType::DHCPv6);
|
insertService(command, HAServerType::DHCPv6);
|
||||||
@ -186,6 +190,7 @@ CommandCreator::createLease6Update(const Lease6& lease6) {
|
|||||||
ElementPtr lease_as_json = lease6.toElement();
|
ElementPtr lease_as_json = lease6.toElement();
|
||||||
insertLeaseExpireTime(lease_as_json);
|
insertLeaseExpireTime(lease_as_json);
|
||||||
lease_as_json->set("force-create", Element::create(true));
|
lease_as_json->set("force-create", Element::create(true));
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
ConstElementPtr command = config::createCommand("lease6-update", lease_as_json);
|
ConstElementPtr command = config::createCommand("lease6-update", lease_as_json);
|
||||||
insertService(command, HAServerType::DHCPv6);
|
insertService(command, HAServerType::DHCPv6);
|
||||||
return (command);
|
return (command);
|
||||||
@ -195,6 +200,7 @@ ConstElementPtr
|
|||||||
CommandCreator::createLease6Delete(const Lease6& lease6) {
|
CommandCreator::createLease6Delete(const Lease6& lease6) {
|
||||||
ElementPtr lease_as_json = lease6.toElement();
|
ElementPtr lease_as_json = lease6.toElement();
|
||||||
insertLeaseExpireTime(lease_as_json);
|
insertLeaseExpireTime(lease_as_json);
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
ConstElementPtr command = config::createCommand("lease6-del", lease_as_json);
|
ConstElementPtr command = config::createCommand("lease6-del", lease_as_json);
|
||||||
insertService(command, HAServerType::DHCPv6);
|
insertService(command, HAServerType::DHCPv6);
|
||||||
return (command);
|
return (command);
|
||||||
|
@ -208,6 +208,7 @@ TEST(CommandCreatorTest, createLease4Update) {
|
|||||||
// The lease update must contain the "force-create" parameter indicating that
|
// The lease update must contain the "force-create" parameter indicating that
|
||||||
// the lease must be created if it doesn't exist.
|
// the lease must be created if it doesn't exist.
|
||||||
lease_as_json->set("force-create", Element::create(true));
|
lease_as_json->set("force-create", Element::create(true));
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,6 +220,7 @@ TEST(CommandCreatorTest, createLease4Delete) {
|
|||||||
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease4-del", "dhcp4",
|
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease4-del", "dhcp4",
|
||||||
arguments));
|
arguments));
|
||||||
ElementPtr lease_as_json = leaseAsJson(createLease4());
|
ElementPtr lease_as_json = leaseAsJson(createLease4());
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,6 +336,7 @@ TEST(CommandCreatorTest, createLease6Update) {
|
|||||||
// The lease update must contain the "force-create" parameter indicating that
|
// The lease update must contain the "force-create" parameter indicating that
|
||||||
// the lease must be created if it doesn't exist.
|
// the lease must be created if it doesn't exist.
|
||||||
lease_as_json->set("force-create", Element::create(true));
|
lease_as_json->set("force-create", Element::create(true));
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,6 +348,7 @@ TEST(CommandCreatorTest, createLease6Delete) {
|
|||||||
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease6-del", "dhcp6",
|
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease6-del", "dhcp6",
|
||||||
arguments));
|
arguments));
|
||||||
ElementPtr lease_as_json = leaseAsJson(createLease6());
|
ElementPtr lease_as_json = leaseAsJson(createLease6());
|
||||||
|
lease_as_json->set("origin", Element::create("ha-partner"));
|
||||||
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
EXPECT_EQ(lease_as_json->str(), arguments->str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,6 +368,10 @@ TEST(CommandCreatorTest, createLease6BulkApply) {
|
|||||||
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease6-bulk-apply",
|
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease6-bulk-apply",
|
||||||
"dhcp6", arguments));
|
"dhcp6", arguments));
|
||||||
|
|
||||||
|
ConstElementPtr origin = arguments->get("origin");
|
||||||
|
ASSERT_TRUE(origin);
|
||||||
|
ASSERT_EQ("ha-partner", origin->stringValue());
|
||||||
|
|
||||||
// Verify deleted-leases.
|
// Verify deleted-leases.
|
||||||
auto deleted_leases_json = arguments->get("deleted-leases");
|
auto deleted_leases_json = arguments->get("deleted-leases");
|
||||||
ASSERT_TRUE(deleted_leases_json);
|
ASSERT_TRUE(deleted_leases_json);
|
||||||
@ -396,6 +404,10 @@ TEST(CommandCreatorTest, createLease6BulkApplyFromBacklog) {
|
|||||||
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease6-bulk-apply",
|
ASSERT_NO_FATAL_FAILURE(testCommandBasics(command, "lease6-bulk-apply",
|
||||||
"dhcp6", arguments));
|
"dhcp6", arguments));
|
||||||
|
|
||||||
|
ConstElementPtr origin = arguments->get("origin");
|
||||||
|
ASSERT_TRUE(origin);
|
||||||
|
ASSERT_EQ("ha-partner", origin->stringValue());
|
||||||
|
|
||||||
// Verify deleted-leases.
|
// Verify deleted-leases.
|
||||||
auto deleted_leases_json = arguments->get("deleted-leases");
|
auto deleted_leases_json = arguments->get("deleted-leases");
|
||||||
ASSERT_TRUE(deleted_leases_json);
|
ASSERT_TRUE(deleted_leases_json);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user