Hub XMLRPC API Namespaces

The Hub XMLRPC API operates in a similar way to the Uyuni API. For Uyuni API documentation, see https://documentation.suse.com/suma.

The Hub XMLRPC API exposes the same methods that are available from the server’s XMLRPC API, with a few differences in parameter and return types. Additionally, the Hub XMLRPC API supports some Hub-specific end points which are not available in the Uyuni API.

The Hub XMLRPC API supports three different namespaces:

  • The hub namespace is used to target the Hub XMLRPC API Server. It supports Hub-specific XMLRPC endpoints which are primarily related to authentication.

  • The unicast namespace is used to target a single server registered in the hub. It redirects any call transparently to one specific server and returns any value as if the server’s XMLRPC API endpoint was used directly.

  • The multicast namespace is used to target multiple peripheral servers registered in the hub. It redirects any call transparently to all the specified servers and returns the results in the form of a map.

  • If you do not specify a namespace, all calls are transparently redirected to the underlying Uyuni Server XMLRPC API of the Hub Server. This allows you to call all available methods on a Uyuni Server XMLRPC API.

Methods called without specifying any of the above namespaces will be forwarded to the normal XMLRPC API of the hub. This is the API exposed on ports 80 and 443.

Some important considerations for hub namespaces:

  • Individual server IDs can be obtained using client.hub.listServerIds(hubSessionKey).

  • The unicast namespace assumes all methods receive hubSessionKey and serverID as their first two parameters, then any other parameter as specified by the regular Server API.

    client.unicast.[namespace].[methodName](hubSessionKey, serverId, param1, param2)
  • The hubSessionKey can be obtained using different authentication methods. For more information, see large-deployments:hub-auth.adoc.

  • The multicast namespace assumes all methods receive hubSessionKey, a list of ServerID values, then lists of per-server parameters as specified by the regular server XMLRPC API. The return value is a map, with Successful and Failed entries for each server involved in the call.

    client.multicast.[namespace].[methodname](hubSessionKey, [serverId1, serverId2], [param1_s1, param1_s2], [param2_s1, param2_s2])