Files
docker-rconfig/app/Http/Controllers/Connections/MainConnectionManager.php
2024-10-19 18:23:55 +00:00

50 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Connections;
use App\Http\Controllers\Connections\Params\DeviceParams;
class MainConnectionManager
{
protected $deviceRecord;
protected $deviceParamsObject;
protected $telnetConnection;
protected $sshConnection;
protected $debug;
public function __construct(array $deviceRecord, $debug)
{
$this->deviceRecord = $deviceRecord;
$this->debug = $debug;
}
public function setupConnectAndReturnOutput()
{
$this->getAllConnectionParamsArray();
if ($this->deviceParamsObject->connect['protocol'] == 'telnet') {
$this->telnetConnection = new TelnetConnectionManager($this->deviceParamsObject, $this->debug);
return $this->telnetConnection->telnetConnectionAndOutput();
} elseif ($this->deviceParamsObject->connect['protocol'] == 'ssh') {
$this->sshConnection = new SSHConnectionManager($this->deviceParamsObject, $this->debug);
return $this->sshConnection->SshConnectionAndOutput();
} else {
throw new \Exception('Error Processing '.__CLASS__.' - '.__FUNCTION__.' Request. Your rConfig template file could be invalid.', 1);
}
}
public function getAllConnectionParamsArray()
{
$deviceParams = new DeviceParams($this->deviceRecord);
$this->deviceParamsObject = $deviceParams->getAllDeviceParams();
return $this->deviceParamsObject;
}
}