Skip to content

Commit

Permalink
Fixes #5689: Rewrite system techniques to use rudder_common_report
Browse files Browse the repository at this point in the history
  • Loading branch information
peckpeck committed Nov 27, 2014
1 parent aff0f55 commit 52d4fd2
Show file tree
Hide file tree
Showing 17 changed files with 623 additions and 436 deletions.
11 changes: 10 additions & 1 deletion scripts/check-techniques.sh
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ then
exit 8
fi

# Check that no StringTemplate thingies were put into the initial-promises ( lines beginning with & or StringTemplate iterators )
# Check that no StringTemplate thingies were put into the initial-promises ( lines beginning with & or StringTemplate iterators )
if grep -E -r '^\s*&|&[a-zA-Z_]&' ${REPOSITORY_PATH}/initial-promises
then
echo "There are some StringTemplate definitions in the initial promises"
Expand Down Expand Up @@ -118,3 +118,12 @@ do
exit 10
fi
done

# check that techniques do not use reports:
${REPOSITORY_PATH}/scripts/technique-files -l -f '*.cf' -f '*.st' "${REPOSITORY_PATH}" | grep -v initial-promises | egrep -v "techniques/system/common/1.0/(rudder_stdlib.st|update.st|promises.st|process_matching.st)|techniques/system/distributePolicy/1.0/rsyslogConf.st" | grep -v cfengine_stdlib | while read filename
do
if egrep '^[[:space:]]*reports:' "${filename}" >/dev/null; then
echo "The file ${filename} uses reports: instead of rudder_common_report"
exit 11
fi
done
6 changes: 4 additions & 2 deletions scripts/xval.pl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@

if($ARGV[0] ne "")
{
print "Opening $ARGV[0]...\n";
# stop beeing too verbose
# print "Opening $ARGV[0]...\n";
$xmlfile = shift @ARGV; # the file to parse
}
else
Expand All @@ -27,6 +28,7 @@
print STDERR "\nERROR in '$xmlfile':\n$@\n";
exit 1;
} else {
print STDERR "'$xmlfile' is well-formed\n";
# stop beeing too verbose
# print STDERR "'$xmlfile' is well-formed\n";
exit 0;
}
89 changes: 59 additions & 30 deletions techniques/system/common/1.0/e2s_activation.st
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@
bundle agent e2s_enable
{

classes:
any::
"pass3" expression => "pass2";
"pass2" expression => "pass1";
"pass1" expression => "any";

methods:

windows::
Expand All @@ -40,12 +46,11 @@ bundle agent e2s_enable
"any" usebundle => e2sLaunch;
&endif&

reports:
e2s_tool_copied|e2s_installed|e2s_configure_repaired|e2s_service_repaired::
"@@Common@@log_repaired@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Centreon E2S service was not installed, configured and running. Fixed.";
pass3.(e2s_tool_copied|e2s_installed|e2s_configure_repaired|e2s_service_repaired)::
"any" usebundle => rudder_common_report("Common", "log_repaired", "&TRACKINGKEY&", "Log system for reports", "None", "Centreon E2S service was not installed, configured and running. Fixed.");

e2s_tool_kept.!e2s_tool_copied.!cannot_copy_e2s.!e2s_installed.!e2s_install_failed.e2s_configure_kept.!e2s_configure_repaired.!e2s_configure_error.e2s_service_kept.!e2s_service_repaired.!e2s_service_error::
"@@Common@@result_success@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Centreon E2S service already installed, configured and running as expected.";
pass3.(e2s_tool_kept.!e2s_tool_copied.!cannot_copy_e2s.!e2s_installed.!e2s_install_failed.e2s_configure_kept.!e2s_configure_repaired.!e2s_configure_error.e2s_service_kept.!e2s_service_repaired.!e2s_service_error)::
"any" usebundle => rudder_common_report("Common", "result_success", "&TRACKINGKEY&", "Log system for reports", "None", "Centreon E2S service already installed, configured and running as expected.");

}

Expand All @@ -62,6 +67,12 @@ bundle common e2sCommon
bundle agent e2sGet
{

classes:
any::
"pass3" expression => "pass2";
"pass2" expression => "pass1";
"pass1" expression => "any";

files:
windows::
"${g.rudder_sbin}/centreon_e2s.exe"
Expand All @@ -76,13 +87,13 @@ bundle agent e2sGet
classes => kept_if_else("e2s_tool_kept", "e2s_tool_copied", "cannot_copy_e2s"),
comment => "Copying tool for e2s conversion";

reports:
methods:

e2s_tool_copied::
"@@Common@@log_repaired@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Copied E2S utilities";
pass3.e2s_tool_copied::
"any" usebundle => rudder_common_report("Common", "log_repaired", "&TRACKINGKEY&", "Log system for reports", "None", "Copied E2S utilities");

cannot_copy_e2s::
"@@Common@@result_error@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Could not copy E2S utilities";
pass3.cannot_copy_e2s::
"any" usebundle => rudder_common_report("Common", "result_error", "&TRACKINGKEY&", "Log system for reports", "None", "Could not copy E2S utilities");

}

Expand All @@ -97,6 +108,18 @@ bundle agent e2sInstall
x86_64::
"e2s_ok" expression => fileexists("${sys.winprogdir86}\Centreon\Centreon E2S\Centreon-EventLog-2-Syslog.exe");

any::
"pass3" expression => "pass2";
"pass2" expression => "pass1";
"pass1" expression => "any";

methods:

pass3.e2s_installed::
"any" usebundle => rudder_common_report("Common", "log_repaired", "&TRACKINGKEY&", "Log system for reports", "None", "Installed Centreon E2S");
pass3.e2s_install_failed::
"any" usebundle => rudder_common_report("Common", "result_error", "&TRACKINGKEY&", "Log system for reports", "None", "Failed to install Centreon E2S");

commands:

windows.!e2s_ok::
Expand All @@ -107,13 +130,6 @@ bundle agent e2sInstall
classes => cf2_if_else("e2s_installed", "e2s_install_failed"),
comment => "Installing Centreon E2S";

reports:

e2s_installed::
"@@Common@@log_repaired@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Installed Centreon E2S";
e2s_install_failed::
"@@Common@@result_error@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Failed to install Centreon E2S";

}

bundle agent e2sConfigure
Expand All @@ -125,6 +141,12 @@ bundle agent e2sConfigure
x86_64::
"e2s_config_file" string => "${sys.winprogdir86}\Centreon\Centreon E2S\Configuration.xml";

classes:
any::
"pass3" expression => "pass2";
"pass2" expression => "pass1";
"pass1" expression => "any";

files:

"${e2s_config_file}"
Expand All @@ -133,33 +155,40 @@ bundle agent e2sConfigure
edit_line => e2s_parameters("${server_info.cfserved}", "&SYSLOGPORT&", "TCP", "${e2sCommon.e2s_tpl}"),
edit_defaults => empty_backup;

reports:
e2s_configure_error::
"@@Common@@result_error@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Failed to configure Centreon E2S";
e2s_configure_repaired::
"@@Common@@log_repaired@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Update Centreon E2S configuration";
methods:
pass3.e2s_configure_error::
"any" usebundle => rudder_common_report("Common", "result_error", "&TRACKINGKEY&", "Log system for reports", "None", "Failed to configure Centreon E2S");
pass3.e2s_configure_repaired::
"any" usebundle => rudder_common_report("Common", "log_repaired", "&TRACKINGKEY&", "Log system for reports", "None", "Update Centreon E2S configuration");

}

&if(NOVA)&
bundle agent e2sLaunch
{

classes:
any::
"pass3" expression => "pass2";
"pass2" expression => "pass1";
"pass1" expression => "any";

methods:
pass3.e2s_service_error::
"any" usebundle => rudder_common_report("Common", "result_error", "&TRACKINGKEY&", "Log system for reports", "None", "Error while checking or restarting Centreon E2S service");
pass3.e2s_service_repaired::
"any" usebundle => rudder_common_report("Common", "log_repaired", "&TRACKINGKEY&", "Log system for reports", "None", "Centreon E2S was restarted");

pass3.(e2s_service_kept.!e2s_configure_repaired)::
"any" usebundle => rudder_common_report("Common", "result_success", "&TRACKINGKEY&", "Log system for reports", "None", "Centreon E2S was correctly configured");

services:

"Centreon-E2S"
service_policy => "start",
service_method => u_bootstart,
classes => kept_if_else("e2s_service_kept", "e2s_service_repaired", "e2s_service_error");

reports:
e2s_service_error::
"@@Common@@result_error@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Error while checking or restarting Centreon E2S service";
e2s_service_repaired::
"@@Common@@log_repaired@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Centreon E2S was restarted";

e2s_service_kept.!e2s_configure_repaired::
"@@Common@@result_success@@&TRACKINGKEY&@@Log system for reports@@None@@${g.execRun}##${g.uuid}@#Centreon E2S was correctly configured";
}
&endif&

Expand Down
11 changes: 6 additions & 5 deletions techniques/system/common/1.0/internal_security.st
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,18 @@ bundle agent internal_security
perms => mog("${mode}", "${user}", "${group}"),
classes => kept_if_else("security_sanitization_ok", "security_sanitization_repaired", "security_sanitization_failed");

reports:
methods:

security_sanitization_ok.!security_sanitization_repaired::
"@@Common@@result_success@@&TRACKINGKEY&@@Security parameters@@None@@${g.execRun}##${g.uuid}@#The internal environment security is acceptable";
"any" usebundle => rudder_common_report("Common", "result_success", "&TRACKINGKEY&", "Security parameters", "None", "The internal environment security is acceptable");

security_sanitization_repaired::
"@@Common@@result_repaired@@&TRACKINGKEY&@@Security parameters@@None@@${g.execRun}##${g.uuid}@#Some internal security parameters were adjusted";
"any" usebundle => rudder_common_report("Common", "result_repaired", "&TRACKINGKEY&", "Security parameters", "None", "Some internal security parameters were adjusted");

security_sanitization_failed::
"@@Common@@result_error@@&TRACKINGKEY&@@Security parameters@@None@@${g.execRun}##${g.uuid}@#The internal environment security is NOT acceptable!";
"any" usebundle => rudder_common_report("Common", "result_error", "&TRACKINGKEY&", "Security parameters", "None", "The internal environment security is NOT acceptable!");

windows::
"@@Common@@result_success@@&TRACKINGKEY&@@Security parameters@@None@@${g.execRun}##${g.uuid}@#No internal security parameters defined for Windows OSes yet";
"any" usebundle => rudder_common_report("Common", "result_success", "&TRACKINGKEY&", "Security parameters", "None", "No internal security parameters defined for Windows OSes yet");

}

0 comments on commit 52d4fd2

Please sign in to comment.