Implement generic restart systemd unit function
Change-Id: Ibd0ec4e7c3b9c395898673839ccf4de85616b201
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/network_manager.cpp b/network_manager.cpp
index 0607b0e..1612f6d 100644
--- a/network_manager.cpp
+++ b/network_manager.cpp
@@ -218,23 +218,7 @@
stream.close();
}
- restartSystemdNetworkd();
-}
-
-void Manager::restartSystemdNetworkd()
-{
- constexpr auto systemdNetworkdService = "systemd-networkd.service";
-
- auto method = bus.new_method_call(
- SYSTEMD_BUSNAME,
- SYSTEMD_PATH,
- SYSTEMD_INTERFACE,
- "RestartUnit");
-
- method.append(systemdNetworkdService,
- "replace");
-
- bus.call_noreply(method);
+ restartSystemdUnit("systemd-networkd.service");
}
bool Manager::getDHCPValue(const std::string& intf)
diff --git a/network_manager.hpp b/network_manager.hpp
index ce61737..1854364 100644
--- a/network_manager.hpp
+++ b/network_manager.hpp
@@ -75,10 +75,6 @@
private:
- /** @brief Restart the systemd networkd
- */
- void restartSystemdNetworkd();
-
/** @brief Persistent sdbusplus DBus bus connection. */
sdbusplus::bus::bus& bus;
diff --git a/util.cpp b/util.cpp
index 3c411cb..64a913c 100644
--- a/util.cpp
+++ b/util.cpp
@@ -1,4 +1,5 @@
#include "util.hpp"
+
#include "xyz/openbmc_project/Common/error.hpp"
#include <phosphor-logging/log.hpp>
diff --git a/util.hpp b/util.hpp
index 6f27af9..3434aca 100644
--- a/util.hpp
+++ b/util.hpp
@@ -1,7 +1,10 @@
#pragma once
#include <unistd.h>
+
+#include "config.h"
#include "types.hpp"
+#include <sdbusplus/bus.hpp>
namespace phosphor
{
@@ -42,6 +45,24 @@
*/
IntfAddrMap getInterfaceAddrs();
+/** @brief Restart the systemd unit
+ * @param[in] unit - systemd unit name which needs to be
+ * restarted.
+ */
+inline void restartSystemdUnit(const std::string& unit)
+{
+ auto bus = sdbusplus::bus::new_default();
+ auto method = bus.new_method_call(
+ SYSTEMD_BUSNAME,
+ SYSTEMD_PATH,
+ SYSTEMD_INTERFACE,
+ "RestartUnit");
+
+ method.append(unit, "replace");
+ bus.call_noreply(method);
+
+}
+
} //namespace network
class Descriptor