Data loader for load tests.
More...
|
| setEnableLog ($a_val) |
| Set enable log (currently echoes directly to the screen) More...
|
|
| getEnableLog () |
| Get enable log. More...
|
|
| log ($a_str) |
| Log. More...
|
|
| generateUsers ($a_login_base="learner", $a_start=1, $a_end=1000, $a_firstname="John", $a_lastname_base="Learner", $a_pw="learnerpw", $a_email="de@de.de", $a_gender="m", $a_lang="en") |
| Generate Users. More...
|
|
| generateCategories ($a_start=1, $a_end=500, $a_sub_cats_per_cat=10, $a_title_base="Category", $a_node="", $a_init_cnt=true, $a_depth=1) |
| Generate Categories. More...
|
|
| generateCourses ($a_start=1, $a_end=500, $a_course_per_cat=10, $a_title_base="Course") |
| Generate courses. More...
|
|
| generateFiles ($a_test_file, $a_files_per_course=10, $a_title_base="File") |
| Generate files. More...
|
|
| generateCalendarEntries ($a_num_per_course=10) |
| Generate Calendar Entries. More...
|
|
| loadSqlTemplate ($file) |
| Load SQL Template. More...
|
|
| getline ( $fp, $delim) |
| Get line from file. More...
|
|
| createDump ($a_target_file, $a_dump_cmd, $a_db_user="root", $a_db_pw="", $a_db_name="loadtest") |
| Create dump. More...
|
|
| writeUserCsv ($a_target_file, $a_user_base_name="learner") |
| Write User CSV. More...
|
|
| writeCourseCsv ($a_target_file) |
| Write Course CSV. More...
|
|
| writeCategoryCsv ($a_target_file) |
| Write Category CSV. More...
|
|
| assignUsersAsCourseMembers ($a_user_login_base="learner", $a_start=1, $a_end=100) |
| Assign users as course members. More...
|
|
| removeAllDesktopItems () |
| Remove all desktop items. More...
|
|
| deactivateCalendarsOnPersonalDesktop () |
| Deactivate calendars on personal desktops. More...
|
|
Data loader for load tests.
Initializes an ILIAS client with a number of users, objects etc.
- Author
- Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
- Version
- $Id$
Definition at line 12 of file class.ilDataLoader.php.
◆ assignUsersAsCourseMembers()
ilDataLoader::assignUsersAsCourseMembers |
( |
|
$a_user_login_base = "learner" , |
|
|
|
$a_start = 1 , |
|
|
|
$a_end = 100 |
|
) |
| |
Assign users as course members.
Definition at line 479 of file class.ilDataLoader.php.
References $r, $rest, ilCourseParticipants\_getInstanceByObjId(), ilUtil\_getObjectsByOperations(), ilObject\_lookupObjId(), and log().
484 $this->
log(
"Assigning Course Members");
485 $set = $ilDB->query(
"SELECT usr_id, login FROM usr_data WHERE ".
486 " login LIKE ".$ilDB->quote($a_user_login_base.
"%",
"text")
489 while ($rec = $ilDB->fetchAssoc($set))
491 $rest = substr($rec[
"login"], strlen($a_user_login_base));
492 if (is_numeric(
$rest) &&
493 ((
int)
$rest >= $a_start && (
int)
$rest <= $a_end))
495 $user_ids[] = $rec[
"usr_id"];
500 0, $limit = 1000000);
501 include_once
"./Modules/Course/classes/class.ilCourseParticipants.php";
502 foreach ($crs_ref_ids as
$r)
506 foreach ($user_ids as $u)
508 $this->
log(
"$cnt: add user $u as member to course ".$crs_id);
509 $mem_obj->add($u, 1);
static _getObjectsByOperations($a_obj_type, $a_operation, $a_usr_id=0, $limit=0)
Get all objects of a specific type and check access This function is not recursive, instead it parses the serialized rbac_pa entries.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static _lookupObjId($a_id)
◆ createDump()
ilDataLoader::createDump |
( |
|
$a_target_file, |
|
|
|
$a_dump_cmd, |
|
|
|
$a_db_user = "root" , |
|
|
|
$a_db_pw = "" , |
|
|
|
$a_db_name = "loadtest" |
|
) |
| |
Create dump.
- Parameters
-
Definition at line 371 of file class.ilDataLoader.php.
References $cmd, and log().
374 $this->
log(
"Writing Dump");
375 $a_pw = ($a_pwd ==
"")
378 $cmd = $a_dump_cmd.
" -u".$a_db_user.
" ".$a_pw.
" --skip-lock-tables -Q --extended-insert=FALSE --default-character-set=utf8".
379 " --add-drop-table=FALSE --add-locks=FALSE --compatible=mysql40 ".$a_db_name.
" > ".$a_target_file;
380 if (!is_file($a_target_file))
382 $this->
log(
"Something went wrong when writing the dump:<br>".
$cmd);
◆ deactivateCalendarsOnPersonalDesktop()
ilDataLoader::deactivateCalendarsOnPersonalDesktop |
( |
| ) |
|
Deactivate calendars on personal desktops.
Definition at line 529 of file class.ilDataLoader.php.
References log().
533 $this->
log(
"Deactivate calendars on personal desktop.");
534 $set = $ilDB->query(
"SELECT * FROM usr_data");
535 while ($rec = $ilDB->fetchAssoc($set))
537 $ilDB->manipulate(
"REPLACE INTO il_block_setting ".
538 "(type, user_id, block_id, setting, value) VALUES (".
539 $ilDB->quote(
"pdcal",
"text").
",".
540 $ilDB->quote($rec[
"usr_id"],
"integer").
",".
541 $ilDB->quote(0,
"integer").
",".
542 $ilDB->quote(
"detail",
"text").
",".
543 $ilDB->quote(0,
"integer").
◆ generateCalendarEntries()
ilDataLoader::generateCalendarEntries |
( |
|
$a_num_per_course = 10 | ) |
|
Generate Calendar Entries.
- Parameters
-
Definition at line 237 of file class.ilDataLoader.php.
References ilUtil\_getObjectsByOperations(), ilCalendarCategories\_lookupCategoryIdByObjId(), ilObject\_lookupObjId(), IL_CAL_DAY, IL_CAL_HOUR, IL_CAL_UNIX, and log().
239 include_once(
"./Services/Calendar/classes/class.ilDateTime.php");
240 include_once(
"./Services/Calendar/classes/class.ilCalendarEntry.php");
241 include_once(
"./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php");
242 include_once(
"./Services/Calendar/classes/class.ilCalendarCategories.php");
244 $this->
log(
"Creating Calendar Entries");
247 0, $limit = 1000000);
249 foreach ($crs_ref_ids as $rid)
258 for ($i = 1; $i <= $a_num_per_course; $i++)
260 $this->
log(
"Event ".$cnt);
262 $entry->setStart($start);
263 $entry->setEnd($end);
264 $entry->setFullday(
false);
265 $entry->setTitle(
"Event ".$cnt);
267 $id = $entry->getEntryId();
269 $ass->addAssignment($cat_id);
Model for a calendar entry.
static _getObjectsByOperations($a_obj_type, $a_operation, $a_usr_id=0, $limit=0)
Get all objects of a specific type and check access This function is not recursive, instead it parses the serialized rbac_pa entries.
static _lookupCategoryIdByObjId($a_obj_id)
lookup category by obj_id
static _lookupObjId($a_id)
◆ generateCategories()
ilDataLoader::generateCategories |
( |
|
$a_start = 1 , |
|
|
|
$a_end = 500 , |
|
|
|
$a_sub_cats_per_cat = 10 , |
|
|
|
$a_title_base = "Category" , |
|
|
|
$a_node = "" , |
|
|
|
$a_init_cnt = true , |
|
|
|
$a_depth = 1 |
|
) |
| |
Generate Categories.
- Parameters
-
Definition at line 93 of file class.ilDataLoader.php.
References log().
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);
generateCategories($a_start=1, $a_end=500, $a_sub_cats_per_cat=10, $a_title_base="Category", $a_node="", $a_init_cnt=true, $a_depth=1)
Generate Categories.
◆ generateCourses()
ilDataLoader::generateCourses |
( |
|
$a_start = 1 , |
|
|
|
$a_end = 500 , |
|
|
|
$a_course_per_cat = 10 , |
|
|
|
$a_title_base = "Course" |
|
) |
| |
Generate courses.
- Parameters
-
Definition at line 149 of file class.ilDataLoader.php.
References log(), and ilUtil\sortArray().
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"]);
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
◆ generateFiles()
ilDataLoader::generateFiles |
( |
|
$a_test_file, |
|
|
|
$a_files_per_course = 10 , |
|
|
|
$a_title_base = "File" |
|
) |
| |
Generate files.
- Parameters
-
Definition at line 196 of file class.ilDataLoader.php.
References ilUtil\_getObjectsByOperations(), and log().
200 include_once(
"./Modules/File/classes/class.ilObjFile.php");
202 $this->
log(
"Creating Files");
204 $a_current = $a_start;
208 0, $limit = 1000000);
210 foreach ($crs_ref_ids as $rid)
212 for ($i = 1; $i <= $a_files_per_course; $i++)
214 $this->
log($a_title_base.
" ".$cnt);
216 $fileObj->setTitle($a_title_base.
" ".$cnt);
217 $fileObj->setFileName(
"file_".$cnt.
".txt");
219 $fileObj->createReference();
220 $fileObj->putInTree($rid);
221 $fileObj->setPermissions($rid);
222 $fileObj->createDirectory();
223 $fileObj->getUploadFile($a_test_file,
224 "file_".$cnt.
".txt");
static _getObjectsByOperations($a_obj_type, $a_operation, $a_usr_id=0, $limit=0)
Get all objects of a specific type and check access This function is not recursive, instead it parses the serialized rbac_pa entries.
◆ generateUsers()
ilDataLoader::generateUsers |
( |
|
$a_login_base = "learner" , |
|
|
|
$a_start = 1 , |
|
|
|
$a_end = 1000 , |
|
|
|
$a_firstname = "John" , |
|
|
|
$a_lastname_base = "Learner" , |
|
|
|
$a_pw = "learnerpw" , |
|
|
|
$a_email = "de@de.de" , |
|
|
|
$a_gender = "m" , |
|
|
|
$a_lang = "en" |
|
) |
| |
Generate Users.
- Parameters
-
Definition at line 55 of file class.ilDataLoader.php.
References IL_PASSWD_PLAIN, log(), and ilUtil\now().
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);
74 $user->setTitle($user->getFullname());
75 $user->setDescription($user->getEmail());
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);
static now()
Return current timestamp in Y-m-d H:i:s format.
◆ getEnableLog()
ilDataLoader::getEnableLog |
( |
| ) |
|
Get enable log.
- Returns
- boolean enable log
Definition at line 30 of file class.ilDataLoader.php.
Referenced by log().
32 return $this->enable_log;
◆ getline()
ilDataLoader::getline |
( |
|
$fp, |
|
|
|
$delim |
|
) |
| |
◆ loadSqlTemplate()
ilDataLoader::loadSqlTemplate |
( |
|
$file | ) |
|
Load SQL Template.
- Parameters
-
Definition at line 286 of file class.ilDataLoader.php.
References $file, $r, getline(), and log().
291 if ($ilDB->getDBType() ==
"mysql")
293 $fp = fopen(
$file,
'r');
296 $this->
log(
"Error reading file $file.");
299 $this->
log(
"Dropping Tables.");
300 $set = $ilDB->query(
"SHOW tables");
301 while ($rec = $ilDB->fetchAssoc($set))
305 $ilDB->query(
"DROP TABLE ".$v);
309 $this->
log(
"Read Dump.");
313 $line = trim($this->
getline($fp,
"\n"));
315 if ($line !=
"" && substr($line,0,1)!=
"#" 316 && substr($line,0,1)!=
"-")
319 if (substr($line,-1)==
";")
322 $q .=
" ".substr($line,0,-1);
323 $r = $ilDB->query($q);
324 if (mysql_errno() > 0)
326 echo
"<br />ERROR: ".mysql_error().
343 if ($ilDB->getDBType() ==
"oracle")
345 include_once(
"./setup/sql/ilDBTemplate.php");
346 setupILIASDatabase();
getline( $fp, $delim)
Get line from file.
◆ log()
ilDataLoader::log |
( |
|
$a_str | ) |
|
Log.
- Parameters
-
Definition at line 41 of file class.ilDataLoader.php.
References getEnableLog().
Referenced by assignUsersAsCourseMembers(), createDump(), deactivateCalendarsOnPersonalDesktop(), generateCalendarEntries(), generateCategories(), generateCourses(), generateFiles(), generateUsers(), loadSqlTemplate(), removeAllDesktopItems(), writeCategoryCsv(), writeCourseCsv(), and writeUserCsv().
45 echo
"<br>".$a_str; flush();
getEnableLog()
Get enable log.
◆ removeAllDesktopItems()
ilDataLoader::removeAllDesktopItems |
( |
| ) |
|
Remove all desktop items.
Definition at line 518 of file class.ilDataLoader.php.
References log().
522 $this->
log(
"Remove Desktop Items.");
523 $ilDB->manipulate(
"DELETE FROM desktop_item");
◆ setEnableLog()
ilDataLoader::setEnableLog |
( |
|
$a_val | ) |
|
Set enable log (currently echoes directly to the screen)
- Parameters
-
Definition at line 20 of file class.ilDataLoader.php.
22 $this->enable_log = $a_val;
◆ writeCategoryCsv()
ilDataLoader::writeCategoryCsv |
( |
|
$a_target_file | ) |
|
Write Category CSV.
- Parameters
-
Definition at line 452 of file class.ilDataLoader.php.
References $file, $r, ilUtil\_getObjectsByOperations(), and log().
456 $this->
log(
"Writing Category CSV");
458 0, $limit = 1000000);
459 $file = fopen($a_target_file,
"w");
462 foreach ($cat_ref_ids as
$r)
464 fwrite(
$file, $r.
"\n");
470 $this->
log(
"Could not write Category CSV.");
static _getObjectsByOperations($a_obj_type, $a_operation, $a_usr_id=0, $limit=0)
Get all objects of a specific type and check access This function is not recursive, instead it parses the serialized rbac_pa entries.
◆ writeCourseCsv()
ilDataLoader::writeCourseCsv |
( |
|
$a_target_file | ) |
|
Write Course CSV.
- Parameters
-
Definition at line 423 of file class.ilDataLoader.php.
References $file, $r, ilUtil\_getObjectsByOperations(), and log().
427 $this->
log(
"Writing Course CSV");
429 0, $limit = 1000000);
430 $file = fopen($a_target_file,
"w");
433 foreach ($crs_ref_ids as
$r)
435 fwrite(
$file, $r.
"\n");
441 $this->
log(
"Could not write Course CSV.");
static _getObjectsByOperations($a_obj_type, $a_operation, $a_usr_id=0, $limit=0)
Get all objects of a specific type and check access This function is not recursive, instead it parses the serialized rbac_pa entries.
◆ writeUserCsv()
ilDataLoader::writeUserCsv |
( |
|
$a_target_file, |
|
|
|
$a_user_base_name = "learner" |
|
) |
| |
Write User CSV.
- Parameters
-
Definition at line 392 of file class.ilDataLoader.php.
References $file, and log().
396 $this->
log(
"Writing User CSV");
397 $set = $ilDB->query(
"SELECT * FROM usr_data");
398 $file = fopen($a_target_file,
"w");
401 while ($rec = $ilDB->fetchAssoc($set))
403 if (substr($rec[
"login"], 0, strlen($a_user_base_name)) == $a_user_base_name)
405 fwrite(
$file, $rec[
"login"].
"\n");
412 $this->
log(
"Could not write USer CSV.");
The documentation for this class was generated from the following file: