[LON-CAPA-admin] Need a way to change all student IDs in our database

Jeffrey Wilson jwilson at sc.edu
Sat Jul 27 21:06:01 EDT 2013


Hi,

I will be gone for a few weeks and will use the Web GUI to do the userid 
update for our 12K users when I get back.  I'll contact you after that 
for the script to remove the old info from the ids.db file.

I am encouraged that we should be able to remove all of the old id info 
eventually.  Fortunately, I don't have to complete that task before the 
Fall semester starts.

Thank you for your help.

Jeff Wilson




On 7/25/13 3:37 PM, Stuart Raeburn wrote:
> Hi,
>
>> I have looked at some individual user directories to see where the
>> offending IDs might appear,
>
> As discussed in an earlier post I made to the lon-capa-users mailing 
> list, see:
> http://mail.lon-capa.org/pipermail/lon-capa-users/2012-October/004201.html 
>
>
>> Within LON-CAPA IDs are stored in:
>>
>> (a) the environment.db file for each user
>> (b) the classlist.db file for each course
>> (c) the ids.db file for each library server in the domain
>> (d) the allusers table in the loncapa database in MySQL.
>
> The allusers table is completely rebuilt three times weekly by this 
> entry in /etc/cron.d/loncapa
>
> 10 1 * * 2,4,6    www    /home/httpd/perl/searchcat.pl
>
> If you take a look at the code in searchcat.pl you will see that the 
> entries written to the allusers table are read from each user's 
> environment.db GDBM file, which is considered the authoritative source 
> of username => ID mapping.
>
> By following my earlier advice 
> (http://mail.lon-capa.org/pipermail/lon-capa-admin/2013-July/002710.html) 
> you would have replaced the old IDs with the new IDs in the four 
> locations -- (a) through (d) which I itemize above.
>
> However, as you will have seen any old IDs in a domain's ids.db are 
> not removed by this process, although the new IDs would have been 
> written to the file.
>
> The reason why the key => value pairs for the old IDs remain is that 
> the original implementation of ids.db in lonnet.pm rev 1.70 (November 
> 2000) -- devised as a quick look-up of the username, given a 
> student/employee ID -- included a routine to add new key => value 
> pairs, or overwrite the value for an existing key (&idput subroutine 
> in /home/httpd/lib/perl/Apache) but did not provide a mechanism to 
> delete a specific key.
>
> The presence of old id => username pairs in ids.db does not impact the 
> operation of LON-CAPA, because typically look-up is being done based 
> on a student's current ID, in the three situation where ids.db is 
> consulted, and the CSV upload mechanism included in my previous post 
> to this list will have taken care of adding ID => username records for 
> the new student IDs.
>
> In your specific case ...
>
>> For security reasons we must replace the student/employee ID for all 
>> of the existing student records in our LonCapa database
>
> the presence of old IDs could be an issue, if the requirement is to 
> remove all trace of the old student/employee IDs from your LON-CAPA 
> instance.
>
> Anyway, I have now added the necessary routines to handle deletion of 
> unwanted keys from ids.db. The student/employee ID in a user's 
> environment.db file is considered definitive.  One aspect to be aware 
> of is that IDs in ids.db are always lower-cased.
>
> Checking for unwanted keys in ids.db (and their removal) will be 
> performed every other day by searchcat.pl (run as a cron process).
>
> These changes will be included in the forthcoming LON-CAPA 2.11.0 
> release.
>
> If you do not wish to wait for that I can send you a script (offlist) 
> which you can use to remove the unwanted keys from 
> /home/httpd/lonUsers/ids.db
>
> The one other location where you may find the old IDs is within 
> classlist.db files for courses with expired student roles.
>
> Note: the procedure described in my previous reply to you -- 
> http://mail.lon-capa.org/pipermail/lon-capa-admin/2013-July/002710.html -- 
> will have updated old IDs in classlist.db files for courses where a 
> student's role was either currently active or would be active in the 
> future.
>
>> Can I make changes to these files (most notably the .db files) without
>> crashing LonCapa?  What would be the best way to do that?
>
> I can provide a script (offline) which you can run from the command 
> line to modify the ids.db file, and also any classlist.db files 
> containing old IDs.  However, in general I would only recommend 
> modifying LON-CAPA .db files using scripts provided as part of the 
> standard LON-CAPA installation, or via the LON-CAPA web GUI.
>
> Stuart Raeburn
> LON-CAPA Academic Consortium
>
>
> Quoting Jeffrey Wilson <jwilson at sc.edu>:
>
>> Hi Stuart,
>>
>> Just some more info and more questions.
>>
>> I have looked at some individual user directories to see where the
>> offending IDs might appear, for example in
>> /home/httpd/lonUsers/sc/w/i/l/wilsonteststudent I find:
>>
>> activity.log
>> email_status.db
>> email_status.db.lock
>> email_status.db.old
>> email_status.hist
>> environment.db
>> environment.db.lock
>> environment.db.old
>> environment.hist
>> nohist_accesscount.db
>> nohist_accesscount.db.lock
>> nohist_accesscount.db.old
>> nohist_calculatedsheets_sc_4m8323115285b4c74sca2.db
>> nohist_calculatedsheets_sc_4m8323115285b4c74sca2.db.lock
>> nohist_calculatedsheets_sc_4m8323115285b4c74sca2.db.old
>> nohist_resevaldata.db
>> nohist_resevaldata.db.lock
>> nohist_resevaldata.db.old
>> nohist_sc_4m8323115285b4c74sca2_discuss.db
>> nohist_sc_4m8323115285b4c74sca2_discuss.db.lock
>> nohist_sc_4m8323115285b4c74sca2_discuss.db.old
>> passwd
>> roles.db
>> roles.db.lock
>> roles.db.old
>> roles.hist
>> sc_4m8323115285b4c74sca2.db
>> sc_4m8323115285b4c74sca2.db.lock
>> sc_4m8323115285b4c74sca2.db.old
>> sc_4m8323115285b4c74sca2.hist
>>
>> I can see ID information in the environment files.  I don't see IDs
>> anywhere else.
>>
>> Can I make changes to these files (most notably the .db files) without
>> crashing LonCapa?  What would be the best way to do that?
>>
>> Thanks,
>> Jeff
>>
>>
>>
>> _______________________________________________
>> LON-CAPA-admin mailing list
>> LON-CAPA-admin at mail.lon-capa.org
>> http://mail.lon-capa.org/mailman/listinfo/lon-capa-admin
>
>
> _______________________________________________
> LON-CAPA-admin mailing list
> LON-CAPA-admin at mail.lon-capa.org
> http://mail.lon-capa.org/mailman/listinfo/lon-capa-admin




More information about the LON-CAPA-admin mailing list