int slurm_spank_init(spank_t spank, int ac, char **av) { int i; struct spank_option image_opt, bind_opt; memset(&image_opt, '\0', sizeof(image_opt)); image_opt.name = "singularity-image"; image_opt.arginfo = "[path]"; image_opt.usage = "Specify a path to a Singularity image, directory tree, " "or Docker image"; image_opt.has_arg = 1; image_opt.val = 0; image_opt.cb = determine_image; if (ESPANK_SUCCESS != spank_option_register(spank, &image_opt)) { slurm_error("spank/%s: Unable to register a new option.", plugin_name); return -1; } memset(&bind_opt, '\0', sizeof(bind_opt)); bind_opt.name = "singularity-bind"; bind_opt.arginfo = "[path || src:dest],..."; bind_opt.usage = "Specify a user-bind path specification. Can either be " "a path or a src:dest pair, specifying the bind mount to " "perform"; bind_opt.has_arg = 1; bind_opt.val = 0; bind_opt.cb = determine_bind; if (ESPANK_SUCCESS != spank_option_register(spank, &bind_opt)) { slurm_error("spank/%s: Unable to register a new option.", plugin_name); return -1; } // Make this a no-op except when starting the task. if (spank_context() == S_CTX_ALLOCATOR || (spank_remote(spank) != 1)) { return 0; } for (i = 0; i < ac; i++) { if (strncmp ("default_image=", av[i], 14) == 0) { const char *optarg = av[i] + 14; job_image = strdup(optarg); } else { slurm_error ("spank/%s: Invalid option: %s", av[i], plugin_name); } } return 0; }
/* * * SLURM SPANK API SLURM SPANK API SLURM SPANK API SLURM SPANK API * * SLURM SPANK API SLURM SPANK API SLURM SPANK API SLURM SPANK API * */ int slurm_spank_init (spank_t sp, int ac, char *av[]) { spank_option_register(sp,spank_opts); x11_mode = _spank_x11_get_mode(sp,ac,av); return 0; }
int slurm_spank_init(spank_t sp, int ac, char **av) { int i, j, rc = ESPANK_SUCCESS; for (i=0; spank_option_array[i].name; i++) { j = spank_option_register(sp, &spank_option_array[i]); if (j != ESPANK_SUCCESS) { slurm_error("Could not register Spank option %s", spank_option_array[i].name); rc = j; } } return rc; }
static int lua_script_option_register (struct lua_script *script, spank_t sp, int index) { spank_err_t err; struct lua_State *L = script->L; struct lua_script_option *opt = lua_script_option_create (script, index); if (!script_option_list) script_option_list = list_create ((ListDelF)lua_script_option_destroy); opt->s_opt.val = list_count (script_option_list); list_push (script_option_list, opt); err = spank_option_register (sp, &opt->s_opt); if (err != ESPANK_SUCCESS) return l_spank_error (L, err); lua_pushboolean (L, 1); return (1); }