From 3f45b4e59d245fc21332184d80a5a66dc375e6b4 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Wed, 3 Mar 2010 17:15:23 +0000 Subject: [PATCH] more mods --- src/common/Makefile.am | 2 + src/common/Makefile.in | 30 +++-- src/common/slurm_accounting_storage.h | 18 --- src/db_api/account_functions.c | 17 +-- src/db_api/slurmdb_defs.c | 0 src/db_api/slurmdb_defs.h | 76 ++++++++++++ src/db_api/slurmdb_pack.c | 0 src/db_api/slurmdb_pack.h | 160 ++++++++++++++++++++++++++ 8 files changed, 261 insertions(+), 42 deletions(-) create mode 100644 src/db_api/slurmdb_defs.c create mode 100644 src/db_api/slurmdb_defs.h create mode 100644 src/db_api/slurmdb_pack.c create mode 100644 src/db_api/slurmdb_pack.h diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 473929eb33b..f689c76f884 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -73,6 +73,8 @@ libcommon_la_SOURCES = \ slurm_protocol_defs.h \ slurm_rlimits_info.h \ slurm_rlimits_info.c \ + slurmdb_defs.c slurmdb_defs.h \ + slurmdb_pack.c slurmdb_pack.h \ slurmdbd_defs.c slurmdbd_defs.h \ uid.c uid.h \ util-net.c util-net.h \ diff --git a/src/common/Makefile.in b/src/common/Makefile.in index 3994de6fcdf..27464b27d01 100644 --- a/src/common/Makefile.in +++ b/src/common/Makefile.in @@ -111,8 +111,9 @@ am__libcommon_la_SOURCES_DIST = assoc_mgr.c assoc_mgr.h \ slurm_protocol_socket_common.h slurm_protocol_common.h \ slurm_protocol_interface.h slurm_protocol_defs.c \ slurm_protocol_defs.h slurm_rlimits_info.h \ - slurm_rlimits_info.c slurmdbd_defs.c slurmdbd_defs.h uid.c \ - uid.h util-net.c util-net.h slurm_auth.c slurm_auth.h \ + slurm_rlimits_info.c slurmdb_defs.c slurmdb_defs.h \ + slurmdb_pack.c slurmdb_pack.h slurmdbd_defs.c slurmdbd_defs.h \ + uid.c uid.h util-net.c util-net.h slurm_auth.c slurm_auth.h \ jobacct_common.c jobacct_common.h slurm_accounting_storage.c \ slurm_accounting_storage.h slurm_jobacct_gather.c \ slurm_jobacct_gather.h slurm_jobcomp.c slurm_jobcomp.h \ @@ -136,16 +137,17 @@ am_libcommon_la_OBJECTS = assoc_mgr.lo basil_resv_conf.lo xmalloc.lo \ slurm_cred.lo slurm_errno.lo slurm_priority.lo \ slurm_protocol_api.lo slurm_protocol_pack.lo \ slurm_protocol_util.lo slurm_protocol_socket_implementation.lo \ - slurm_protocol_defs.lo slurm_rlimits_info.lo slurmdbd_defs.lo \ - uid.lo util-net.lo slurm_auth.lo jobacct_common.lo \ - slurm_accounting_storage.lo slurm_jobacct_gather.lo \ - slurm_jobcomp.lo slurm_topology.lo switch.lo arg_desc.lo \ - malloc.lo getopt.lo getopt1.lo $(am__objects_1) \ - slurm_selecttype_info.lo slurm_resource_info.lo hostlist.lo \ - slurm_step_layout.lo checkpoint.lo job_resources.lo \ - parse_time.lo job_options.lo global_defaults.lo timers.lo \ - stepd_api.lo write_labelled_message.lo proc_args.lo \ - slurm_strcasestr.lo node_conf.lo + slurm_protocol_defs.lo slurm_rlimits_info.lo slurmdb_defs.lo \ + slurmdb_pack.lo slurmdbd_defs.lo uid.lo util-net.lo \ + slurm_auth.lo jobacct_common.lo slurm_accounting_storage.lo \ + slurm_jobacct_gather.lo slurm_jobcomp.lo slurm_topology.lo \ + switch.lo arg_desc.lo malloc.lo getopt.lo getopt1.lo \ + $(am__objects_1) slurm_selecttype_info.lo \ + slurm_resource_info.lo hostlist.lo slurm_step_layout.lo \ + checkpoint.lo job_resources.lo parse_time.lo job_options.lo \ + global_defaults.lo timers.lo stepd_api.lo \ + write_labelled_message.lo proc_args.lo slurm_strcasestr.lo \ + node_conf.lo am__EXTRA_libcommon_la_SOURCES_DIST = unsetenv.c unsetenv.h libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS) libcommon_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -436,6 +438,8 @@ libcommon_la_SOURCES = \ slurm_protocol_defs.h \ slurm_rlimits_info.h \ slurm_rlimits_info.c \ + slurmdb_defs.c slurmdb_defs.h \ + slurmdb_pack.c slurmdb_pack.h \ slurmdbd_defs.c slurmdbd_defs.h \ uid.c uid.h \ util-net.c util-net.h \ @@ -623,6 +627,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_step_layout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_strcasestr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_topology.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurmdb_defs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurmdb_pack.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurmdbd_defs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stepd_api.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strlcpy.Plo@am__quote@ diff --git a/src/common/slurm_accounting_storage.h b/src/common/slurm_accounting_storage.h index c5d81279766..ac8b2f36df9 100644 --- a/src/common/slurm_accounting_storage.h +++ b/src/common/slurm_accounting_storage.h @@ -141,24 +141,6 @@ typedef struct { * parents */ } acct_association_cond_t; -typedef struct { - acct_association_cond_t *assoc_cond;/* use acct_list here for - names */ - List description_list; /* list of char * */ - List organization_list; /* list of char * */ - uint16_t with_assocs; - uint16_t with_coords; - uint16_t with_deleted; -} acct_account_cond_t; - -typedef struct { - List assoc_list; /* list of acct_association_rec_t *'s */ - List coordinators; /* list of acct_coord_rec_t *'s */ - char *description; - char *name; - char *organization; -} acct_account_rec_t; - typedef struct { uint64_t alloc_secs; /* number of cpu seconds allocated */ uint32_t id; /* association/wckey ID */ diff --git a/src/db_api/account_functions.c b/src/db_api/account_functions.c index 4b9a8e737d8..a9843a52077 100644 --- a/src/db_api/account_functions.c +++ b/src/db_api/account_functions.c @@ -55,9 +55,7 @@ */ extern int slurmdb_add_accounts(void *db_conn, List acct_list) { - int rc = SLURM_SUCCESS; - - return rc; + return acct_storage_g_add_accounts(db_conn, getuid(), acct_list); } /* @@ -70,9 +68,7 @@ extern int slurmdb_add_accounts(void *db_conn, List acct_list) extern List slurmdb_accounts_get(void *db_conn, slurmdb_account_cond_t *acct_cond) { - List ret_list = NULL; - - return ret_list; + return acct_storage_g_get_accounts(db_conn, getuid(), acct_cond); } /* @@ -85,9 +81,8 @@ extern List slurmdb_accounts_modify(void *db_conn, slurmdb_account_cond_t *acct_cond, slurmdb_account_rec_t *acct) { - List ret_list = NULL; - - return ret_list; + return acct_storage_g_modify_accounts(db_conn, getuid(), + acct_cond, acct); } /* @@ -98,8 +93,6 @@ extern List slurmdb_accounts_modify(void *db_conn, extern List slurmdb_accounts_remove(void *db_conn, slurmdb_account_cond_t *acct_cond) { - List ret_list = NULL; - - return ret_list; + return acct_storage_g_remove_accounts(db_conn, getuid(), acct_cond); } diff --git a/src/db_api/slurmdb_defs.c b/src/db_api/slurmdb_defs.c new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/db_api/slurmdb_defs.h b/src/db_api/slurmdb_defs.h new file mode 100644 index 00000000000..1c511297d3d --- /dev/null +++ b/src/db_api/slurmdb_defs.h @@ -0,0 +1,76 @@ +/*****************************************************************************\ + * slurmdb_defs.h - definitions used by slurmdb api + ****************************************************************************** + * Copyright (C) 2010 Lawrence Livermore National Security. + * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). + * Written by Danny Auble da@llnl.gov, et. al. + * CODE-OCEC-09-009. All rights reserved. + * + * This file is part of SLURM, a resource management program. + * For details, see <https://computing.llnl.gov/linux/slurm/>. + * Please also read the included file: DISCLAIMER. + * + * SLURM is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * In addition, as a special exception, the copyright holders give permission + * to link the code of portions of this program with the OpenSSL library under + * certain conditions as described in each individual source file, and + * distribute linked combinations including the two. You must obey the GNU + * General Public License in all respects for all of the code used other than + * OpenSSL. If you modify file(s) with this exception, you may extend this + * exception to your version of the file(s), but you are not obligated to do + * so. If you do not wish to do so, delete this exception statement from your + * version. If you delete this exception statement from all source files in + * the program, then also delete it here. + * + * SLURM is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along + * with SLURM; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +\*****************************************************************************/ +#ifndef _SLURMDB_DEFS_H +#define _SLURMDB_DEFS_H + +extern void destroy_acct_user_rec(void *object); +extern void destroy_acct_account_rec(void *object); +extern void destroy_acct_coord_rec(void *object); +extern void destroy_cluster_accounting_rec(void *object); +extern void destroy_acct_cluster_rec(void *object); +extern void destroy_acct_accounting_rec(void *object); +extern void destroy_acct_association_rec(void *object); +extern void destroy_acct_event_rec(void *object); +extern void destroy_acct_qos_rec(void *object); +extern void destroy_acct_reservation_rec(void *object); +extern void destroy_acct_txn_rec(void *object); +extern void destroy_acct_wckey_rec(void *object); +extern void destroy_acct_archive_rec(void *object); + +extern void destroy_acct_user_cond(void *object); +extern void destroy_acct_account_cond(void *object); +extern void destroy_acct_cluster_cond(void *object); +extern void destroy_acct_association_cond(void *object); +extern void destroy_acct_event_cond(void *object); +extern void destroy_acct_job_cond(void *object); +extern void destroy_acct_qos_cond(void *object); +extern void destroy_acct_reservation_cond(void *object); +extern void destroy_acct_txn_cond(void *object); +extern void destroy_acct_wckey_cond(void *object); +extern void destroy_acct_archive_cond(void *object); + +extern void destroy_acct_update_object(void *object); +extern void destroy_acct_used_limits(void *object); +extern void destroy_update_shares_rec(void *object); +extern void destroy_acct_print_tree(void *object); +extern void destroy_acct_hierarchical_rec(void *object); + +extern void init_acct_association_rec(acct_association_rec_t *assoc); +extern void init_acct_qos_rec(acct_qos_rec_t *qos); + +#endif diff --git a/src/db_api/slurmdb_pack.c b/src/db_api/slurmdb_pack.c new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/db_api/slurmdb_pack.h b/src/db_api/slurmdb_pack.h new file mode 100644 index 00000000000..6c65dc362e9 --- /dev/null +++ b/src/db_api/slurmdb_pack.h @@ -0,0 +1,160 @@ +/*****************************************************************************\ + * slurmdb_pack.h - un/pack definitions used by slurmdb api + ****************************************************************************** + * Copyright (C) 2010 Lawrence Livermore National Security. + * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). + * Written by Danny Auble da@llnl.gov, et. al. + * CODE-OCEC-09-009. All rights reserved. + * + * This file is part of SLURM, a resource management program. + * For details, see <https://computing.llnl.gov/linux/slurm/>. + * Please also read the included file: DISCLAIMER. + * + * SLURM is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * In addition, as a special exception, the copyright holders give permission + * to link the code of portions of this program with the OpenSSL library under + * certain conditions as described in each individual source file, and + * distribute linked combinations including the two. You must obey the GNU + * General Public License in all respects for all of the code used other than + * OpenSSL. If you modify file(s) with this exception, you may extend this + * exception to your version of the file(s), but you are not obligated to do + * so. If you do not wish to do so, delete this exception statement from your + * version. If you delete this exception statement from all source files in + * the program, then also delete it here. + * + * SLURM is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along + * with SLURM; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +\*****************************************************************************/ +#ifndef _SLURMDB_PACK_H +#define _SLURMDB_PACK_H + +extern void slurmdb_pack_user_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_user_rec(void **object, + uint16_t rpc_version, Buf buffer); +extern void slurmdb_pack_account_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_account_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_coord_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_coord_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void pack_cluster_accounting_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int unpack_cluster_accounting_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_cluster_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_cluster_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_accounting_rec(void *in, + uint16_t rpc_version, + Buf buffer); +extern int slurmdb_unpack_accounting_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_association_rec(void *in, + uint16_t rpc_version, + Buf buffer); +extern int slurmdb_unpack_association_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_event_rec(void *in, + uint16_t rpc_version, + Buf buffer); +extern int slurmdb_unpack_event_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_qos_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_qos_rec(void **object, + uint16_t rpc_version, Buf buffer); +extern void slurmdb_pack_reservation_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_reservation_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_txn_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_txn_rec(void **object, + uint16_t rpc_version, Buf buffer); +extern void slurmdb_pack_wckey_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_wckey_rec(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_archive_rec(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_archive_rec(void **object, uint16_t rpc_version, + Buf buffer); + +extern void slurmdb_pack_user_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_user_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_account_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_account_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_cluster_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_cluster_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_association_cond(void *in, + uint16_t rpc_version, + Buf buffer); +extern int slurmdb_unpack_association_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_event_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_event_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_job_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_job_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_qos_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_qos_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_reservation_cond(void *in, + uint16_t rpc_version, + Buf buffer); +extern int slurmdb_unpack_reservation_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_txn_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_txn_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_wckey_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_wckey_cond(void **object, uint16_t rpc_version, + Buf buffer); +extern void slurmdb_pack_archive_cond(void *in, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_archive_cond(void **object, uint16_t rpc_version, + Buf buffer); + +extern void slurmdb_pack_update_object(acct_update_object_t *object, + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_update_object(acct_update_object_t **object, + uint16_t rpc_version, Buf buffer); + +extern void slurmdb_pack_used_limits(void *in, + + uint16_t rpc_version, Buf buffer); +extern int slurmdb_unpack_used_limits(void **object, + uint16_t rpc_version, Buf buffer); + +extern void pack_update_shares_used(void *in, + uint16_t rpc_version, Buf buffer); +extern int unpack_update_shares_used(void **object, uint16_t rpc_version, + Buf buffer); + +#endif -- GitLab