xref: /openbmc/phosphor-user-manager/phosphor-ldap-config/main.cpp (revision 703131fa01422bc28675f5d629edb98d285a1bc4)
1 #include "config.h"
2 #include "ldap_config_mgr.hpp"
3 #include <filesystem>
4 #include <phosphor-logging/log.hpp>
5 #include <phosphor-logging/elog-errors.hpp>
6 #include <sdbusplus/bus.hpp>
7 #include <xyz/openbmc_project/Common/error.hpp>
8 
9 int main(int argc, char* argv[])
10 {
11     using namespace phosphor::logging;
12     using namespace sdbusplus::xyz::openbmc_project::Common::Error;
13 
14     std::filesystem::path configDir =
15         std::filesystem::path(LDAP_CONFIG_FILE).parent_path();
16 
17     if (!std::filesystem::exists(configDir /
18                                  phosphor::ldap::defaultNslcdFile) ||
19         !std::filesystem::exists(configDir / phosphor::ldap::nsSwitchFile))
20     {
21         log<level::ERR>("Error starting LDAP Config App, configfile(s) are "
22                         "missing, exiting!!!");
23         elog<InternalFailure>();
24     }
25     auto bus = sdbusplus::bus::new_default();
26 
27     // Add sdbusplus ObjectManager for the 'root' path of the LDAP config.
28     sdbusplus::server::manager::manager objManager(bus, LDAP_CONFIG_ROOT);
29 
30     phosphor::ldap::ConfigMgr mgr(bus, LDAP_CONFIG_ROOT, LDAP_CONFIG_FILE,
31                                   LDAP_CONF_PERSIST_PATH, TLS_CACERT_PATH,
32                                   TLS_CERT_FILE);
33     mgr.restore();
34 
35     bus.request_name(LDAP_CONFIG_BUSNAME);
36 
37     while (true)
38     {
39         bus.process_discard();
40         bus.wait();
41     }
42 
43     return 0;
44 }
45