22 $this->enable_log = $a_val;
32 return $this->enable_log;
45 echo
"<br>".$a_str; flush();
56 $a_end = 1000, $a_firstname =
"John", $a_lastname_base =
"Learner", $a_pw =
"learnerpw",
57 $a_email =
"de@de.de", $a_gender =
"m", $a_lang =
"en")
62 $this->
log(
"Creating Users");
63 for ($i = $a_start; $i <= $a_end; $i++)
65 $this->
log($a_login_base.$i);
67 $user->setLogin($a_login_base.$i);
68 $user->setFirstname($a_firstname);
69 $user->setLastname($a_lastname_base.
" ".$i);
70 $user->setGender($a_gender);
71 $user->setEmail($a_email);
76 $user->setLastPasswordChangeTS( time() );
77 $user->setActive(
true);
78 $user->setTimeLimitUnlimited(
true);
80 $user->setLanguage($a_lang);
81 $user->saveAsNew(
false);
83 $rbacadmin->assignUser(4,
$user->getId(),
true);
93 function generateCategories($a_start = 1, $a_end = 500, $a_sub_cats_per_cat = 10, $a_title_base =
"Category",
94 $a_node =
"", $a_init_cnt =
true, $a_depth = 1)
98 include_once(
"./Modules/Category/classes/class.ilObjCategory.php");
102 $this->item_cnt = $a_start;
103 $this->max_depth = ceil(
log($a_end - $a_start, $a_sub_cats_per_cat));
106 if ($a_depth > $this->max_depth)
113 $a_node = $tree->getRootId();
114 $this->
log(
"Creating Categories");
119 while ($sub_cat_cnt < $a_sub_cats_per_cat && $this->item_cnt <= $a_end)
121 if ($this->item_cnt <= $a_end)
123 $this->
log($a_title_base.
" ".$this->item_cnt);
125 $new_cat->setTitle($a_title_base.
" ".$this->item_cnt);
127 $new_cat->createReference();
128 $new_cat->putInTree($a_node);
129 $new_cat->setPermissions($a_node);
130 $sub_cats[] = $new_cat;
136 foreach ($sub_cats as $sub_cat)
138 $this->
generateCategories($this->item_cnt, $a_end, $a_sub_cats_per_cat, $a_title_base,
139 $sub_cat->getRefId(),
false, $a_depth + 1);
150 $a_title_base =
"Course")
154 include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
156 $this->
log(
"Creating Courses");
158 $a_current = $a_start;
161 $needed_cats = ceil(($a_end - $a_start + 1) / $a_course_per_cat);
164 $nodes = $tree->getFilteredSubTree($tree->getRootId(), array(
"adm",
"crs",
"fold",
"grp"));
167 foreach ($nodes as $node)
169 if ($node[
"type"] ==
"cat" && $a_current <= $a_end)
171 for ($i = 1; $i <= $a_course_per_cat; $i++)
173 if ($a_current <= $a_end)
175 $this->
log($a_title_base.
" ".$a_current);
177 $new_crs->setTitle($a_title_base.
" ".$a_current);
179 $new_crs->createReference();
180 $new_crs->putInTree($node[
"child"]);
181 $new_crs->setPermissions($node[
"child"]);
182 $new_crs->initDefaultRoles();
183 $new_crs->initCourseMemberObject();
198 function generateFiles($a_test_file, $a_files_per_course = 10, $a_title_base =
"File")
202 include_once(
"./Modules/File/classes/class.ilObjFile.php");
204 $this->
log(
"Creating Files");
206 $a_current = $a_start;
210 0, $limit = 1000000);
212 foreach ($crs_ref_ids as $rid)
214 for ($i = 1; $i <= $a_files_per_course; $i++)
216 $this->
log($a_title_base.
" ".$cnt);
218 $fileObj->setTitle($a_title_base.
" ".$cnt);
219 $fileObj->setFileName(
"file_".$cnt.
".txt");
221 $fileObj->createReference();
222 $fileObj->putInTree($rid);
223 $fileObj->setPermissions($rid);
224 $fileObj->createDirectory();
225 $fileObj->getUploadFile($a_test_file,
226 "file_".$cnt.
".txt");
241 include_once(
"./Services/Calendar/classes/class.ilDateTime.php");
242 include_once(
"./Services/Calendar/classes/class.ilCalendarEntry.php");
243 include_once(
"./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php");
244 include_once(
"./Services/Calendar/classes/class.ilCalendarCategories.php");
246 $this->
log(
"Creating Calendar Entries");
249 0, $limit = 1000000);
251 foreach ($crs_ref_ids as $rid)
260 for ($i = 1; $i <= $a_num_per_course; $i++)
262 $this->
log(
"Event ".$cnt);
265 $entry->setEnd($end);
266 $entry->setFullday(
false);
267 $entry->setTitle(
"Event ".$cnt);
269 $id = $entry->getEntryId();
271 $ass->addAssignment($cat_id);
293 if ($ilDB->getDBType() ==
"mysql")
295 $fp = fopen(
$file,
'r');
298 $this->
log(
"Error reading file $file.");
301 $this->
log(
"Dropping Tables.");
302 $set = $ilDB->query(
"SHOW tables");
303 while ($rec = $ilDB->fetchAssoc($set))
307 $ilDB->query(
"DROP TABLE ".$v);
311 $this->
log(
"Read Dump.");
315 $line = trim($this->
getline($fp,
"\n"));
317 if ($line !=
"" && substr($line,0,1)!=
"#"
318 && substr($line,0,1)!=
"-")
321 if (substr($line,-1)==
";")
324 $q .=
" ".substr($line,0,-1);
325 $r = $ilDB->query(
$q);
326 if (mysql_errno() > 0)
328 echo
"<br />ERROR: ".mysql_error().
345 if ($ilDB->getDBType() ==
"oracle")
347 include_once(
"./setup/sql/ilDBTemplate.php");
348 setupILIASDatabase();
358 while( !feof( $fp ) )
373 function createDump($a_target_file, $a_dump_cmd, $a_db_user =
"root",
374 $a_db_pw =
"", $a_db_name =
"loadtest")
376 $this->
log(
"Writing Dump");
377 $a_pw = ($a_pwd ==
"")
380 $cmd = $a_dump_cmd.
" -u".$a_db_user.
" ".$a_pw.
" --skip-lock-tables -Q --extended-insert=FALSE --default-character-set=utf8".
381 " --add-drop-table=FALSE --add-locks=FALSE --compatible=mysql40 ".$a_db_name.
" > ".$a_target_file;
382 if (!is_file($a_target_file))
384 $this->
log(
"Something went wrong when writing the dump:<br>".
$cmd);
398 $this->
log(
"Writing User CSV");
399 $set = $ilDB->query(
"SELECT * FROM usr_data");
400 $file = fopen($a_target_file,
"w");
403 while ($rec = $ilDB->fetchAssoc($set))
405 if (substr($rec[
"login"], 0, strlen($a_user_base_name)) == $a_user_base_name)
407 fwrite(
$file, $rec[
"login"].
"\n");
414 $this->
log(
"Could not write USer CSV.");
429 $this->
log(
"Writing Course CSV");
431 0, $limit = 1000000);
432 $file = fopen($a_target_file,
"w");
435 foreach ($crs_ref_ids as $r)
437 fwrite(
$file, $r.
"\n");
443 $this->
log(
"Could not write Course CSV.");
458 $this->
log(
"Writing Category CSV");
460 0, $limit = 1000000);
461 $file = fopen($a_target_file,
"w");
464 foreach ($cat_ref_ids as $r)
466 fwrite(
$file, $r.
"\n");
472 $this->
log(
"Could not write Category CSV.");
482 $a_start = 1, $a_end = 100)
486 $this->
log(
"Assigning Course Members");
487 $set = $ilDB->query(
"SELECT usr_id, login FROM usr_data WHERE ".
488 " login LIKE ".$ilDB->quote($a_user_login_base.
"%",
"text")
491 while ($rec = $ilDB->fetchAssoc($set))
493 $rest = substr($rec[
"login"], strlen($a_user_login_base));
494 if (is_numeric(
$rest) &&
495 ((
int)
$rest >= $a_start && (
int)
$rest <= $a_end))
497 $user_ids[] = $rec[
"usr_id"];
502 0, $limit = 1000000);
503 include_once
"./Modules/Course/classes/class.ilCourseParticipants.php";
504 foreach ($crs_ref_ids as $r)
508 foreach ($user_ids as $u)
510 $this->
log(
"$cnt: add user $u as member to course ".$crs_id);
511 $mem_obj->add($u, 1);
524 $this->
log(
"Remove Desktop Items.");
525 $ilDB->manipulate(
"DELETE FROM desktop_item");
535 $this->
log(
"Deactivate calendars on personal desktop.");
536 $set = $ilDB->query(
"SELECT * FROM usr_data");
537 while ($rec = $ilDB->fetchAssoc($set))
539 $ilDB->manipulate(
"REPLACE INTO il_block_setting ".
540 "(type, user_id, block_id, setting, value) VALUES (".
541 $ilDB->quote(
"pdcal",
"text").
",".
542 $ilDB->quote($rec[
"usr_id"],
"integer").
",".
543 $ilDB->quote(0,
"integer").
",".
544 $ilDB->quote(
"detail",
"text").
",".
545 $ilDB->quote(0,
"integer").