API "sites_web_domain_set_status" wirkungslos?

#1
Hallo!

Ich habe auf einer Seite einen Button integriert, mit dem der Benutzer seine Webseite offline schalten kann. Also von aktiv -> inaktiv. Dafür bin ich an die "sites_web_domain_set_status"-API gegangen:

Code:
$soap_user = 'xxx';
$soap_pass = 'xxx';
$soap_url = 'https://localhost:8005/remote/';
$soap_location = 'https://localhost:8005/remote/index.php';


$client = new SoapClient(null, array('location' => $soap_location,
            'uri' => $soap_url));
            
try {
    $session_id = $client->login($soap_user, $soap_pass);
    $client->sites_web_domain_set_status($session_id, 87, 'inactive');
    $client->logout($session_id);
}

catch (SoapFault $e) {
        echo $e->getMessage();
    }
Funktioniert auch alles soweit. Die Seite wird im ISPConfig-Interface als "inaktiv" angezeigt. Allerdings ist die Seite weiterhin aufrufbar (ja - auch mit geleertem Cache ;-)). Wenn ich die Seite in ISPConfig auf "offline" schalte, dann ist sie allerdings nicht mehr aufrufbar.

Jemand eine Idee? Bin für Hilfe dankbar.

Viele Grüße
osterhase
 

Till

Administrator
#2
Hast Du lange genug gewartet, es dauert ca. 1 Minute bis ein job ausgeführt wird und wenn man darauf wartet dann ist eine Minute sehr lange :) Schau mal in ispconfig monitor, dort siehst Du wenn ein job ausgeführt wurde.
 
#3
^^ - Na - die Minute habe ich mir schon genommen, bevor ich ins Forum geschrieben habe. Aber leider ohne Erfolg. Ich werd nochmal mit dem Debug-Log-Level in die Logs schauen. Ansonsten wäre mein nächster Schritt jetzt den API-Code mit dem aus dem web-Interface zu vergleichen, ob da irgendwas läuft, was im API nicht drinnen steht. Custom Coding finde ich allerdings immer ein bißchen doof - v.a. wenn man den Code nicht kennt. Vielleicht noch eine Idee?
 

Till

Administrator
#4
Ich würde das deaktivieren der Seite auch anders über die API lösen, die Funktion sites_web_domain_set_status wird sowieso ab 3.0.5 als deprecated markiert werden da die Funktionalität bereits in einer anderen allgemeineren Funktion abgedeckt ist.

Code:
$domain_record = $client->sites_web_domain_get($session_id, $domain_id);
$domain_record['active'] = 'n';
$affected_rows = $client->sites_web_domain_update($session_id, $client_id, $domain_id, $domain_record);
Custom code brauchst Du da keinen, eine Menge ISP's steuern ISPConfig über das API, sollte also auch bei Dir gehen.
 
#5
@osterhase: Ja, sites_web_domain_set_status funktioniert nicht richtig, das habe ich auch schon feststellen müssen.
Habe es dann genauso gemacht, wie Till beschrieben hat. So funktioniert es auf alle Fälle.
 

Werbung