前のトピック: Curl と Python の例


認証の例

以下の例では、BFC API で認証セッションを作成する方法を示します。

Curl の例:

%export BFC_HOST=10.10.x.x
%curl  -k https://$BFC_HOST:8443/BFC/1.0/login -X POST ¥
-d  "{¥"username¥":¥"core/admin¥",¥"password¥":¥"changeme¥"}" ¥
-H "Content-Type:application/json"
RESPONSE= <session token>  i.e. "d147eb4031217717c5af68edf33cd40c"%
%export BFC_SESSION= d147eb4031217717c5af68edf33cd40c

Python の例:

from httplib import HTTPSConnection
import json
bfcHost = "10.10.x.x"
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='POST', url='/BFC/1.0/login', 
             body='{"username":"admin","password":"changeme"}', 
             headers={'Content-Type':'application/json'})
session = json.loads(conn.getresponse().read())
print session

グリッド リストの例

以下の例では、1 セットのグリッドに関する情報を取得する方法を示します。

Curl の例:

curl -k -v https://$BFC_HOST:8443/BFC/grids ¥
  -H "Content-Type:application/json" ¥
  -H "Authorization:$BFC_SESSION"

Python の例:

session = get_session()
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='GET',
             url='/BFC/grids',
             headers={'Content-Type':'application/json',
                      'Authorization':session})
grids = json.loads(conn.getresponse().read())
print grids

単一グリッドの詳細

以下の例では、単一のグリッドに関する情報を取得する方法を示します。

Curl の例:

curl -k -v https://$BFC_HOST:8443/BFC/grids/$GRID_NAME ¥
  -H "Content-Type:application/json" ¥
  -H "Authorization:$BFC_SESSION"

Python の例:

session = get_session()
gridName = 'productionApiTest'
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='GET',
             url='/BFC/grids/' + gridName,
             headers={'Content-Type':'application/json',
                      'Authorization':session})
grid = json.loads(conn.getresponse().read())
print grid

グリッド作成の例

以下の例では、BFC API でグリッドを作成する方法を示します。

Curl の例:

curl -k -v -X POST "https://$BFC_HOST:8443/BFC/grids?numAppIPs=3" ¥
  -H "Content-Type:application/json" ¥
  -H "Authorization:$BFC_SESSION" ¥
  -d "{¥"grid¥":{¥"name¥":¥"productionApiTest¥",
                 ¥"xen_config¥":{¥"grid_server_configuration¥":{¥"min¥":1,
                                                   ¥"target¥":1,
                                                   ¥"max¥":1,
                                                   ¥"selection_criteria¥":[]}},
                 ¥"grid_controller_user¥":¥"cadev@ca.com¥",
                 ¥"grid_controller_password¥":¥"myPass¥",
                 ¥"description¥":¥"Xen grid for demo¥"}}"

Python の例:

session = get_session()
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='POST',
             url='/BFC/grids?numAppIPs=2',
             headers={'Content-Type':'application/json',
                      'Authorization':session},
             body = json.dumps({"grid":{"name":"productionApiTest",
                 "xen_config":{"grid_server_configuration":{
                        "min":1,
                        "target":1,
                        "max":2,
                        "selection_criteria":[]}},
                 "grid_controller_user":"cadev@ca.com",
                 "grid_controller_password":"c0tr011er",
                 "description":"Xen grid for demo"}}))

resp = conn.getresponse()
if resp.status > 201:
    print 'Failed grid create - '
    print json.loads(resp.read())
else:
    print 'Grid created'

グリッド操作の例

グリッドでは、start、stop、reboot、clearFailure、applyHotfixes、removeNodes の操作を実行できます。 以下の例では、BFC API でグリッドを開始する方法を示します。 開始パラメータを他のグリッド操作用の別のパラメータで置換します。

Curl の例:

curl -k -v -X POST https://$BFC_HOST:8443/BFC/grids/$GRID_NAME/operations/start ¥
  -H "Content-Type:application/json" ¥
  -H "Authorization:$BFC_SESSION"

Python の例:

session = get_session()
conn = HTTPSConnection(bfcHost + ':8443')
gridName = 'productionApiTest'
operation = 'start'
conn.connect()
conn.request(method='POST',
             url='/BFC/grids/' + gridName + "/operations/" + operation ,
             headers={'Content-Type':'application/json',
                      'Authorization':session})

resp = conn.getresponse()
if resp.status > 202:
    print 'Failed grid operation  - '
    print json.loads(resp.read())
else:
    print 'Operation successful'

グリッド更新の例

以下の例では、グリッドの更新例を示します。説明を変更し、xen ターゲット ノード数を 1 から 2 に変更します。

Curl の例:

curl -k -v -X PUT https://$BFC_HOST:8443/BFC/grids/$GRID_NAME ¥
  -H "Content-Type:application/json" ¥
  -H "Authorization:$BFC_SESSION" ¥
  -d "{¥"grid¥":{¥"description¥":¥"New Description¥",
                 ¥"xen_config¥":{¥"grid_server_configuration¥":{¥"min¥":1,
                                                   ¥"target¥":2,
                                                   ¥"max¥":2,
						   ¥"selection_criteria¥":[]}}}}"

Python の例:

session = get_session()
conn = HTTPSConnection(bfcHost + ':8443')
gridName = 'productionApiTest'
conn.connect()
conn.request(method='PUT',
             url='/BFC/grids/' + gridName,
             headers={'Content-Type':'application/json',
                      'Authorization':session},
             body = json.dumps({"grid":{
                 "xen_config":{"grid_server_configuration":{
                        "min":1,
                        "target":2,
                        "max":2,
                        "selection_criteria":[]}},
                 "description":"New Description"}}))

resp = conn.getresponse()
if resp.status > 201:
    print 'Failed grid create - '
    print json.loads(resp.read())
else:
    print 'Grid created'

グリッド削除の例

以下の例では、BFC API を使用して、グリッドを削除する方法を示します。

Curl の例:

curl -k -v -X DELETE https://$BFC_HOST:8443/BFC/grids/$GRID_NAME ¥
  -H "Content-Type:application/json" ¥
  -H "Authorization:$BFC_SESSION"

Python の例:

session = get_session()
gridName = 'productionApiTest'
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='DELETE',
             url='/BFC/grids/' + gridName,
             headers={'Content-Type':'application/json',
                      'Authorization':session})
resp = conn.getresponse()
if resp.status > 202:
    print 'Failed grid delete - '
    print json.loads(resp.read())
else:
    print 'Grid deleted'