Chapter 2. Examples


The following sections demonstrate Red Hat Satellite API usage using different programming languages and their respective XML-RPC requests.

2.1. Python Examples

The following example demonstrates the user.listUsers call. The example prints the name of each group.
#!/usr/bin/python
import xmlrpclib

SATELLITE_URL = "http://satellite.example.com/rpc/api"
SATELLITE_LOGIN = "username"
SATELLITE_PASSWORD = "password"

client = xmlrpclib.Server(SATELLITE_URL, verbose=0)

key = client.auth.login(SATELLITE_LOGIN, SATELLITE_PASSWORD)
list = client.user.list_users(key)
for user in list:
   print user.get('login')

client.auth.logout(key)
The following example shows how to use date-time parameters. This code schedules the installation of package rhnlib-2.5.22.9.el6.noarch to system with id 1000000001.
#!/usr/bin/python
from datetime import datetime
import time
import xmlrpclib

SATELLITE_URL = "http://satellite.example.com/rpc/api"
SATELLITE_LOGIN = "username"
SATELLITE_PASSWORD = "password"

client = xmlrpclib.Server(SATELLITE_URL, verbose=0)

key = client.auth.login(SATELLITE_LOGIN, SATELLITE_PASSWORD)
package_list = client.packages.findByNvrea(key, 'rhnlib', '2.5.22', '9.el6', '', 'noarch')
today = datetime.today()
earliest_occurrence = xmlrpclib.DateTime(today)
client.system.schedulePackageInstall(key, 1000000001, package_list[0]['id'], earliest_occurrence)

client.auth.logout(key)

The following example show how to check channels for their last synchronization:
#!/usr/bin/python
import xmlrpclib

SATELLITE_URL = "http://sat57.example.com/rpc/api"
SATELLITE_LOGIN = "admin"
SATELLITE_PASSWORD = "Redhat123"

client = xmlrpclib.Server(SATELLITE_URL, verbose=0)

key = client.auth.login(SATELLITE_LOGIN, SATELLITE_PASSWORD)
list = client.channel.listAllChannels(key)

for item in list:
  details = client.channel.software.getDetails(key, item['label'])
  print item
  print details
  print "Name: " + details['name']
  try:
    print "Last Sync: " + details['yumrepo_last_sync']
  except:
    print "Last Sync: Never"

client.auth.logout(key)
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.