openSUSE:Standards NU Service

Jump to: navigation, search

Novell Update Service (NU)

Introduction

The Novell Update (NU) service is part of the ZLM client-server protocol. ZLM has the notion of 'services' to provide functionality to a client.
One of these services is access to package repositories, called 'catalogs' in ZLM-speak.
Based on information provided by the client (the installed Linux OS by default, but the client might request/subscribe-to additional services) the server responds with an xml-encoded index file.
This index file list sub repositories of type rpm-md.

If you have the URL of this service, the index file can be found by appending /repo/repoindex.xml

Example

If the URL is https://nu.novell.com/ the index file URL is https://nu.novell.com/repo/repoindex.xml

The format is XML:

<?xml version="1.0" encoding="UTF-8"?>
<repoindex>
  <repo name="SLES10-SP2-Online" 
        alias="SLES10-SP2-Online" 
        description="SLES10-SP2-Online for sles-10-i586" 
        distro_target="sles-10-i586" path="$RCE/SLES10-SP2-Online/sles-10-i586" 
        priority="0" 
        pub="0" />
  <repo name="SLE10-SP2-Debuginfo-Updates" 
        alias="SLE10-SP2-Debuginfo-Updates" 
        description="SLE10-SP2-Debuginfo-Updates for sles-10-i586" 
        distro_target="sles-10-i586"
        path="$RCE/SLE10-SP2-Debuginfo-Updates/sles-10-i586" 
        priority="0" 
        pub="0" />
  <repo name="SLES10-SP2-Updates" 
        alias="SLES10-SP2-Updates" 
        description="SLES10-SP2-Updates for sles-10-i586" 
        distro_target="sles-10-i586" 
        path="$RCE/SLES10-SP2-Updates/sles-10-i586" 
        priority="0" 
        pub="0" />
</repoindex>

Every <repo> element defines a catalog.

  • name -- the name to display
  • alias -- internal name
  • description-- a description of the content of this catalog
  • distro_target -- defines, that this catalog is valid (compatible) with a system which has the same OS target. Catalogs which distro_target do not match the OS target are not used and dropped. They must not appear on the system.
  • path -- relative path to the catalog (below /repo/) E.g. path="$RCE/SLES10-SP2-Updates/sles-10-i586" result in full path = https://nu.novell.com/repo/$RCE/SLES10-SP2-Updates/sles-10-i586
  • priority -- The priority of this catalog
  • pub -- not used

Authentication and Authorization

Fetching the repoindex.xml file must happen with credentials. The server will generate the repoindex.xml file based on the authorization data.

About deviceid/secret: A NU service requires these files and use the content as username/password to authenticate to the NU service (fetching repoindex.xml file) and the catalogs (fetching the rpm-md files). This must be implemented in the NU service. For repoindex.xml these credentials must be included with the first request. If you do not provide it, you get always an empty list back.

Others

Catalogs can be added or removed from the server between refreshes. New catalogs may appear, old one will go away automatically. This depends on the server configuration for the provided credentials.

Catalogs cannot be deleted from the client side, the client can only remove the complete service. Since the service is owned by the ZLM (resp. NCC) server, it will push the same set of catalogs to the client on the next refresh.

A NU service has catalogs but a catalogs cannot be another service. (No recursive source).