239Appendix C. RHN API AccessIn an effort to provide customers with added flexibility, RHN makes an application programminginterface (API) available. This interface can be found by clicking Help at the top-right corner ofthe RHN website, then clicking API in the left navigation bar. Or you may go directly to: https://rhn.redhat.com/rpc/api/. Use this URL for your XMLRPC server and your browser.The RHN API is based upon XML-RPC, which allows distinct pieces of software on disparate systemsto make remote procedure calls using XML over HTTP. For this reason, any calls you make areexpected to meet the constraints of XML-RPC. You can find out more at http://www.xmlrpc.com/.This section bypasses a list of available methods and classes in favor of tips for using the APIefficiently. These include steps for determining required values and a sample script that makes someof the calls.C.1. Using the auth Class and Getting the SessionIt is worth noting that you will almost invariably use the auth class first. This class offers a singlemethod, login. Use this to establish an RHN session. It requires values for three parameters:username, password, and duration. The first two come directly from your RHN account, while the thirdis the length of time the session should last in seconds, typically 1200. It returns a session string thancan be used in all other methods.C.2. Obtaining the system_idMany of the methods require a value for the system_id parameter. This is the uniquealphanumeric value assigned to each system when registered to RHN. It can be found withinthe /etc/sysconfig/rhn/systemid file on each machine. In addition, you may use thedownload_system_id method within the system class to obtain the value.C.3. Determining the sidSeveral methods require a value for the sid, or server ID, parameter. Note that this is different fromthe system_id. You may determine the sid of a machine in two different ways. First, you can loginto the RHN website, click the name of a system, and view the sid at the end of the URL in thelocation bar. It follows the "=" symbol and is part of a string that resembles the following: "index.pxt?sid=1003486534". Second, you may use the list_user_systems method within the system class toobtain a list of systems available to the user that contains the associated sids.C.4. Viewing the cidLike servers, channels have their own IDs. This value, the cid, is a required parameter for somemethods, including set_base_channel and set_child_channels. Also like the sid, the cid canbe obtained through the RHN website. Just click on the name of a channel and view the end of theURL. It follows the "=" symbol, as part of a string that resembles the following: "details.pxt?cid=54".C.5. Getting the sgidSystem groups also have their own IDs. This value, the sgid, is a required parameter for theset_group_membership method, for instance. Like the sid and cid, the sgid can be obtainedthrough the RHN website. Just click on the name of a system group and view the end of the URL. It