Skip to content

Commit fb2a8bb

Browse files
Merge pull request #18 from ernst-bablick/master
Fist part for the automatic sessions
2 parents 5977a08 + 14fb38f commit fb2a8bb

File tree

71 files changed

+991
-945
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+991
-945
lines changed

source/common/basis_types.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,3 +220,5 @@ typedef enum {
220220
#define GRU_HARD_REQUEST_TYPE 0
221221
#define GRU_SOFT_REQUEST_TYPE 1
222222
#define GRU_RESOURCE_MAP_TYPE 2
223+
224+
#define GDI_SESSION_NONE (0LL)

source/daemons/qmaster/configuration_qmaster.cc

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ static int
8787
check_config(lList **alpp, lListElem *conf);
8888

8989
static int
90-
do_mod_config(char *aConfName, lListElem *anOldConf, lListElem *aNewConf, lList **anAnswer);
90+
do_mod_config(char *aConfName, lListElem *anOldConf, lListElem *aNewConf, lList **anAnswer, u_long64 gdi_session);
9191

9292
static lListElem *
9393
is_reprioritize_missing(const lList *theOldConfEntries, const lList *theNewConfEntries);
@@ -97,13 +97,13 @@ check_static_conf_entries(const lList *theOldConfEntries, const lList *theNewCon
9797

9898
static int
9999
exchange_conf_by_name(char *aConfName, lListElem *anOldConf, lListElem *aNewConf,
100-
lList **anAnswer);
100+
lList **anAnswer, u_long64 gdi_session);
101101

102102
static bool
103103
has_reschedule_unknown_change(const lList *theOldConfEntries, const lList *theNewConfEntries);
104104

105105
static int
106-
do_add_config(char *aConfName, lListElem *aConf, lList **anAnswer);
106+
do_add_config(char *aConfName, lListElem *aConf, lList **anAnswer, u_long64 gdi_session);
107107

108108
static int
109109
remove_conf_by_name(char *aConfName);
@@ -216,7 +216,7 @@ sge_read_configuration(const lListElem *aSpoolContext, lList **config_list, lLis
216216
* necessary to introduce something like 'protected' configuration entries.
217217
*/
218218
int
219-
sge_del_configuration(lListElem *aConf, lList **anAnswer, char *aUser, char *aHost) {
219+
sge_del_configuration(sge_gdi_packet_class_t *packet, sge_gdi_task_class_t *task, lListElem *aConf, lList **anAnswer, char *aUser, char *aHost) {
220220
const char *tmp_name = nullptr;
221221
char unique_name[CL_MAXHOSTLEN];
222222
int ret = -1;
@@ -268,7 +268,7 @@ sge_del_configuration(lListElem *aConf, lList **anAnswer, char *aUser, char *aHo
268268
DRETURN(STATUS_EEXIST);
269269
}
270270

271-
sge_event_spool(anAnswer, 0, sgeE_CONFIG_DEL, 0, 0, unique_name, nullptr, nullptr, nullptr, nullptr, nullptr, true, true);
271+
sge_event_spool(anAnswer, 0, sgeE_CONFIG_DEL, 0, 0, unique_name, nullptr, nullptr, nullptr, nullptr, nullptr, true, true, packet->gdi_session);
272272

273273
remove_conf_by_name(unique_name);
274274

@@ -312,7 +312,7 @@ sge_del_configuration(lListElem *aConf, lList **anAnswer, char *aUser, char *aHo
312312
*
313313
*******************************************************************************/
314314
int
315-
sge_mod_configuration(lListElem *aConf, lList **anAnswer, const char *aUser, const char *aHost) {
315+
sge_mod_configuration(lListElem *aConf, lList **anAnswer, const char *aUser, const char *aHost, u_long64 gdi_session) {
316316
lListElem *old_conf;
317317
const char *tmp_name = nullptr;
318318
char unique_name[CL_MAXHOSTLEN];
@@ -349,7 +349,7 @@ sge_mod_configuration(lListElem *aConf, lList **anAnswer, const char *aUser, con
349349
if ((old_conf = sge_get_configuration_for_host(unique_name)) != nullptr) {
350350
int ret = -1;
351351

352-
ret = do_mod_config(unique_name, old_conf, aConf, anAnswer);
352+
ret = do_mod_config(unique_name, old_conf, aConf, anAnswer, gdi_session);
353353

354354
lFreeElem(&old_conf);
355355

@@ -360,14 +360,14 @@ sge_mod_configuration(lListElem *aConf, lList **anAnswer, const char *aUser, con
360360
DRETURN(STATUS_EUNKNOWN);
361361
}
362362
} else {
363-
do_add_config(unique_name, aConf, anAnswer);
363+
do_add_config(unique_name, aConf, anAnswer, gdi_session);
364364

365365
INFO(MSG_SGETEXT_ADDEDTOLIST_SSSS, aUser, aHost, unique_name, MSG_OBJ_CONF);
366366
answer_list_add(anAnswer, SGE_EVENT, STATUS_OK, ANSWER_QUALITY_INFO);
367367
}
368368

369369
if (strcmp(SGE_GLOBAL_NAME, unique_name) == 0) {
370-
sge_add_event(0, sgeE_GLOBAL_CONFIG, 0, 0, nullptr, nullptr, nullptr, nullptr);
370+
sge_add_event(0, sgeE_GLOBAL_CONFIG, 0, 0, nullptr, nullptr, nullptr, nullptr, gdi_session);
371371
}
372372

373373
/*
@@ -835,7 +835,7 @@ sge_set_conf_reprioritize(lListElem *aConf, bool aFlag) {
835835
* Empty configurations do not contain any 'CONF_entries'.
836836
*/
837837
static int
838-
do_mod_config(char *aConfName, lListElem *anOldConf, lListElem *aNewConf, lList **anAnswer) {
838+
do_mod_config(char *aConfName, lListElem *anOldConf, lListElem *aNewConf, lList **anAnswer, u_long64 gdi_session) {
839839
const lList *old_entries = nullptr;
840840
lList *new_entries = nullptr;
841841
lListElem *reprio = nullptr;
@@ -853,7 +853,7 @@ do_mod_config(char *aConfName, lListElem *anOldConf, lListElem *aNewConf, lList
853853
DRETURN(-1);
854854
}
855855

856-
exchange_conf_by_name(aConfName, anOldConf, aNewConf, anAnswer);
856+
exchange_conf_by_name(aConfName, anOldConf, aNewConf, anAnswer, gdi_session);
857857

858858
if (has_reschedule_unknown_change(old_entries, new_entries)) {
859859
update_reschedule_unknown_timout_values(aConfName);
@@ -930,7 +930,7 @@ is_reprioritize_missing(const lList *theOldConfEntries, const lList *theNewConfE
930930
* NOTE: 'anOldConf' is a *COPY* of the old configuration entry.
931931
*/
932932
static int
933-
exchange_conf_by_name(char *aConfName, lListElem *anOldConf, lListElem *aNewConf, lList **anAnswer) {
933+
exchange_conf_by_name(char *aConfName, lListElem *anOldConf, lListElem *aNewConf, lList **anAnswer, u_long64 gdi_session) {
934934
lListElem *elem = nullptr;
935935
u_long32 old_version, new_version = 0;
936936
const char *old_conf_name = lGetHost(anOldConf, CONF_name);
@@ -959,7 +959,7 @@ exchange_conf_by_name(char *aConfName, lListElem *anOldConf, lListElem *aNewConf
959959

960960
SGE_UNLOCK(LOCK_MASTER_CONF, LOCK_WRITE);
961961

962-
sge_event_spool(anAnswer, 0, sgeE_CONFIG_MOD, 0, 0, old_conf_name, nullptr, nullptr, elem, nullptr, nullptr, true, true);
962+
sge_event_spool(anAnswer, 0, sgeE_CONFIG_MOD, 0, 0, old_conf_name, nullptr, nullptr, elem, nullptr, nullptr, true, true, gdi_session);
963963

964964
DRETURN(0);
965965
}
@@ -994,7 +994,7 @@ has_reschedule_unknown_change(const lList *theOldConfEntries, const lList *theNe
994994
}
995995

996996
static int
997-
do_add_config(char *aConfName, lListElem *aConf, lList **anAnswer) {
997+
do_add_config(char *aConfName, lListElem *aConf, lList **anAnswer, u_long64 gdi_session) {
998998
lListElem *elem = nullptr;
999999
lList *config_list = *ocs::DataStore::get_master_list_rw(SGE_TYPE_CONFIG);
10001000

@@ -1008,7 +1008,7 @@ do_add_config(char *aConfName, lListElem *aConf, lList **anAnswer) {
10081008

10091009
SGE_UNLOCK(LOCK_MASTER_CONF, LOCK_WRITE);
10101010

1011-
sge_event_spool(anAnswer, 0, sgeE_CONFIG_ADD, 0, 0, aConfName, nullptr, nullptr, elem, nullptr, nullptr, true, true);
1011+
sge_event_spool(anAnswer, 0, sgeE_CONFIG_ADD, 0, 0, aConfName, nullptr, nullptr, elem, nullptr, nullptr, true, true, gdi_session);
10121012

10131013
DRETURN(0);
10141014
}

source/daemons/qmaster/configuration_qmaster.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ lListElem *
5050
sge_get_configuration_entry_by_name(const char *aHost, const char *anEntryName);
5151

5252
int
53-
sge_del_configuration(lListElem *cxp, lList **alpp, char *ruser, char *rhost);
53+
sge_del_configuration(sge_gdi_packet_class_t *packet, sge_gdi_task_class_t *task, lListElem *cxp, lList **alpp, char *ruser, char *rhost);
5454

5555
int
56-
sge_mod_configuration(lListElem *aConf, lList **anAnswer, const char *aUser, const char *aHost);
56+
sge_mod_configuration(lListElem *aConf, lList **anAnswer, const char *aUser, const char *aHost, u_long64 gdi_session);
5757

5858
int
5959
sge_compare_configuration(const lListElem *aHost, const lList *aConf);

source/daemons/qmaster/job_exit.cc

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
for functions regarding rusage see sge_rusage.c
7676
************************************************************************/
7777
void
78-
sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *monitor) {
78+
sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *monitor, u_long64 gdi_session) {
7979
lListElem *queueep = nullptr;
8080
const char *err_str = nullptr;
8181
const char *qname = nullptr;
@@ -161,7 +161,7 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
161161
ocs::ReportingFileWriter::create_job_logs(nullptr, timestamp, JL_DELETED, MSG_EXECD, hostname, jr, jep, jatep, nullptr,
162162
MSG_LOG_JREMOVED);
163163

164-
sge_commit_job(jep, jatep, jr, COMMIT_ST_FINISHED_FAILED_EE, COMMIT_DEFAULT | COMMIT_NEVER_RAN, monitor);
164+
sge_commit_job(jep, jatep, jr, COMMIT_ST_FINISHED_FAILED_EE, COMMIT_DEFAULT | COMMIT_NEVER_RAN, monitor, gdi_session);
165165

166166
if (lGetUlong(jep, JB_ar) != 0 && (lGetUlong(jatep, JAT_state) & JDELETED) == JDELETED) {
167167
/* get AR and remove it if no other jobs are debited */
@@ -182,15 +182,15 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
182182

183183
sge_dstring_sprintf(&buffer, sge_U32CFormat, sge_u32c(ar_id));
184184

185-
ar_do_reservation(ar, false);
185+
ar_do_reservation(ar, false, gdi_session);
186186

187187
ocs::ReportingFileWriter::create_ar_log_records(nullptr, ar, ARL_DELETED, "AR deleted", timestamp);
188188
ocs::ReportingFileWriter::create_ar_acct_records(nullptr, ar, timestamp);
189189

190190
lRemoveElem(master_ar_list, &ar);
191191

192192
sge_event_spool(nullptr, 0, sgeE_AR_DEL, ar_id, 0, sge_dstring_get_string(&buffer), nullptr, nullptr,
193-
nullptr, nullptr, nullptr, true, true);
193+
nullptr, nullptr, nullptr, true, true, gdi_session);
194194
sge_dstring_free(&buffer);
195195
}
196196
}
@@ -211,7 +211,7 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
211211
MSG_LOG_JERRORSET);
212212
lSetUlong64(jatep, JAT_start_time, 0);
213213
ja_task_message_add(jatep, 1, err_str);
214-
sge_commit_job(jep, jatep, jr, COMMIT_ST_FAILED_AND_ERROR, COMMIT_DEFAULT, monitor);
214+
sge_commit_job(jep, jatep, jr, COMMIT_ST_FAILED_AND_ERROR, COMMIT_DEFAULT, monitor, gdi_session);
215215
}
216216
/*
217217
* case 3: job being rescheduled because it wasnt even started
@@ -223,7 +223,7 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
223223
ocs::ReportingFileWriter::create_job_logs(nullptr, timestamp, JL_RESTART, MSG_EXECD, hostname, jr, jep, jatep, nullptr,
224224
MSG_LOG_JNOSTARTRESCHEDULE);
225225
ja_task_message_add(jatep, 1, err_str);
226-
sge_commit_job(jep, jatep, jr, COMMIT_ST_RESCHEDULED, COMMIT_DEFAULT, monitor);
226+
sge_commit_job(jep, jatep, jr, COMMIT_ST_RESCHEDULED, COMMIT_DEFAULT, monitor, gdi_session);
227227
ocs::ReportingFileWriter::create_acct_records(nullptr, jr, jep, jatep, false);
228228
lSetUlong64(jatep, JAT_start_time, 0);
229229
}
@@ -240,7 +240,7 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
240240
ocs::ReportingFileWriter::create_job_logs(nullptr, timestamp, JL_RESTART, MSG_EXECD, hostname, jr, jep, jatep, nullptr,
241241
MSG_LOG_JRERUNRESCHEDULE);
242242
lSetUlong64(jatep, JAT_start_time, 0);
243-
sge_commit_job(jep, jatep, jr, COMMIT_ST_RESCHEDULED, COMMIT_DEFAULT, monitor);
243+
sge_commit_job(jep, jatep, jr, COMMIT_ST_RESCHEDULED, COMMIT_DEFAULT, monitor, gdi_session);
244244
}
245245
/*
246246
* case 5: job being rescheduled because it was interrupted and a checkpoint exists
@@ -254,7 +254,7 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
254254
ocs::ReportingFileWriter::create_job_logs(nullptr, timestamp, JL_MIGRATE, MSG_EXECD, hostname, jr, jep, jatep, nullptr,
255255
MSG_LOG_JCKPTRESCHEDULE);
256256
lSetUlong64(jatep, JAT_start_time, 0);
257-
sge_commit_job(jep, jatep, jr, COMMIT_ST_RESCHEDULED, COMMIT_DEFAULT, monitor);
257+
sge_commit_job(jep, jatep, jr, COMMIT_ST_RESCHEDULED, COMMIT_DEFAULT, monitor, gdi_session);
258258
}
259259
/*
260260
* case 6: job being rescheduled because of exit 99
@@ -267,7 +267,7 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
267267
ocs::ReportingFileWriter::create_job_logs(nullptr, timestamp, JL_RESTART, MSG_EXECD, hostname, jr, jep, jatep, nullptr,
268268
MSG_LOG_JNORESRESCHEDULE);
269269
lSetUlong64(jatep, JAT_start_time, 0);
270-
sge_commit_job(jep, jatep, jr, COMMIT_ST_USER_RESCHEDULED, COMMIT_DEFAULT, monitor);
270+
sge_commit_job(jep, jatep, jr, COMMIT_ST_USER_RESCHEDULED, COMMIT_DEFAULT, monitor, gdi_session);
271271
}
272272
/*
273273
* case 7: job finished
@@ -276,7 +276,7 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
276276
ocs::ReportingFileWriter::create_acct_records(nullptr, jr, jep, jatep, false);
277277
ocs::ReportingFileWriter::create_job_logs(nullptr, timestamp, JL_FINISHED, MSG_EXECD, hostname, jr, jep, jatep, nullptr,
278278
MSG_LOG_EXITED);
279-
sge_commit_job(jep, jatep, jr, COMMIT_ST_FINISHED_FAILED_EE, COMMIT_DEFAULT, monitor);
279+
sge_commit_job(jep, jatep, jr, COMMIT_ST_FINISHED_FAILED_EE, COMMIT_DEFAULT, monitor, gdi_session);
280280
}
281281

282282
if (queueep != nullptr) {
@@ -300,13 +300,13 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
300300

301301
if (qinstance != nullptr) {
302302

303-
sge_qmaster_qinstance_state_set_error(qinstance, true);
303+
sge_qmaster_qinstance_state_set_error(qinstance, true, gdi_session);
304304

305305
sge_dstring_sprintf(&error, MSG_LOG_QERRORBYJOBHOST_SUS, lGetString(qinstance, QU_qname), sge_u32c(jobid), host);
306306
qinstance_message_add(qinstance, QI_ERROR, sge_dstring_get_string(&error));
307307
ERROR(SFNMAX, sge_dstring_get_string(&error));
308308
sge_event_spool(&answer_list, 0, sgeE_QINSTANCE_MOD, 0, 0, lGetString(qinstance, QU_qname),
309-
lGetHost(qinstance, QU_qhostname), nullptr, qinstance, nullptr, nullptr, true, true);
309+
lGetHost(qinstance, QU_qhostname), nullptr, qinstance, nullptr, nullptr, true, true, gdi_session);
310310
}
311311
}
312312
sge_dstring_free(&error);
@@ -323,15 +323,15 @@ sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *moni
323323
lGetString(queueep, QU_qname), sge_u32c(jobid), hostname);
324324

325325
/* general error -> this queue cant run any job */
326-
sge_qmaster_qinstance_state_set_error(queueep, true);
326+
sge_qmaster_qinstance_state_set_error(queueep, true, gdi_session);
327327
qinstance_message_add(queueep, QI_ERROR, sge_dstring_get_string(&error));
328328
ERROR(SFNMAX, sge_dstring_get_string(&error));
329329
sge_event_spool(&answer_list, 0, sgeE_QINSTANCE_MOD, 0, 0, lGetString(queueep, QU_qname),
330-
lGetHost(queueep, QU_qhostname), nullptr, queueep, nullptr, nullptr, true, true);
330+
lGetHost(queueep, QU_qhostname), nullptr, queueep, nullptr, nullptr, true, true, gdi_session);
331331
sge_dstring_free(&error);
332332
}
333333

334-
gdil_del_all_orphaned(saved_gdil, &answer_list);
334+
gdil_del_all_orphaned(saved_gdil, &answer_list, gdi_session);
335335
answer_list_output(&answer_list);
336336
}
337337

source/daemons/qmaster/job_exit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@
3737
#include "sgeobj/sge_daemonize.h"
3838

3939
void
40-
sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *monitor);
40+
sge_job_exit(lListElem *jr, lListElem *jep, lListElem *jatep, monitoring_t *monitor, u_long64 gdi_session);

0 commit comments

Comments
 (0)