void res_attr_changed(const char *res_name, const char
*changed_res_name,const char *changed_attr_name, void
* NOT REQUIRED if the function is empty or is not logging
* any messages to the agent log file
VCSAG_LOG_INIT("res_attr_changed");
res_clean(const char *res_name, VCSAgWhyClean wc, void
if ((attr_val) && (*attr_val)) {
if ((remove((CHAR *)(*attr_val)) == 0) || (errno
== ENOENT)) { return 0; // Success
void res_close(const char *res_name, void **attr_val)
// Determine if the given file is online (file exists) or
// offline (file does not exist).
res_monitor(const char *res_name, void **attr_val, int *conf_level)
VCSAG_LOG_INIT("res_monitor");
VCSAgResState state = VCSAgResUnknown;
* This msg will be printed for all resources if VCS_DBG4
* is enabled for the resource type. Else it will be
* logged only for that resource that has the dbg level
VCSAG_RES_LOG_MSG(VCS_DBG4, VCS_DEFAULT_FLAGS, "PathName
is(%s)", (CHAR *)(*attr_val));
if ((attr_val) && (*attr_val)) {
if ( (stat((CHAR *)(* attr_val), &stat_buf) == 0)
&& (strlen((CHAR *)(* attr_val)) != 0) ) {
state = VCSAgResOnline; *conf_level = 100;
VCSAG_RES_LOG_MSG(VCS_DBG7, VCS_DEFAULT_FLAGS, "State is
res_online(const char *res_name, void **attr_val) {
if ((attr_val) && (*attr_val)) {
if (strlen((CHAR *)(* attr_val)) == 0) {
VCSAG_LOG_MSG(VCS_WARNING, 3001, VCS_DEFAULT_FLAGS,
"The value for PathName attribute is not
VCSAG_CONSOLE_LOG_MSG(VCS_WARNING, 3001,
"The value for PathName attribute is not
if (fd = creat((CHAR *)(*attr_val), S_IRUSR|S_IWUSR) < 0) {
VCSAG_LOG_MSG(VCS_ERROR, 3002, VCS_DEFAULT_FLAGS,
"Resource could not be brought up because, "
"the attempt to create the file(%s) failed "
"with error(%d)", (CHAR *)(*attr_val), errno);
VCSAG_CONSOLE_LOG_MSG(VCS_ERROR, 3002,
"Resource could not be brought up because, "
"the attempt to create the file(%s) failed "
"with error(%d)", (CHAR *)(*attr_val), errno);
res_offline(const char *res_name, void **attr_val)
VCSAG_LOG_INIT("res_offline");
if ((attr_val) && (*attr_val) && (remove((CHAR*)
(*attr_val)) != 0) && (errno != ENOENT)) {
VCSAG_LOG_MSG(VCS_ERROR, 14002, VCS_DEFAULT_FLAGS,
"Resource could not be brought down because, the
attempt to remove the file(%s) failed with
error(%d)", (CHAR *)(*attr_val), errno);
VCSAG_CONSOLE_LOG_MSG(VCS_ERROR, 14002,
VCS_DEFAULT_FLAGS, "Resource could not be brought
down because, the attempt to remove the file(%s)
failed with error(%d)", (CHAR *)(*attr_val), errno);
void res_open(const char *res_name, void **attr_val)
VCSEXPORT void VCSDECL VCSAgStartup()
VCSAG_LOG_INIT("VCSAgStartup");
VCSAgInitEntryPointStruct(V50);
VCSAgValidateAndSetEntryPoint(VCSAgEPMonitor, res_monitor);
VCSAgValidateAndSetEntryPoint(VCSAgEPOnline, res_online);
VCSAgValidateAndSetEntryPoint(VCSAgEPOffline, res_offline);
VCSAgValidateAndSetEntryPoint(VCSAgEPClean, res_clean);
char *s = setlocale(LC_ALL, NULL);