]> granicus.if.org Git - icinga2/blob - lib/cli/nodeutility.hpp
Merge pull request #7145 from Icinga/feature/dotnet-4.6
[icinga2] / lib / cli / nodeutility.hpp
1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2
3 #ifndef NODEUTILITY_H
4 #define NODEUTILITY_H
5
6 #include "base/i2-base.hpp"
7 #include "cli/i2-cli.hpp"
8 #include "base/dictionary.hpp"
9 #include "base/array.hpp"
10 #include "base/value.hpp"
11 #include "base/string.hpp"
12 #include <vector>
13
14 namespace icinga
15 {
16
17 /**
18  * @ingroup cli
19  */
20 class NodeUtility
21 {
22 public:
23         static String GetConstantsConfPath();
24         static String GetZonesConfPath();
25
26         static bool CreateBackupFile(const String& target, bool isPrivate = false);
27
28         static bool WriteNodeConfigObjects(const String& filename, const Array::Ptr& objects);
29
30         static bool GetConfigurationIncludeState(const String& value, bool recursive);
31         static bool UpdateConfiguration(const String& value, bool include, bool recursive);
32         static void UpdateConstant(const String& name, const String& value);
33
34         /* node setup helpers */
35         static int GenerateNodeIcingaConfig(const String& endpointName, const String& zoneName,
36                 const String& parentZoneName, const std::vector<std::string>& endpoints,
37                 const std::vector<String>& globalZones);
38         static int GenerateNodeMasterIcingaConfig(const String& endpointName, const String& zoneName,
39                 const std::vector<String>& globalZones);
40
41 private:
42         NodeUtility();
43
44         static void SerializeObject(std::ostream& fp, const Dictionary::Ptr& object);
45 };
46
47 }
48
49 #endif /* NODEUTILITY_H */