Skip to content
Snippets Groups Projects
Commit d026422d authored by Phil Eckert's avatar Phil Eckert
Browse files

Added to the reservation module, can now do updates, creates and deletions.

parent 9b824691
No related branches found
No related tags found
No related merge requests found
......@@ -427,6 +427,42 @@ slurm_load_reservations(slurm_t self = NULL)
OUTPUT:
RETVAL
char *
slurm_create_reservation(slurm_t self, HV* res_info = NULL)
PREINIT:
resv_desc_msg_t resv_msg;
CODE:
if(hv_to_update_reservation_msg(res_info, &resv_msg) < 0) {
XSRETURN_UNDEF;
}
RETVAL = slurm_create_reservation(&resv_msg);
OUTPUT:
RETVAL
int
slurm_update_reservation(slurm_t self, HV* res_info = NULL)
PREINIT:
resv_desc_msg_t resv_msg;
CODE:
if(hv_to_update_reservation_msg(res_info, &resv_msg) < 0) {
XSRETURN_UNDEF;
}
RETVAL = slurm_update_reservation(&resv_msg);
OUTPUT:
RETVAL
int
slurm_delete_reservation(slurm_t self, HV* res_info = NULL)
PREINIT:
reservation_name_msg_t resv_name;
CODE:
if(hv_to_delete_reservation_msg(res_info, &resv_name) < 0) {
XSRETURN_UNDEF;
}
RETVAL = slurm_delete_reservation(&resv_name);
OUTPUT:
RETVAL
# To be implemented in perl code
# slurm_print_reservation_info_msg
# slurm_print_reservation_info
......
......@@ -82,3 +82,50 @@ reserve_info_msg_to_hv(reserve_info_msg_t* reserve_info_msg, HV* hv)
return 0;
}
/*
* convert perl HV to resv_desc_msg_t.
*/
int
hv_to_update_reservation_msg(HV* hv, resv_desc_msg_t* resv_msg)
{
resv_msg->accounts = NULL;
resv_msg->duration = (uint32_t) NO_VAL;
resv_msg->end_time = (time_t) NO_VAL;
resv_msg->features = NULL;
resv_msg->flags = (uint16_t) NO_VAL;
resv_msg->licenses = NULL;
resv_msg->name = NULL;
resv_msg->node_cnt = (uint32_t) NO_VAL;
resv_msg->node_list = NULL;
resv_msg->partition = NULL;
resv_msg->start_time = (time_t) NO_VAL;
resv_msg->users = NULL;
FETCH_FIELD(hv, resv_msg, accounts, charp, FALSE);
FETCH_FIELD(hv, resv_msg, duration, uint32_t, FALSE);
FETCH_FIELD(hv, resv_msg, end_time, time_t, FALSE);
FETCH_FIELD(hv, resv_msg, features, charp, FALSE);
FETCH_FIELD(hv, resv_msg, flags, uint16_t, FALSE);
FETCH_FIELD(hv, resv_msg, licenses, charp, FALSE);
FETCH_FIELD(hv, resv_msg, name, charp, FALSE);
FETCH_FIELD(hv, resv_msg, node_cnt, uint32_t, FALSE);
FETCH_FIELD(hv, resv_msg, node_list, charp, FALSE);
FETCH_FIELD(hv, resv_msg, partition, charp, FALSE);
FETCH_FIELD(hv, resv_msg, start_time, time_t, FALSE);
FETCH_FIELD(hv, resv_msg, users, charp, FALSE);
return 0;
}
/*
* convert perl HV to reservation_name_msg_t.
*/
int
hv_to_delete_reservation_msg(HV* hv, reservation_name_msg_t* resv_name)
{
resv_name->name = NULL;
FETCH_FIELD(hv, resv_name, name, charp, FALSE);
return 0;
}
......@@ -30,6 +30,8 @@ extern int hv_to_update_part_msg(HV* hv, update_part_msg_t* part_msg);
extern int slurm_ctl_conf_to_hv(slurm_ctl_conf_t* conf, HV* hv);
extern int reserve_info_msg_to_hv(reserve_info_msg_t* conf, HV* hv);
extern int hv_to_update_reservation_msg(HV* hv, resv_desc_msg_t* resv_msg);
extern int hv_to_delete_reservation_msg(HV* hv, reservation_name_msg_t* resv_name);
extern int trigger_info_to_hv(trigger_info_t *info, HV* hv);
extern int trigger_info_msg_to_hv(trigger_info_msg_t *msg, HV* hv);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment