第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)

このページには機械翻訳が使用されている場合があります (詳細はこちら)。