Aruba SwitchAPI ist eine PHP-Bibliothek zum Anfordern von Aruba-Switches (ArubaOS). Diese Bibliothek kann die Konfiguration auf dem Switch abrufen, erstellen, aktualisieren und löschen. Es kann verwendet werden für:
Warnung : Diese Bibliothek ist unvollständig und hauptsächlich auf POE, VLAN, Port und LED-Locator ausgerichtet. Beiträge sind willkommen!
Sie können alle unterstützten Methoden auf der Website von Aruba finden, Ihre Ausrüstung auswählen und die API-Dokumentation herunterladen.
composer require benclerc/aruba-switchapi
.require 'vendor/autoload.php';
.$configSwitch = new ArubaConfig('123.123.123.123', 'admin', 'password');
.$switch = new ArubaSwitchAPI($configSwitch);
.$runningConf = $switch->getRunningConfig();
. Eine vollständige Dokumentation finden Sie hier.
Diese Config-Klasse wird verwendet, um die obligatorischen Konfigurationsinformationen für die Instanziierung und Verwendung der SwitchAPI-Klasse vorzubereiten. Im Konstruktor müssen Sie Folgendes übergeben:
Optionale Parameter:
setTimeout()
zum Ändern.setSSLVerifyPeer()
.setSSLVerifyHost()
zum Ändern.setAPIVersion()
zum Ändern (nur >= v7 wird unterstützt).Beispiel :
// Basic configuration
$ configSwitch = new Aruba Config ( ' 123.123.123.123 ' , ' admin ' , ' password ' );
// Configuration for very slow switchs/long requests
$ configSwitch = new Aruba Config ( ' 123.123.123.123 ' , ' admin ' , ' password ' );
$ configSwitch -> setTimeout ( 20000 );
// Unsecure configuration
$ configSwitch = new Aruba Config ( ' 123.123.123.123 ' , ' admin ' , ' password ' );
$ configSwitch -> setSSLVerifyPeer ( FALSE )-> setSSLVerifyHost ( FALSE );
// Special API version
$ configSwitch = new Aruba Config ( ' 123.123.123.123 ' , ' admin ' , ' password ' );
$ configSwitch -> setAPIVersion ( ' v8 ' );
// The class logins to the switch when being instanciated hence the try/catch statement.
try {
$ switch = new Aruba SwitchAPI ( $ configSwitch );
} catch ( Exception $ e ) {
echo ( ' Handle error : ' . $ e -> getMessage ());
}
Diese Klasse verwendet Exception, um Fehler zu behandeln. Für die nominale Ausführung sollten Sie Methoden innerhalb von Try/Catch-Anweisungen instanziieren und anfordern.
Beispiele:
// Blink for 1 min LED locator
try {
$ res = $ switch -> blinkLedLocator ( 2 , 1 );
if ( $ res ) {
echo ( ' Blink succeeded ' );
} else {
echo ( ' Blink failed ' );
}
} catch ( Exception $ e ) {
echo ( ' Handle error : ' . $ e -> getMessage ());
}
// Create a VLAN
try {
$ res = $ switch -> createVlan ( 666 , ' HELL ' );
if ( $ res ) {
echo ( ' The VLAN has been created. ' );
} else {
echo ( ' Error : the VLAN was not created. ' );
}
} catch ( Exception $ e ) {
echo ( ' Handle error : ' . $ e -> getMessage ());
}
// Get status of all ports
try {
$ res = $ switch -> getPortsStatus ();
if ( $ res != FALSE ) {
foreach ( $ res as $ key => $ value ) {
$ status = ( $ value -> is_port_enabled ) ? ' up ' : ' down ' ;
echo ( ' Port ' . $ value -> id . ' is ' . $ status . ' <br> ' );
}
} else {
echo ( ' Error : status could not be retrieved. ' );
}
} catch ( Exception $ e ) {
echo ( ' Handle error : ' . $ e -> getMessage ());
}
// Set untagged VLAN 666 on port 42
try {
$ res = $ switch -> setUVlanPort ( 666 , ' 42 ' );
if ( $ res ) {
echo ( ' The VLAN 666 has been affected to the port 42. ' );
} else {
echo ( ' Error : the VLAN was not affected. ' );
}
} catch ( Exception $ e ) {
echo ( ' Handle error : ' . $ e -> getMessage ());
}
Hier können Sie alle verfügbaren Methoden durchsuchen.