mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-05 21:04:28 +02:00
This partially reverts #7150 and avoids exceptions inside the flow. Each time an empty active stage is detected, Icinga tries to repair it from the the given directory tree. Also, the code now takes into account that it should create the package storage on startup, whether within the API object, or if disabled, inside the application. Caching the active stages for packages in memory only is in effect with the API feature being enabled. This is useful for other deployed config packages, not only the internal one. fixes #7173 refs #7150 refs #7119 fixes #6959
47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
|
|
|
#ifndef CONFIGOBJECTUTILITY_H
|
|
#define CONFIGOBJECTUTILITY_H
|
|
|
|
#include "remote/i2-remote.hpp"
|
|
#include "base/array.hpp"
|
|
#include "base/configobject.hpp"
|
|
#include "base/dictionary.hpp"
|
|
#include "base/type.hpp"
|
|
|
|
namespace icinga
|
|
{
|
|
|
|
/**
|
|
* Helper functions.
|
|
*
|
|
* @ingroup remote
|
|
*/
|
|
class ConfigObjectUtility
|
|
{
|
|
|
|
public:
|
|
static String GetConfigDir();
|
|
static String GetObjectConfigPath(const Type::Ptr& type, const String& fullName);
|
|
static void RepairPackage(const String& package);
|
|
static void CreateStorage();
|
|
|
|
static String CreateObjectConfig(const Type::Ptr& type, const String& fullName,
|
|
bool ignoreOnError, const Array::Ptr& templates, const Dictionary::Ptr& attrs);
|
|
|
|
static bool CreateObject(const Type::Ptr& type, const String& fullName,
|
|
const String& config, const Array::Ptr& errors, const Array::Ptr& diagnosticInformation);
|
|
|
|
static bool DeleteObject(const ConfigObject::Ptr& object, bool cascade, const Array::Ptr& errors,
|
|
const Array::Ptr& diagnosticInformation);
|
|
|
|
private:
|
|
static String EscapeName(const String& name);
|
|
static bool DeleteObjectHelper(const ConfigObject::Ptr& object, bool cascade, const Array::Ptr& errors,
|
|
const Array::Ptr& diagnosticInformation);
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* CONFIGOBJECTUTILITY_H */
|