benclerc / aruba-switchapi
Library used for interacting with Aruba SwitchAPI (ArubaOS).
Installs: 1 333
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 2
Open Issues: 0
Requires
- php: >=7.4.0
README
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 :
- Configure switch from a PHP designed web interface.
- Backup switch configuration with a PHP script.
- So much more, it is up to you !
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.
Table of contents
Getting started
- Get Composer.
- Install the library using composer
composer require benclerc/aruba-switchapi
. - Add the following to your application's main PHP file
require 'vendor/autoload.php';
. - Instanciate the Config class with the switch's hostname, username and password
$configSwitch = new \Aruba\Config('123.123.123.123', 'admin', 'password');
. - Use the Config object previously created to instanciate the SwitchAPI object
$switch = new \Aruba\SwitchAPI($configSwitch);
. - Start using the library
$runningConf = $switch->getRunningConfig();
.
Documentation
You can find a full documentation here.
Config class
This Config class is used to prepare the mandatory configuration information to instanciate and use the SwitchAPI class. In the constructor you must pass :
- The switch's hostname (FQDN) or IP address
- A valid user's username
- The valid user's password
Optional parameters :
- Timeout : 5000ms. Use
setTimeout()
to change. - SSL verify peer option : TRUE. Use
setSSLVerifyPeer()
to change. - SSL verify host option : 2. Use
setSSLVerifyHost()
to change. - API version : 'v7'. Use
setAPIVersion()
to change (only >= v7 are supported).
Example :
// 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()); }
SwitchAPI class
Usage
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()); }
Available methods
You can browse all available methods here.