Les exemples suivants illustrent la création d'une session d'authentification dans l'API du BFC.
Exemple de 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
Exemple 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
Les exemples suivants illustrent la récupération d'informations concernant un ensemble de grilles.
Exemple de curl :
curl -k -v https://$BFC_HOST:8443/BFC/grids \ -H "Content-Type:application/json" \ -H "Authorization:$BFC_SESSION"
Exemple 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
Les exemples suivants illustrent la récupération d'informations concernant une grille unique.
Exemple de curl :
curl -k -v https://$BFC_HOST:8443/BFC/grids/$GRID_NAME \ -H "Content-Type:application/json" \ -H "Authorization:$BFC_SESSION"
Exemple 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
Les exemples suivants illustrent la création d'une grille dans l'API de BFC.
Exemple de 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\"}}"
Exemple 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'
Vous pouvez effectuer les opérations suivantes sur la grille : démarrage, arrêt, redémarrage, clearFailure, applyHotfixes, removeNodes. Les exemples suivants illustrent le démarrage d'une grille dans l'API de BFC. Remplacez le paramètre de start par un autre pour les autres opérations de grille.
Exemple de 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"
Exemple 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'
Les exemples suivants illustrent une mise à jour de grille au cours de laquelle la description change et où le décompte de noeuds cible xen change de 1 à 2.
Exemple de 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\":[]}}}}"
Exemple 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'
Les exemples suivants illustrent la suppression d'une grille à l'aide de l'API de BFC.
Exemple de curl :
curl -k -v -X DELETE https://$BFC_HOST:8443/BFC/grids/$GRID_NAME \ -H "Content-Type:application/json" \ -H "Authorization:$BFC_SESSION"
Exemple 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'
|
Copyright © 2013 CA.
Tous droits réservés.
|
|