From: Marcin Siodelski Date: Wed, 10 Jan 2018 10:08:12 +0000 (+0100) Subject: [5468] Leases returned for lease4-get-all command are storedin "subnets". X-Git-Tag: trac5469_base~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82b89ddd14555378f14850c02964e4e873b40446;p=thirdparty%2Fkea.git [5468] Leases returned for lease4-get-all command are storedin "subnets". --- diff --git a/src/hooks/dhcp/lease_cmds/lease_cmds.cc b/src/hooks/dhcp/lease_cmds/lease_cmds.cc index 58e1af4a3d..32c47812b1 100644 --- a/src/hooks/dhcp/lease_cmds/lease_cmds.cc +++ b/src/hooks/dhcp/lease_cmds/lease_cmds.cc @@ -514,8 +514,10 @@ LeaseCmdsImpl::lease4GetAllHandler(CalloutHandle& handle) { std::ostringstream s; s << leases_json->size() << " IPv4 lease(s) found."; + ElementPtr args = Element::createMap(); + args->set("leases", leases_json); ConstElementPtr response = createAnswer(CONTROL_RESULT_SUCCESS, - s.str(), leases_json); + s.str(), args); setResponse(handle, response); diff --git a/src/hooks/dhcp/lease_cmds/tests/lease_cmds_unittest.cc b/src/hooks/dhcp/lease_cmds/tests/lease_cmds_unittest.cc index 5deecbd12d..2992e9849d 100644 --- a/src/hooks/dhcp/lease_cmds/tests/lease_cmds_unittest.cc +++ b/src/hooks/dhcp/lease_cmds/tests/lease_cmds_unittest.cc @@ -1140,7 +1140,12 @@ TEST_F(LeaseCmdsTest, Lease4GetAll) { // Now check that the lease parameters were indeed returned. ASSERT_TRUE(rsp); - ConstElementPtr leases = rsp->get("arguments"); + + ConstElementPtr args = rsp->get("arguments"); + ASSERT_TRUE(args); + ASSERT_EQ(Element::map, args->getType()); + + ConstElementPtr leases = args->get("leases"); ASSERT_TRUE(leases); ASSERT_EQ(Element::list, leases->getType()); @@ -1171,7 +1176,12 @@ TEST_F(LeaseCmdsTest, Lease4GetAllBySubnetId) { // Now check that the lease parameters were indeed returned. ASSERT_TRUE(rsp); - ConstElementPtr leases = rsp->get("arguments"); + + ConstElementPtr args = rsp->get("arguments"); + ASSERT_TRUE(args); + ASSERT_EQ(Element::map, args->getType()); + + ConstElementPtr leases = args->get("leases"); ASSERT_TRUE(leases); ASSERT_EQ(Element::list, leases->getType()); @@ -1199,7 +1209,12 @@ TEST_F(LeaseCmdsTest, Lease4GetAllByMultipleSubnetIds) { // Now check that the lease parameters were indeed returned. ASSERT_TRUE(rsp); - ConstElementPtr leases = rsp->get("arguments"); + + ConstElementPtr args = rsp->get("arguments"); + ASSERT_TRUE(args); + ASSERT_EQ(Element::map, args->getType()); + + ConstElementPtr leases = args->get("leases"); ASSERT_TRUE(leases); ASSERT_EQ(Element::list, leases->getType());