static int init_framework(sge_gdi_ctx_class_t *ctx, bdb_info *info) { int ret = EXIT_FAILURE; lList *answer_list = NULL; lListElem *spooling_context = NULL; const char *spooling_method = ctx->get_spooling_method(ctx); const char *spooling_lib = ctx->get_spooling_lib(ctx); const char *spooling_params = ctx->get_spooling_params(ctx); DENTER(TOP_LAYER, "init_framework"); #ifdef HP1164 sge_set_admin_username("none", NULL); #endif /* create spooling context */ spooling_context = spool_create_dynamic_context(&answer_list, spooling_method, spooling_lib, spooling_params); answer_list_output(&answer_list); if (!strcmp(bootstrap_get_spooling_method(),"classic")) { CRITICAL((SGE_EVENT, MSG_SPOOLDEFAULTS_CANTHANDLECLASSICSPOOLING)); } else if (spooling_context == NULL) { CRITICAL((SGE_EVENT, MSG_SPOOLDEFAULTS_CANNOTCREATECONTEXT)); } else { spool_set_default_context(spooling_context); spool_set_option(&answer_list, spooling_context, "recover=false"); answer_list_output(&answer_list); /* initialize spooling context */ if (!spool_startup_context(&answer_list, spooling_context, true)) { CRITICAL((SGE_EVENT, MSG_SPOOLDEFAULTS_CANNOTSTARTUPCONTEXT)); } else { /* search the berkeley db info - take it from any object type, * berkeleydb spools all objects using the same rule. */ lListElem *type = spool_context_search_type(spooling_context, SGE_TYPE_JOB); lListElem *rule = spool_type_search_default_rule(type); *info = (bdb_info)lGetRef(rule, SPR_clientdata); ret = EXIT_SUCCESS; } answer_list_output(&answer_list); } DRETURN(ret); }
bool sge_bootstrap(const char *bootstrap_file, dstring *error_dstring) { bool ret = true; int i = 0; /*const char **/ bootstrap_entry_t name[NUM_BOOTSTRAP] = { {"admin_user", true}, {"default_domain", true}, {"ignore_fqdn", true}, {"spooling_method", true}, {"spooling_lib", true}, {"spooling_params", true}, {"binary_path", true}, {"qmaster_spool_dir", true}, {"security_mode", true}, {"job_spooling", false}, {"listener_threads", false}, {"worker_threads", false}, {"scheduler_threads", false}, {"jvm_threads", false} }; char value[NUM_BOOTSTRAP][1025]; DENTER(TOP_LAYER, "sge_bootstrap"); for (i = 0; i < NUM_BOOTSTRAP; i++) { value[i][0] = '\0'; } /* get filepath of bootstrap file */ if (bootstrap_file == NULL) { if (error_dstring == NULL) { CRITICAL((SGE_EVENT, SFNMAX, MSG_UTI_CANNOTRESOLVEBOOTSTRAPFILE)); } else { sge_dstring_sprintf(error_dstring, "%s", MSG_UTI_CANNOTRESOLVEBOOTSTRAPFILE); } ret = false; /* read bootstrapping information */ } else if (sge_get_confval_array(bootstrap_file, NUM_BOOTSTRAP, NUM_REQ_BOOTSTRAP, name, value, error_dstring)) { ret = false; } else { /* store bootstrapping information */ bootstrap_set_admin_user(value[0]); bootstrap_set_default_domain(value[1]); { u_long32 uval; parse_ulong_val(NULL, &uval, TYPE_BOO, value[2], NULL, 0); bootstrap_set_ignore_fqdn(uval ? true : false); } bootstrap_set_spooling_method(value[3]); bootstrap_set_spooling_lib(value[4]); bootstrap_set_spooling_params(value[5]); bootstrap_set_binary_path(value[6]); bootstrap_set_qmaster_spool_dir(value[7]); bootstrap_set_security_mode(value[8]); if (strcmp(value[9], "")) { u_long32 uval = 0; parse_ulong_val(NULL, &uval, TYPE_BOO, value[9], NULL, 0); bootstrap_set_job_spooling(uval ? true : false); } else { bootstrap_set_job_spooling(true); } { u_long32 uval = 0; parse_ulong_val(NULL, &uval, TYPE_INT, value[10], NULL, 0); bootstrap_set_listener_thread_count(uval); } { u_long32 uval = 0; parse_ulong_val(NULL, &uval, TYPE_INT, value[11], NULL, 0); bootstrap_set_worker_thread_count(uval); } { u_long32 uval = 0; parse_ulong_val(NULL, &uval, TYPE_INT, value[12], NULL, 0); bootstrap_set_scheduler_thread_count(uval); } { u_long32 uval = 0; parse_ulong_val(NULL, &uval, TYPE_INT, value[13], NULL, 0); bootstrap_set_jvm_thread_count(uval); } DPRINTF(("admin_user >%s<\n", bootstrap_get_admin_user())); DPRINTF(("default_domain >%s<\n", bootstrap_get_default_domain())); DPRINTF(("ignore_fqdn >%s<\n", bootstrap_get_ignore_fqdn() ? "true" : "false")); DPRINTF(("spooling_method >%s<\n", bootstrap_get_spooling_method())); DPRINTF(("spooling_lib >%s<\n", bootstrap_get_spooling_lib())); DPRINTF(("spooling_params >%s<\n", bootstrap_get_spooling_params())); DPRINTF(("binary_path >%s<\n", bootstrap_get_binary_path())); DPRINTF(("qmaster_spool_dir >%s<\n", bootstrap_get_qmaster_spool_dir())); DPRINTF(("security_mode >%s<\n", bootstrap_get_security_mode())); DPRINTF(("job_spooling >%s<\n", bootstrap_get_job_spooling() ? "true":"false")); DPRINTF(("listener_threads >%d<\n", bootstrap_get_listener_thread_count())); DPRINTF(("worker_threads >%d<\n", bootstrap_get_worker_thread_count())); DPRINTF(("scheduler_threads >%d<\n", bootstrap_get_scheduler_thread_count())); DPRINTF(("jvm_threads >%d<\n", bootstrap_get_jvm_thread_count())); } DEXIT; return ret; }