Web Remote Procedure Calls

From Unofficial BOINC Wiki

Jump to: navigation, search

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&param2=val2&...&paramn=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
       
nonce: nonce ID (a long random string that is hard to guess, e.g. in PHP: md5(uniqid(rand(), true))
       
acct_mgr_name: name of the account manager site
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
   
[ name ]
[ country ]
[ postal_code ]
[ global_prefs ]
[ project_prefs ]
[ url ]
[ send_email ]
[ show_hosts ]
[ teamid ] zero means quit current team, if any
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.

Personal tools