Fehler/Probleme bei v1.5.3 / SOAP u.a.

  • Ich teste zur Zeit Live Config Version 1.5.3 (r1932) auf einem Debian Squeeze amd64 System - folgende Dinge sind mir aufgefallen:


    A) Kunden anlegen via SOAP funktioniert nicht 100%


    Wir legen derzeit Kunden via SOAP wie folgt an:


    ContactAdd -> CustomerAdd -> HostingSubscriptionAdd -> HostingDomainAdd -> UserAdd


    Der Kunde scheint auch in der Admin-Oberfläche korrekt auf - ABER - es wird nur eine leere Apache-Config angelegt. Erst wenn der Kunde manuell angestossen wird (z.B. Domain Status 'Enable' -> 'Disable' -> 'Enable'), wird die ApacheConfig geschrieben.


    Hinweis zu v1.6.0 (r1957): In dieser Version wird überhaupt keine Apache-Config Datei (/etc/apache2/sites-available/webXXX.conf) mehr angelegt.Ein manuelles Anstossen der Domain wie o.a. legt die Datei dann schlußendlich an.



    B) Kunden löschen


    Das Löschen eines Kunden ist überhaupt sehr umständlich - es müssen ja zuvor Domains und Verträge manuell gelöscht werden. Soweit so gut - hat der Kunde aber auch z.B. ein EMail-Konto angelegt, muss auch dieses manuell gelöscht werden. Das kenne ich so von keinem Panel...


    Besser wäre es, denn Kunden gesamt (mit allen 'angehängten' Dingen) löschen zu können. Ggf. mit einem Warnhinweis (a la: "Mit Löschen des Kunden werden auch folgende Einstellungen gelöscht: Email mail@xxx.xom, Domain xxx.com, Vertrag web123, etc.). Analog sollte beim Löschen eines Vertrages auch die zugehörigen Domains automatisch gelöscht werden.


    BUG:
    Das Löschen eines Kunden funktioniert zudem nicht sauber - so bleibt das Web-Verzeichnis /var/www/webXXX bestehen.


    Dieses kann auch nicht simpel mittels 'rm -fR /var/www/webXXX' gelöscht werden, da bei der Datei /var/www/webXXX/conf/php5/php-fcgi-starter erst mittels 'chattr -i /var/www/webXXX/conf/php5/php-fcgi-starter' die Attribute geändert werden müssen...



    C) SOAP


    1) Es scheinen noch einige grundlegende Funktionen (z.B. Benutzer löschen, sperren) zu fehlen - gibt es für die Implementierung einen Zeitplan ?


    2) Ich konnte in der SOAP-Referenz keinen Befehl für die Zuweisung einer IP-Adresse finden - wie kann ein Vertrag mit dedizierter IP-Adresse (z.B. ein Kunde mit eigenem SSL-Zertifikat) via SOAP angelegt werden ? HostingDomainAdd() gibt zwar eine IP-Adresse (webip) als Antwort zurück - wo lässt sich diese aber definieren ?



    D) Zeitzonen


    Derzeit ist bei über SOAP angelegten Kunden die Zeitzone auf 'Afrika/ABidjan', also den ersten Eintrag der Liste, eingestellt. Schöner wäre es, automatisch die Zeitzone des Administrators oder des Resellers zu erhalten.


    Hinweis: Es fehlt auch die Zeitzone 'Asia/Hong Kong' - diese würden wir bitte benötigen.



    E) Individuelle Einstellungen


    Es wäre gut, wenn bei den Config-Dateien der einzelnen Dienste eigene Einstellungen möglich wären (z.B. über eine apache2.local.conf), die nicht überschrieben wird. Hintergrund ist, dass einige Einstellungen für uns nicht praktikabel sind (z.B. das SnakeOil-Zertifikat - wir möchten ein eigenes verwenden). Alternative wäre, dass die Live Config-Templates, die für die Erstellung verwendet werden, angepasst werden können - konnte im Handbuch dazu leider nichts finden.



    F) SOAP Log


    Gibt es ein Logfile, in dem die Aktionen der SOAP-Schnittstelle protokolliert werden ? Im Admin-Log finde ich keine der Aktionen.




    Danke für Ihre Mühe !

  • Hallo Christoph,


    ich habe jetzt die Reihe der SOA-Aktionen geändert - und auf einmal scheint es zu funktionieren:


    ALT: ContactAdd -> CustomerAdd -> HostingSubscriptionAdd -> HostingDomainAdd -> UserAdd
    NEU: ContactAdd -> CustomerAdd -> UserAdd -> HostingSubscriptionAdd -> HostingDomainAdd



    Ich werde es aber noch ein paarmal testen....

  • NEU: ContactAdd -> CustomerAdd -> UserAdd -> HostingSubscriptionAdd -> HostingDomainAdd


    Das ist auch die "richtige" Reihenfolge, und würde auch erklären, warum wir den Fehler hier bislang nicht reproduzieren konnten (unsere Testscripte verwenden eben genau diese Reihenfolge).


    Wir werden die Beschreibung der SOAP-API entsprechend erweitern, und außerdem eine Prüfung einbauen, dass man keinen Vertrag anlegen kann so lange noch kein Benutzer existiert.

  • Zitat

    Das Löschen eines Kunden ist überhaupt sehr umständlich - es müssen ja zuvor Domains und Verträge manuell gelöscht werden. Soweit so gut - hat der Kunde aber auch z.B. ein EMail-Konto angelegt, muss auch dieses manuell gelöscht werden. Das kenne ich so von keinem Panel...


    Dieser Punkt ist bereits in Arbeit, voraussichtlich am Anfang nächster Woche sollte das auch erledigt sein. Die Herausforderung war, das Löschen aller einzelnen Objekte ggf. auf verschiedenen Servern zu organisieren - Mail-Accounts können ja auf einem ganz anderen Server sein als der Webspace-Account; der Vertrag darf schlussendlich erst dann vollständig gelöscht sein, wenn alle einzelnen Ressourcen gelöscht sind. Wir haben das aber nun in einem asynchronen Job gelöst, der so lange im System bleibt bis die Löschung aller Objekte bestätigt ist.


    Zitat

    Das Löschen eines Kunden funktioniert zudem nicht sauber - so bleibt das Web-Verzeichnis /var/www/webXXX bestehen.


    Das wurde mit der aktuellen Preview (r1957) bereits behoben, bis auf...:


    Zitat

    Dieses kann auch nicht simpel mittels 'rm -fR /var/www/webXXX' gelöscht werden, da bei der Datei /var/www/webXXX/conf/php5/php-fcgi-starter erst mittels 'chattr -i /var/www/webXXX/conf/php5/php-fcgi-starter' die Attribute geändert werden müssen...


    Ja, das wurde leider übersehen. Nun (ab r1959) beseitigt das zuständige Lua-Script auch eventuelle php-fcgi-starter und löscht anschließend das Webspace-Verzeichnis.


    Zitat

    1) Es scheinen noch einige grundlegende Funktionen (z.B. Benutzer löschen, sperren) zu fehlen - gibt es für die Implementierung einen Zeitplan ?


    Ich schaue mal dass wir die einzelnen fehlenden Funktionen kommende Woche mit in die Roadmap aufnehmen; die meisten Punkte sind bereits in Arbeit, da wir hier nebenher ein WHMCS-Plugin entwickeln, welches all diese Funktionen auch benötigt.


    Zitat

    2) Ich konnte in der SOAP-Referenz keinen Befehl für die Zuweisung einer IP-Adresse finden - wie kann ein Vertrag mit dedizierter IP-Adresse (z.B. ein Kunde mit eigenem SSL-Zertifikat) via SOAP angelegt werden ? HostingDomainAdd() gibt zwar eine IP-Adresse (webip) als Antwort zurück - wo lässt sich diese aber definieren ?


    Das ist ziemlich kompliziert, da LiveConfig an dieser Stelle auf IP-Gruppen abstrahiert. Ich würde eine ausführliche Antwort gerne noch ein paar Tage verschieben - bis dahin: über SOAP hat man derzeit leider noch keinen Einfluss auf die IP. Kommt aber natürlich noch - aktuell wird die GUI angepasst, so dass man Kunden/Reseller auch so einstellen kann, dass sie keine "gemeinsamen" IP-Gruppen nutzen dürfen, sondern nur die ihnen exklusiv zugeordneten IP-Gruppen. Das wiederum ist dann Voraussetzung dafür, die SOAP-API entsprechend zu erweitern.


    Zitat

    Derzeit ist bei über SOAP angelegten Kunden die Zeitzone auf 'Afrika/ABidjan', also den ersten Eintrag der Liste, eingestellt. Schöner wäre es, automatisch die Zeitzone des Administrators oder des Resellers zu erhalten.


    Ist natürlich suboptimal, ich mach' da gleich ein Bug-Ticket auf.


    Zitat

    Hinweis: Es fehlt auch die Zeitzone 'Asia/Hong Kong' - diese würden wir bitte benötigen.


    Das hab ich eben beseitigen können - es gab hier einen Fehler in dem SQL, der die Zeitzonen-Liste zusammenstellt: Hong Kong hat keine Sommerzeit mehr, und fiel daher aus der Liste heraus (neben einigen anderen Zonen). Ist ab r1960 beseitigt.


    Zitat

    Es wäre gut, wenn bei den Config-Dateien der einzelnen Dienste eigene Einstellungen möglich wären (z.B. über eine apache2.local.conf), die nicht überschrieben wird. Hintergrund ist, dass einige Einstellungen für uns nicht praktikabel sind (z.B. das SnakeOil-Zertifikat - wir möchten ein eigenes verwenden). Alternative wäre, dass die Live Config-Templates, die für die Erstellung verwendet werden, angepasst werden können - konnte im Handbuch dazu leider nichts finden.


    Es gibt ab nächster Woche einen neuen Handbuch-Abschnitt "Fortgeschrittene Konfiguration", in dem all das ausführlich beschrieben wird (insbesondere für Apache und Postfix, bei denen die meisten "Spezialeinstellungen" vorgenommen werden).


    Zitat

    Gibt es ein Logfile, in dem die Aktionen der SOAP-Schnittstelle protokolliert werden ? Im Admin-Log finde ich keine der Aktionen.


    Kommt auf die Aktionen an - die meisten Vorgänge sollten eigentlich schon in dem Log (Menü: LiveConfig -> Protokoll) auftauchen. Sollte konkret etwas nicht protokolliert werden, geben Sie bitte kurz Bescheid; wir können das sonst auch noch mal irgendwann manuell durchgehen und prüfen.


    Zitat

    Danke für Ihre Mühe !


    Und vielen Dank für Ihre ausführliche Rückmeldung! :)


    Viele Grüße


    -Klaus Keppler

  • Das ist auch die "richtige" Reihenfolge, und würde auch erklären, warum wir den Fehler hier bislang nicht reproduzieren konnten (unsere Testscripte verwenden eben genau diese Reihenfolge).


    Wir werden die Beschreibung der SOAP-API entsprechend erweitern, und außerdem eine Prüfung einbauen, dass man keinen Vertrag anlegen kann so lange noch kein Benutzer existiert.


    Hmm, der Fehler trat weiterhin auf - bis wir die Variable 'web' bei der Aktion 'HostingDomainAdd' auf '/' gesetzt haben. Ein leerer String '' (wie in der Dokumentation beschrieben) führte bei einigen Kunden dazu, dass keine Apache-Konfiguration geschrieben wurde.

  • Ad Problem A:


    Ich konnte das Problem nun eingrenzen - es liegt offenbar am Feld 'web' in der Aktion HostingDomainAdd().


    Zitat Handbuch:
    Wird das Feld web auf NULL gesetzt, dann ist der Webspace für diese Domain deaktiviert. Für „normalen“ (aktivierten) Webspace muss das Feld web auf einen leeren String („“) oder auf ein beliebiges Verzeichnis (z.B. „/“) gesetzt werden.


    (*) Ein leerer String 'web' => '' (wie im Handbuch angegeben) führt dazu, dass die Apache Konfiguration nicht geschrieben wird.


    (*) Ein Leerzeichen 'web' => ' ' führt dazu, dass Die Konfiguration zwar geschrieben wird, aber fehlerhaft ist - die Domain kann dann nicht aufgerufen werden:
    DocumentRoot "/var/www/webXXX/htdocs/ "-> ein Leerzeichen zuviel nach dem Pfad


    (*) Ein Slash 'web' => '/' (wie im Handbuch beschrieben) führt dazu, dass die Konfiguration erstellt wird - die Domain ist zwar aufrufbar, jedoch nicht 100%-ig korrekt:
    DocumentRoot "/var/www/webXXX/htdocs//"-> ein Slash zuviel nach dem Pfad



    Wir verwenden nun 'web' => '/' - ist aber auch nicht ganz korrekt in der Apache Konfiguration...

  • Bei mir macht die API mit '/' nur sporadisch was
    Ich hab ein Test-Script, ganz einfach gestrickt.
    Wenn ich 'web'=> '/' setze, dann hat er eben von 4 "Kunden" nur bei einen die Configs angelegt (der 3. Durchlauf war erfolgreich, anders war dem Vorgänger nur die Kundenid+1 und domainname "testX" +1, wie bei den anderen Durchgängen auch)
    also bei 'web' => '/'
    Also Kunde 11001 mit Webnamen "webtest11001" und domain "test1.X.com" => keine Configs
    Also Kunde 11002 mit Webnamen "webtest11002" und domain "test2.X.com" => keine Configs
    Also Kunde 11003 mit Webnamen "webtest11003" und domain "test3.X.com" => Configs sind vorhanden
    Also Kunde 11004 mit Webnamen "webtest11004" und domain "test4.X.com" => keine Configs
    Gleiches Script, gleiche Einstellungen sonst, im Abstand von ca. 1 Minute und selbst nach apache restart und lc restart eben keine Configs.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!