Web Remote Procedure Calls
From Unofficial BOINC Wiki
Contents |
[edit] General
BOINC's RPC mechanisms have the following conventions:
- Each RPC is an HTTP GET transaction.
- The input is the GET arguments, i.e. a string of the form
param1=val1¶m2=val2&...¶mn=valn
- where param1 ... paramN are the parameter names, and val1 ... valn are the values.
- The output is XML.
[edit] Account Creation
The following RPCs are used to create Accounts, typically as part of an Account Management System.
[edit] Create Account
| URL | project_url/am_create.php |
| input | email_addr: email address
|
| output | <am_create_reply>
[ <error>message</error> ]
[ <success/>
</am_create_reply>
|
| action | If the project already has an account with that email address,
it returns an error.
Otherwise the project creates a tentative account
and sends email to the given address, of the form:
The computing project [ project name ] has been requested by [ acct_mgr_name ]
to create an account with email address [ email_addr ].
To confirm, visit the following URL:
xxx
If you didn't initiate this request, ignore this message.
When the participant visits the URL xxx, the tentative account is confirmed. |
[edit] Query Account
| URL | project_url/am_query.php |
| input | nonce (the one passed to am_create.php) |
| output | <am_query_reply>
[<error>MSG</error>]
[ <success/>
<confirmed>0</confirmed> ]
[ <success/>
<account_key>KEY</account_key> ]
</am_query_reply>
|
| action | If the tentative account has been confirmed,
attempts to create an account with the previously given email address. If this fails (e.g., because an account with that email address already exists) returns an error.Otherwise returns returns the account key. |
[edit] Query/Modify Existing Accounts
[edit] Get Account Information
| URL | project_url/am_get_info.php |
| input | account_key |
| output | <am_get_info_reply>
<success/>
<id>ID</id>
<name>NAME</name>
<country>COUNTRY</country>
<postal_code>POSTAL_CODE</postal_code>
<global_prefs>
GLOBAL_PREFS
</global_prefs>
<project_prefs>
PROJECT_PREFS
</project_prefs>
<url>URL</url>
<send_email>SEND_EMAIL</send_email>
<show_hosts>SHOW_HOSTS</show_hosts>
<teamid>N</teamid>
</am_get_info_reply>
or
<am_get_info_reply>
<error>MSG</error>
</am_get_info_reply>
|
| action | returns data associated with the given account |
[edit] Set Account Information
| URL | project_url/am_set_info.php |
| input | account_key
|
| output | <am_set_info_reply>
[ <error>MSG</error> ]
[ <success/> ]
</am_set_info_reply>
|
| action | updates one or more items of data associated with the given account |
[edit] Get Account/Host Credit Information
| URL | project/show_user.php?userid=X&format=xml or project/show_user.php?auth=X&format=xml |
| input | user ID or account key |
| output | <user>
<create_time>918948493</create_time>
<name>Joe Smith</name>
<country>United States</country>
<total_credit>3806.869739</total_credit>
<expavg_credit>200</expavg_credit>
<expavg_time>1110833427.64028</expavg_time>
<teamid>114322</teamid>
<url/>
<has_profile>1</has_profile>
</user>
or
<user>
<id>1</id>
<create_time>1101918807</create_time>
<name>David</name>
<country>United States</country>
<total_credit>0.293197</total_credit>
<expavg_credit>0.000883</expavg_credit>
<expavg_time>1116963330.83107</expavg_time>
<teamid>0</teamid>
<url/>
<has_profile>1</has_profile>
<host>
<total_credit>0</total_credit>
<expavg_credit>0</expavg_credit>
<expavg_time>0</expavg_time>
<domain_name>Sorabji</domain_name>
<p_ncpus>1</p_ncpus>
<p_vendor>Mobile Intel(R) Pentium(R) 4 - M CPU 2.20GHz</p_vendor>
<p_model>Pentium</p_model>
<p_fpops>330806175.78458</p_fpops>
<p_iops>409200165.535107</p_iops>
<os_name>Microsoft Windows XP</os_name>
<os_version>Professional Edition, Service Pack 2, (05.01.2600.00)</os_version>
</host>
</user>
|
| action | Returns into about an account.
If called with the account key,returns a list of hosts associated with the account. |
[edit] UCB Source
[edit] Copyright ©
- 2005 University of California
- 2005 Paul D. Buck
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.

