]> granicus.if.org Git - icinga2/commitdiff
Implement ApiListener::Get*Dir() functions
authorMichael Friedrich <michael.friedrich@icinga.com>
Tue, 5 Sep 2017 12:21:30 +0000 (14:21 +0200)
committerGunnar Beutner <gunnar.beutner@icinga.com>
Tue, 12 Sep 2017 10:52:49 +0000 (12:52 +0200)
refs #5450

lib/cli/apisetuputility.cpp
lib/cli/calistcommand.cpp
lib/cli/casigncommand.cpp
lib/cli/nodesetupcommand.cpp
lib/cli/nodewizardcommand.cpp
lib/cli/pkiutility.cpp
lib/cli/pkiutility.hpp
lib/remote/apilistener.cpp
lib/remote/apilistener.hpp
lib/remote/jsonrpcconnection-pki.cpp

index c5a9c928a13460022e29a60b8ae07bbad721c8a4..6a1885e320a9f0d8c0b5c77da914f8704b86185a 100644 (file)
@@ -21,6 +21,7 @@
 #include "cli/pkiutility.hpp"
 #include "cli/nodeutility.hpp"
 #include "cli/featureutility.hpp"
+#include "remote/apilistener.hpp"
 #include "base/logger.hpp"
 #include "base/console.hpp"
 #include "base/application.hpp"
@@ -68,7 +69,7 @@ bool ApiSetupUtility::SetupMasterCertificates(const String& cn)
        if (PkiUtility::NewCa() > 0)
                Log(LogWarning, "cli", "Found CA, skipping and using the existing one.");
 
-       String pki_path = PkiUtility::GetPkiPath();
+       String pki_path = ApiListener::GetPkiDir();
        Utility::MkDirP(pki_path, 0700);
 
        String user = ScriptGlobal::Get("RunAsUser");
@@ -116,7 +117,7 @@ bool ApiSetupUtility::SetupMasterCertificates(const String& cn)
        }
 
        /* Copy CA certificate to /etc/icinga2/pki */
-       String ca_path = PkiUtility::GetLocalCaPath();
+       String ca_path = ApiListener::GetCaDir();
        String ca = ca_path + "/ca.crt";
        String ca_key = ca_path + "/ca.key";
        String target_ca = pki_path + "/ca.crt";
index 5cab64b6e54dd8261d74408228f1d8ecdb81eacd..b538b772f0013f337614a17013b5fba6e3cc1fe7 100644 (file)
@@ -18,6 +18,7 @@
  ******************************************************************************/
 
 #include "cli/calistcommand.hpp"
+#include "remote/apilistener.hpp"
 #include "base/logger.hpp"
 #include "base/application.hpp"
 #include "base/tlsutility.hpp"
@@ -100,7 +101,7 @@ int CAListCommand::Run(const boost::program_options::variables_map& vm, const st
 {
        Dictionary::Ptr requests = new Dictionary();
 
-       String requestDir = Application::GetLocalStateDir() + "/lib/icinga2/pki-requests";
+       String requestDir = ApiListener::GetPkiRequestsDir();
 
        if (Utility::PathExists(requestDir))
                Utility::Glob(requestDir + "/*.json", boost::bind(&CollectRequestHandler, requests, _1), GlobFile);
index 6ca2ff55d9ae361d056be4499eb68df39ba7272c..a61bb2cc75fb1e483be2afb8c232ac1f9e81f7b9 100644 (file)
@@ -18,6 +18,7 @@
  ******************************************************************************/
 
 #include "cli/casigncommand.hpp"
+#include "remote/apilistener.hpp"
 #include "base/logger.hpp"
 #include "base/application.hpp"
 #include "base/tlsutility.hpp"
@@ -53,7 +54,7 @@ ImpersonationLevel CASignCommand::GetImpersonationLevel(void) const
  */
 int CASignCommand::Run(const boost::program_options::variables_map& vm, const std::vector<std::string>& ap) const
 {
-       String requestFile = Application::GetLocalStateDir() + "/lib/icinga2/pki-requests/" + ap[0] + ".json";
+       String requestFile = ApiListener::GetPkiRequestsDir() + "/" + ap[0] + ".json";
 
        if (!Utility::PathExists(requestFile)) {
                Log(LogCritical, "cli")
index 635d21bde20e62a7a1ff53a8e0849e826ded252d..140cad998a1dd1fa7957a42672489d43c6c96ff4 100644 (file)
@@ -22,6 +22,7 @@
 #include "cli/featureutility.hpp"
 #include "cli/pkiutility.hpp"
 #include "cli/apisetuputility.hpp"
+#include "remote/apilistener.hpp"
 #include "base/logger.hpp"
 #include "base/console.hpp"
 #include "base/application.hpp"
@@ -130,7 +131,7 @@ int NodeSetupCommand::SetupMaster(const boost::program_options::variables_map& v
                 cn = vm["cn"].as<std::string>();
 
        /* check whether the user wants to generate a new certificate or not */
-       String existing_path = PkiUtility::GetPkiPath() + "/" + cn + ".crt";
+       String existing_path = ApiListener::GetPkiDir() + "/" + cn + ".crt";
 
        Log(LogInformation, "cli")
            << "Checking for existing certificates for common name '" << cn << "'...";
@@ -305,7 +306,7 @@ int NodeSetupCommand::SetupNode(const boost::program_options::variables_map& vm,
 
        /* pki request a signed certificate from the master */
 
-       String pki_path = PkiUtility::GetPkiPath();
+       String pki_path = ApiListener::GetPkiDir();
        Utility::MkDirP(pki_path, 0700);
 
        String user = ScriptGlobal::Get("RunAsUser");
@@ -440,7 +441,7 @@ int NodeSetupCommand::SetupNode(const boost::program_options::variables_map& vm,
        NodeUtility::UpdateConstant("NodeName", cn);
        NodeUtility::UpdateConstant("ZoneName", vm["zone"].as<std::string>());
 
-       String ticketPath = Application::GetLocalStateDir() + "/lib/icinga2/pki/ticket";
+       String ticketPath = ApiListener::GetPkiDir() + "/ticket";
 
        String tempTicketPath = Utility::CreateTempFile(ticketPath + ".XXXXXX", 0600, fp);
 
index b15cbf4fad30dd23bb712ecf68633c2ef56c40ad..0253a06e2d887ed007f71af7e72b6163097fcc0b 100644 (file)
@@ -22,6 +22,7 @@
 #include "cli/pkiutility.hpp"
 #include "cli/featureutility.hpp"
 #include "cli/apisetuputility.hpp"
+#include "remote/apilistener.hpp"
 #include "base/logger.hpp"
 #include "base/console.hpp"
 #include "base/application.hpp"
@@ -229,7 +230,7 @@ wizard_endpoint_loop_start:
                }
 
                /* workaround for fetching the master cert */
-               String pki_path = PkiUtility::GetPkiPath();
+               String pki_path = ApiListener::GetPkiDir();
                Utility::MkDirP(pki_path, 0700);
 
                String user = ScriptGlobal::Get("RunAsUser");
@@ -497,7 +498,7 @@ wizard_ticket:
                cn = cn.Trim();
 
                /* check whether the user wants to generate a new certificate or not */
-               String existing_path = PkiUtility::GetPkiPath() + "/" + cn + ".crt";
+               String existing_path = ApiListener::GetPkiDir() + "/" + cn + ".crt";
 
                std::cout << ConsoleColorTag(Console_Normal)
                    << "Checking for existing certificates for common name '" << cn << "'...\n";
index fffb51bfdca80bf01e7ef453877add4890952b7a..c1325aafd9f120d74f7d1e02c31e74398ad19057 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "cli/pkiutility.hpp"
 #include "cli/clicommand.hpp"
+#include "remote/apilistener.hpp"
 #include "base/logger.hpp"
 #include "base/application.hpp"
 #include "base/tlsutility.hpp"
 
 using namespace icinga;
 
-String PkiUtility::GetPkiPath(void)
-{
-       return Application::GetLocalStateDir() + "/lib/icinga2/pki";
-}
-
-String PkiUtility::GetLocalCaPath(void)
-{
-       return Application::GetLocalStateDir() + "/lib/icinga2/ca";
-}
-
 int PkiUtility::NewCa(void)
 {
-       String caDir = GetLocalCaPath();
+       String caDir = ApiListener::GetCaDir();
        String caCertFile = caDir + "/ca.crt";
        String caKeyFile = caDir + "/ca.key";
 
index 2a3b1b7c4b3a4e39caa68701640270702cd76aa4..830de9d46f2dc18bfa708091ede8cef13140e96a 100644 (file)
@@ -35,9 +35,6 @@ namespace icinga
 class I2_CLI_API PkiUtility
 {
 public:
-       static String GetPkiPath(void);
-       static String GetLocalCaPath(void);
-
        static int NewCa(void);
        static int NewCert(const String& cn, const String& keyfile, const String& csrfile, const String& certfile);
        static int SignCsr(const String& csrfile, const String& certfile);
index 6baabaff21434beee2c891023869075f54d174c2..e3a25b8f4c2ec5841705b6ebbf780df4792f68b0 100644 (file)
@@ -55,6 +55,26 @@ ApiListener::ApiListener(void)
        m_SyncQueue.SetName("ApiListener, SyncQueue");
 }
 
+String ApiListener::GetApiDir(void)
+{
+       return Application::GetLocalStateDir() + "/lib/icinga2/api/";
+}
+
+String ApiListener::GetPkiDir(void)
+{
+       return Application::GetLocalStateDir() + "/lib/icinga2/pki/";
+}
+
+String ApiListener::GetCaDir(void)
+{
+       return Application::GetLocalStateDir() + "/lib/icinga2/ca/";
+}
+
+String ApiListener::GetPkiRequestsDir(void)
+{
+       return Application::GetLocalStateDir() + "/lib/icinga2/pki-requests/";
+}
+
 void ApiListener::OnConfigLoaded(void)
 {
        if (m_Instance)
@@ -499,8 +519,8 @@ void ApiListener::SyncClient(const JsonRpcConnection::Ptr& aclient, const Endpoi
 
                        JsonRpcConnection::SendCertificateRequest(aclient, MessageOrigin::Ptr(), String());
 
-                       if (Utility::PathExists(Application::GetLocalStateDir() + "/lib/icinga2/pki-requests"))
-                               Utility::Glob(Application::GetLocalStateDir() + "/lib/icinga2/pki-requests/*.json", boost::bind(&JsonRpcConnection::SendCertificateRequest, aclient, MessageOrigin::Ptr(), _1), GlobFile);
+                       if (Utility::PathExists(ApiListener::GetPkiRequestsDir()))
+                               Utility::Glob(ApiListener::GetPkiRequestsDir() + "/*.json", boost::bind(&JsonRpcConnection::SendCertificateRequest, aclient, MessageOrigin::Ptr(), _1), GlobFile);
                }
 
                /* Make sure that the config updates are synced
@@ -888,11 +908,6 @@ void ApiListener::SyncRelayMessage(const MessageOrigin::Ptr& origin,
                PersistMessage(message, secobj);
 }
 
-String ApiListener::GetApiDir(void)
-{
-       return Application::GetLocalStateDir() + "/lib/icinga2/api/";
-}
-
 /* must hold m_LogLock */
 void ApiListener::OpenLogFile(void)
 {
index d302247a69a9752202a6c3df9e97a74799cb5340..57e9db2677a9a5b7367e40b9d2f31dc2f6a700b4 100644 (file)
@@ -59,17 +59,20 @@ public:
 
        ApiListener(void);
 
-       static ApiListener::Ptr GetInstance(void);
+       static String GetApiDir(void);
+       static String GetPkiDir(void);
+       static String GetCaDir(void);
+       static String GetPkiRequestsDir(void);
 
        void UpdateSSLContext(void);
 
+       static ApiListener::Ptr GetInstance(void);
+
        Endpoint::Ptr GetMaster(void) const;
        bool IsMaster(void) const;
 
        Endpoint::Ptr GetLocalEndpoint(void) const;
 
-       static String GetApiDir(void);
-
        void SyncSendMessage(const Endpoint::Ptr& endpoint, const Dictionary::Ptr& message);
        void RelayMessage(const MessageOrigin::Ptr& origin, const ConfigObject::Ptr& secobj, const Dictionary::Ptr& message, bool log);
 
index 6687cea4e68a9640bff50a845210879f8f6a092b..2d5ee5edb04fa3d066f29ca4122248246c715998 100644 (file)
@@ -91,7 +91,7 @@ Value RequestCertificateHandler(const MessageOrigin::Ptr& origin, const Dictiona
 
        result->Set("fingerprint_request", certFingerprint);
 
-       String requestDir = Application::GetLocalStateDir() + "/lib/icinga2/pki-requests";
+       String requestDir = ApiListener::GetPkiRequestsDir();
        String requestPath = requestDir + "/" + certFingerprint + ".json";
 
        result->Set("ca", CertificateToString(cacert));
@@ -265,7 +265,7 @@ Value UpdateCertificateHandler(const MessageOrigin::Ptr& origin, const Dictionar
                        return Empty;
                }
 
-               String requestDir = Application::GetLocalStateDir() + "/lib/icinga2/pki-requests";
+               String requestDir = ApiListener::GetPkiRequestsDir();
                String requestPath = requestDir + "/" + certFingerprint + ".json";
 
                std::cout << requestPath << "\n";