Boinc Monitor

Plasma 4 Extensions

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

3
7 .8
Description:

Boinc Monitor is a plasmoid written in python that allows you to monitor the activities of BOINC directly on your desktop. The applet shows the progress work of each workunit with reference to the project, to the name, to the percentage of the work done and to the time elapsed and remained. Also shows the number of workunits in pending, in cache and finished, and the last few lines of the BOINC log.

OPTIONS:
BOINC RPC host - The host of BOINC RPC gui. Default: 127.0.0.1
BOINC RPC port - The port number of BOINC RPC gui. Default: 31416
BOINC RPC password - The password of BOINC RPC gui. Default: Empty (Normally it needs for suspend/resume actions)
Preferred project - Your favorite project to display (name, credits, team). Default: None.
Update interval - The refresh interval of the plasmoid. Default: 1 minute.
Log lines number - The number of the log lines to display. Default: 5 lines.
Cut log line after - The number of characters after which the line of the log is cut. Default: 100 chars.
Show only active tasks - Hide new and finished tasks from the list. Default: False.

ICONS LEGEND:
R = Running - [Can be suspended]
S = Suspended - [Can be resumed]
N = New - [Can be suspended]
W = Waiting To Run - [Can be suspended]
F = Finished (Ready To Report) - [No Action]
A = Aborted (Ready To Report) - [No Action]
P = Opens window to show properties of the task

IMPORTANT:
For a perfect view of the plasmoid the system must have the "Verdana" font installed.

AVAILABLE LANGUAGES:
English
Italian
German (thanks to Thomas Gorzka)
Spanish (thanks to Joaquín Ferrero)
Russian (thanks to Sergey Basalaev)

FOR TRANSLATORS:
If you want translate Boinc Monitor in your language, edit boinc-monitor.pot in docs folder, add the translation in msgstr "" or use Poedit and send me the file to email at m4x1m[at]inwind.it

CREDITS:
BOINC logo - http://boinc.berkeley.edu
Cubic icons - Uncredited
Alphabet icons by Supratim Nayak - http://www.iconarchive.com/show/multipurpose-alphabet-icons-by-hydrattz.html
Play/Stop icons by Oxygen Team - http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html
Update/Abort icons by VisualPharm - http://www.iconarchive.com/show/must-have-icons-by-visualpharm.html

-

That's all!

If you like this plasmoid please leave a comment!
Last changelog:

5 years ago

v3.0:
- Added a redundant control to prevent plasma crash when user starts or stops boinc.

v2.9:
- Added new icon for abort state.

v2.8:
- Fixed a bug related to the abort command in the task properties.

v2.7:
- Improved spanish translation.

v2.6:
- Added Russian translation (Thanks to Sergey Basalaev for this translation and some hints).
- Improved language localization management.
- Fixed some unicode strings errors.

v2.5:
- Keep enabled the host and port settings also if the connection was already established for allow users to have multiple instances of the plasmoid.
- Improved checks for protected remote connection.
- Improved spanish translation.

v2.4:
- Changed the method to get if BOINC is running, for more compatibility with the various distributions. If the client name for the your distributions is different from boinc or boinc_client, please notify me, so I will provide to add.

v2.3:
- Added option to hide the New/Finished tasks from the list.
- Added buttons in the properties of the projects for receive update, suspend/resume, fetch/not fetch more works for the current project.
- The urls in the properties of the projects are now clickable for opens website.
- Added buttons in the properties of the task for suspend/resume and abort the current task.
- The names of the tasks that are longer than 40 characters will be reduced with a [...] in the middle.
- Removed the unused help button in the dialogs and added the help hints for the configuration options.
- Optimized code and the graphics views.
- Fixed some others bugs.

v2.2:
- Added window dialog for projects properties.
- Fixed some others bugs.

v2.1:
- Completely rewritten. Now the plasmoid uses RPC gui. See the README.txt file (Thanks to Joaquí­n Ferrero for his support and suggestions).

v2.0:
- Auto Expand "Elapsed" field to print a result that show more than 24 hours.

v1.9:
- Added option to set timeout wait after a suspend/resume call (a too low value might not give time to PC to remove/create the process ids).
- Show more informations when resuming a workunit.
- Fixed minor bugs.

v1.8:
- Added the ability to suspend/resume process.
- Fixed an issue at the initialization of the script.
- Fixed minor bugs.

v1.7:
- Added multilanguage locale.
- Added an extra check to the file boinc-monitor in /etc/sudoers.d/

v1.6:
- Added a second command to check if BOINC is running (this is a workaround for systemd, thanks to Thomas Gorzka).
- Fixed minor bugs.

v1.5:
- No more write the options in a an external file, but use the internal system of plasma for read/write the configuration.

v1.4:
- Perfected the method of recognition of the BOINC user.
- Fixed minor bugs.
- Fixed minor graphics bugs.

v1.3:
- Fixed issue related at initialize of plasmoid for not packaging version of BOINC.
- Fixed issue related the choose of preferred project.
- Fixed minor bugs introduced with the previously version.

v1.2:
- Fixed bug related the preferred project chosen that no longer exists.
- Fixed little bug if the user choose a project that is not in any team.
- Added more controls to prevent errors.

v1.1:
- Changed the way to get the slot used by process (see README.txt in docs folder).
- Added PID column to the working list.
- Fixed minor graphics bugs.

v1.0:
- First script release.

9

gorzka

7 years ago

service boinc-client status
bash: service: Kommando nicht gefunden.

command not found, but

systemctl status boinc
boinc.service - BOINC Daemon
Loaded: loaded (/etc/systemd/system/boinc.service; enabled)
Active: active (running) since Tue, 2012-11-20 10:09:50 CET
Main PID: 295 (boinc_client)
CGroup: name=systemd:/system/boinc.service
└ 295 /usr/bin/boinc_client --dir /var/lib/boinc -...

Report

C

m4x1m

7 years ago

Ok, we are approaching the solution!

Go here https://skydrive.live.com/#cid=2471A122156584AA&id=2471A122156584AA!722 and download the main.py file, replace your old main.py with this one and test it. If works I'll release a new version with the fix.

Report

9

gorzka

7 years ago

ok, I think it works.

Cached and Finished is yellow. Pending is green and 1.

But in Pid is --,Process is -no work unit-, Progress is 0% and in Elapsed and Ram is --

Report

bitcrazy

7 years ago

...and I'll test it.
Anyway, nice that someone develops for Boinc in KDE.

m0nk

Report

9

gardmo

7 years ago

Kudos on doing this... everything BOINC is like luv to mankind..!

thx :)

Report

C

m4x1m

7 years ago

@trekjunky

I think I managed to solve all.

Try and let me know.

PS. In my system (ubuntu 12.04.1) self.FontNormal.setPointSize() if I set to 24 the result is very large chars. I used Verdana font from ttf-mscorefont.

Report

9

trekjunky

7 years ago

Yes! It works just like I expected it to. I'm playing with it as we speak. I will let you know if I have anymore problems!!!

Cane

Report

9

trekjunky

7 years ago

Hello. I got boinc-monitor to work. Then hours later, I decided I wanted to change a parameter. Now the script will not initialize.

This is what I get when I run "plasmoidviewer boinc-monitor"

[email protected]:~> plasmoidviewer boinc-monitor
redirecting to systemctl
QGridLayoutEngine::addItem: Cell (1, 6) already taken
QGridLayoutEngine::addItem: Cell (2, 6) already taken
QGridLayoutEngine::addItem: Cell (3, 6) already taken
QGridLayoutEngine::addItem: Cell (4, 6) already taken
Traceback (most recent call last):
File "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py", line 75, in init
self.pyapplet.init()
File "/home/user/.kde4/share/apps/plasma/plasmoids/boinc-monitor/contents/code/main.py", line 304, in init
self.updateLabel()
File "/home/user/.kde4/share/apps/plasma/plasmoids/boinc-monitor/contents/code/main.py", line 412, in updateLabel
self.userLog.setText(str(projectAll[1]) + ": " + str(projectAll[2]) + " credits at " + str(projectAll[0]) + " in " + str(projectAll[3]) + " team!")
IndexError: list index out of range
Can you help? I think it has to do with my BOINC Computer Preferences, specifically the time to switch projects which is set to 60 minutes. So now I have projects in waiting status instead of running or finished status.

Thanks and have a good day!
Cane

Report

C

m4x1m

7 years ago

Have you changed the preferred project options? How many projects you have?

Your BOINC preferences don't matter.

I need info, I only have one project and I couldn't test all.

The project that you selected has the username, credits and team name associated?

Probably you aren't in any team for this project, if so, this is a bug I fix it immediately. Thanks

Report

9

trekjunky

7 years ago

Yes, I changed the projects settings, but only in BOINC. I had about 7 and now I have 11 projects. In my troubleshooting, I edited the settings.ini file by leaving the Projects field empty. But that didn't work.

How can I attach the main.py file for you to look at if you need to?

Trekjunky AKA Cane

Report

C

m4x1m

7 years ago

Ok I think I understand. Probably the project configured in settings.ini no longer existed and the script crashed.

Uninstall the old and try the new version.

Let me know!

Report

9

trekjunky

7 years ago

One more thing:

I had tried choosing [email protected] and [email protected] Beta, but got that error message about prefered not existing. Just now I tried Einstein and it worked. Not sure anymore what it could be.

Thanks,
Cane

Report

C

m4x1m

7 years ago

We have made some order.

The BOINC path/user can be edited in the plasmoid's settings, there is no need to edit the file main.py to do this!

In /etc/sudoers.d I put that file to prevent that the plamsoid prompt for a password to access the path of the process. In my system, user and group are both boinc, in your system instead are boinc/users, then the BOINC user could already have access rights to the command "sudo -u boinc pwdx <pid>" but in others systems could stop.

The project folder is not used by the script, I'll take the list of projects from the client_state.xml file.

I've [email protected] as a preferred project, it's strange that does not work for you.

At line 454 of main.py
if (projectName[0] == self.settings["projects"]):

projectName[0] is the name of projects parsed from client_state.xml in a cycle.

self.settings["projects"] is the name of project choosen or the first find if settings.ini has not yet been created.

If this two variables are equal the script should print the correct info.

Report

9

trekjunky

7 years ago

************1st attempt*************
~:/Downloads>plasmapkg -r boinc-monitor
Successfully removed boinc-monitor
~:/Downloads>plasmapkg -i 154630-boinc-monitor-1.2.plasmoid
plasmapkg(4077)/libplasma Plasma::PackageStructurePrivate::createPackageMetadata: No metadata file in the package, expected it at: "/tmp/kde-boinc/plasmapkgiNL3co//metadata.desktop"
Successfully installed /home/boinc/Downloads/154630-boinc-monitor-1.2.plasmoid
:~/Downloads> plasmoidviewer boinc-monitor
redirecting to systemctl
cat: /var/lib/boinc-client/client_state.xml: No such file or directory
Traceback (most recent call last):
File "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py", line 75, in init
self.pyapplet.init()
File "/home/boinc/Downloads/boinc-monitor/contents/code/main.py", line 76, in init
self.initVar()
File "/home/boinc/Downloads/boinc-monitor/contents/code/main.py", line 71, in initVar
self.settings["projects"] = self.readEntry(gc, "projects", self.listProjects[0])
IndexError: list index out of range

When I add the plasmoid to the desktop, it gives an error that the script failed to initialize. I try to access the Plasmoid's Settings, but it only opens a dialog box that has the title bar and three buttons of which only two are available. The rest of the dialog box is blank. The three buttons are OK, Apply, and Cancel and I can only click on either OK or Cancel. I click OK, but the only thing I think happens is the dialog box closes. I checked to see if a settings.ini file was created and it was not created.
******************2nd attempt***********************
I used Dolphin to extract the 154630-boinc-monitor-1.2.plasmoid file. It seems to only create a single folder boinc-monitor.
This time I got:
:~/Downloads> plasmapkg -r boinc-monitor
Successfully removed boinc-monitor
:~/Downloads> plasmapkg -i boinc-monitor/
Successfully installed /home/boinc/Downloads/boinc-monitor
:~/Downloads> plasmoidviewer boinc-monitor
redirecting to systemctl
cat: /var/lib/boinc-client/client_state.xml: No such file or directory
Traceback (most recent call last):
File "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py", line 75, in init
self.pyapplet.init()
File "/home/boinc/Downloads/boinc-monitor/contents/code/main.py", line 76, in init
self.initVar()
File "/home/boinc/Downloads/boinc-monitor/contents/code/main.py", line 71, in initVar
self.settings["projects"] = self.readEntry(gc, "projects", self.listProjects[0])
IndexError: list index out of range

I tried to access the plasmoid's settings again and the same thing happened as in the 1st attempt.
**********************3rd attempt*********************
:~/Downloads> plasmapkg -r boinc-monitor
Successfully removed boinc-monitor
:~/Downloads> plasmapkg -i 154630-boinc-monitor-1.2.plasmoid
plasmapkg(4777)/libplasma Plasma::PackageStructurePrivate::createPackageMetadata: No metadata file in the package, expected it at: "/tmp/kde-boinc/plasmapkg16IOIZ//metadata.desktop"
Successfully installed /home/boinc/Downloads/154630-boinc-monitor-1.2.plasmoid
:~/Downloads> vi /home/boinc/.kde4/share/apps/plasma/plasmoids/boinc-monitor/contents/code/main.py
:~/Downloads> cd ..
:~> plasmoidviewer boinc-monitor
redirecting to systemctl
QGridLayoutEngine::addItem: Cell (1, 6) already taken
QGridLayoutEngine::addItem: Cell (2, 6) already taken
QGridLayoutEngine::addItem: Cell (3, 6) already taken
QGridLayoutEngine::addItem: Cell (4, 6) already taken

When I used vi to edit the main.py file after it was installed, I only changed the else settings for the BOINC folder location and boinc user settings. Now it works as far as the script initializing. I can edit the plasmoid's settings now. I chose [email protected] as the preferred project. The folder and user are what I set in the Else settings in the main.py file. There is a settings.ini file in the code directory now. BUT, there is an error where the Core, PID, and Process fields are. The error says "Please, give correct BOINC username!"

I changed the preferred project setting using the plasmoid's settings to [email protected] I had to edit the main.py file again so that I could read the boinc-monitor window. I changed the self.FontNormal.setPointSize(8) to self.FontNormal.setPointSize(24) and the self.FontBold.setPointSize(8) to self.FontBold.setPointSize(24).

Now it works sort of. It has two processes as SETI and two with the error about "Please, give correct BOINC username!"

If I choose SETI as the preferred project, I get an error that it no longer exits. When I choose Eintstein, it shows the correct information.

So, that's where I am at now. Please help!

Thanks,
Cane

Report

C

m4x1m

7 years ago

I think I managed to solve all.

Try and let me know.

PS. In my system (ubuntu 12.04.1) self.FontNormal.setPointSize() if I set to 24 the result is very large chars. I used Verdana font from ttf-mscorefont.

Report

9

trekjunky

7 years ago

Some more info:
I downloaded and installed BOINC manually as opposed to downloading it using my Linux distro's package handler. Maybe the projects folder is not what you expected. Here is what is in my projects folder:
drwxrwx--x 2 boinc users 4096 Oct 25 02:11 boinc.bakerlab.org_rosetta
drwxrwx--x 2 boinc users 4096 Oct 24 07:52 boinc.gorlaeus.net
drwxrwx--x 2 boinc users 4096 Oct 24 00:17 climateprediction.net
drwxr-xr-t 2 boinc users 143360 Oct 15 17:03 einstein.phys.uwm.edu
drwxr-xr-t 2 boinc users 4096 Oct 23 02:19 lhcathome.cern.ch_lhcathome
drwxr-xr-t 2 boinc users 4096 Oct 23 23:06 milkyway.cs.rpi.edu_milkyway
drwxrwx--x 2 boinc users 4096 Oct 24 07:38 mindmodeling.org_beta
drwxrwx--x 2 boinc users 4096 Oct 24 00:17 qah.uni-muenster.de
drwxr-xr-t 2 boinc users 12288 Oct 23 22:49 setiathome.berkeley.edu
drwxrwx--x 2 boinc users 4096 Oct 24 21:08 setiweb.ssl.berkeley.edu_beta
drwxr-xr-t 2 boinc users 4096 Oct 23 04:15 www.cosmologyathome.org

P.S. I changed the user name in the text above to boinc even though it is not boinc on my machine.

Thanks again!!!
Cane

Report

9

trekjunky

7 years ago

Yes! It worked great. I edited the else fields for the location of BOINC and the boinc user. I also edited the Verdana 8 to 24 in two places and saved the main.py file. It works great now except for one thing. I chose SETIATHOME as my favorite project and it says at the bottom of the window: "The prefered project you selected no longer exists, please choose another one." I did and the message did not go away. You should also know that I did NOT copy the boinc-monitor sudoer file into the /etc/sudoers.d/ directory. I did not do it before either. It seemed to work fine without that. Thanks for getting back to me so fast!!!

Report

5 years ago

v3.0:
- Added a redundant control to prevent plasma crash when user starts or stops boinc.

v2.9:
- Added new icon for abort state.

v2.8:
- Fixed a bug related to the abort command in the task properties.

v2.7:
- Improved spanish translation.

v2.6:
- Added Russian translation (Thanks to Sergey Basalaev for this translation and some hints).
- Improved language localization management.
- Fixed some unicode strings errors.

v2.5:
- Keep enabled the host and port settings also if the connection was already established for allow users to have multiple instances of the plasmoid.
- Improved checks for protected remote connection.
- Improved spanish translation.

v2.4:
- Changed the method to get if BOINC is running, for more compatibility with the various distributions. If the client name for the your distributions is different from boinc or boinc_client, please notify me, so I will provide to add.

v2.3:
- Added option to hide the New/Finished tasks from the list.
- Added buttons in the properties of the projects for receive update, suspend/resume, fetch/not fetch more works for the current project.
- The urls in the properties of the projects are now clickable for opens website.
- Added buttons in the properties of the task for suspend/resume and abort the current task.
- The names of the tasks that are longer than 40 characters will be reduced with a [...] in the middle.
- Removed the unused help button in the dialogs and added the help hints for the configuration options.
- Optimized code and the graphics views.
- Fixed some others bugs.

v2.2:
- Added window dialog for projects properties.
- Fixed some others bugs.

v2.1:
- Completely rewritten. Now the plasmoid uses RPC gui. See the README.txt file (Thanks to Joaquí­n Ferrero for his support and suggestions).

v2.0:
- Auto Expand "Elapsed" field to print a result that show more than 24 hours.

v1.9:
- Added option to set timeout wait after a suspend/resume call (a too low value might not give time to PC to remove/create the process ids).
- Show more informations when resuming a workunit.
- Fixed minor bugs.

v1.8:
- Added the ability to suspend/resume process.
- Fixed an issue at the initialization of the script.
- Fixed minor bugs.

v1.7:
- Added multilanguage locale.
- Added an extra check to the file boinc-monitor in /etc/sudoers.d/

v1.6:
- Added a second command to check if BOINC is running (this is a workaround for systemd, thanks to Thomas Gorzka).
- Fixed minor bugs.

v1.5:
- No more write the options in a an external file, but use the internal system of plasma for read/write the configuration.

v1.4:
- Perfected the method of recognition of the BOINC user.
- Fixed minor bugs.
- Fixed minor graphics bugs.

v1.3:
- Fixed issue related at initialize of plasmoid for not packaging version of BOINC.
- Fixed issue related the choose of preferred project.
- Fixed minor bugs introduced with the previously version.

v1.2:
- Fixed bug related the preferred project chosen that no longer exists.
- Fixed little bug if the user choose a project that is not in any team.
- Added more controls to prevent errors.

v1.1:
- Changed the way to get the slot used by process (see README.txt in docs folder).
- Added PID column to the working list.
- Fixed minor graphics bugs.

v1.0:
- First script release.

12345678910
9
product-maker sbasalaev Apr 13 2013 9 excellent
product-maker gorzka Nov 19 2012 9 excellent
product-maker Schiwi Nov 12 2012 9 excellent
product-maker trekjunky Oct 25 2012 9 excellent
product-maker frag Oct 24 2012 9 excellent
product-maker OderMalSo Oct 11 2012 9 excellent
product-maker Genserowski Oct 11 2012 9 excellent
product-maker vitoubien Oct 10 2012 9 excellent
product-maker gardmo Oct 10 2012 9 excellent
product-maker Base: 4 x 5.0 Ratings
Be the first to comment
sbasalaev
Apr 16 2013
OderMalSo
Nov 13 2012
rosenrot
Oct 25 2012
File (click to download) Version Description Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
3.0
updated Dec 07 2014
added Oct 10 2012
downloads 24h
0
mediaviews 24h 0
pageviews 24h 14