Show Table of Contents
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)

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.