1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
#ifndef __SGE_ANSWER_H
#define __SGE_ANSWER_H
/*___INFO__MARK_BEGIN__*/
/*************************************************************************
*
* The Contents of this file are made available subject to the terms of
* the Sun Industry Standards Source License Version 1.2
*
* Sun Microsystems Inc., March, 2001
*
*
* Sun Industry Standards Source License Version 1.2
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.2 (the "License"); You may not use this file
* except in compliance with the License. You may obtain a copy of the
* License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2001 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
************************************************************************/
/*___INFO__MARK_END__*/
#include "sge.h"
#include "sgeobj/sge_answer_AN_L.h"
typedef enum {
ANSWER_QUALITY_CRITICAL = 0,
ANSWER_QUALITY_ERROR = 1,
ANSWER_QUALITY_WARNING = 2,
ANSWER_QUALITY_INFO = 3,
ANSWER_QUALITY_END = 4 /* needs to be last element */
} answer_quality_t;
/*
* valid values for AN_status
*/
typedef enum {
STATUS_OK = 1, /* everything was fine */
STATUS_ESEMANTIC, /* semantic error */
STATUS_EEXIST, /* elem does not exist OR it exists for a
* "add" request */
STATUS_EUNKNOWN, /* unknown error occured */
STATUS_ENOIMP, /* command not implemented for target */
STATUS_ENOKEY, /* missing key field in case of add,del,mod */
STATUS_ESYNTAX, /* syntax error parsing a_source field */
STATUS_EDENIED2HOST, /* operation denied to this host */
STATUS_ENOMGR, /* operation needs manager privileges */
STATUS_ENOOPR, /* operation needs operator privileges */
STATUS_NOQMASTER, /* failed to reach sge_qmaster */
STATUS_NOCOMMD, /* failed to reach commd */
STATUS_NOCONFIG, /* missing dir/conf (cell, common, bootstrap) */
STATUS_EDISK, /* disk operation failed */
STATUS_ENOSUCHUSER, /* can't resolve user */
STATUS_NOSUCHGROUP, /* can't resolve group */
STATUS_EMALLOC, /* can't allocate memory */
STATUS_ENOTOWNER, /* need to be owner for this operation */
STATUS_ESUBHLIC, /* too few submit host licenses */
STATUS_DENIED, /* not allowed to do whatever you try */
STATUS_EVERSION, /* qmaster GDI version differs from clients
* GDI version */
STATUS_ERROR1, /* general error 1 */
STATUS_ERROR2, /* general error 2 */
STATUS_ERROR3, /* general error 3 */
STATUS_OK_DOAGAIN=24, /*
* everything was fine but transaction
* was not completly finished.
*/
STATUS_NOTOK_DOAGAIN=25 /*
* transaction was rejected. Try again later
* (value will be used as return value for
* qsub)
*/
} an_status_t;
bool answer_has_quality(const lListElem *answer, answer_quality_t quality);
void answer_exit_if_not_recoverable(const lListElem *answer);
const char *answer_get_quality_text(const lListElem *answer);
u_long32 answer_get_status(const lListElem *answer);
void answer_print_text(const lListElem *answer,
FILE *stream,
const char *prefix,
const char *suffix);
void answer_to_dstring(const lListElem *answer, dstring *diag);
void answer_list_to_dstring(const lList *alp, dstring *diag);
bool answer_list_add_sprintf(lList **answer_list, u_long32 status,
answer_quality_t quality, const char *fmt, ...)
__attribute__ ((format (printf, 4, 5)));
bool answer_list_has_quality(lList **answer_list,
answer_quality_t quality);
void answer_list_remove_quality(lList *answer_list, answer_quality_t quality);
bool answer_list_has_status(lList **answer_list,
u_long32 status);
bool answer_list_has_error(lList **answer_list);
void answer_list_on_error_print_or_exit(lList **answer_list, FILE *stream);
int answer_list_print_err_warn(lList **answer_list,
const char *critical_prefix,
const char *err_prefix,
const char *warn_prefix);
bool answer_list_output(lList **answer_list);
bool answer_list_log(lList **answer_list, bool is_free_list, bool show_info);
int answer_list_handle_request_answer_list(lList **answer_list, FILE *stream);
bool answer_list_add(lList **answer_list, const char *text,
u_long32 status, answer_quality_t quality);
bool answer_list_add_elem(lList **answer_list, lListElem *answer);
void answer_list_replace(lList **answer_list, lList **new_list);
void answer_list_append_list(lList **answer_list, lList **new_list);
int show_answer(lList *alp);
int show_answer_list(lList *alp);
#endif /* __SGE_ANSWER_H */
|