Fixed monitor scripts and added extra logging.

This commit is contained in:
Markus Makela
2015-09-11 18:38:19 +03:00
parent 743fb5774b
commit 3b0b740e47
2 changed files with 23 additions and 16 deletions

View File

@ -114,6 +114,7 @@ EXTERNCMD* externcmd_allocate(char* argstr)
externcmd_free(cmd); externcmd_free(cmd);
return NULL; return NULL;
} }
skygw_log_write(LT, "Executing script %s.", cmd->parameters[0]);
} }
return cmd; return cmd;
} }

View File

@ -294,31 +294,37 @@ bool mon_print_fail_status(
return succp; return succp;
} }
void monitor_launch_script(MONITOR* mon,MONITOR_SERVERS* ptr, char* script) /**
* Launch a script
* @param mon Owning monitor
* @param ptr The server which has changed state
* @param script Script to execute
*/
void monitor_launch_script(MONITOR* mon, MONITOR_SERVERS* ptr, char* script)
{ {
char argstr[PATH_MAX + MON_ARG_MAX + 1]; char argstr[PATH_MAX + MON_ARG_MAX + 1];
EXTERNCMD* cmd; EXTERNCMD* cmd;
snprintf(argstr,PATH_MAX + MON_ARG_MAX, snprintf(argstr, PATH_MAX + MON_ARG_MAX,
"%s --event=%s --initiator=%s:%d --nodelist=", "%s --event=%s --initiator=%s:%d --nodelist=",
script, script,
mon_get_event_name(ptr), mon_get_event_name(ptr),
ptr->server->name, ptr->server->name,
ptr->server->port); ptr->server->port);
mon_append_node_names(mon->databases,argstr,PATH_MAX + MON_ARG_MAX); mon_append_node_names(mon->databases, argstr, PATH_MAX + MON_ARG_MAX);
if((cmd = externcmd_allocate(argstr)) == NULL) if ((cmd = externcmd_allocate(argstr)) == NULL)
{ {
skygw_log_write(LE,"Failed to initialize script: %s",script); skygw_log_write(LE, "Failed to initialize script: %s", script);
return; return;
} }
if(externcmd_execute(cmd)) if (externcmd_execute(cmd))
{ {
skygw_log_write(LOGFILE_ERROR, skygw_log_write(LOGFILE_ERROR,
"Error: Failed to execute script " "Error: Failed to execute script "
"'%s' on server state change event %s.", "'%s' on server state change event %s.",
script,mon_get_event_type(ptr)); script, mon_get_event_name(ptr));
} }
externcmd_free(cmd); externcmd_free(cmd);
} }