C About the Unbreakable Linux Network API
This appendix describes the XML-RPC methods that the API provides for access to the Unbreakable Linux Network (ULN).
This API is based on XML-RPC, which enables applications to perform remote operations by encoding the procedure calls in XML and transmitting them over HTTP. For more information about XML-RPC, see http://www.xmlrpc.com/.
The API is accessed at the server entry point URL at https://linux-update.oracle.com/XMLRPC.
The following method namespaces are available:
-
auth
-
Contains methods for authenticating with ULN. See Authentication Methods.
-
channel
-
Contains methods for listing software channels on ULN. See Channel Methods.
-
channel.software
-
Contains methods for querying packages available within different channels on ULN. See Channel Software Methods.
-
errata
-
Contains methods for interacting with errata on ULN. See Errata Methods.
-
packages
-
Contains methods for querying package information for specified packages on ULN. See Packages Methods.
-
system
-
Contains methods for managing systems registered with ULN. See System Methods.
Authentication Methods
Authentication methods are provided in the auth
namespace. The following methods are provided for authenticating
with ULN:
auth.login
The login
method logs in to ULN using a
specified user name and password.
The input parameters are:
- Input Parameters
string username
-
The Oracle Account user name to use for the session. For example:
myuser@example.com
string password
-
The password to use for the session. For example:
secret
- Return Parameters
string sessionKey
-
The session key for the session. All other methods use the session key for the duration of the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
This key is active until you call the
auth.logout
method.
auth.logout
The logout
method logs out of the ULN session
specified by the session key.
- Input Parameters
string sessionKey
-
The session key of the session to be terminated. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
- Return Parameters
int
-
The method returns an
int
error code, which indicates whether the session terminated correctly. A value of1
indicates a successful return.
Channel Methods
Channel methods are available in the channel
namespace. The following method is provided for listing software
channels that are available on ULN:
channel.listSoftwareChannels
The listSoftwareChannels
method returns a
list of software channels that are available to a session on
ULN.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
- Return Parameters
array
-
An array of channels with:
struct (channel)
-
A structure containing the following strings:
string channel_arch
-
The channel architecture. For example:
x86_64
string channel_end_of_life
-
The channel end of life. Currently unused on ULN.
string channel_label
-
The channel label. For example:
ol7_x86_64_latest
string channel_name
-
The channel name. For example:
Oracle Linux 7 Latest (x86_64)
string channel_parent_label
-
The channel parent label. Currently unused on ULN.
Channel Software Methods
Channel software methods are available in the
channel.software
namespace. The following
methods can by used to query the packages that are available to a
session from a channel on ULN.
channel.software.getDetails
The getDetails
method returns the details of
the given channel.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
string channelLabel
-
The channel label for the channel that you wish to query. For example:
ol7_x86_64_latest
- Return Parameters
string channel_arch_name
-
The channel architecture name. For example:
x86_64
string channel_description
-
The channel description. For example:
All packages released for Oracle Linux 7 (x86_64) including the latest errata packages. (x86_64)
string channel_summary
-
The channel summary, usually the same as the channel name. For example:
Oracle Linux 7 Latest (x86_64)
struct metadata_urls
-
A dictionary or associative array of metadata locations and checksum information, including the URLs to download channel metadata.
struct filelists
-
string checksum_type
-
The hashing algorithm used to generate the checksum. For example:
sha
string checksum
-
The checksum for the filelists metadata file. For example:
abc4ef3d6e6b2bc3246e56ee4756ed5c245b60b0
string file_name
-
The file name for the filelists metadata at the channel location. For example:
repodata/filelists.xml.gz
string url
-
The URL where the filelists metadata can be accessed.
To access the URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/repodata/filelists.xml.gz
struct group
-
This structure is returned optionally if this information is available.
string checksum_type
-
The hashing algorithm used to generate the checksum. For example:
sha
string checksum
-
The checksum for the group metadata file. For example:
90acbe6860bbcd4e40ee71cec9d2397dceccbca6
string file_name
-
The file name for the group metadata at the channel location. For example:
repodata/comps.xml
string url
-
The URL where the group metadata can be accessed.
To access the URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/repodata/comps.xml
struct other
-
string checksum_type
-
The hashing algorithm used to generate the checksum. For example:
sha
string checksum
-
The checksum for the other metadata file. For example:
20f6b193cd9376d650cf96c8c01995cf7f02163a
string file_name
-
The file name for the other metadata at the channel location. For example:
repodata/other.xml.gz
string url
-
The URL where the other metadata can be accessed.
To access the URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/repodata/other.xml.gz
struct primary
-
string checksum_type
-
The hashing algorithm used to generate the checksum. For example:
sha
string checksum
-
The checksum for the primary metadata file. For example:
3992e1e77d476d09eb1dcb16fd106263aaa84bb4
string file_name
-
The file name for the primary metadata at the channel location. For example:
repodata/primary.xml.gz
string url
-
The URL where the primary metadata can be accessed.
To access the URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/repodata/primary.xml.gz
struct repomd
-
string file_name
-
The file name for the repomd metadata at the channel location. For example:
repodata/repomd.xml
string url
-
The URL where the repomd metadata can be accessed.
To access the URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/repodata/repomd.xml
struct updateinfo
-
This structure is returned optionally if this information is available.
string checksum_type
-
The hashing algorithm used to generate the checksum. For example:
sha
string checksum
-
The checksum for the updateinfo metadata file. For example:
6d11ecbceb58515be79a2adff9ff911f8a839069
string file_name
-
The file name for the updateinfo metadata at the channel location. For example:
repodata/updateinfo.xml.gz
string url
-
The URL where the updateinfo metadata can be accessed.
To access the URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/repodata/updateinfo.xml.gz
channel.software.listAllPackages
The listAllPackages
method returns a list of
all packages that are available from a channel, including
packages that are not the latest.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
. string channelLabel
-
The channel label for the channel that you wish to query.
- Return Parameters
array
-
An array of all packages:
struct (package)
-
A structure containing the following strings:
string package_arch_label
-
The package architecture label. For example:
noarch
string package_epoch
-
The package epoch value, if specified. The epoch value can help RPM determine package version ordering if the versioning does not make sense or does not follow sequentially. For example:
1
string package_id
-
The package ID within the ULN infrastructure. For example:
11776733
string package_last_modified
-
The date and timestamp for when a package was last modified. For example:
2018-09-27 19:31:13
string package_name
-
The name of the package. For example:
selinux-policy-mls
string package_release
-
The package release information. For example:
192.0.6.el7_5.6
string package_version
-
The package version number. For example:
3.13.1
channel.software.listErrata
The listErrata
method returns a list of all
errata that are associated with a channel.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
. string channelLabel
-
The channel label for the channel that you wish to query. For example:
ol7_x86_64_latest
- Return Parameters
array
-
An array of all errata associated with the channel label:
struct (errata)
-
A structure containing the following strings:
string errata_advisory_type
-
The errata advisory type. For example:
Bug Fix Advisory
string errata_advisory
-
The errata advisory label. For example:
ELBA-2018-4255
string errata_issue_date
-
The date the errata was issued. For example:
2018-10-17 00:00:00
string errata_last_modified_date
-
The date the errata was last modified. For example:
2018-10-17 00:00:00
string errata_synopsis
-
A brief synopsis of the errata. For example:
glibc bug fix update
string errata_update_date
-
The errata update date. For example:
2018-10-17 00:00:00
channel.software.listLatestPackages
The listLatestPackages
method returns a list
of the latest packages that are available from a channel.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
. string channelLabel
-
The channel label for the channel that you wish to query. For example:
ol7_x86_64_latest
- Return Parameters
array
-
An array of latest packages:
struct (package)
-
A structure containing the following strings:
string package_arch_label
-
The package architecture label. For example:
noarch
string package_epoch
-
The package epoch value, if specified. The epoch value can help RPM determine package version ordering if the versioning does not make sense or does not follow sequentially. For example:
1
string package_id
-
The package ID within the ULN infrastructure. For example:
11776733
string package_name
-
The name of the package. For example:
selinux-policy-mls
string package_release
-
The package release information. For example:
192.0.6.el7_5.6
string package_version
-
The package version number. For example:
3.13.1
Errata Methods
Errata methods are available in the channel
namespace. The following methods are provided for interacting with
errata that are available on ULN:
errata.applicableToChannels
The applicableToChannels
method returns a list of all channels to which the
specified erratum applies..
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
. string advisoryName
-
The name of the erratum (for example,
ELSA-2013-0269
).
- Return Parameters
array
-
An array of channels:
struct (channel)
-
A structure containing the following strings:
string channel_id
-
The identifier for a channel in the ULN infrastructure. For example:
1844
string channel_label
-
The label for the channel. For example:
ol7_x86_64_latest
string channel_name
-
The full name for the channel. For example:
Oracle Linux 7 Latest (x86_64)
string parent_channel_label
-
The parent channel label. Not currently used on ULN.
errata.getDetails
The getDetails
method returns detailed
information for the specified erratum. Note that the method only
fills in the errata_severity field for security errata.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
string advisoryName
-
The name of the erratum. For example:
ELSA-2013-0269
- Return Parameters
array
-
An array of detailed information associated with the erratum:
struct (erratum)
-
A structure containing the following strings:
string errata_description
-
The detailed description of the erratum. For example:
[0:1.2.1-7.3]\n- Add missing connection hostname check against X.509 certificate name\n- Resolves: CVE-2012-5784
string errata_issue_date
-
The date the erratum was issued. For example:
2/19/13
string errata_last_modified_date
-
The date the erratum was last modified: For example:
2013-02-19 00:00:00
string errata_notes
-
Notes associated with the erratum. Usually empty.
string errata_references
-
References of the erratum. Usually empty.
string errata_severity
-
The severity level set for the erratum. For example:
Moderate
string errata_synopsis
-
A brief synopsis of the erratum. For example:
axis security update
string errata_topic
-
The topic for the erratum. Usually empty.
string errata_type
-
The type for the erratum. For example:
Security Advisory
string errata_update_date
-
The errata update date. For example:
2/19/13
errata.listCves
The listCves
method returns a list of Common
Vulnerabilities and Exposures (CVE) IDs that are applicable to
the specified erratum ID.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
string advisoryName
-
The name of the erratum. For example:
ELSA-2018-2942
- Return Parameters
array
-
An array of CVE IDs. If no matching CVE IDs are found, the array is empty:
string cve_name
-
The CVE ID associated with the erratum ID. For example:
CVE-2018-3136
errata.listPackages
The listPackage
method returns a list of all
packages applicable to the specified erratum ID.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
string advisoryName
-
The name of the erratum. For example:
ELSA-2018-2942
- Return Parameters
array
-
An array of packages:
struct (package)
-
A structure containing the following strings:
array download_urls
-
An array of URLs where the package can be downloaded from.
string url
-
URL value.
To access a URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/java-1.8.0-openjdk-demo-1.8.0.191.b12-0.el7_5.i686.rpm
array providing_channels
-
An array listing channels providing this package.
string label
-
A string with the channel label as a value. For example:
ol7_x86_64_latest
string package_arch_label
-
The package architecture label. For example:
i686
string package_build_date
-
The date and timestamp for when the package was built. For example:
2018-10-17 16:39:10
string package_build_host
-
For example:
x86-ol7-builder-02.us.oracle.com
string package_cookie
-
The package cookie value. Usually empty.
string package_description
-
The full description of the package. For example:
The OpenJDK demos.
string package_epoch
-
The package epoch value, if specified. The epoch value can help RPM determine package version ordering if the versioning does not make sense or does not follow sequentially. For example:
1
string package_file
-
The package filename. For example:
java-1.8.0-openjdk-demo-1.8.0.191.b12-0.el7_5.i686.rpm
string package_id
-
For example:
11807834
string package_last_modified_date
-
The date and timestamp for when the package was last modified. For example:
2018-10-17 16:39:10
string package_license
-
The license or licenses that a package is released under. For example:
ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib
string package_md5sum
-
The package md5sum value. For example:
1508de7bafe0d6fe0814d216cbbb354b
string package_name
-
The package name. For example:
java-1.8.0-openjdk-demo
string package_payload_size
-
The package payload size in bytes. For example:
4412184
string package_release
-
The package release value. For example:
0.el7_5
string package_size
-
The package size in bytes. For example:
4293131
string package_summary
-
A summary of the contents of the package. For example:
OpenJDK Demos
string package_vendor
-
The package vendor name. For example:
Oracle America
string package_version
-
The package version. For example:
1.8.0.191.b12
struct package_checksums
-
A structure, listing package checksum values by type:
string md5
-
The md5 hash for the package checksum value. For example:
1508de7bafe0d6fe0814d216cbbb354b
Packages Methods
Packages methods are available in the packages
namespace. These methods are used for extracting information about
the packages that are available to a session on the ULN. The
following methods are provided for interacting with packages that
are available on ULN:
packages.getDetails
The getDetails
method returns detailed
information about the specified package.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
int pid
-
The package identifier that should be queried, specified as an integer. For example:
11807834
- Return Parameters
array
-
An array of channels with:
struct (package)
-
A structure containing the following strings:
array download_urls
-
An array of URLs where the package can be downloaded from.
string url
-
URL value.
To access a URL, include theX-ULN-Api-User-Key
header with the value of the session key that was returned when you authenticated. For example:curl -H "X-ULN-Api-User-Key: JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc" \ https://uln.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest/java-1.8.0-openjdk-demo-1.8.0.191.b12-0.el7_5.i686.rpm
array providing_channels
-
An array listing channels providing this package.
string label
-
A string with the channel label as a value. For example:
ol7_x86_64_latest
string package_arch_label
-
The package architecture label. For example:
i686
string package_build_date
-
The date and timestamp for when the package was built. For example:
2018-10-17 16:39:10
string package_build_host
-
The host where the package was built. For example:
x86-ol7-builder-02.us.oracle.com
string package_cookie
-
The package cookie value. Usually empty.
string package_description
-
The full description of the package. For example:
The OpenJDK demos.
string package_epoch
-
The package epoch value, if specified. The epoch value can help RPM determine package version ordering if the versioning does not make sense or does not follow sequentially. For example:
1
string package_file
-
The package filename. For example:
java-1.8.0-openjdk-demo-1.8.0.191.b12-0.el7_5.i686.rpm
string package_id
-
For example:
11807834
string package_last_modified_date
-
The date and timestamp for when the package was last modified. For example:
2018-10-17 16:39:10
string package_license
-
The license or licenses that a package is released under. For example:
ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib
string package_md5sum
-
The package md5sum value. For example:
1508de7bafe0d6fe0814d216cbbb354b
string package_name
-
The package name. For example:
java-1.8.0-openjdk-demo
string package_payload_size
-
The package payload size in bytes. For example:
4412184
string package_release
-
The package release value. For example:
0.el7_5
string package_size
-
The package size in bytes. For example:
4293131
string package_summary
-
A summary of the contents of the package. For example:
OpenJDK Demos
string package_vendor
-
The package vendor name. For example:
Oracle America
string package_version
-
The package version. For example:
1.8.0.191.b12
struct package_checksums
-
A structure, listing package checksum values by type:
string md5
-
The md5 hash for the package checksum value. For example:
1508de7bafe0d6fe0814d216cbbb354b
packages.listProvidingErrata
The listProvidingErrata
method returns a list
of the errata that are associated with a package.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
int pid
-
The package identifier that should be queried, specified as an integer. For example:
11807834
- Return Parameters
array
-
An array of all errata associated with the package:
struct (errata)
-
A structure containing the following strings:
string errata_advisory_type
-
The errata advisory type. For example:
Security Advisory
string errata_advisory
-
The errata advisory label. For example:
ELSA-2018-2942
string errata_issue_date
-
The date the errata was issued. For example:
2018-10-17 00:00:00
string errata_last_modified_date
-
The date the errata was last modified. For example:
2018-10-17 00:00:00
string errata_synopsis
-
A brief synopsis of the errata. For example:
java-1.8.0-openjdk security update
string errata_update_date
-
The errata update date. For example:
2018-10-17 00:00:00
System Methods
System methods are available in the system
namespace. These methods are used for managing systems that are
registered on ULN. The following methods are available:
system.deleteSystems
The deleteSystems
method removes a system
from ULN, given its system ID.
- Input Parameters
string sessionKey
-
The session key for the session. For example:
JyUVNoT74BFaRJ6fRjDIQ5idPmCaj5UJLb76E2f45Gc
. string serverId
-
The system identifier that should be removed. This needs to be the id value within ULN. For example:
330213
- Return Parameters
int
-
The method returns an
int
error code, which indicates whether the system was deleted or not. A value of0
indicates that the system was successfully removed from ULN.