JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter la vue de l'impression
Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version 2013.1.3.0
Oracle Technology Network
Bibliothèque
PDF
Vue de l'impression
Commentaires
search filter icon
search icon

Informations sur le document

Prise en main de l'API Oracle ZFS Storage Appliance RESTful

Utilisation de l'API RESTful

Service d'alerte API RESTful

Services Analytics

Services matériels

Commandes des journaux

Commandes réseau

Service des problèmes de l'API RESTful

Service des rôles de l'API RESTful

Service SAN de l'API RESTful

Commandes de service

Service de stockage de l'API RESTful

Commandes système

Service utilisateur de l'API RESTful

Commandes des workflows

Clients RESTful

Client CurlRest

Obtenir les données d'une ressource

Créer une nouvelle ressource

Modifier une ressource existante

Supprimer une ressource existante

Client RESTful Python

Obtenir une ressource

Créer une ressource

Modifier une ressource

Supprimer une ressource existante

Client RESTful Python

Un client d'API RESTful Python est fourni avec une bibliothèque REST test pour vous aider à développer des tests des services RESTful.

Exemple de programme de client RESTful :

>>> import urllib2
>>> import json

>>> request = urllib2.Request("https://zfsssa.example:215/api/access/v1", "")
>>> request.add_header("X-Auth-User", "rest_user")
>>> request.add_header("X-Auth-Key", "letmein")
>>> response = urllib2.urlopen(request)
>>> response.getcode()
201

>>> info = response.info()
>>>
        opener = urllib2.build_opener(urllib2.HTTPHandler)
>>> opener.addheaders = [("X-Auth-Session", info.getheader("X-Auth-Session")),
... ('Content-Type', 'application/json'), ('Accept', 'appplication/json')]

Le dispositif d'ouverture peut ensuite être utilisé pour ouvrir des demandes pré-authentifiées et prêtes à envoyer/recevoir des données JSON.

Obtenir une ressource

Le code Python suivant peut être utilisé pour obtenir des données de n'importe quelle ressource API RESTful.

Exemple GET :

>>> request = urllib2.Request("https://zfssa:215/api/network/v1/routes")
>>> response = opener.open(request)
>>> response.getcode()
200
>>> body = json.loads(response.read())
>>> print json.dumps(body, sort_keys=True, indent=4)
{
    "routes": [

            {
            "destination": "0.0.0.0",
            "family": "IPv4",

            "gateway": "10.80.231.1",
            "href":
            "/api/network/v1/routes/ixgbe0,0.0.0.0,10.80.231.1",

            "interface": "ixgbe0",
            "mask": 0,
            "type": "static"

            }
    ]
}

Créer une ressource

Exemple de code Python pour la création d'une nouvelle ressource :

>>> action = {'category': 'network'}
>>> post_data = json.dumps(action)
>>> request = urllib2.Request("https://zfssa:215/api/alert/v1/actions", post_data)
>>> request.add_header('Content-Type', 'application/json')

>>> response = opener.open(request)
>>> response.getcode()
201
>>> response.info().getheader('Location')
'/api/alert/v1/actions/actions-001'
>>> body = json.loads(response.read())
>>> print json.dumps(body, sort_keys=True, indent=4)
{

        "actions": {
        "category": "network",
        "datalink_failed": true,

        "datalink_ok": true,
        "href":
        "/api/alert/v1/actions/actions-001",

        "ip_address_conflict": true,

        "ip_address_conflict_resolved": true,

        "ip_interface_degraded": true,
        "ip_interface_failed":
        true,
        "ip_interface_ok": true,

        "network_port_down": true,
        "network_port_up":
        true
    }
}

Modifier une ressource

Exemple de code Python pour la modification d'une ressource existante :

>>> put_data = '{"ip_address_conflict_resolved": false}'
>>>
        request = urllib2.Request("https://zfssa:215/api/alert/v1/actions/actions-001", put_data)
>>> request.add_header('Content-Type', 'application/json')
>>> request.get_method = lambda: 'PUT'

>>> response = opener.open(request)
>>> response.getcode()
202
>>> body = json.loads(response.read())
>>> print json.dumps(body, sort_keys=True, indent=4)
{

        "actions": {
        "category": "network",
        "datalink_failed": true,

        "datalink_ok": true,
        "href":
        "/api/alert/v1/actions/actions-001",

        "ip_address_conflict": true,

        "ip_address_conflict_resolved": false,

        "ip_interface_degraded": true,
        "ip_interface_failed":
        true,
        "ip_interface_ok": true,

        "network_port_down": true,
        "network_port_up":
        true
    }
}

Supprimer une ressource existante

Exemple de code Python pour la suppression d'une ressource existante :

>>> request = urllib2.Request("https://zfssa:215/api/alert/v1/actions/actions-001")
>>> request.get_method = lambda: 'DELETE'
>>> response = opener.open(request)
>>> response.getcode()
204