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 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.

    To access the URL, include the X-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 the X-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 the X-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 the X-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 the X-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 the X-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 the X-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 the X-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 of 0 indicates that the system was successfully removed from ULN.