Tema anterior: Ejemplos de Curl y python


Ejemplos de autenticación

Los siguientes ejemplos ilustran cómo crear una sesión de autenticación en el API de BFC.

Ejemplo 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"
RESPUESTA <session token> es decir "d147eb4031217717c5af68edf33cd40c"%
%export BFC_SESSION= d147eb4031217717c5af68edf33cd40c

Ejemplo de python:

de la importación de httplib HTTPSConnection
importación de 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'})
sesión = json.loads(conn.getresponse().read())
imprimir sesión

Ejemplos de lista de grid

Los siguientes ejemplos ilustran cómo recuperar información acerca de un conjunto de grids.

Ejemplo de Curl:

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

Ejemplo de python:

sesión = 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())
imprimir grids

Detalles de un solo grid

Los siguientes ejemplos ilustran cómo recuperar información acerca de un solo grid.

Ejemplo de Curl:

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

Ejemplo de python:

sesión = 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())
imprimir grid

Ejemplos de creación de grids

Los siguientes ejemplos ilustran cómo crear un grid en el API de BFC.

Ejemplo 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\"}}"

Ejemplo de python:

sesión = get_session()
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='POST',
             url='/BFC/grids?numAppIPs=2',
             headers={'Content-Type':'application/json',
                      'Authorization':session},
             cuerpo = 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()
si resp.status > 201:
    mensaje "Error al crear el grid -"
    print json.loads(resp.read())
otro
    mensaje 'Grid creado'

Ejemplos de funcionamiento del grid

Se pueden realizar las siguientes operaciones en el grid: iniciarlo, detenerlo, reiniciarlo, clearFailure, applyHotfixes, removeNodes. Los siguientes ejemplos ilustran cómo iniciar un grid en el API de BFC. Sustituya el parámetro de inicio por otro parámetro para las otras operaciones del grid.

Ejemplo de Curl:

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

Ejemplo de python:

sesión = get_session()
conn = HTTPSConnection(bfcHost + ':8443')
gridName = 'productionApiTest'
operación = 'inicio'
conn.connect()
conn.request(method='POST',
             url='/BFC/grids/ + gridName +' "/operaciones/" + operación,
             headers={'Content-Type':'application/json',
                      'Authorization':session})

resp = conn.getresponse()
si resp.status > 202:
    mensaje "Error de funcionamiento en el grid- '
    print json.loads(resp.read())
otro
    mensaje 'Operación satisfactoria'

Ejemplos de actualización de grid

Los ejemplos siguientes ilustran una actualización de grid en la cual cambia la descripción y el número de nodos de destino de xen cambia de 1 a 2.

Ejemplo 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\":[]}}}}"

Ejemplo de python:

sesión = 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},
             cuerpo = json.dumps({"grid":{
                 "xen_config":{"grid_server_configuration":{
                        "min":1,
                        "target":2,
                        "max":2,
                        "selection_criteria":[]}},
                 "description":"New Description"}}))

resp = conn.getresponse()
si resp.status > 201:
    mensaje "Error al crear el grid -"
    print json.loads(resp.read())
otro
    mensaje 'Grid creado'

Ejemplos de eliminación de un grid

Los ejemplos siguientes ilustran cómo suprimir un grid mediante el API de BFC.

Ejemplo de Curl:

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

Ejemplo de python:

sesión = 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()
si resp.status > 202:
    mensaje "Error al suprimir el grid -
    print json.loads(resp.read())
otro
    mensaje 'Grid suprimido'