Différences entre versions de « Comment utiliser l'API Cloud Privé d’Ikoula »

De Ikoula Wiki
Jump to navigation Jump to search
(Aucune différence)

Version du 22 septembre 2015 à 11:51


Lors de votre inscription au service b. Cloud Privé d’Ikoula , vous avez reçu un mail avec une clé d'API et une clé secrète. Ces informations vous permettrons de vous connecter à l'API b. Cloud Privé d’Ikoula .

URL API : https://cloudstack.ikoula.com/client/api

Les spécifications de l'API administrateur de domaine et utilisateur sont respectivement :

Admin : http://cloudstack.apache.org/docs/api/apidocs-4.2/TOC_Domain_Admin.html User : http://cloudstack.apache.org/docs/api/apidocs-4.2/TOC_User.html

Pour l'utililsation de l'API, il faut :

Exemple de requete a l'API utilisant la methode GET :

  1. https://cloudstack.ikoula.com/client/api/
  2. ?command=deployVirtualMachine
  3. &serviceOfferingId=1
  4. &diskOfferingId=1
  5. &templateId=2
  6. &zoneId=4
  7. &apiKey=miVr6X7u6bN_EJTVwZ0nUkkJbPmY3y2bciKwFQ
  8. &signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D

La ligne 1 correspond au point de d’entrée (le lien vers l'API b. Cloud Privé d’Ikoula ) La ligne 2 correspond a la commande a envoyer, ici on veut crée une nouvelle VM La ligne 3-6 correspondent aux différents paramètres de la commande. Vous pouvez rajouter le champs "response" qui définie le format de retour avec le paramètre (XML/JSON) La ligne 7 contient votre clé d'API (Ici est une clé d'exemple invalide, a remplacer par la votre) La ligne 8 est la signature générée à partir de la commande et de votre clé secrète

Comment générer la signature ?

Il faut s'assurer que tout les espaces sont remplacés par "%20" au lieu de "+"

Il faut trier par ordre alphabétique les champs envoyés. Attention à mettre les paramètres les uns après les autres séparés par un & (et commercial)et la chaîne de paramètres en minuscule.

Exemple de string de paramètres : apikey=mivr6x7u6bn_ejtvwz0nukkjbpmy3y2bcikwfq&command=listvirtualmachines&domainId=5

Enfin appliquer un hmac_SHA1 sur la chaîne générée avec comme clé de hashage votre clé secréte. Pour envoyer la requête il vous suffit de rajouter le champs signature avec la signature générée

$args est un tableau associatif de tous les arguments

// classement par clef
ksort($args);
$query = http_build_query($args);
// sécurité pour l'encodage des espaces
$query = str_replace("+", "%20", $query);
// minuscule
strtolower($query)
// calcul du hash
$hash = hash_hmac("SHA1",  $query, $secretKey, true);
// encodage en base 64
$signature = base64_encode($hash);
?>