source: trunk/src/pbs_ifl.h @ 160

Last change on this file since 160 was 160, checked in by bas, 16 years ago

src/pbs_ifl, src/pbs_python.h:

  • #define ATTR_reqprop "required_property"
  • Property svn:keywords set to Id
File size: 14.7 KB
Line 
1/*
2 * $Id: pbs_ifl.h 160 2008-09-24 10:51:17Z bas $
3 *
4*         Portable Batch System (PBS) Software License
5*
6* Copyright (c) 1999, MRJ Technology Solutions.
7* All rights reserved.
8*
9* Acknowledgment: The Portable Batch System Software was originally developed
10* as a joint project between the Numerical Aerospace Simulation (NAS) Systems
11* Division of NASA Ames Research Center and the National Energy Research
12* Supercomputer Center (NERSC) of Lawrence Livermore National Laboratory.
13*
14* Redistribution of the Portable Batch System Software and use in source
15* and binary forms, with or without modification, are permitted provided
16* that the following conditions are met:
17*
18* - Redistributions of source code must retain the above copyright and
19*   acknowledgment notices, this list of conditions and the following
20*   disclaimer.
21*
22* - Redistributions in binary form must reproduce the above copyright and
23*   acknowledgment notices, this list of conditions and the following
24*   disclaimer in the documentation and/or other materials provided with the
25*   distribution.
26*
27* - All advertising materials mentioning features or use of this software must
28*   display the following acknowledgment:
29*
30*   This product includes software developed by NASA Ames Research Center,
31*   Lawrence Livermore National Laboratory, and MRJ Technology Solutions.
32*
33*         DISCLAIMER OF WARRANTY
34*
35* THIS SOFTWARE IS PROVIDED BY MRJ TECHNOLOGY SOLUTIONS ("MRJ") "AS IS" WITHOUT
36* WARRANTY OF ANY KIND, AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
37* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
38* FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED.
39*
40* IN NO EVENT, UNLESS REQUIRED BY APPLICABLE LAW, SHALL MRJ, NASA, NOR
41* THE U.S. GOVERNMENT BE LIABLE FOR ANY DIRECT DAMAGES WHATSOEVER,
42* NOR ANY INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
43* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
44* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
45* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
47* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48*
49* This license will be governed by the laws of the Commonwealth of Virginia,
50* without reference to its choice of law rules.
51*/
52
53/*
54 * @(#) $Id: pbs_ifl.h 160 2008-09-24 10:51:17Z bas $
55 */
56
57/*   
58 *
59 *  pbs_ifl.h   
60 *
61 */
62
63/*
64 *  Changed by: Bas van der Vlies <basv@sara.nl>.
65 *  Desc.     : removed the macro definitions so that SWIG can understand
66 *              the header file syntax
67*/
68
69#ifndef _PBS_IFL_DEF
70#define _PBS_IFL_DEF
71
72/* Attribute Names used by user commands */
73
74#define ATTR_a "Execution_Time"
75#define ATTR_c "Checkpoint"
76#define ATTR_e "Error_Path"
77#define ATTR_g "group_list"
78#define ATTR_h "Hold_Types"
79#define ATTR_j "Join_Path"
80#define ATTR_k "Keep_Files"
81#define ATTR_l "Resource_List"
82#define ATTR_m "Mail_Points"
83#define ATTR_o "Output_Path"
84#define ATTR_p "Priority"
85#define ATTR_q "destination"
86#define ATTR_r "Rerunable"
87#define ATTR_u "User_List"
88#define ATTR_v "Variable_List"
89#define ATTR_A "Account_Name"
90#define ATTR_M "Mail_Users"
91#define ATTR_N "Job_Name"
92#define ATTR_S "Shell_Path_List"
93#define ATTR_depend   "depend"
94#define ATTR_inter    "interactive"
95#define ATTR_stagein  "stagein"
96#define ATTR_stageout "stageout"
97
98/* additional job and general attribute names */
99
100#define ATTR_ctime      "ctime"
101#define ATTR_exechost   "exec_host"
102#define ATTR_mtime      "mtime"
103#define ATTR_qtime      "qtime"
104#define ATTR_session    "session_id"
105#define ATTR_euser      "euser"
106#define ATTR_egroup     "egroup"
107#define ATTR_hashname   "hashname"
108#define ATTR_hopcount   "hop_count"
109#define ATTR_security   "security"
110#define ATTR_sched_hint "sched_hint"
111#define ATTR_substate   "substate"
112#define ATTR_name       "Job_Name"
113#define ATTR_owner      "Job_Owner"
114#define ATTR_used       "resources_used"
115#define ATTR_state      "job_state"
116#define ATTR_queue      "queue"
117#define ATTR_server     "server"
118#define ATTR_maxrun     "max_running"
119#define ATTR_total      "total_jobs"
120#define ATTR_comment    "comment"
121#define ATTR_cookie     "cookie"
122#define ATTR_qrank      "queue_rank"
123#define ATTR_altid      "alt_id"
124#define ATTR_etime      "etime"
125#define ATTR_exitstat   "exit_status"
126#define ATTR_forwardx11 "forward_x11"
127#define ATTR_submit_args "submit_args"
128#define ATTR_umask    "umask"
129
130/* additional queue attributes names */
131
132#define ATTR_aclgren    "acl_group_enable"
133#define ATTR_aclgroup   "acl_groups"
134#define ATTR_aclhten    "acl_host_enable"
135#define ATTR_aclhost    "acl_hosts"
136#define ATTR_acluren    "acl_user_enable"
137#define ATTR_acluser    "acl_users"
138#define ATTR_altrouter  "alt_router"
139#define ATTR_chkptmin   "checkpoint_min"
140#define ATTR_enable     "enabled"
141#define ATTR_fromroute  "from_route_only"
142#define ATTR_killdelay  "kill_delay"
143#define ATTR_maxgrprun  "max_group_run"
144#define ATTR_maxque     "max_queuable"
145#define ATTR_maxuserrun "max_user_run"
146#define ATTR_qtype      "queue_type"
147#define ATTR_rescassn   "resources_assigned"
148#define ATTR_rescdflt   "resources_default"
149#define ATTR_rescmax    "resources_max"
150#define ATTR_rescmin    "resources_min"
151#define ATTR_rndzretry  "rendezvous_retry"
152#define ATTR_routedest  "route_destinations"
153#define ATTR_routeheld  "route_held_jobs"
154#define ATTR_routewait  "route_waiting_jobs"
155#define ATTR_routeretry "route_retry_time"
156#define ATTR_routelife  "route_lifetime"
157#define ATTR_rsvexpdt   "reserved_expedite"
158#define ATTR_rsvsync    "reserved_sync"
159#define ATTR_start      "started"
160#define ATTR_count      "state_count"
161#define ATTR_number     "number_jobs"
162#define ATTR_acllogic   "acl_logic_or"
163#define ATTR_aclgrpslpy "acl_group_sloppy"
164#define ATTR_keepcompleted "keep_completed"
165#define ATTR_disallowedtypes "disallowed_types"
166
167/* additional server attributes names */
168
169/* NOTE: steps for adding new attribute described in ??? */
170/*  - create #define ATTR_* in include/pbs_ifl.h
171    - insert SRV_ATR_* in include/server.h
172    - add SRV_ATR_* in include/qmgr_svr_public.h
173    - insert structure in server/svr_attr_def.c
174        NOTE:  structure must be in same relative position as SRV_ATR_*
175    - insert usage code in proper location
176*/
177
178/* HvB required */
179#define ATTR_reqprop    "required_property"
180
181
182#define ATTR_aclroot     "acl_roots"
183#define ATTR_managers    "managers"
184#define ATTR_dfltque     "default_queue"
185#define ATTR_defnode     "default_node"
186#define ATTR_locsvrs     "location_servers"
187#define ATTR_logevents   "log_events"
188#define ATTR_logfile     "log_file"
189#define ATTR_loglevel    "log_level"
190#define ATTR_mailfrom    "mail_from"
191#define ATTR_nodepack    "node_pack"
192#define ATTR_operators   "operators"
193#define ATTR_queryother  "query_other_jobs"
194#define ATTR_resccost    "resources_cost"
195#define ATTR_rescavail   "resources_available"
196#define ATTR_schedit     "scheduler_iteration"
197#define ATTR_scheduling  "scheduling"
198#define ATTR_status      "server_state"
199#define ATTR_syscost     "system_cost"
200#define ATTR_pingrate    "node_ping_rate"
201#define ATTR_ndchkrate   "node_check_rate"
202#define ATTR_tcptimeout  "tcp_timeout"
203#define ATTR_jobstatrate "job_stat_rate"
204#define ATTR_polljobs    "poll_jobs"
205#define ATTR_downonerror "down_on_error"
206#define ATTR_jobnanny    "job_nanny"
207#define ATTR_ownerpurge  "owner_purge"
208#define ATTR_qcqlimits   "queue_centric_limits"
209#define ATTR_momjobsync  "mom_job_sync"
210#define ATTR_maildomain  "mail_domain"
211#define ATTR_pbsversion  "pbs_version"
212#define ATTR_submithosts  "submit_hosts"
213#define ATTR_allownodesubmit  "allow_node_submit"
214#define ATTR_autonodenp  "auto_node_np"
215#define ATTR_servername  "server_name"
216#define ATTR_logfilemaxsize "log_file_max_size"
217#define ATTR_logfilerolldepth "log_file_roll_depth"
218#define ATTR_nextjobnum "next_job_number"
219
220/* additional node "attributes" names */
221
222#define ATTR_NODE_state         "state"
223#define ATTR_NODE_np            "np"
224#define ATTR_NODE_properties    "properties"
225#define ATTR_NODE_ntype         "ntype"
226#define ATTR_NODE_jobs          "jobs"
227#define ATTR_NODE_status        "status"
228#define ATTR_NODE_note          "note"
229
230/* various attribute values */
231
232#define CHECKPOINT_UNSPECIFIED "u"
233#define NO_HOLD "n"
234#define NO_JOIN "n"
235#define NO_KEEP "n"
236#define MAIL_AT_ABORT "a"
237
238
239#define DELDELAY  "deldelay="   /* see qdel.c */
240#define DELPURGE  "delpurge="   /* see qdel.c */
241#define EXECQUEONLY  "exec_queue_only"   /* see req_stat.c */
242
243#define USER_HOLD "u"
244#define OTHER_HOLD "o"
245#define SYSTEM_HOLD "s"
246
247/* node-attribute values (state,ntype) */
248
249#define ND_free                 "free"
250#define ND_offline              "offline"
251#define ND_down                 "down"
252#define ND_reserve              "reserve"
253#define ND_job_exclusive        "job-exclusive"
254#define ND_job_sharing          "job-sharing"
255#define ND_busy                 "busy"
256#define ND_state_unknown        "state-unknown"
257#define ND_timeshared           "time-shared"
258#define ND_cluster              "cluster"
259
260/* queue disallowed types */
261#define Q_DT_batch              "batch"
262#define Q_DT_interactive        "interactive"
263#define Q_DT_rerunable          "rerunable"
264#define Q_DT_nonrerunable       "nonrerunable"
265
266/*constant related to sum of string lengths for above strings*/
267#define MAX_ENCODE_BFR          100
268
269#define MGR_CMD_CREATE  0
270#define MGR_CMD_DELETE  1
271#define MGR_CMD_SET     2
272#define MGR_CMD_UNSET   3
273#define MGR_CMD_LIST    4
274#define MGR_CMD_PRINT   5
275#define MGR_CMD_ACTIVE  6
276
277#define MGR_OBJ_NONE    -1
278#define MGR_OBJ_SERVER  0
279#define MGR_OBJ_QUEUE   1
280#define MGR_OBJ_JOB     2
281#define MGR_OBJ_NODE    3
282
283/* Misc defines for various requests */
284
285#define MSG_OUT 1
286#define MSG_ERR 2
287
288#define SHUT_SIG        -1
289#define SHUT_IMMEDIATE  0
290#define SHUT_DELAY      1
291#define SHUT_QUICK      2
292
293#define SIG_RESUME      "resume"
294#define SIG_SUSPEND     "suspend"
295
296#define PBS_MAXHOSTNAME         64      /* max host name length */
297#ifndef MAXPATHLEN
298#define MAXPATHLEN              1024    /* max path name length */
299#endif
300#ifndef MAXNAMLEN
301#define MAXNAMLEN               255
302#endif
303#define MAX_NOTE                256     /* max node note length */
304#define MAX_NOTE_STR            "256"   /* max node note length as a string literal (this MUST match MAX_NOTE) */
305
306#define PBS_MAXUSER             16      /* max user name length */
307#define PBS_MAXGRPN             16      /* max group name length */
308#define PBS_MAXQUEUENAME        15      /* max queue name length */
309#define PBS_MAXSERVERNAME       PBS_MAXHOSTNAME /* max server name length */
310#define PBS_MAXSEQNUM           6       /* max sequence number length */
311#define PBS_MAXPORTNUM          5       /* udp/tcp port numbers max=16 bits */
312#define PBS_MAXSVRJOBID         (PBS_MAXSEQNUM + PBS_MAXSERVERNAME + PBS_MAXPORTNUM + 2) /* server job id size */
313#define PBS_MAXCLTJOBID         (PBS_MAXSVRJOBID + PBS_MAXSERVERNAME + PBS_MAXPORTNUM + 2) /* client job id size */
314#define PBS_MAXDEST           1024      /* destination size -- increased from 256*/
315#define PBS_MAXROUTEDEST        (PBS_MAXQUEUENAME + PBS_MAXSERVERNAME + PBS_MAXPORTNUM + 2) /* destination size */
316#define PBS_USE_IFF             1       /* pbs_connect() to call pbs_iff */
317#define PBS_INTERACTIVE         1       /* Support of Interactive jobs */
318#define PBS_TERM_BUF_SZ         80      /* Interactive term buffer size */
319#define PBS_TERM_CCA            6       /* Interactive term cntl char array */
320
321
322/* someday the PBS_*_PORT definition will go away and only the  */
323/* PBS_*_SERVICE_NAME form will be used, maybe                  */
324
325#define PBS_BATCH_SERVICE_NAME          "pbs"
326#define PBS_BATCH_SERVICE_PORT          15001
327#define PBS_BATCH_SERVICE_NAME_DIS      "pbs_dis"       /* new DIS port   */
328#define PBS_BATCH_SERVICE_PORT_DIS      15001           /* new DIS port   */
329#define PBS_MOM_SERVICE_NAME            "pbs_mom"
330#define PBS_MOM_SERVICE_PORT            15002
331#define PBS_MANAGER_SERVICE_NAME        "pbs_resmon"
332#define PBS_MANAGER_SERVICE_PORT        15003
333#define PBS_SCHEDULER_SERVICE_NAME      "pbs_sched"
334#define PBS_SCHEDULER_SERVICE_PORT      15004
335
336enum batch_op { SET, UNSET, INCR, DECR, EQ, NE, GE, GT, LE, LT, DFLT };
337
338/*
339** This structure is identical to attropl so they can be used
340** interchangably.  The op field is not used.
341*/
342struct attrl {
343        struct attrl *next;
344        char         *name;
345        char         *resource;
346        char         *value;
347        enum batch_op    op;    /* not used */
348};
349
350struct attropl {
351        struct attropl  *next;
352        char            *name;
353        char            *resource;
354        char            *value;
355        enum batch_op    op;
356};
357
358struct batch_status {
359        struct batch_status *next;
360        char                *name;
361        struct attrl        *attribs;
362        char                *text;
363};
364
365/* Resource Reservation Information */
366typedef int     resource_t;     /* resource reservation handle */
367
368#define RESOURCE_T_NULL         (resource_t)0
369#define RESOURCE_T_ALL          (resource_t)-1
370
371extern int
372pbs_errno;              /* error number */
373
374extern char *
375pbs_server;             /* server attempted to connect | connected to */
376                        /* see pbs_connect(3B)                        */
377
378extern char * avail(int connect, char *resc);
379
380extern int pbs_asyrunjob(int c, char *jobid, char *location, char *extend);
381
382extern int pbs_alterjob(int connect, char *job_id, struct attrl *attrib, 
383                        char *extend);
384
385extern int pbs_connect(char *server);
386
387extern int pbs_query_max_connections(void);
388
389extern char * pbs_default(void);
390
391extern int pbs_deljob(int connect, char *job_id, char *extend);
392
393extern int pbs_disconnect(int connect);
394
395extern char * pbs_geterrmsg(int connect);
396
397extern int pbs_holdjob(int connect, char *job_id, char *hold_type, 
398                       char *extend);
399
400extern char * pbs_locjob(int connect, char *job_id, char *extend);
401
402extern int pbs_manager(int connect, int command, int obj_type, char *obj_name,
403        struct attropl *attrib, char *extend);
404       
405extern int pbs_movejob(int connect, char *job_id, char *destination, 
406                       char *extend);
407       
408extern int pbs_msgjob(int connect, char *job_id, int file, char *message, 
409        char *extend);
410
411extern int pbs_orderjob (int connect, char *job1, char *job2, char *extend);
412
413extern int pbs_rescquery(int connect, char **rlist, int nresc, int *avail,
414        int *alloc, int *resv, int *down);
415
416extern int pbs_rescreserve(int connect, char **rlist, int nresc, resource_t *phandle);
417
418extern int pbs_rescrelease(int connect, resource_t rhandle);
419
420extern int pbs_rerunjob(int connect, char *job_id, char *extend);
421
422extern int pbs_rlsjob(int connect, char *job_id, char *hold_type, char *extend);
423
424extern int pbs_runjob(int connect, char *jobid, char *loc, char *extend);
425
426extern char **pbs_selectjob(int connect, struct attropl *select_list, char *extend);
427
428extern int pbs_sigjob(int connect, char *job_id, char *signal, char *extend);
429
430extern void pbs_statfree(struct batch_status *stat);
431
432// Function does not exitst Bas van der Vlies
433//
434// extern struct batch_status *pbs_statdest(int connect, char *id, char *extend);
435
436extern struct batch_status *pbs_statjob(int connect, char *id, struct attrl *attrib, char *extend);
437
438extern struct batch_status *pbs_selstat(int connect, struct attropl *select_list, char *extend);
439
440extern struct batch_status *pbs_statque(int connect, char *id, struct attrl *attrib, char *extend); 
441
442extern struct batch_status *pbs_statserver(int connect, struct attrl *attrib, char *extend);
443
444extern struct batch_status *pbs_statnode(int connect, char *id, struct attrl *attrib, char *extend);
445
446extern char *pbs_submit(int connect, struct attropl *attrib, char *script,
447        char *destination, char *extend);
448       
449extern int pbs_terminate(int connect, int manner, char *extend);
450
451extern int totpool(int connect, int update);
452
453extern int usepool(int connect, int update);
454
455#endif  /* _PBS_IFL_DEF */
456
457/*  end of pbs_ifl.h  */
Note: See TracBrowser for help on using the repository browser.