Aruba SwitchAPI is a PHP library for requesting Aruba switches (ArubaOS). This library can retrieve, create, update and delete configuration on the switch. It wan be used to :
Warning : This library is incomplete and mainly oriented towards POE, VLAN, port and LED locator. Contributions are welcome !
You can find all supported methods on Aruba's website, choose your equipment and download the API documentation.
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();
.You can find a full documentation here.
This Config class is used to prepare the mandatory configuration information to instanciate and use the SwitchAPI class. In the constructor you must pass :
Optional parameters :
setTimeout()
to change.setSSLVerifyPeer()
to change.setSSLVerifyHost()
to change.setAPIVersion()
to change (only >= v7 are supported).Example :
// Basic configuration
$configSwitch = new ArubaConfig('123.123.123.123', 'admin', 'password');
// Configuration for very slow switchs/long requests
$configSwitch = new ArubaConfig('123.123.123.123', 'admin', 'password');
$configSwitch->setTimeout(20000);
// Unsecure configuration
$configSwitch = new ArubaConfig('123.123.123.123', 'admin', 'password');
$configSwitch->setSSLVerifyPeer(FALSE)->setSSLVerifyHost(FALSE);
// Special API version
$configSwitch = new ArubaConfig('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 ArubaSwitchAPI($configSwitch);
} catch (Exception $e) {
echo('Handle error : '.$e->getMessage());
}
This class uses Exception to handle errors, for nominal execution you should instanciate and request methods inside try/catch statements.
Examples :
// 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());
}
You can browse all available methods here.