Red Hat Training
A Red Hat training course is available for Red Hat Satellite
第2章 例
以下のセクションでは、プログラミング言語とそれらの XML-RPC リクエストを利用した Red Hat Satellite API の使用例を表示しています。
2.1. Python の例
以下は
user.listUsers
コールの例です。ここでは、各グループの名前をプリントします。
#!/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)
以下の例では、date-time パラメーターの使い方を示しています。このコードでは、ID が
1000000001
のシステムに rhnlib-2.5.22.9.el6.noarch パッケージをインストールすることをスケジュールします。
#!/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)
以下の例では、チャネルにおける最新の同期を確認する方法を示しています。
#!/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)