From 35f70ec1e99d5ea2f6725e99b67191933b2cdaeb Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Wed, 3 Oct 2012 08:23:49 -0700
Subject: [PATCH] Add slurm_init_trigger_msg API for simpler use

---
 doc/man/man3/Makefile.am              |  1 +
 doc/man/man3/Makefile.in              |  1 +
 doc/man/man3/slurm_clear_trigger.3    | 13 +++++++++++--
 doc/man/man3/slurm_init_trigger_msg.3 |  1 +
 slurm/slurm.h.in                      |  6 ++++++
 src/api/init_msg.c                    | 10 ++++++++++
 src/strigger/strigger.c               |  4 ++--
 7 files changed, 32 insertions(+), 4 deletions(-)
 create mode 100644 doc/man/man3/slurm_init_trigger_msg.3

diff --git a/doc/man/man3/Makefile.am b/doc/man/man3/Makefile.am
index a2ec99a8082..c9b4771be8b 100644
--- a/doc/man/man3/Makefile.am
+++ b/doc/man/man3/Makefile.am
@@ -52,6 +52,7 @@ man3_MANS = slurm_hostlist_create.3 \
 	slurm_init_job_desc_msg.3 \
 	slurm_init_part_desc_msg.3 \
 	slurm_init_resv_desc_msg.3 \
+	slurm_init_trigger_msg.3 \
 	slurm_init_update_node_msg.3 \
 	slurm_init_update_step_msg.3 \
 	slurm_job_cpus_allocated_on_node.3 \
diff --git a/doc/man/man3/Makefile.in b/doc/man/man3/Makefile.in
index 4aca4cc76cd..9547ae58925 100644
--- a/doc/man/man3/Makefile.in
+++ b/doc/man/man3/Makefile.in
@@ -370,6 +370,7 @@ man3_MANS = slurm_hostlist_create.3 \
 	slurm_init_job_desc_msg.3 \
 	slurm_init_part_desc_msg.3 \
 	slurm_init_resv_desc_msg.3 \
+	slurm_init_trigger_msg.3 \
 	slurm_init_update_node_msg.3 \
 	slurm_init_update_step_msg.3 \
 	slurm_job_cpus_allocated_on_node.3 \
diff --git a/doc/man/man3/slurm_clear_trigger.3 b/doc/man/man3/slurm_clear_trigger.3
index 9731064c1a4..fc787fc05b5 100644
--- a/doc/man/man3/slurm_clear_trigger.3
+++ b/doc/man/man3/slurm_clear_trigger.3
@@ -1,8 +1,8 @@
-.TH "Slurm API" "3" "January 2010" "Morris Jette" "Slurm event trigger management functions"
+.TH "Slurm API" "3" "October 2012" "Slurm API 2.5" "Slurm event trigger management functions"
 
 .SH "NAME"
 
-slurm_clear_trigger, slurm_free_trigger_msg, 
+slurm_init_trigger_msg, slurm_clear_trigger, slurm_free_trigger_msg, 
 slurm_get_triggers, slurm_set_trigger \- Slurm event trigger management functions
 
 .SH "SYNTAX"
@@ -33,6 +33,12 @@ int \fBslurm_free_trigger\fR (
 	trigger_info_msg_t *\fItrigger_info_msg\fP
 .br
 );
+.LP
+int \fBslurm_init_trigger_msg\fR (
+.br
+	trigger_info_msg_t *\fItrigger_info_msg\fP
+.br
+);
 
 .SH "ARGUMENTS"
 .LP
@@ -62,6 +68,9 @@ to the \fBslurm_free_trigger\fR function.
 .LP
 \fBslurm_free_trigger\fR Release the memory allocated for the array 
 returned by the \fBslurm_get_triggers\fR function.
+.LP
+\fBslurm_init_trigger_msg\fR Initialize the data structure to be used in
+subsequent call to \fBslurm_set_trigger\fR or \fBslurm_clear_trigger\fR.
 
 .SH "RETURN VALUE"
 .LP
diff --git a/doc/man/man3/slurm_init_trigger_msg.3 b/doc/man/man3/slurm_init_trigger_msg.3
new file mode 100644
index 00000000000..edfff17d82e
--- /dev/null
+++ b/doc/man/man3/slurm_init_trigger_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_clear_trigger.3
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index c39a7d9e348..fcea707290d 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -3585,6 +3585,12 @@ extern int slurm_pull_trigger PARAMS((trigger_info_t * trigger_pull));
  */
 extern void slurm_free_trigger_msg PARAMS((trigger_info_msg_t * trigger_free));
 
+/*
+ * slurm_init_trigger_msg - initialize trigger clear/update message
+ * OUT trigger_info_msg - user defined trigger descriptor
+ */
+void slurm_init_trigger_msg PARAMS((trigger_info_t *trigger_info_msg));
+
 END_C_DECLS
 
 #endif
diff --git a/src/api/init_msg.c b/src/api/init_msg.c
index 703355c1fad..d104580be6b 100644
--- a/src/api/init_msg.c
+++ b/src/api/init_msg.c
@@ -182,3 +182,13 @@ void slurm_init_update_block_msg (update_block_msg_t *update_block_msg)
 	update_block_msg->node_use = (uint16_t)NO_VAL;
 	update_block_msg->state = (uint16_t)NO_VAL;
 }
+
+/*
+ * slurm_init_trigger_msg - initialize trigger clear/update message
+ * OUT trigger_info_msg - user defined trigger descriptor
+ */
+void slurm_init_trigger_msg (trigger_info_t *trigger_info_msg)
+{
+	memset(trigger_info_msg, 0, sizeof(trigger_info_t));
+	trigger_info_msg->user_id = NO_VAL;
+}
diff --git a/src/strigger/strigger.c b/src/strigger/strigger.c
index 0203fa3e577..68b19f05171 100644
--- a/src/strigger/strigger.c
+++ b/src/strigger/strigger.c
@@ -98,7 +98,7 @@ static int _clear_trigger(void)
 	trigger_info_t ti;
 	char tmp_c[128];
 
-	memset(&ti, 0, sizeof(trigger_info_t));
+	slurm_init_trigger_msg(&ti);
 	ti.trig_id	= params.trigger_id;
 	ti.user_id	= params.user_id;
 	if (params.job_id) {
@@ -128,7 +128,7 @@ static int _set_trigger(void)
 	trigger_info_t ti;
 	char tmp_c[128];
 
-	memset(&ti, 0, sizeof(trigger_info_t));
+	slurm_init_trigger_msg (&ti);
 	if (params.job_id) {
 		ti.res_type = TRIGGER_RES_TYPE_JOB;
 		snprintf(tmp_c, sizeof(tmp_c), "%u", params.job_id);
-- 
GitLab