Comment utiliser l'API Cloud Privé d’Ikoula
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 :
- Votre clé d'API
- Votre clé secréte
- Envoyer les requêtes sur "https://cloudstack.ikoula.com/client/api" avec une méthode du protocole HTTP
- Traiter les retours XML ou JSON (au choix)
Exemple de requete a l'API utilisant la methode GET :
- https://cloudstack.ikoula.com/client/api/
- ?command=deployVirtualMachine
- &serviceOfferingId=1
- &diskOfferingId=1
- &templateId=2
- &zoneId=4
- &apiKey=miVr6X7u6bN_EJTVwZ0nUkkJbPmY3y2bciKwFQ
- &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); ?>