24/11/2010

VMware vSphere API avec PHP5

Author: Romain Dehaudt, Head of Revenue & Operations

J’ai eu besoin d’utiliser le web service vSphere depuis PHP5. Vmware a mis à disposition un SDK Java et .NET pour manager un vSphere depuis un Web Service SOAP et une documentation de l’API très complète.

Il existe des exemples d’utilisation avec PHP mais en version 4 …  et rien de bien concluant pour PHP5.

Voici donc mon exemple PHP5(.3)

Pour commencer il faut récupérer le «ServiceInstance » afin de pouvoir accéder aux différents éléments.

Le code si dessus ne marche pas…. Il génère une erreur «ServerFaultCode / InvalidRequest ». En fait, la méthode  SoapClient::__doRequest() définit le type de message SOAP en tant que “xsi: type”, alors que l’ API vSphere attend un type de seulement “type”. Il faut donc surcharger la méthode. Plusieurs solution sont possibles, l’une d’entre elle est de récréer sa propre class qui hérite de SoapClient et redéfinit la méthode  __doRequest.

Après avoir modifié la demande, nous pouvons maintenant récupérer avec succès le «ServiceInstance » 🙂

Pour se logger il suffit d’utiliser les info  de “ServiceInstance” .

Une fois la connexion effectuée, il ne reste plus qu’à se faire plaisir, créer des machines virtuelles, supervision des perfs…  L’API  offre de nombreuses possibilités, j’ai déjà beaucoup d’idées d’utilisations, que j’espère pouvoir mettre en pratique si j’en trouve le temps.  La première chose à attaquer est la création du SDK en PHP.

gallery image