]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#689] Include error messages for lease updates in the log.
authorMarcin Siodelski <marcin@isc.org>
Mon, 24 Jun 2019 15:11:51 +0000 (17:11 +0200)
committerMarcin Siodelski <marcin@isc.org>
Mon, 24 Jun 2019 17:10:14 +0000 (13:10 -0400)
src/hooks/dhcp/high_availability/ha_messages.cc
src/hooks/dhcp/high_availability/ha_messages.h
src/hooks/dhcp/high_availability/ha_messages.mes
src/hooks/dhcp/high_availability/ha_service.cc
src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc

index ef5e5661a350a9194befafc1492ebcac0810b581..392826ac70404ceb0f5a34ffc7e86064aeb5de65 100644 (file)
@@ -1,4 +1,4 @@
-// File created from ../../../../src/hooks/dhcp/high_availability/ha_messages.mes on Mon Jun 24 2019 12:19
+// File created from ../../../../src/hooks/dhcp/high_availability/ha_messages.mes on Mon Jun 24 2019 17:05
 
 #include <cstddef>
 #include <log/message_types.h>
@@ -120,8 +120,8 @@ const char* values[] = {
     "HA_LEASE_UPDATES_DISABLED", "lease updates will not be sent to the partner while in %1 state",
     "HA_LEASE_UPDATES_ENABLED", "lease updates will be sent to the partner while in %1 state",
     "HA_LEASE_UPDATE_COMMUNICATIONS_FAILED", "%1: failed to communicate with %2: %3",
-    "HA_LEASE_UPDATE_CREATE_UPDATE_FAILED_ON_PEER", "%1: failed to create or update the lease having type %2 for address %3 in subnet %4",
-    "HA_LEASE_UPDATE_DELETE_FAILED_ON_PEER", "%1: failed to delete the lease having type %2 for address %3 in subnet %4",
+    "HA_LEASE_UPDATE_CREATE_UPDATE_FAILED_ON_PEER", "%1: failed to create or update the lease having type %2 for address %3, reason: %4",
+    "HA_LEASE_UPDATE_DELETE_FAILED_ON_PEER", "%1: failed to delete the lease having type %2 for address %3, reason: %4",
     "HA_LEASE_UPDATE_FAILED", "%1: lease update to %2 failed: %3",
     "HA_LOAD_BALANCING_DUID_MISSING", "load balancing failed for the DHCPv6 message (transaction id: %1) because DUID is missing",
     "HA_LOAD_BALANCING_IDENTIFIER_MISSING", "load balancing failed for the DHCPv4 message (transaction id: %1) because HW address and client identifier are missing",
index 0aa8d7104e0ee204e811f256d3a220546a62eb52..631290b1b37936f86e86cccdb0bf8807af9e3040 100644 (file)
@@ -1,4 +1,4 @@
-// File created from ../../../../src/hooks/dhcp/high_availability/ha_messages.mes on Mon Jun 24 2019 12:19
+// File created from ../../../../src/hooks/dhcp/high_availability/ha_messages.mes on Mon Jun 24 2019 17:05
 
 #ifndef HA_MESSAGES_H
 #define HA_MESSAGES_H
index aaacf9b2fe1c324694b5bf73404275af7a805ef3..85ba97bea46eae692f8c9655512d6bc40b092a16 100644 (file)
@@ -262,12 +262,12 @@ This warning message indicates that there was a problem in communication with a
 HA peer while processing a DHCP client query and sending lease update. The
 client's DHCP message will be dropped.
 
-% HA_LEASE_UPDATE_DELETE_FAILED_ON_PEER %1: failed to delete the lease having type %2 for address %3 in subnet %4
+% HA_LEASE_UPDATE_DELETE_FAILED_ON_PEER %1: failed to delete the lease having type %2 for address %3, reason: %4
 This informational message is issued when one of the leases failed to delete
 on the HA peer while processing lease updates sent from this server. Typically,
 the lease fails to delete when it doesn't exist in the peer's database.
 
-% HA_LEASE_UPDATE_CREATE_UPDATE_FAILED_ON_PEER %1: failed to create or update the lease having type %2 for address %3 in subnet %4
+% HA_LEASE_UPDATE_CREATE_UPDATE_FAILED_ON_PEER %1: failed to create or update the lease having type %2 for address %3, reason: %4
 This informational message is issued when one of the leases failed to be
 created or updated on the HA peer whilw processing the lease updates sent
 from this server. This may indicate an issue with communication between
index 8514fc48d6237809ef8f6453fe85129e3aa18aa2..1abf3e4f1464237ee81c872565993e0ff8f5ea8c 100644 (file)
@@ -916,28 +916,24 @@ HAService::logFailedLeaseUpdates(const PktPtr& query,
             for (int i = 0; i < failed_leases->size(); ++i) {
                 auto lease = failed_leases->get(i);
                 if (lease->getType() == Element::map) {
-                    // subnet-id
-                    auto subnet_id = lease->get("subnet-id");
-                    std::ostringstream subnet_id_text;
-                    if (subnet_id && subnet_id->getType() == Element::integer) {
-                        subnet_id_text << subnet_id->intValue();
-
-                    } else {
-                        subnet_id_text << "(unknown)";
-                    }
 
                     // ip-address
                     auto ip_address = lease->get("ip-address");
+
                     // lease type
                     auto lease_type = lease->get("type");
 
+                    // error-message
+                    auto error_message = lease->get("error-message");
+
                     LOG_INFO(ha_logger, mesid)
                         .arg(query->getLabel())
                         .arg(lease_type && (lease_type->getType() == Element::string) ?
                              lease_type->stringValue() : "(uknown)")
                         .arg(ip_address && (ip_address->getType() == Element::string) ?
                              ip_address->stringValue() : "(unknown)")
-                        .arg(subnet_id_text.str());
+                        .arg(error_message && (error_message->getType() == Element::string) ?
+                             error_message->stringValue() : "(unknown)");
                 }
             }
         }
index 55df42f5fce42a4072feb9a16508fe798ee0599d..9a228acab6188c77c593bda0dc83624b30349c75 100644 (file)
@@ -1498,12 +1498,16 @@ TEST_F(HAServiceTest, sendUpdatesFailedLeases6) {
     failed_deleted_lease->set("type", Element::create("IA_NA"));
     failed_deleted_lease->set("ip-address", Element::create("2001:db8:1::1"));
     failed_deleted_lease->set("subnet-id", Element::create(1));
+    failed_deleted_lease->set("result", Element::create(CONTROL_RESULT_EMPTY));
+    failed_deleted_lease->set("error-message", Element::create("no lease found"));
 
     // Crate a dummy lease which failed to be created.
     auto failed_lease = Element::createMap();
     failed_lease->set("type", Element::create("IA_PD"));
     failed_lease->set("ip-address", Element::create("2001:db8:1::"));
     failed_lease->set("subnet-id", Element::create(2));
+    failed_lease->set("result", Element::create(CONTROL_RESULT_ERROR));
+    failed_lease->set("error-message", Element::create("failed to create lease"));
 
     // Create the "failed-deleted-leases" list.
     auto failed_deleted_leases = Element::createList();