- I'd like to transition from Python (and the clunky
DB interface we developed) to PHP for tools like xadd
- I'd like to figure out how to change the PHP DB interface
so that we can define generic functions like insert(), update() etc.
just one, in a base class.
Do this by putting
define("DISABLE_FORUMS", true);
in your html/project/project.inc.
If this is set, admin users can still see enough forum functionality
to post and edit news items
(this is linked to from the Admin web interface).
Other users, or non-logged-in access, sees news but no forums
or forum-related info.
Spam needs to be deleted, not hidden.
Add buttons for deleting posts and threads.
For now, these are available only to admins
(ADMIN, DEV, SCIENTIST privileges).
It doesn't make sense to show the project banner in admin pages;
the banner typically has (broken) links to non-admin pages.
Also, include basic stylesheets in admin pages.
The latest client reports the peak working set size, swap size,
and disk usage for completed jobs.
Add fields to the results table to store these.
Parse them in scheduler request messages, and write to the DB.
Display them in the result web page.
This data can be used to improve (or even automate)
the job estimates for memory and disk usage.
The older interface is deprecated and may eventually be removed.
Note: some of the more ancient PHP code directly uses the old interface.
We'll have to update this at some point.
Now that the manager supports images/video in notices,
we need to allow these in new posts
(i.e. posts to the News forum, which only admins can do).
Don't escape HTML tags in the web display of news items,
or in their export in RSS
- the exported team list wasn't parsing due to non-ASCII characters
in some team descriptions.
htmlspecialchars() wasn't doing the job.
Use DOMDocument instead.
- If SHOW_NONVALIDATE_TEAMS is set (as on the BOINC-wide teams site)
show teams whose founders email addresses are not validated
(and hence won't be exported).
On some hosts, gpu_active_frac may be much less than active_frac
(i.e., GPUs may be available much less than CPUs).
Use gpu_active_frac in the following places:
- scheduler: in estimating the elapsed time of jobs,
to decide whether they can meet deadline
- scheduler: in computing the effective speed of a (host, app version),
when deciding what size class it belongs to
- size_census: in computing effective speed of (host, app versions)
(Previously, we were just using active_frac in all these cases)
- gpu_active_frac is the fraction of time GPU use is allowed
while the client is running.
Previously the client reported it but we weren't storing it in the DB.
We may need it in the future for batch scheduling logic.
- fix a crashing bug in scheduler
- client: minor message tweak
The batch query call used by Condor (query_batch_set(), in the C++ API)
returned info about all the jobs in the set of batches,
even those that hadn't changed.
This is potentially inefficient - a query might return info
about 10,000 jobs, only a few (or none) of which have changed state
since the last call.
Solution: add a "min_mod_time" parameter to the call.
Only jobs that have changed state since that time are reported.
Also, add a "server_time" field to the return,
giving the current time on the server
(in case there's clock skew between client and server)
Also, fix some text scrambling introduced in previous checkin;
there must have been a gremlin in my vim.
- add a PHP interface for lookup_account()
- PHP interfaces return error number as well as message
(messages change; numbers don't)
- using symbolic error codes instead of hardwired numbers in PHP code
- add delete button
- show # of badges assigned
- don't use separate head/tail function are admin pages
- add badge assign task for new projects
- turn on db_dump, update_uotd, update_forum_activities,
update_profile_pages, notify for new projects
- the default badges (defined in ops/badge_assign.php) are now
based on RAC percentile (top 1%, 5%, and 25%) rather than plain RAC.
- RAC percentile badges are now granted for teams as well as users;
show badges in team page.
- move badge utility functions to inc/util_ops.inc
- DB: add tables for badges and badge/user and badge/team associations
- add script that defines 3 RAC-based badges and assigns them
- add images for these badges
- add admin page for creating/editing badges
- show badges on user page
not done:
- figure out how to send badges to client
- display badges somewhere in the GUIs
- export badges in db_dump
- enable badges by default for new projects
- Batches now have optional "expire time".
If this time passes and the batch is not retired, abort and retire it.
- Add script "expire_batches" which enforces the above.
Run it as a periodic task.
- Add a web RPC for setting the expire time of a batch
(it can be changed multiple times)
- Add a C++ interface for this RPC
- Add a BOINC_SET_LEASE command to the BOINC GAHP
("lease" is Condor term for expire time)
On projects with lots of app versions and small POST size limits
(PHP or Apache config?) limit could be exceeded,
causing incorrect DB updates.
Fix this by having one Update button per app version.
Similar for apps.