16 #include <scheduler.h>
22 char sqltmp[1024] = {0};
46 FO_ASSERT_PTR_NOT_NULL(scheduler->
db_conn);
49 sql = g_string_new(sqltmp);
50 g_string_append(sql,
"'users';");
57 if(PQresultStatus(db_result) == PGRES_TUPLES_OK && PQntuples(db_result) != 0)
60 FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 0, 0)),
"user_pk");
61 FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 1, 0)),
"user_name");
62 FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 2, 0)),
"root_folder_fk");
63 FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 3, 0)),
"user_desc");
64 FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 4, 0)),
"user_seed");
68 g_string_free(sql, TRUE);
84 FO_ASSERT_PTR_NULL(scheduler->
db_conn);
86 FO_ASSERT_PTR_NOT_NULL(scheduler->
db_conn);
110 FO_ASSERT_PTR_NULL(scheduler->
db_conn);
112 FO_ASSERT_PTR_NOT_NULL(scheduler->
db_conn);
117 sprintf(sql,
"SELECT * FROM job WHERE job_name = 'testing file' ORDER BY job_pk DESC LIMIT 1;");
119 if(PQresultStatus(db_result) == PGRES_TUPLES_OK && PQntuples(db_result) != 0)
121 FO_ASSERT_STRING_EQUAL(PQget(db_result, 0,
"job_name"),
"testing file");
122 FO_ASSERT_NOT_EQUAL(atoi(PQget(db_result, 0,
"job_user_fk")), 0);
150 FO_ASSERT_PTR_NULL(scheduler->
db_conn);
152 FO_ASSERT_PTR_NOT_NULL(scheduler->
db_conn);
157 params->second = jq_pk;
158 params->first = g_tree_lookup(scheduler->
job_list, ¶ms->second);
160 if(params->first == NULL)
162 tmp_job.
id = params->second;
163 tmp_job.
status = JB_NOT_AVAILABLE;
170 FO_ASSERT_STRING_EQUAL(job_status_strings[job->
status],
"JOB_NOT_AVAILABLE");
173 FO_ASSERT_STRING_EQUAL(job_status_strings[job->
status],
"JOB_NOT_AVAILABLE");
199 FO_ASSERT_PTR_NULL(scheduler->
db_conn);
201 FO_ASSERT_PTR_NOT_NULL(scheduler->
db_conn);
206 params->second = jq_pk;
207 params->first = g_tree_lookup(scheduler->
job_list, ¶ms->second);
209 if(params->first == NULL)
211 tmp_job.
id = params->second;
212 tmp_job.
status = JB_NOT_AVAILABLE;
219 FO_ASSERT_STRING_EQUAL(job_status_strings[job->
status],
"JOB_NOT_AVAILABLE");
244 FO_ASSERT_PTR_NULL(scheduler->
db_conn);
247 FO_ASSERT_PTR_NOT_NULL(scheduler->
db_conn);
254 FO_ASSERT_STRING_EQUAL(job_status_strings[job->
status],
"JOB_CHECKEDOUT");
262 CU_TestInfo tests_database[] =
272 CU_TestInfo tests_email[] =
job_t * job_init(GTree *job_list, GSequence *job_queue, char *type, char *host, int id, int parent_id, int user_id, int group_id, int priority, char *jq_cmd_args)
Create a new job.
PGresult * database_exec(scheduler_t *scheduler, const char *sql)
Executes an sql statement for the scheduler.
void database_reset_queue(scheduler_t *scheduler)
Resets any jobs in the job queue that are not completed.
void database_init(scheduler_t *scheduler)
void database_job_priority(scheduler_t *scheduler, job_t *job, int priority)
Changes the priority of a job queue entry in the database.
void database_update_job(scheduler_t *scheduler, job_t *job, job_status status)
Change the status of a job in the database.
void database_update_event(scheduler_t *scheduler, void *unused)
Checks the job queue for any new entries.
void database_job_log(int j_id, char *log_name)
Enters the name of the log file for a job into the database.
void database_exec_event(scheduler_t *scheduler, char *sql)
void email_init(scheduler_t *scheduler)
Loads information about the email that will be sent for job notifications.
void database_job_processed(int j_id, int num)
Updates the number of items that a job queue entry has processed.
scheduler_t * scheduler_init(gchar *sysconfigdir, log_t *log)
Create a new scheduler object.
void scheduler_destroy(scheduler_t *scheduler)
Free any memory associated with a scheduler_t.
int Prepare_Testing_Data(scheduler_t *scheduler)
int32_t id
The identifier for this job.
job_status status
The current status for the job.
gchar * message
Message that will be sent with job notification email.
GList * running_agents
The list of agents assigned to this job that are still working.
GTree * job_list
List of jobs that have been created.
PGconn * db_conn
The database connection.
GSequence * job_queue
heap of jobs that still need to be started
void test_database_init()
Test for database_init()
char * check_scheduler_tables
void test_database_update_job()
Test for database_update_job()
void test_email_notify()
Test for email_notification()
void test_database_update_event()
Test for database_update_event()
void test_database_job()
Test for database_job_processed(),database_job_log(),database_job_priority()
void test_database_exec_event()
Test for database_exec_event()