API zum Verwalten von Servern

  • Hallo,


    eine Anregung an das Netcup-Team: es wäre toll, wenn ihr euch eine (REST-)API für die Verwaltung von Servern anlegen könntet.

    Das wichtigste Detail daran: man sollte ein cloud-init Script übergeben können und dieses wird zur Provisionierung des Servers verwendet (das wäre ohnehin auch im SCP beim Neuinstallieren von Servern eine gute Verbesserung).

    Ein "französischer Hoster" hat das ganz gut gelöst, da wollen wir aber nicht hin (unsere Kunden wünschen Serverstandort und Dienstleisterherkunft Deutschland). Ein "anderer deutscher Hoster " hat zwar eine API aber ein Script kann man der nicht übergeben (obwohl man es in deren Webinterface kann <X).


    Wie gut stehen die Chancen, dass Netcup sowas in Zukunft anbieten wird?


    Viele Grüße

  • Guten Tag,


    Zitat

    ich würde gerne an das Thema anknüpfen. Gibt es eine Möglichkeit, auch Server über die API zu bestellen?


    nein, nicht für VPS und Root-Server. Bei Managed Cloud Clustern funktioniert das Erstellen von VPS bereits.


    Zitat

    Wird diese in absehbarer Zeit erweitert, o. angepasst?


    ja.



    Mit freundlichen Grüßen


    Felix Preuß

  • Mittels SOAP Ui oder einem SOAP Client Framework kann folgender Call gemacht werden:


    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:end="http://enduser.service.web.vcp.netcup.de/">

    <soapenv:Header/>

    <soapenv:Body>

    <end:getVServerNickname>

    <loginName>?</loginName>

    <password>?</password>

    <vservername>?</vservername>

    </end:getVServerNickname>

    </soapenv:Body>

    </soapenv:Envelope>

  • Ich hab die PHP Klasse aus dem Wiki gespeichert als netcup_api.php.


    In einer neuen Datei (traffic.php) habe ich folgendes:


    PHP
    1. #!/usr/bin/php
    2. <?php
    3. require_once("netcup_api.php");
    4. $vcpWebServiceEndUser = new VcpWebServiceEndUser("foo", "bar");
    5. var_dump($vcpWebServiceEndUser->getVServers());
    6. ?>

    Ich bekomme aber nur folgendes:

    Code
    1. PHP Notice: Undefined variable: Eaxf219PA in /home/nrpe/netcup_api/traffic.php on line 5
    2. PHP Fatal error: Uncaught Error: Class 'SOAPClient' not found in /home/nrpe/netcup_api/netcup_api.php:22
    3. Stack trace:
    4. #0 /home/nrpe/netcup_api/traffic.php(5): VcpWebServiceEndUser->__construct('foo', 'bar...')
    5. #1 {main}
    6. thrown in /home/nrpe/netcup_api/netcup_api.php on line 22

    Schade, dachte man könnte die API einfach so über PHP aufrufen, dann muss ich wohl irgendeinen Soap-Client installieren.

    RS 2000 Plus SAS G8 | VPS 2000 G8 Plus | VPS Ibiza/16 Years | 3x VPS 200 G8 | EiWoMiSau

    www.jeff24.de - www.serioese-alternative.de - www.jeff-media.de

  • Im Screenshot oben sehe ich Methoden zum Auslesen des Traffics, aber im Wiki ist das nicht vorhanden? Wie ist denn die Syntax für den Traffic-Befehl, falls der überhaupt existiert?

    RS 2000 Plus SAS G8 | VPS 2000 G8 Plus | VPS Ibiza/16 Years | 3x VPS 200 G8 | EiWoMiSau

    www.jeff24.de - www.serioese-alternative.de - www.jeff-media.de

  • Im Screenshot oben sehe ich Methoden zum Auslesen des Traffics, aber im Wiki ist das nicht vorhanden? Wie ist denn die Syntax für den Traffic-Befehl, falls der überhaupt existiert?

    Müsstest du dir theoretisch aus der WSDL raussuchen: https://www.servercontrolpanel.de/WSEndUser?wsdl
    Leider ist das hier nicht wirklich möglich, da dort keine Request- oder Response-Strukturen definiert werden...


    Heißt: Rumraten und probieren. Aber die Parameternamen sind bestimmt ähnlich zu anderen Requests:

    https://www.netcup-wiki.de/wiki/Netcup_VCP_Webservice

    Würde mich mal aus dem Fenster lehnen und behaupten, dass

    Code
    1. loginName : Loginname
    2. password : Password
    3. vserverName : String

    erwartet wird.

  • Ich hab mir vor einiger Zeit mal das hier aufgeschrieben:


    Traffic für den Tag '18.06.2016' und den Server 'xxx' anzeigen:

    Code
    1. curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:" -d "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tns=\"http://enduser.service.web.vcp.netcup.de/\"><soapenv:Header/><soapenv:Body><tns:getVServerTrafficOfDay><loginName>12345</loginName><password>yyy</password><vserverName>xxx</vserverName><year>2016</year><month>06</month><day>18</day></tns:getVServerTrafficOfDay></soapenv:Body>" -X POST https://www.vservercontrolpanel.de/WSEndUser


    Traffic für das Monat '06.2016' und den Server 'xxx' anzeigen:

    Code
    1. curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:" -d "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tns=\"http://enduser.service.web.vcp.netcup.de/\"><soapenv:Header/><soapenv:Body><tns:getVServerTrafficOfMonth><loginName>12345</loginName><password>yyy</password><vserverName>xxx</vserverName><year>2016</year><month>06</month></tns:getVServerTrafficOfMonth></soapenv:Body>" -X POST https://www.vservercontrolpanel.de/WSEndUser
  • Schade, wollte eigentlich nur wissen, wie viel Traffic ich diesen Monat noch verbraten kann :D Dann muss ich wohl immer den aktuellen Monat abfragen und das Ergebnis vom Limit abziehen :)

    RS 2000 Plus SAS G8 | VPS 2000 G8 Plus | VPS Ibiza/16 Years | 3x VPS 200 G8 | EiWoMiSau

    www.jeff24.de - www.serioese-alternative.de - www.jeff-media.de