File indexing completed on 2025-06-20 08:46:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038 #ifndef _SLURMDB_H
0039 #define _SLURMDB_H
0040
0041 #ifdef __cplusplus
0042 extern "C" {
0043 #endif
0044
0045 #include <slurm/slurm.h>
0046
0047 typedef enum {
0048 SLURMDB_ADMIN_NOTSET,
0049 SLURMDB_ADMIN_NONE,
0050 SLURMDB_ADMIN_OPERATOR,
0051 SLURMDB_ADMIN_SUPER_USER
0052 } slurmdb_admin_level_t;
0053
0054 typedef enum {
0055 SLURMDB_CLASS_NONE,
0056 SLURMDB_CLASS_CAPABILITY,
0057 SLURMDB_CLASS_CAPACITY,
0058 SLURMDB_CLASS_CAPAPACITY,
0059
0060 } slurmdb_classification_type_t;
0061
0062 typedef enum {
0063 SLURMDB_EVENT_ALL,
0064 SLURMDB_EVENT_CLUSTER,
0065 SLURMDB_EVENT_NODE
0066 } slurmdb_event_type_t;
0067
0068 typedef enum {
0069 SLURMDB_PROBLEM_NOT_SET,
0070 SLURMDB_PROBLEM_ACCT_NO_ASSOC,
0071 SLURMDB_PROBLEM_ACCT_NO_USERS,
0072 SLURMDB_PROBLEM_USER_NO_ASSOC,
0073 SLURMDB_PROBLEM_USER_NO_UID,
0074 } slurmdb_problem_type_t;
0075
0076 typedef enum {
0077 SLURMDB_REPORT_SORT_TIME,
0078 SLURMDB_REPORT_SORT_NAME
0079 } slurmdb_report_sort_t;
0080
0081 typedef enum {
0082 SLURMDB_REPORT_TIME_SECS,
0083 SLURMDB_REPORT_TIME_MINS,
0084 SLURMDB_REPORT_TIME_HOURS,
0085 SLURMDB_REPORT_TIME_PERCENT,
0086 SLURMDB_REPORT_TIME_SECS_PER,
0087 SLURMDB_REPORT_TIME_MINS_PER,
0088 SLURMDB_REPORT_TIME_HOURS_PER,
0089 } slurmdb_report_time_format_t;
0090
0091 typedef enum {
0092 SLURMDB_RESOURCE_NOTSET,
0093 SLURMDB_RESOURCE_LICENSE
0094 } slurmdb_resource_type_t;
0095
0096 typedef enum {
0097 SLURMDB_UPDATE_NOTSET,
0098 SLURMDB_ADD_USER,
0099 SLURMDB_ADD_ASSOC,
0100 SLURMDB_ADD_COORD,
0101 SLURMDB_MODIFY_USER,
0102 SLURMDB_MODIFY_ASSOC,
0103 SLURMDB_REMOVE_USER,
0104 SLURMDB_REMOVE_ASSOC,
0105 SLURMDB_REMOVE_COORD,
0106 SLURMDB_ADD_QOS,
0107 SLURMDB_REMOVE_QOS,
0108 SLURMDB_MODIFY_QOS,
0109 SLURMDB_ADD_WCKEY,
0110 SLURMDB_REMOVE_WCKEY,
0111 SLURMDB_MODIFY_WCKEY,
0112 SLURMDB_ADD_CLUSTER,
0113 SLURMDB_REMOVE_CLUSTER,
0114 SLURMDB_REMOVE_ASSOC_USAGE,
0115 SLURMDB_ADD_RES,
0116 SLURMDB_REMOVE_RES,
0117 SLURMDB_MODIFY_RES,
0118 SLURMDB_UPDATE_QOS_USAGE,
0119 SLURMDB_ADD_TRES,
0120 SLURMDB_UPDATE_FEDS,
0121 } slurmdb_update_type_t;
0122
0123
0124 #define QOS_FLAG_BASE 0x0fffffff
0125 #define QOS_FLAG_NOTSET 0x10000000
0126 #define QOS_FLAG_ADD 0x20000000
0127 #define QOS_FLAG_REMOVE 0x40000000
0128
0129 #define QOS_FLAG_PART_MIN_NODE SLURM_BIT(0)
0130 #define QOS_FLAG_PART_MAX_NODE SLURM_BIT(1)
0131 #define QOS_FLAG_PART_TIME_LIMIT SLURM_BIT(2)
0132 #define QOS_FLAG_ENFORCE_USAGE_THRES SLURM_BIT(3)
0133 #define QOS_FLAG_NO_RESERVE SLURM_BIT(4)
0134 #define QOS_FLAG_REQ_RESV SLURM_BIT(5)
0135 #define QOS_FLAG_DENY_LIMIT SLURM_BIT(6)
0136 #define QOS_FLAG_OVER_PART_QOS SLURM_BIT(7)
0137 #define QOS_FLAG_NO_DECAY SLURM_BIT(8)
0138 #define QOS_FLAG_USAGE_FACTOR_SAFE SLURM_BIT(9)
0139 #define QOS_FLAG_RELATIVE SLURM_BIT(10)
0140 #define QOS_FLAG_RELATIVE_SET SLURM_BIT(11)
0141 #define QOS_FLAG_PART_QOS SLURM_BIT(12)
0142
0143
0144 #define SLURMDB_RES_FLAG_BASE 0x0fffffff
0145 #define SLURMDB_RES_FLAG_NOTSET 0x10000000
0146 #define SLURMDB_RES_FLAG_ADD 0x20000000
0147 #define SLURMDB_RES_FLAG_REMOVE 0x40000000
0148
0149 #define SLURMDB_RES_FLAG_ABSOLUTE SLURM_BIT(0)
0150
0151
0152 #define FEDERATION_FLAG_BASE 0x0fffffff
0153 #define FEDERATION_FLAG_NOTSET 0x10000000
0154 #define FEDERATION_FLAG_ADD 0x20000000
0155 #define FEDERATION_FLAG_REMOVE 0x40000000
0156
0157
0158 enum cluster_fed_states {
0159 CLUSTER_FED_STATE_NA,
0160 CLUSTER_FED_STATE_ACTIVE,
0161 CLUSTER_FED_STATE_INACTIVE
0162 };
0163 #define CLUSTER_FED_STATE_BASE 0x000f
0164 #define CLUSTER_FED_STATE_FLAGS 0xfff0
0165 #define CLUSTER_FED_STATE_DRAIN 0x0010
0166
0167
0168 #define CLUSTER_FED_STATE_REMOVE 0x0020
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179 #define SLURMDB_JOB_FLAG_NONE 0x00000000
0180 #define SLURMDB_JOB_CLEAR_SCHED 0x0000000f
0181 #define SLURMDB_JOB_FLAG_NOTSET SLURM_BIT(0)
0182 #define SLURMDB_JOB_FLAG_SUBMIT SLURM_BIT(1)
0183 #define SLURMDB_JOB_FLAG_SCHED SLURM_BIT(2)
0184
0185 #define SLURMDB_JOB_FLAG_BACKFILL SLURM_BIT(3)
0186
0187 #define SLURMDB_JOB_FLAG_START_R SLURM_BIT(4)
0188
0189
0190
0191
0192
0193 #define JOBCOND_FLAG_DUP SLURM_BIT(0)
0194
0195 #define JOBCOND_FLAG_NO_STEP SLURM_BIT(1)
0196
0197 #define JOBCOND_FLAG_NO_TRUNC SLURM_BIT(2)
0198
0199
0200
0201 #define JOBCOND_FLAG_RUNAWAY SLURM_BIT(3)
0202 #define JOBCOND_FLAG_WHOLE_HETJOB SLURM_BIT(4)
0203
0204 #define JOBCOND_FLAG_NO_WHOLE_HETJOB SLURM_BIT(5)
0205
0206
0207 #define JOBCOND_FLAG_NO_WAIT SLURM_BIT(6)
0208
0209 #define JOBCOND_FLAG_NO_DEFAULT_USAGE SLURM_BIT(7)
0210
0211
0212 #define JOBCOND_FLAG_SCRIPT SLURM_BIT(8)
0213 #define JOBCOND_FLAG_ENV SLURM_BIT(9)
0214
0215
0216 #define SLURMDB_PURGE_BASE 0x0000ffff
0217
0218 #define SLURMDB_PURGE_FLAGS 0xffff0000
0219 #define SLURMDB_PURGE_HOURS 0x00010000
0220 #define SLURMDB_PURGE_DAYS 0x00020000
0221 #define SLURMDB_PURGE_MONTHS 0x00040000
0222
0223 #define SLURMDB_PURGE_ARCHIVE 0x00080000
0224
0225
0226 #define SLURMDB_FS_USE_PARENT 0x7FFFFFFF
0227
0228 #define SLURMDB_CLASSIFIED_FLAG 0x0100
0229 #define SLURMDB_CLASS_BASE 0x00ff
0230
0231
0232 #define CLUSTER_FLAG_REGISTER SLURM_BIT(0)
0233
0234 #define CLUSTER_FLAG_A2 SLURM_BIT(1)
0235 #define CLUSTER_FLAG_A3 SLURM_BIT(2)
0236 #define CLUSTER_FLAG_A4 SLURM_BIT(3)
0237 #define CLUSTER_FLAG_A5 SLURM_BIT(4)
0238 #define CLUSTER_FLAG_A6 SLURM_BIT(5)
0239 #define CLUSTER_FLAG_A7 SLURM_BIT(6)
0240 #define CLUSTER_FLAG_MULTSD SLURM_BIT(7)
0241 #define CLUSTER_FLAG_A9 SLURM_BIT(8)
0242 #define CLUSTER_FLAG_FE SLURM_BIT(9)
0243 #define CLUSTER_FLAG_CRAY SLURM_BIT(10)
0244 #define CLUSTER_FLAG_FED SLURM_BIT(11)
0245 #define CLUSTER_FLAG_EXT SLURM_BIT(12)
0246
0247
0248 #define ASSOC_FLAG_DELETED SLURM_BIT(0)
0249 #define ASSOC_FLAG_NO_UPDATE SLURM_BIT(1)
0250
0251
0252 #define SLURMDB_EVENT_COND_OPEN SLURM_BIT(0)
0253
0254
0255 #define DB_CONN_FLAG_CLUSTER_DEL SLURM_BIT(0)
0256 #define DB_CONN_FLAG_ROLLBACK SLURM_BIT(1)
0257 #define DB_CONN_FLAG_FEDUPDATE SLURM_BIT(2)
0258
0259
0260
0261
0262
0263
0264
0265
0266 typedef struct {
0267 uint64_t alloc_secs;
0268
0269 uint32_t rec_count;
0270 uint64_t count;
0271
0272 uint32_t id;
0273 char *name;
0274
0275
0276 char *type;
0277 } slurmdb_tres_rec_t;
0278
0279
0280
0281
0282 typedef struct {
0283 List acct_list;
0284 List cluster_list;
0285
0286 List def_qos_id_list;
0287
0288 List format_list;
0289 List id_list;
0290
0291 uint16_t only_defs;
0292
0293 List parent_acct_list;
0294 List partition_list;
0295
0296 List qos_list;
0297
0298 time_t usage_end;
0299 time_t usage_start;
0300
0301 List user_list;
0302
0303 uint16_t with_usage;
0304 uint16_t with_deleted;
0305 uint16_t with_raw_qos;
0306 uint16_t with_sub_accts;
0307 uint16_t without_parent_info;
0308 uint16_t without_parent_limits;
0309
0310 } slurmdb_assoc_cond_t;
0311
0312
0313
0314
0315 typedef struct {
0316 List acct_list;
0317 List associd_list;
0318 List cluster_list;
0319 List constraint_list;
0320 uint32_t cpus_max;
0321 uint32_t cpus_min;
0322 uint32_t db_flags;
0323 int32_t exitcode;
0324 uint32_t flags;
0325 List format_list;
0326 List groupid_list;
0327 List jobname_list;
0328 uint32_t nodes_max;
0329 uint32_t nodes_min;
0330 List partition_list;
0331 List qos_list;
0332 List reason_list;
0333 List resv_list;
0334 List resvid_list;
0335 List state_list;
0336 List step_list;
0337 uint32_t timelimit_max;
0338 uint32_t timelimit_min;
0339 time_t usage_end;
0340 time_t usage_start;
0341 char *used_nodes;
0342 List userid_list;
0343 List wckey_list;
0344 } slurmdb_job_cond_t;
0345
0346
0347
0348
0349 typedef struct {
0350 double act_cpufreq;
0351 uint64_t consumed_energy;
0352 char *tres_usage_in_ave;
0353 char *tres_usage_in_max;
0354 char *tres_usage_in_max_nodeid;
0355 char *tres_usage_in_max_taskid;
0356 char *tres_usage_in_min;
0357 char *tres_usage_in_min_nodeid;
0358 char *tres_usage_in_min_taskid;
0359 char *tres_usage_in_tot;
0360 char *tres_usage_out_ave;
0361 char *tres_usage_out_max;
0362 char *tres_usage_out_max_nodeid;
0363 char *tres_usage_out_max_taskid;
0364 char *tres_usage_out_min;
0365 char *tres_usage_out_min_nodeid;
0366 char *tres_usage_out_min_taskid;
0367 char *tres_usage_out_tot;
0368 } slurmdb_stats_t;
0369
0370
0371
0372 typedef struct {
0373 slurmdb_assoc_cond_t *assoc_cond;
0374
0375 List description_list;
0376 List organization_list;
0377 uint16_t with_assocs;
0378 uint16_t with_coords;
0379 uint16_t with_deleted;
0380 } slurmdb_account_cond_t;
0381
0382 enum {
0383 SLURMDB_ACCT_FLAG_NONE = 0,
0384 SLURMDB_ACCT_FLAG_DELETED = (1 << 0),
0385 };
0386
0387 typedef struct {
0388 List assoc_list;
0389 List coordinators;
0390 char *description;
0391 uint32_t flags;
0392 char *name;
0393 char *organization;
0394 } slurmdb_account_rec_t;
0395
0396 typedef struct {
0397 uint64_t alloc_secs;
0398 uint32_t id;
0399 time_t period_start;
0400 slurmdb_tres_rec_t tres_rec;
0401 } slurmdb_accounting_rec_t;
0402
0403 typedef struct {
0404 char *archive_dir;
0405 char *archive_script;
0406
0407 slurmdb_job_cond_t *job_cond;
0408 uint32_t purge_event;
0409
0410
0411
0412 uint32_t purge_job;
0413
0414
0415
0416 uint32_t purge_resv;
0417
0418
0419
0420 uint32_t purge_step;
0421
0422
0423
0424 uint32_t purge_suspend;
0425
0426
0427
0428 uint32_t purge_txn;
0429
0430
0431
0432 uint32_t purge_usage;
0433
0434
0435
0436 } slurmdb_archive_cond_t;
0437
0438 typedef struct {
0439 char *archive_file;
0440
0441 char *insert;
0442
0443 } slurmdb_archive_rec_t;
0444
0445 typedef struct {
0446 uint64_t count;
0447
0448 List format_list;
0449 List id_list;
0450 List name_list;
0451
0452 List type_list;
0453 uint16_t with_deleted;
0454 } slurmdb_tres_cond_t;
0455
0456
0457
0458
0459
0460
0461 typedef struct slurmdb_assoc_usage slurmdb_assoc_usage_t;
0462 typedef struct slurmdb_bf_usage slurmdb_bf_usage_t;
0463 typedef struct slurmdb_user_rec slurmdb_user_rec_t;
0464
0465 typedef struct slurmdb_assoc_rec {
0466 List accounting_list;
0467 char *acct;
0468
0469 struct slurmdb_assoc_rec *assoc_next;
0470
0471
0472
0473
0474 struct slurmdb_assoc_rec *assoc_next_id;
0475
0476
0477 slurmdb_bf_usage_t *bf_usage;
0478
0479 char *cluster;
0480
0481 char *comment;
0482
0483 uint32_t def_qos_id;
0484
0485 uint16_t flags;
0486 uint32_t grp_jobs;
0487
0488
0489 uint32_t grp_jobs_accrue;
0490
0491
0492 uint32_t grp_submit_jobs;
0493
0494
0495
0496 char *grp_tres;
0497
0498
0499 uint64_t *grp_tres_ctld;
0500
0501
0502
0503 char *grp_tres_mins;
0504
0505
0506 uint64_t *grp_tres_mins_ctld;
0507
0508
0509
0510 char *grp_tres_run_mins;
0511
0512
0513
0514 uint64_t *grp_tres_run_mins_ctld;
0515
0516
0517
0518
0519
0520 uint32_t grp_wall;
0521
0522
0523
0524 uint32_t id;
0525
0526
0527 uint16_t is_def;
0528
0529 slurmdb_assoc_usage_t *leaf_usage;
0530
0531
0532 uint32_t lft;
0533
0534
0535 char *lineage;
0536
0537 uint32_t max_jobs;
0538
0539 uint32_t max_jobs_accrue;
0540
0541
0542 uint32_t max_submit_jobs;
0543
0544 char *max_tres_mins_pj;
0545
0546 uint64_t *max_tres_mins_ctld;
0547
0548
0549
0550 char *max_tres_run_mins;
0551
0552
0553 uint64_t *max_tres_run_mins_ctld;
0554
0555
0556
0557
0558
0559 char *max_tres_pj;
0560
0561 uint64_t *max_tres_ctld;
0562
0563
0564
0565 char *max_tres_pn;
0566
0567 uint64_t *max_tres_pn_ctld;
0568
0569
0570
0571 uint32_t max_wall_pj;
0572
0573
0574 uint32_t min_prio_thresh;
0575
0576
0577 char *parent_acct;
0578 uint32_t parent_id;
0579 char *partition;
0580
0581 uint32_t priority;
0582 List qos_list;
0583
0584 uint32_t rgt;
0585
0586
0587
0588 uint32_t shares_raw;
0589
0590
0591 uint32_t uid;
0592 slurmdb_assoc_usage_t *usage;
0593 char *user;
0594 slurmdb_user_rec_t *user_rec;
0595
0596
0597
0598 } slurmdb_assoc_rec_t;
0599
0600 typedef struct {
0601 list_t *acct_list;
0602 slurmdb_assoc_rec_t assoc;
0603
0604 list_t *cluster_list;
0605
0606 char *default_acct;
0607
0608 list_t *partition_list;
0609 list_t *user_list;
0610 list_t *wckey_list;
0611 } slurmdb_add_assoc_cond_t;
0612
0613 struct slurmdb_assoc_usage {
0614 uint32_t accrue_cnt;
0615
0616 List children_list;
0617
0618 bitstr_t *grp_node_bitmap;
0619
0620 uint16_t *grp_node_job_cnt;
0621
0622 uint64_t *grp_used_tres;
0623
0624 uint64_t *grp_used_tres_run_secs;
0625
0626
0627 double grp_used_wall;
0628 double fs_factor;
0629
0630 uint32_t level_shares;
0631
0632
0633 slurmdb_assoc_rec_t *parent_assoc_ptr;
0634
0635
0636
0637
0638 double priority_norm;
0639
0640
0641 slurmdb_assoc_rec_t *fs_assoc_ptr;
0642
0643
0644
0645
0646
0647 double shares_norm;
0648
0649
0650 uint32_t tres_cnt;
0651
0652 long double usage_efctv;
0653
0654 long double usage_norm;
0655
0656 long double usage_raw;
0657
0658 long double *usage_tres_raw;
0659 uint32_t used_jobs;
0660
0661 uint32_t used_submit_jobs;
0662
0663
0664
0665
0666
0667
0668
0669
0670 long double level_fs;
0671
0672
0673
0674 bitstr_t *valid_qos;
0675
0676
0677 };
0678
0679 struct slurmdb_bf_usage {
0680 uint64_t count;
0681 time_t last_sched;
0682 };
0683
0684 typedef struct {
0685 uint16_t classification;
0686 List cluster_list;
0687 List federation_list;
0688 uint32_t flags;
0689 List format_list;
0690 List rpc_version_list;
0691 time_t usage_end;
0692 time_t usage_start;
0693 uint16_t with_deleted;
0694 uint16_t with_usage;
0695 } slurmdb_cluster_cond_t;
0696
0697 typedef struct {
0698 List feature_list;
0699 uint32_t id;
0700 char *name;
0701 void *recv;
0702
0703 void *send;
0704
0705 uint32_t state;
0706 bool sync_recvd;
0707 bool sync_sent;
0708 } slurmdb_cluster_fed_t;
0709
0710 struct slurmdb_cluster_rec {
0711 List accounting_list;
0712 uint16_t classification;
0713 time_t comm_fail_time;
0714
0715 slurm_addr_t control_addr;
0716
0717 char *control_host;
0718 uint32_t control_port;
0719 uint16_t dimensions;
0720 int *dim_size;
0721
0722
0723
0724 slurmdb_cluster_fed_t fed;
0725 uint32_t flags;
0726 pthread_mutex_t lock;
0727 char *name;
0728 char *nodes;
0729 uint32_t plugin_id_select;
0730 slurmdb_assoc_rec_t *root_assoc;
0731
0732 uint16_t rpc_version;
0733 List send_rpc;
0734 char *tres_str;
0735 };
0736
0737 #ifndef __slurmdb_cluster_rec_t_defined
0738 # define __slurmdb_cluster_rec_t_defined
0739 typedef struct slurmdb_cluster_rec slurmdb_cluster_rec_t;
0740 #endif
0741
0742 typedef struct {
0743 uint64_t alloc_secs;
0744 uint64_t down_secs;
0745 uint64_t idle_secs;
0746 uint64_t over_secs;
0747 uint64_t pdown_secs;
0748 time_t period_start;
0749 uint64_t plan_secs;
0750 slurmdb_tres_rec_t tres_rec;
0751 } slurmdb_cluster_accounting_rec_t;
0752
0753 typedef struct {
0754 char *cluster;
0755 uint32_t allowed;
0756
0757 } slurmdb_clus_res_rec_t;
0758
0759 typedef struct {
0760 char *name;
0761 uint16_t direct;
0762 } slurmdb_coord_rec_t;
0763
0764 typedef struct {
0765 List cluster_list;
0766 uint32_t cond_flags;
0767 uint32_t cpus_max;
0768 uint32_t cpus_min;
0769 uint16_t event_type;
0770
0771 List format_list;
0772 char *node_list;
0773 time_t period_end;
0774 time_t period_start;
0775 List reason_list;
0776 List reason_uid_list;
0777 List state_list;
0778 } slurmdb_event_cond_t;
0779
0780 typedef struct {
0781 char *cluster;
0782 char *cluster_nodes;
0783
0784 uint16_t event_type;
0785 char *node_name;
0786 time_t period_end;
0787 time_t period_start;
0788 char *reason;
0789
0790 uint32_t reason_uid;
0791 uint32_t state;
0792
0793 char *tres_str;
0794 } slurmdb_event_rec_t;
0795
0796 typedef struct {
0797 List cluster_list;
0798 List federation_list;
0799 List format_list;
0800 uint16_t with_deleted;
0801 } slurmdb_federation_cond_t;
0802
0803 typedef struct {
0804 char *name;
0805 uint32_t flags;
0806 List cluster_list;
0807 } slurmdb_federation_rec_t;
0808
0809 typedef struct {
0810 List cluster_list;
0811 List extra_list;
0812 List format_list;
0813 List instance_id_list;
0814 List instance_type_list;
0815 char *node_list;
0816 time_t time_end;
0817 time_t time_start;
0818 } slurmdb_instance_cond_t;
0819
0820 typedef struct {
0821 char *cluster;
0822 char *extra;
0823 char *instance_id;
0824 char *instance_type;
0825 char *node_name;
0826 time_t time_end;
0827 time_t time_start;
0828 } slurmdb_instance_rec_t;
0829
0830
0831
0832 typedef struct {
0833 char *account;
0834 char *admin_comment;
0835 uint32_t alloc_nodes;
0836 uint32_t array_job_id;
0837 uint32_t array_max_tasks;
0838
0839
0840 uint32_t array_task_id;
0841
0842 char *array_task_str;
0843
0844
0845 uint32_t associd;
0846 char *blockid;
0847 char *cluster;
0848 char *constraints;
0849 char *container;
0850 uint64_t db_index;
0851 uint32_t derived_ec;
0852 char *derived_es;
0853 uint32_t elapsed;
0854 time_t eligible;
0855 time_t end;
0856 char *env;
0857 uint32_t exitcode;
0858 char *extra;
0859 char *failed_node;
0860 uint32_t flags;
0861 void *first_step_ptr;
0862 uint32_t gid;
0863 uint32_t het_job_id;
0864 uint32_t het_job_offset;
0865 uint32_t jobid;
0866 char *jobname;
0867 uint32_t lft;
0868 char *lineage;
0869
0870 char *licenses;
0871 char *mcs_label;
0872 char *nodes;
0873 char *partition;
0874 uint32_t priority;
0875 uint32_t qosid;
0876 uint32_t req_cpus;
0877 uint64_t req_mem;
0878 uint32_t requid;
0879 uint32_t resvid;
0880 char *resv_name;
0881 char *script;
0882 uint32_t show_full;
0883 time_t start;
0884 uint32_t state;
0885 uint32_t state_reason_prev;
0886 List steps;
0887 time_t submit;
0888 char *submit_line;
0889 uint32_t suspended;
0890 char *system_comment;
0891 uint64_t sys_cpu_sec;
0892 uint64_t sys_cpu_usec;
0893 uint32_t timelimit;
0894 uint64_t tot_cpu_sec;
0895 uint64_t tot_cpu_usec;
0896 char *tres_alloc_str;
0897 char *tres_req_str;
0898 uint32_t uid;
0899 char *used_gres;
0900 char *user;
0901 uint64_t user_cpu_sec;
0902 uint64_t user_cpu_usec;
0903 char *wckey;
0904 uint32_t wckeyid;
0905 char *work_dir;
0906 } slurmdb_job_rec_t;
0907
0908 typedef struct {
0909 uint32_t accrue_cnt;
0910
0911 List acct_limit_list;
0912
0913 List job_list;
0914
0915 bitstr_t *grp_node_bitmap;
0916
0917 uint16_t *grp_node_job_cnt;
0918
0919 uint32_t grp_used_jobs;
0920
0921 uint32_t grp_used_submit_jobs;
0922
0923 uint64_t *grp_used_tres;
0924
0925 uint64_t *grp_used_tres_run_secs;
0926
0927 double grp_used_wall;
0928
0929 double norm_priority;
0930
0931 uint32_t tres_cnt;
0932
0933 long double usage_raw;
0934
0935 long double *usage_tres_raw;
0936 List user_limit_list;
0937
0938 } slurmdb_qos_usage_t;
0939
0940 typedef struct {
0941 char *description;
0942 uint32_t id;
0943 uint32_t flags;
0944
0945 uint32_t grace_time;
0946 uint32_t grp_jobs_accrue;
0947
0948
0949 uint32_t grp_jobs;
0950
0951 uint32_t grp_submit_jobs;
0952
0953 char *grp_tres;
0954
0955 uint64_t *grp_tres_ctld;
0956
0957
0958
0959 char *grp_tres_mins;
0960
0961 uint64_t *grp_tres_mins_ctld;
0962
0963
0964
0965 char *grp_tres_run_mins;
0966
0967 uint64_t *grp_tres_run_mins_ctld;
0968
0969
0970
0971
0972
0973 uint32_t grp_wall;
0974
0975 double limit_factor;
0976
0977 uint32_t max_jobs_pa;
0978
0979 uint32_t max_jobs_pu;
0980
0981 uint32_t max_jobs_accrue_pa;
0982
0983
0984 uint32_t max_jobs_accrue_pu;
0985
0986
0987 uint32_t max_submit_jobs_pa;
0988
0989 uint32_t max_submit_jobs_pu;
0990
0991 char *max_tres_mins_pj;
0992
0993 uint64_t *max_tres_mins_pj_ctld;
0994
0995
0996
0997 char *max_tres_pa;
0998
0999 uint64_t *max_tres_pa_ctld;
1000
1001
1002
1003 char *max_tres_pj;
1004
1005 uint64_t *max_tres_pj_ctld;
1006
1007
1008
1009 char *max_tres_pn;
1010
1011 uint64_t *max_tres_pn_ctld;
1012
1013
1014
1015 char *max_tres_pu;
1016
1017 uint64_t *max_tres_pu_ctld;
1018
1019
1020
1021 char *max_tres_run_mins_pa;
1022
1023
1024
1025
1026 uint64_t *max_tres_run_mins_pa_ctld;
1027
1028
1029
1030
1031
1032
1033 char *max_tres_run_mins_pu;
1034
1035
1036
1037
1038 uint64_t *max_tres_run_mins_pu_ctld;
1039
1040
1041
1042
1043
1044
1045 uint32_t max_wall_pj;
1046
1047 uint32_t min_prio_thresh;
1048
1049
1050 char *min_tres_pj;
1051
1052 uint64_t *min_tres_pj_ctld;
1053
1054
1055
1056
1057 char *name;
1058 bitstr_t *preempt_bitstr;
1059 List preempt_list;
1060
1061
1062 uint16_t preempt_mode;
1063 uint32_t preempt_exempt_time;
1064
1065 uint32_t priority;
1066
1067 uint64_t *relative_tres_cnt;
1068 slurmdb_qos_usage_t *usage;
1069 double usage_factor;
1070 double usage_thres;
1071
1072
1073 time_t blocked_until;
1074 } slurmdb_qos_rec_t;
1075
1076 typedef struct {
1077 List description_list;
1078 List id_list;
1079 List format_list;
1080 List name_list;
1081 uint16_t preempt_mode;
1082 uint16_t with_deleted;
1083 } slurmdb_qos_cond_t;
1084
1085 typedef struct {
1086 List cluster_list;
1087
1088 uint64_t flags;
1089 List format_list;
1090 List id_list;
1091 List name_list;
1092 char *nodes;
1093 time_t time_end;
1094 time_t time_start;
1095 uint16_t with_usage;
1096 } slurmdb_reservation_cond_t;
1097
1098 typedef struct {
1099 char *assocs;
1100 char *cluster;
1101 char *comment;
1102 uint64_t flags;
1103 uint32_t id;
1104 char *name;
1105 char *nodes;
1106 char *node_inx;
1107 time_t time_end;
1108 time_t time_start;
1109 time_t time_start_prev;
1110
1111
1112 char *tres_str;
1113 double unused_wall;
1114 List tres_list;
1115
1116
1117 } slurmdb_reservation_rec_t;
1118
1119 typedef struct {
1120 char *container;
1121 uint32_t elapsed;
1122 time_t end;
1123 int32_t exitcode;
1124 slurmdb_job_rec_t *job_ptr;
1125 uint32_t nnodes;
1126 char *nodes;
1127 uint32_t ntasks;
1128 char *pid_str;
1129 uint32_t req_cpufreq_min;
1130 uint32_t req_cpufreq_max;
1131 uint32_t req_cpufreq_gov;
1132 uint32_t requid;
1133 time_t start;
1134 uint32_t state;
1135 slurmdb_stats_t stats;
1136 slurm_step_id_t step_id;
1137 char *stepname;
1138 char *submit_line;
1139 uint32_t suspended;
1140 uint64_t sys_cpu_sec;
1141 uint32_t sys_cpu_usec;
1142 uint32_t task_dist;
1143 uint64_t tot_cpu_sec;
1144 uint32_t tot_cpu_usec;
1145 char *tres_alloc_str;
1146 uint64_t user_cpu_sec;
1147 uint32_t user_cpu_usec;
1148 } slurmdb_step_rec_t;
1149
1150
1151
1152 typedef struct {
1153 list_t *allowed_list;
1154 List cluster_list;
1155 List description_list;
1156 uint32_t flags;
1157 List format_list;
1158 List id_list;
1159 List manager_list;
1160 List name_list;
1161 List server_list;
1162 List type_list;
1163 uint16_t with_deleted;
1164 uint16_t with_clusters;
1165 } slurmdb_res_cond_t;
1166
1167 typedef struct {
1168 uint32_t allocated;
1169 uint32_t last_consumed;
1170
1171 List clus_res_list;
1172 slurmdb_clus_res_rec_t *clus_res_rec;
1173
1174 uint32_t count;
1175 char *description;
1176 uint32_t flags;
1177 uint32_t id;
1178 time_t last_update;
1179 char *manager;
1180 char *name;
1181 char *server;
1182 uint32_t type;
1183 } slurmdb_res_rec_t;
1184
1185 typedef struct {
1186 List acct_list;
1187 List action_list;
1188 List actor_list;
1189 List cluster_list;
1190 List format_list;
1191 List id_list;
1192 List info_list;
1193 List name_list;
1194 time_t time_end;
1195 time_t time_start;
1196 List user_list;
1197 uint16_t with_assoc_info;
1198 } slurmdb_txn_cond_t;
1199
1200 typedef struct {
1201 char *accts;
1202 uint16_t action;
1203 char *actor_name;
1204 char *clusters;
1205 uint32_t id;
1206 char *set_info;
1207 time_t timestamp;
1208 char *users;
1209 char *where_query;
1210 } slurmdb_txn_rec_t;
1211
1212
1213
1214 typedef struct {
1215 uint32_t accrue_cnt;
1216 char *acct;
1217 uint32_t jobs;
1218 uint32_t submit_jobs;
1219 uint64_t *tres;
1220 uint64_t *tres_run_mins;
1221
1222
1223 bitstr_t *node_bitmap;
1224 uint16_t *node_job_cnt;
1225 uint32_t uid;
1226 } slurmdb_used_limits_t;
1227
1228 typedef struct {
1229 uint16_t admin_level;
1230
1231 slurmdb_assoc_cond_t *assoc_cond;
1232
1233
1234 List def_acct_list;
1235
1236
1237
1238
1239
1240 List def_wckey_list;
1241 uint16_t with_assocs;
1242 uint16_t with_coords;
1243 uint16_t with_deleted;
1244 uint16_t with_wckeys;
1245 uint16_t without_defaults;
1246 } slurmdb_user_cond_t;
1247
1248 enum {
1249 SLURMDB_USER_FLAG_NONE = 0,
1250 SLURMDB_USER_FLAG_DELETED = (1 << 0),
1251 };
1252
1253 struct slurmdb_user_rec {
1254 uint16_t admin_level;
1255
1256 List assoc_list;
1257 slurmdb_bf_usage_t *bf_usage;
1258
1259 List coord_accts;
1260 char *default_acct;
1261 char *default_wckey;
1262 uint32_t flags;
1263 char *name;
1264 char *old_name;
1265 uint32_t uid;
1266 List wckey_list;
1267 };
1268
1269 typedef struct {
1270 List objects;
1271 uint16_t type;
1272
1273
1274 } slurmdb_update_object_t;
1275
1276 typedef struct {
1277 List cluster_list;
1278 List format_list;
1279 List id_list;
1280
1281 List name_list;
1282
1283 uint16_t only_defs;
1284
1285 time_t usage_end;
1286 time_t usage_start;
1287
1288 List user_list;
1289
1290 uint16_t with_usage;
1291 uint16_t with_deleted;
1292 } slurmdb_wckey_cond_t;
1293
1294 enum {
1295 SLURMDB_WCKEY_FLAG_NONE = 0,
1296 SLURMDB_WCKEY_FLAG_DELETED = (1 << 0),
1297 };
1298
1299 typedef struct {
1300 List accounting_list;
1301 char *cluster;
1302 uint32_t flags;
1303 uint32_t id;
1304
1305 uint16_t is_def;
1306
1307 char *name;
1308 uint32_t uid;
1309
1310 char *user;
1311 } slurmdb_wckey_rec_t;
1312
1313 typedef struct {
1314 char *name;
1315 char *print_name;
1316 char *spaces;
1317 uint16_t user;
1318
1319 } slurmdb_print_tree_t;
1320
1321 typedef struct {
1322 slurmdb_assoc_rec_t *assoc;
1323 char *key;
1324 char *sort_name;
1325 List children;
1326 } slurmdb_hierarchical_rec_t;
1327
1328
1329
1330 typedef struct {
1331 char *acct;
1332 char *cluster;
1333 char *parent_acct;
1334 List tres_list;
1335 char *user;
1336 } slurmdb_report_assoc_rec_t;
1337
1338 typedef struct {
1339 char *acct;
1340 List acct_list;
1341 List assoc_list;
1342 char *name;
1343 List tres_list;
1344 uid_t uid;
1345 } slurmdb_report_user_rec_t;
1346
1347 typedef struct {
1348 List accounting_list;
1349 List assoc_list;
1350 char *name;
1351 List tres_list;
1352 List user_list;
1353 } slurmdb_report_cluster_rec_t;
1354
1355 typedef struct {
1356 uint32_t count;
1357 List jobs;
1358
1359
1360 uint32_t min_size;
1361 uint32_t max_size;
1362
1363 List tres_list;
1364 } slurmdb_report_job_grouping_t;
1365
1366 typedef struct {
1367 char *acct;
1368 uint32_t count;
1369 List groups;
1370 char *lineage;
1371
1372 List tres_list;
1373 } slurmdb_report_acct_grouping_t;
1374
1375 typedef struct {
1376 List acct_list;
1377 char *cluster;
1378 uint32_t count;
1379 List tres_list;
1380 } slurmdb_report_cluster_grouping_t;
1381
1382 enum {
1383 DBD_ROLLUP_HOUR,
1384 DBD_ROLLUP_DAY,
1385 DBD_ROLLUP_MONTH,
1386 DBD_ROLLUP_COUNT
1387 };
1388
1389 typedef struct {
1390 char *cluster_name;
1391 uint16_t count[DBD_ROLLUP_COUNT];
1392
1393 time_t timestamp[DBD_ROLLUP_COUNT];
1394 uint64_t time_last[DBD_ROLLUP_COUNT];
1395 uint64_t time_max[DBD_ROLLUP_COUNT];
1396
1397 uint64_t time_total[DBD_ROLLUP_COUNT];
1398
1399 } slurmdb_rollup_stats_t;
1400
1401 typedef struct {
1402 uint32_t cnt;
1403 uint32_t id;
1404 uint64_t time;
1405 uint64_t time_ave;
1406 } slurmdb_rpc_obj_t;
1407
1408 typedef struct {
1409 slurmdb_rollup_stats_t *dbd_rollup_stats;
1410 List rollup_stats;
1411 List rpc_list;
1412 time_t time_start;
1413 List user_list;
1414 } slurmdb_stats_rec_t;
1415
1416
1417
1418 extern slurmdb_cluster_rec_t *working_cluster_rec;
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428 extern int slurmdb_accounts_add(void *db_conn, List acct_list);
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438 extern char *slurmdb_accounts_add_cond(void *db_conn,
1439 slurmdb_add_assoc_cond_t *add_assoc,
1440 slurmdb_account_rec_t *acct);
1441
1442
1443
1444
1445
1446
1447
1448
1449 extern List slurmdb_accounts_get(void *db_conn,
1450 slurmdb_account_cond_t *acct_cond);
1451
1452
1453
1454
1455
1456
1457
1458
1459 extern List slurmdb_accounts_modify(void *db_conn,
1460 slurmdb_account_cond_t *acct_cond,
1461 slurmdb_account_rec_t *acct);
1462
1463
1464
1465
1466
1467
1468
1469 extern List slurmdb_accounts_remove(void *db_conn,
1470 slurmdb_account_cond_t *acct_cond);
1471
1472
1473
1474
1475
1476
1477
1478 extern int slurmdb_archive(void *db_conn, slurmdb_archive_cond_t *arch_cond);
1479
1480
1481
1482
1483 extern int slurmdb_archive_load(void *db_conn,
1484 slurmdb_archive_rec_t *arch_rec);
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494 extern int slurmdb_associations_add(void *db_conn, List assoc_list);
1495
1496
1497
1498
1499
1500
1501
1502 extern List slurmdb_associations_get(void *db_conn,
1503 slurmdb_assoc_cond_t *assoc_cond);
1504
1505
1506
1507
1508
1509
1510
1511
1512 extern List slurmdb_associations_modify(void *db_conn,
1513 slurmdb_assoc_cond_t *assoc_cond,
1514 slurmdb_assoc_rec_t *assoc);
1515
1516
1517
1518
1519
1520
1521
1522 extern List slurmdb_associations_remove(void *db_conn,
1523 slurmdb_assoc_cond_t *assoc_cond);
1524
1525
1526
1527
1528
1529
1530
1531
1532 extern int slurmdb_clusters_add(void *db_conn, List cluster_list);
1533
1534
1535
1536
1537
1538
1539
1540
1541 extern List slurmdb_clusters_get(void *db_conn,
1542 slurmdb_cluster_cond_t *cluster_cond);
1543
1544
1545
1546
1547
1548
1549
1550
1551 extern List slurmdb_clusters_modify(void *db_conn,
1552 slurmdb_cluster_cond_t *cluster_cond,
1553 slurmdb_cluster_rec_t *cluster);
1554
1555
1556
1557
1558
1559
1560
1561 extern List slurmdb_clusters_remove(void *db_conn,
1562 slurmdb_cluster_cond_t *cluster_cond);
1563
1564
1565
1566
1567
1568
1569
1570
1571 extern List slurmdb_report_cluster_account_by_user(void *db_conn,
1572 slurmdb_assoc_cond_t *assoc_cond);
1573
1574
1575
1576
1577
1578
1579 extern List slurmdb_report_cluster_user_by_account(void *db_conn,
1580 slurmdb_assoc_cond_t *assoc_cond);
1581
1582
1583
1584
1585
1586
1587 extern List slurmdb_report_cluster_wckey_by_user(void *db_conn,
1588 slurmdb_wckey_cond_t *wckey_cond);
1589
1590
1591
1592
1593
1594
1595 extern List slurmdb_report_cluster_user_by_wckey(void *db_conn,
1596 slurmdb_wckey_cond_t *wckey_cond);
1597
1598
1599 extern List slurmdb_report_job_sizes_grouped_by_account(
1600 void *db_conn,
1601 slurmdb_job_cond_t *job_cond,
1602 List grouping_list,
1603 bool flat_view,
1604 bool acct_as_parent);
1605
1606 extern List slurmdb_report_job_sizes_grouped_by_wckey(void *db_conn,
1607 slurmdb_job_cond_t *job_cond,
1608 List grouping_list);
1609
1610 extern List slurmdb_report_job_sizes_grouped_by_account_then_wckey(
1611 void *db_conn,
1612 slurmdb_job_cond_t *job_cond,
1613 List grouping_list,
1614 bool flat_view,
1615 bool acct_as_parent);
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626 extern List slurmdb_report_user_top_usage(void *db_conn,
1627 slurmdb_user_cond_t *user_cond,
1628 bool group_accounts);
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638 extern void *slurmdb_connection_get(uint16_t *persist_conn_flags);
1639
1640
1641
1642
1643
1644
1645
1646 extern int slurmdb_connection_close(void **db_conn);
1647
1648
1649
1650
1651
1652
1653
1654 extern int slurmdb_connection_commit(void *db_conn, bool commit);
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664 extern int slurmdb_coord_add(void *db_conn,
1665 List acct_list,
1666 slurmdb_user_cond_t *user_cond);
1667
1668
1669
1670
1671
1672
1673
1674
1675 extern List slurmdb_coord_remove(void *db_conn, List acct_list,
1676 slurmdb_user_cond_t *user_cond);
1677
1678
1679
1680
1681
1682
1683
1684
1685 extern int slurmdb_federations_add(void *db_conn, List federation_list);
1686
1687
1688
1689
1690
1691
1692
1693 extern List slurmdb_federations_modify(void *db_conn,
1694 slurmdb_federation_cond_t *fed_cond,
1695 slurmdb_federation_rec_t *fed);
1696
1697
1698
1699
1700
1701
1702 extern List slurmdb_federations_remove(void *db_conn,
1703 slurmdb_federation_cond_t *fed_cond);
1704
1705
1706
1707
1708
1709
1710
1711 extern List slurmdb_federations_get(void *db_conn,
1712 slurmdb_federation_cond_t *fed_cond);
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722 extern List slurmdb_job_modify(void *db_conn,
1723 slurmdb_job_cond_t *job_cond,
1724 slurmdb_job_rec_t *job);
1725
1726
1727
1728
1729
1730
1731 extern List slurmdb_jobs_get(void *db_conn, slurmdb_job_cond_t *job_cond);
1732
1733
1734
1735
1736
1737
1738 extern int slurmdb_jobs_fix_runaway(void *db_conn, List jobs);
1739
1740
1741 extern int slurmdb_jobcomp_init(void);
1742
1743
1744 extern int slurmdb_jobcomp_fini(void);
1745
1746
1747
1748
1749
1750
1751 extern List slurmdb_jobcomp_jobs_get(slurmdb_job_cond_t *job_cond);
1752
1753
1754
1755
1756
1757
1758 extern int slurmdb_reconfig(void *db_conn);
1759
1760
1761
1762
1763 extern int slurmdb_shutdown(void *db_conn);
1764
1765
1766
1767
1768 extern int slurmdb_clear_stats(void *db_conn);
1769
1770
1771
1772
1773
1774 extern int slurmdb_get_stats(void *db_conn, slurmdb_stats_rec_t **stats_pptr);
1775
1776
1777
1778
1779
1780
1781 extern List slurmdb_config_get(void *db_conn);
1782
1783
1784
1785
1786
1787
1788
1789 extern List slurmdb_events_get(void *db_conn,
1790 slurmdb_event_cond_t *event_cond);
1791
1792
1793
1794
1795
1796
1797
1798
1799 extern List slurmdb_instances_get(void *db_conn,
1800 slurmdb_instance_cond_t *instance_cond);
1801
1802
1803
1804
1805
1806
1807
1808 extern List slurmdb_problems_get(void *db_conn,
1809 slurmdb_assoc_cond_t *assoc_cond);
1810
1811
1812
1813
1814
1815
1816
1817 extern List slurmdb_reservations_get(void *db_conn,
1818 slurmdb_reservation_cond_t *resv_cond);
1819
1820
1821
1822
1823
1824
1825
1826 extern List slurmdb_txn_get(void *db_conn, slurmdb_txn_cond_t *txn_cond);
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839 extern List slurmdb_get_info_cluster(char *cluster_names);
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855 extern int slurmdb_get_first_avail_cluster(job_desc_msg_t *req,
1856 char *cluster_names,
1857 slurmdb_cluster_rec_t **cluster_rec);
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873 extern int slurmdb_get_first_het_job_cluster(List job_req_list,
1874 char *cluster_names, slurmdb_cluster_rec_t **cluster_rec);
1875
1876
1877 extern void slurmdb_destroy_assoc_usage(void *object);
1878 extern void slurmdb_destroy_bf_usage(void *object);
1879 extern void slurmdb_destroy_bf_usage_members(void *object);
1880 extern void slurmdb_destroy_qos_usage(void *object);
1881 extern void slurmdb_free_user_rec_members(slurmdb_user_rec_t *slurmdb_user);
1882 extern void slurmdb_destroy_user_rec(void *object);
1883 extern void slurmdb_destroy_account_rec(void *object);
1884 extern void slurmdb_destroy_coord_rec(void *object);
1885 extern void slurmdb_destroy_clus_res_rec(void *object);
1886 extern void slurmdb_destroy_cluster_accounting_rec(void *object);
1887 extern void slurmdb_destroy_cluster_rec(void *object);
1888 extern void slurmdb_destroy_federation_rec(void *object);
1889 extern void slurmdb_destroy_accounting_rec(void *object);
1890 extern void slurmdb_free_assoc_mgr_state_msg(void *object);
1891 extern void slurmdb_free_assoc_rec_members(slurmdb_assoc_rec_t *assoc);
1892 extern void slurmdb_destroy_assoc_rec(void *object);
1893 extern void slurmdb_destroy_event_rec(void *object);
1894 extern void slurmdb_destroy_instance_rec(void *object);
1895 extern void slurmdb_destroy_job_rec(void *object);
1896 extern void slurmdb_free_qos_rec_members(slurmdb_qos_rec_t *qos);
1897 extern void slurmdb_destroy_qos_rec(void *object);
1898 extern void slurmdb_destroy_reservation_rec(void *object);
1899 extern void slurmdb_destroy_step_rec(void *object);
1900 extern void slurmdb_destroy_res_rec(void *object);
1901 extern void slurmdb_destroy_txn_rec(void *object);
1902 extern void slurmdb_destroy_wckey_rec(void *object);
1903 extern void slurmdb_destroy_archive_rec(void *object);
1904 extern void slurmdb_destroy_tres_rec_noalloc(void *object);
1905 extern void slurmdb_destroy_tres_rec(void *object);
1906 extern void slurmdb_destroy_report_assoc_rec(void *object);
1907 extern void slurmdb_destroy_report_user_rec(void *object);
1908 extern void slurmdb_destroy_report_cluster_rec(void *object);
1909
1910 extern void slurmdb_destroy_user_cond(void *object);
1911 extern void slurmdb_destroy_account_cond(void *object);
1912 extern void slurmdb_destroy_cluster_cond(void *object);
1913 extern void slurmdb_destroy_federation_cond(void *object);
1914 extern void slurmdb_destroy_tres_cond(void *object);
1915 extern void slurmdb_destroy_assoc_cond(void *object);
1916 extern void slurmdb_destroy_event_cond(void *object);
1917 extern void slurmdb_destroy_instance_cond(void *object);
1918 extern void slurmdb_destroy_job_cond(void *object);
1919 extern void slurmdb_destroy_qos_cond(void *object);
1920 extern void slurmdb_destroy_reservation_cond(void *object);
1921 extern void slurmdb_destroy_res_cond(void *object);
1922 extern void slurmdb_destroy_txn_cond(void *object);
1923 extern void slurmdb_destroy_wckey_cond(void *object);
1924 extern void slurmdb_destroy_archive_cond(void *object);
1925 extern void slurmdb_free_add_assoc_cond_members(
1926 slurmdb_add_assoc_cond_t *add_assoc);
1927 extern void slurmdb_destroy_add_assoc_cond(void *object);
1928
1929 extern void slurmdb_destroy_update_object(void *object);
1930 extern void slurmdb_destroy_used_limits(void *object);
1931 extern void slurmdb_destroy_print_tree(void *object);
1932 extern void slurmdb_destroy_hierarchical_rec(void *object);
1933
1934 extern void slurmdb_destroy_report_job_grouping(void *object);
1935 extern void slurmdb_destroy_report_acct_grouping(void *object);
1936 extern void slurmdb_destroy_report_cluster_grouping(void *object);
1937 extern void slurmdb_destroy_rpc_obj(void *object);
1938 extern void slurmdb_destroy_rollup_stats(void *object);
1939 extern void slurmdb_free_stats_rec_members(void *object);
1940 extern void slurmdb_destroy_stats_rec(void *object);
1941
1942 extern void slurmdb_free_slurmdb_stats_members(slurmdb_stats_t *stats);
1943 extern void slurmdb_destroy_slurmdb_stats(slurmdb_stats_t *stats);
1944
1945 extern void slurmdb_init_assoc_rec(slurmdb_assoc_rec_t *assoc,
1946 bool free_it);
1947 extern void slurmdb_init_clus_res_rec(slurmdb_clus_res_rec_t *clus_res,
1948 bool free_it);
1949 extern void slurmdb_init_cluster_rec(slurmdb_cluster_rec_t *cluster,
1950 bool free_it);
1951 extern void slurmdb_init_federation_rec(slurmdb_federation_rec_t *federation,
1952 bool free_it);
1953 extern void slurmdb_init_instance_rec(slurmdb_instance_rec_t *instance);
1954 extern void slurmdb_init_qos_rec(slurmdb_qos_rec_t *qos,
1955 bool free_it,
1956 uint32_t init_val);
1957 extern void slurmdb_init_res_rec(slurmdb_res_rec_t *res,
1958 bool free_it);
1959 extern void slurmdb_init_wckey_rec(slurmdb_wckey_rec_t *wckey,
1960 bool free_it);
1961 extern void slurmdb_init_add_assoc_cond(slurmdb_add_assoc_cond_t *add_assoc,
1962 bool free_it);
1963 extern void slurmdb_init_tres_cond(slurmdb_tres_cond_t *tres,
1964 bool free_it);
1965 extern void slurmdb_init_cluster_cond(slurmdb_cluster_cond_t *cluster,
1966 bool free_it);
1967 extern void slurmdb_init_federation_cond(slurmdb_federation_cond_t *federation,
1968 bool free_it);
1969 extern void slurmdb_init_res_cond(slurmdb_res_cond_t *cluster,
1970 bool free_it);
1971
1972
1973
1974
1975 extern List slurmdb_get_hierarchical_sorted_assoc_list(List assoc_list);
1976 extern List slurmdb_get_acct_hierarchical_rec_list(List assoc_list);
1977
1978
1979
1980 extern char *slurmdb_tree_name_get(char *name, char *parent, List tree_list);
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990 extern int slurmdb_res_add(void *db_conn, List res_list);
1991
1992
1993
1994
1995
1996
1997
1998 extern List slurmdb_res_get(void *db_conn, slurmdb_res_cond_t *res_cond);
1999
2000
2001
2002
2003
2004
2005
2006
2007 extern List slurmdb_res_modify(void *db_conn,
2008 slurmdb_res_cond_t *res_cond,
2009 slurmdb_res_rec_t *res);
2010
2011
2012
2013
2014
2015
2016
2017 extern List slurmdb_res_remove(void *db_conn, slurmdb_res_cond_t *res_cond);
2018
2019
2020
2021
2022
2023
2024
2025
2026 extern int slurmdb_qos_add(void *db_conn, List qos_list);
2027
2028
2029
2030
2031
2032
2033
2034 extern List slurmdb_qos_get(void *db_conn, slurmdb_qos_cond_t *qos_cond);
2035
2036
2037
2038
2039
2040
2041
2042
2043 extern List slurmdb_qos_modify(void *db_conn,
2044 slurmdb_qos_cond_t *qos_cond,
2045 slurmdb_qos_rec_t *qos);
2046
2047
2048
2049
2050
2051
2052
2053 extern List slurmdb_qos_remove(void *db_conn, slurmdb_qos_cond_t *qos_cond);
2054
2055
2056
2057
2058
2059
2060
2061
2062 extern int slurmdb_tres_add(void *db_conn, List tres_list);
2063
2064
2065
2066
2067
2068
2069
2070 extern List slurmdb_tres_get(void *db_conn, slurmdb_tres_cond_t *tres_cond);
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085 extern int slurmdb_usage_get(void *db_conn,
2086 void *in,
2087 int type,
2088 time_t start,
2089 time_t end);
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099 extern int slurmdb_usage_roll(void *db_conn,
2100 time_t sent_start,
2101 time_t sent_end,
2102 uint16_t archive_data,
2103 List *rollup_stats_list_in);
2104
2105
2106
2107
2108
2109
2110
2111
2112 extern int slurmdb_users_add(void *db_conn, List user_list);
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122 extern char *slurmdb_users_add_cond(void *db_conn,
2123 slurmdb_add_assoc_cond_t *add_assoc,
2124 slurmdb_user_rec_t *user);
2125
2126
2127
2128
2129
2130
2131
2132
2133 extern List slurmdb_users_add_conn(void *db_conn,
2134 slurmdb_user_rec_t *user,
2135 slurmdb_assoc_cond_t *assoc_cond,
2136 slurmdb_assoc_rec_t *assoc);
2137
2138
2139
2140
2141
2142
2143
2144
2145 extern List slurmdb_users_get(void *db_conn, slurmdb_user_cond_t *user_cond);
2146
2147
2148
2149
2150
2151
2152
2153
2154 extern List slurmdb_users_modify(void *db_conn,
2155 slurmdb_user_cond_t *user_cond,
2156 slurmdb_user_rec_t *user);
2157
2158
2159
2160
2161
2162
2163
2164 extern List slurmdb_users_remove(void *db_conn,
2165 slurmdb_user_cond_t *user_cond);
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178 extern int slurmdb_wckeys_add(void *db_conn, List wckey_list);
2179
2180
2181
2182
2183
2184
2185
2186 extern List slurmdb_wckeys_get(void *db_conn,
2187 slurmdb_wckey_cond_t *wckey_cond);
2188
2189
2190
2191
2192
2193
2194
2195
2196 extern List slurmdb_wckeys_modify(void *db_conn,
2197 slurmdb_wckey_cond_t *wckey_cond,
2198 slurmdb_wckey_rec_t *wckey);
2199
2200
2201
2202
2203
2204
2205
2206 extern List slurmdb_wckeys_remove(void *db_conn,
2207 slurmdb_wckey_cond_t *wckey_cond);
2208
2209 #ifdef __cplusplus
2210 }
2211 #endif
2212
2213 #endif