Ce contenu n'est pas disponible dans la langue sélectionnée.
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 Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
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)