Aruba SwitchAPI es una biblioteca PHP para solicitar conmutadores de Aruba (ArubaOS). Esta biblioteca puede recuperar, crear, actualizar y eliminar la configuración en el conmutador. Se puede utilizar para:
Advertencia : esta biblioteca está incompleta y está orientada principalmente a POE, VLAN, puerto y localizador de LED. ¡Las contribuciones son bienvenidas!
Puede encontrar todos los métodos admitidos en el sitio web de Aruba, elegir su equipo y descargar la documentación API.
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();
. Puede encontrar una documentación completa aquí.
Esta clase de configuración se usa para preparar la información de configuración obligatoria para instanciar y usar la clase SwitchAPI. En el constructor debes pasar:
Parámetros opcionales:
setTimeout()
para cambiar.setSSLVerifyPeer()
para cambiar.setSSLVerifyHost()
para cambiar.setAPIVersion()
para cambiar (solo se admiten >= v7).Ejemplo :
// 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 ());
}
Esta clase usa Exception para manejar errores; para una ejecución nominal, debe instanciar y solicitar métodos dentro de las declaraciones try/catch.
Ejemplos:
// 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 ());
}
Puede explorar todos los métodos disponibles aquí.