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
    #!/usr/bin/php
    <?php
    require_once("netcup_api.php");
    
    $vcpWebServiceEndUser = new VcpWebServiceEndUser("foo", "bar");
    var_dump($vcpWebServiceEndUser->getVServers());
    
    ?>

    Ich bekomme aber nur folgendes:

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

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • 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?

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • 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
    loginName : Loginname
    password : Password
    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
    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
    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 :)

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • Jetzt ist ja einiges an Zeit vergangen.

    Gibt es inzwischen eine Möglichkeit über eine API virtuelle Server zu bestellen und in Betrieb zu nehmen???

    Bzw. Eine Roadmap???


    Sorry übrigens das ich das alles Thema Ausgrabe aber ist wohl noch immer aktuell