Only run 'api setup' if the feature was not enabled

It is safe to assume that the user either did run
'node wizard' or 'node setup' in >= 2.3.x before, or
manually enabled the api feature and deployed the
certificates (otherwise Icinga2 wouldn't start either).

In that case we'll skip the api setup to ensure that we
don't override any existing configuration at all.

refs #9471
This commit is contained in:
Michael Friedrich 2015-06-25 10:21:18 +02:00
parent 6f43162efa
commit 663f09e475
1 changed files with 10 additions and 1 deletions

View File

@ -45,6 +45,16 @@ String ApiSetupUtility::GetConfdPath(void)
int ApiSetupUtility::SetupMaster(void) int ApiSetupUtility::SetupMaster(void)
{ {
/* if the 'api' feature is enabled we can safely assume
* that either 'api setup' was run, or the user manually
* enabled the api including all certificates e.g. by 'node wizard' in <= v2.3.x
*/
if (FeatureUtility::CheckFeatureEnabled("api")) {
Log(LogInformation, "cli")
<< "'api' feature already enabled, skipping feature enable and master certificate creation.\n";
return 0;
}
Log(LogInformation, "cli") Log(LogInformation, "cli")
<< "Generating new CA.\n"; << "Generating new CA.\n";
@ -177,6 +187,5 @@ int ApiSetupUtility::SetupMaster(void)
enable.push_back("api"); enable.push_back("api");
FeatureUtility::EnableFeatures(enable); FeatureUtility::EnableFeatures(enable);
return 0; return 0;
} }