6 The Unbreakable Linux Network API

Note:

This documentation is specific to Oracle Linux 6 and Oracle Linux 7. If you're using Oracle Linux 8 or Oracle Linux 9, see Oracle Linux: Managing Software on Oracle Linux.

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 as follows:

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

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 of 1 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. For example: 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. For example: 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. For example: 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. For example: 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. For example: 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. For example: 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. For example: 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. For example: 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 of 0 indicates that the system was successfully removed from ULN.