|  | /*****************************************************************************\ | 
|  | *  operations.h - definitions for handling http operations | 
|  | ***************************************************************************** | 
|  | *  Copyright (C) SchedMD LLC. | 
|  | * | 
|  | *  This file is part of Slurm, a resource management program. | 
|  | *  For details, see <https://slurm.schedmd.com/>. | 
|  | *  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 SLURMRESTD_OPERATIONS_H | 
|  | #define SLURMRESTD_OPERATIONS_H | 
|  |  | 
|  | #include "src/interfaces/serializer.h" | 
|  | #include "src/slurmrestd/http.h" | 
|  | #include "src/slurmrestd/openapi.h" | 
|  |  | 
|  | /* | 
|  | * setup locks. | 
|  | * only call once! | 
|  | */ | 
|  | extern int init_operations(data_parser_t **parsers); | 
|  | extern void destroy_operations(void); | 
|  |  | 
|  | /* | 
|  | * Bind callback handler for a given URL pattern. | 
|  | * Same rules as bind_operation_handler() but handles populating response and | 
|  | * tracking warnings and errors. | 
|  | * | 
|  | * IN op_path - operation path to bind | 
|  | * IN meta - meta info about plugin that owns callback or NULL | 
|  | * RET SLURM_SUCCESS or error | 
|  | */ | 
|  | extern int bind_operation_path(const openapi_path_binding_t *op_path, | 
|  | const openapi_resp_meta_t *meta); | 
|  |  | 
|  | /* | 
|  | * Parses incoming requests and calls handlers. | 
|  | * expected to be called as on_http_request_t() by http.c. | 
|  | * RET SLURM_SUCCESS or error | 
|  | */ | 
|  | extern int operations_router(on_http_request_args_t *args); | 
|  |  | 
|  | /* | 
|  | * Retrieve db_conn for slurmdbd calls. | 
|  | * WARNING: Only valid inside of openapi_handler_t() | 
|  | * RET NULL on error or db_conn pointer | 
|  | * | 
|  | * Note: this is not implemented here but must be in the caller | 
|  | */ | 
|  | extern void *openapi_get_db_conn(void *ctxt); | 
|  |  | 
|  | #endif /* SLURMRESTD_OPERATIONS_H */ |