API VDSmanager. Exemples (VDSmanager)

De ISPWiki.

Ce document contient des exemples de l'appel des fonctions VDSmanager depuis différents languages de programmation et des commandes shell. Nous décrivons ici une fonction de reception de la liste des Serveurs Dédiés Virtuels. Toutes les autres fonctions sont appelées de la même façon. Les résultats des fonctions sont retournés au format XML. Ces exemples ne concernent que l'appel local. Pour appeler des fonctions VDSmanager à distance il est nécessaire d'aller à l'URL suivante pour s'identifier:

https://adresse IP/manager/vdsmgr?out=xml&func=auth&username=nom_d'utilisateur&password=mot_de_passe

Puis il faut trouver l'id de session dans le document reçu (à l'aide des fonctions de traitement des documents XML ou manuellement) et le spécifier dans le paramètre auth da chaque requête suivante. L'id de session est valide pendant 30 minutes, à l'expiration desquelles il faut s'identifier à nouveau.

<?xml version="1.0" encoding="UTF-8"?> <doc> <auth id="id de session"/> </doc>

Sommaire

Commande Fetch

fetch -q -o - "http://IP-address/manager/vdsmgr?out=xml&func=vds"

Commande Curl

curl -k -s "http://IP-address/manager/vdsmgr?out=xml&func=vds"

Language Perl

Pour appeler une URL depuis un script perl il est nécessaire d'installer la librairie LWP. Pour travailler avec les documents XML vous aurez besoin de la librairie XML::LibXML.

#!/usr/bin/perl use LWP::UserAgent; use XML::LibXML; my $result; # Créons un pseudo-navigateur qui ferra semblant d'être MSIE et envoyons la requête $ua = LWP::UserAgent->new; $ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); my $req = HTTP::Request->new(GET => 'http://127.0.0.1/manager/vdsmgr?out=xml&func=vds'); my $res = $ua->request($req); # Vérifions le résultat if ($res->is_success) { $result = $res->content; } else { die $res->status_line."\n"; } # Maintenant la variable $result contient le document XML avec la liste des SDV # ou le message d'erreur my $parser = XML::LibXML->new(); my $doc = $parser->parse_string( $result ); my $root = $doc->documentElement(); # Obtenons la liste des noms des SDV my @servers = (); for( $root->findnodes( "elem/name" ) ){ push @servers, $_->textContent; } # affichons le résultat sur l'écran for( sort @servers ){ print $_."\n"; }

Language PHP

PHP language permet de traiter l'url comme les fichiers standards. Pour traiter les documents XML il faut utiliser la librairie DOM XML is used.

<?php $result = ""; $fh = fopen( "http://127.0.0.1/manager/vdsmgr?out=xml&func=vds", "r" ); while( $data = fread( $fh, 4096 ) ){ $result .= $data; } fclose( $fh ); // Maintenant la variable $result contient le document XML avec la liste des // SDV ou le message d'erreur if( $doc = domxml_open_mem( $result ) ){ $root = $doc->document_element(); for( $elem = $root->first_child(); $elem; $elem = $elem->next_sibling() ){ for( $node = $elem->first_child(); $node; $node = $node->next_sibling() ){ if( $node->node_name() == "name" ){ echo $node->get_content(); echo "\n"; } } } } ?>

Cet article vous a-t-il été utile? Oui | Non
Affichages
Outils personnels