OVH Community, your new community space.

API Webinar Beispiele


Tommi
29.04.16, 10:52
Hallo,

Im Webinar wurden 3 Codebeispiele genannt. Hier nochmal leicht abgewandelt die drei Beispielskripte.
Hinweis:
Die Beispiele setzen voraus, dass die Keys angelegt (https://eu.api.ovh.com/createToken/)und der Wrapper https://github.com/ovh/php-ovh auf dem Rechner installiert wurden.

Disclaimer
Die Skripte sind bewusst einfach gehalten um als Beispiel dienen zu können. Sicheres php-Scripting ist natürlich umfangreicher und die Beispiele sollten nur dem Verständnis dienen. Ich rate von einer 1:1 Verwendung ohne Anpassung ab!

Beispiel 1: Server Reinstallation
PHP-Code:
 require_once('OVHApi.php');

    
$applicationKey    '#application Key#';
    
$applicationSecret '#application Secret Key#';
    
$consumer_key      '#consumer Key#';
    
$servername        '#Servername#';
    
$endpoint          'ovh-eu';

 
$api = NEW OvhApi($applicationKey,
                   
$applicationSecret,
                   
$endpoint,
                   
$consumer_key);

 
$api->post("/dedicated/server/$servername/install/start", array('template' => 'debian8_64'));
?>
Beispiel 2: Mehrfachoperation zur Änderung der A-Records vieler Domains
PHP-Code:
require __DIR__ '/vendor/autoload.php';                  
use \
Ovh\Api;
    
$applicationKey    '#application Key#';
    
$applicationSecret '#application Secret Key#';
    
$consumer_key      '#consumer key#';
    
$newIP             '#neue IP Adresse#';                  
    
$endpoint          'ovh-eu';

$conn = new Api(    $applicationKey,  
                    
$applicationSecret,
                    
$endpoint,
                    
$consumer_key);

$domains $conn->get('/domain/'); //kann alternativ auch direkt als array aller betroffener Domains übergeben werden

foreach ($domains as $domain//bei jeder Domains die A-Records auslesen
   
{
    
$a_record_list $conn->get("/domain/zone/$domain/record", array('fieldType'=> 'A'));
    
    foreach(
$a_record_list as $id//bei jedem A-Record die neue IP einfuegen
       
{
        
$conn->put("/domain/zone/$domain/record/$id",array('target'=> $newIP));
       }
//foreach A-Record-List

   
}//foreach Domains
?>
Beispiel 3: Automatisiertes Herunterladen von MySQL Snapshots vom Shared Hosting
PHP-Code:
require __DIR__ '/vendor/autoload.php';
use \
Ovh\Api;
    
$applicationKey    '#application Key#';
    
$applicationSecret '#application Secret Key#';
    
$consumer_key      '#consumer Key#';
    
$endpoint          'ovh-eu';
    
$hosting           '#Name des Hostings#';
    
$datenbank         '#Name der Datenbank.mysql.db#';

$conn = new Api$applicationKey,
                 
$applicationSecret,
                 
$endpoint,
                 
$consumer_key);

//Dump erstellen lassen
$conn->post("/hosting/web/$hosting/database", array('date'=> 'now''sendEmail'=> true));

$i 0//endlosschleife verhindern
while(!isset($dump[0]) && $i<100
{
    
sleep(300); // der Datenbank noch 5 Minuten zeit geben, den Dump zu erstellen   
    //Versuchen den Dump abzurufen
    
$dump $conn->get("/hosting/web/$hosting/database/$datenbank/dump", array('type'=> 'now'));            
    ++
$i;
}       

//URL abfragen
$dl $conn->get("/hosting/web/$hosting/database/$datenbank/dump/$dump[0]");

//download per wget starten
system("wget \"$dl[url]\" -o $datenbank-".date("Y-m-d").'.gz'); //herunterladen und Download Dateiname mit aktuellem Datum versehen
?>
Mit freundlichen Grüßen

Thomas