From 60fd4c6029e03d3581964bfce9d51dbaa8ee028d Mon Sep 17 00:00:00 2001 From: Ben Thompson Date: Tue, 18 Apr 2017 15:58:09 -0500 Subject: [PATCH] modify liboam changeMyCnf to add new values with prefix 'loose-' add change to setConfig and setSystemName to set the server_audit_syslog_info value when systemName is changed --- oam/oamcpp/liboamcpp.cpp | 37 +++++++++++++++++++------ oamapps/postConfigure/postConfigure.cpp | 2 ++ tools/setConfig/main.cpp | 6 ++++ 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/oam/oamcpp/liboamcpp.cpp b/oam/oamcpp/liboamcpp.cpp index 02c985b6a..4f51d83a3 100644 --- a/oam/oamcpp/liboamcpp.cpp +++ b/oam/oamcpp/liboamcpp.cpp @@ -8336,7 +8336,7 @@ namespace oam /****************************************************************************************** * @brief changeMyCnf * - * purpose: change my.cnf + * purpose: change my.cnf and add if value is not present to mysqld section * ******************************************************************************************/ bool Oam::changeMyCnf( std::string paramater, std::string value ) @@ -8351,24 +8351,43 @@ namespace oam vector lines; char line[200]; string buf; + bool foundIt = false; while (file.getline(line, 200)) { buf = line; - // change port - if ( paramater == "port" ) + string::size_type pos = buf.find(paramater,0); + if ( pos == 0 ) { - string::size_type pos = buf.find(paramater,0); - if ( pos == 0 ) { - string::size_type pos = buf.find("=",0); - if ( pos != string::npos ) - buf = "port = " + value; + string::size_type pos = buf.find("=",0); + if ( pos != string::npos ) + { + buf = paramater + " = " + value; + foundIt = true; } } //output to temp file lines.push_back(buf); } - + if (!foundIt) + { + // Its not in the file go back to beginning of file + file.clear(); + file.seekg(0, ios::beg); + lines.clear(); + while (file.getline(line, 200)) + { + buf = line; + string::size_type pos = buf.find("[mysqld]",0); + if ( pos != string::npos ) + { + lines.push_back(buf); + buf = "loose-" + paramater + " = " + value; + } + //output to temp file + lines.push_back(buf); + } + } file.close(); unlink (mycnfFile.c_str()); ofstream newFile (mycnfFile.c_str()); diff --git a/oamapps/postConfigure/postConfigure.cpp b/oamapps/postConfigure/postConfigure.cpp index 2d2115ce0..863378d2e 100644 --- a/oamapps/postConfigure/postConfigure.cpp +++ b/oamapps/postConfigure/postConfigure.cpp @@ -4858,6 +4858,7 @@ bool storageSetup(bool amazonInstall) void setSystemName() { + Oam oam; //setup System Name try { systemName = sysConfig->getConfig(SystemSection, "SystemName"); @@ -4880,6 +4881,7 @@ void setSystemName() try { sysConfig->setConfig(SystemSection, "SystemName", systemName); + oam.changeMyCnf( "server_audit_syslog_info", systemName ); } catch(...) { diff --git a/tools/setConfig/main.cpp b/tools/setConfig/main.cpp index e463f0783..f389492b9 100644 --- a/tools/setConfig/main.cpp +++ b/tools/setConfig/main.cpp @@ -129,7 +129,13 @@ int main(int argc, char** argv) if (xflg) cf->delConfig(argv[optind + 0], argv[optind + 1]); else + { cf->setConfig(argv[optind + 0], argv[optind + 1], argv[optind + 2]); + if (strcmp(argv[optind + 1],"SystemName") == 0) + { + oam.changeMyCnf( "server_audit_syslog_info", argv[optind + 2] ); + } + } cf->write(); if (dflg || serverInstallType == oam::INSTALL_COMBINE_DM_UM_PM)