|
@@ -33,7 +33,7 @@ class BaseKea implements KeaConfigInterface
|
|
|
*/
|
|
|
private $option_def = [
|
|
|
[
|
|
|
- "name" => "subopt1",
|
|
|
+ "name" => "subopt3",
|
|
|
"code" => 3,
|
|
|
"space" => "pcc",
|
|
|
"type" => "binary",
|
|
@@ -42,7 +42,7 @@ class BaseKea implements KeaConfigInterface
|
|
|
"encapsulate" => "",
|
|
|
],
|
|
|
[
|
|
|
- "name" => "subopt2",
|
|
|
+ "name" => "subopt6",
|
|
|
"code" => 6,
|
|
|
"space" => "pcc",
|
|
|
"type" => "binary",
|
|
@@ -51,7 +51,7 @@ class BaseKea implements KeaConfigInterface
|
|
|
"encapsulate" => "",
|
|
|
],
|
|
|
[
|
|
|
- "name" =>"clabs",
|
|
|
+ "name" =>"option122",
|
|
|
"code" => 122,
|
|
|
"space" => "dhcp4",
|
|
|
"type" => "empty",
|
|
@@ -174,15 +174,15 @@ class BaseKea implements KeaConfigInterface
|
|
|
private function hooksLibrariesConfig($data)
|
|
|
{
|
|
|
$this->hooks_libraries = [
|
|
|
- [
|
|
|
- 'library' => '/opt/hooks/mysql/kea-hook-flowdat3-mysql.so',
|
|
|
- 'parameters' => [
|
|
|
- "host" => $data['db']['host'],
|
|
|
- "database" => $data['db']['database'],
|
|
|
- "user" => $data['db']['user'],
|
|
|
- "password" => $data['db']['password'],
|
|
|
- ]
|
|
|
- ],
|
|
|
+ // [
|
|
|
+ // 'library' => '/opt/hooks/mysql/kea-hook-flowdat3-mysql.so',
|
|
|
+ // 'parameters' => [
|
|
|
+ // "host" => $data['db']['host'],
|
|
|
+ // "database" => $data['db']['database'],
|
|
|
+ // "user" => $data['db']['user'],
|
|
|
+ // "password" => $data['db']['password'],
|
|
|
+ // ]
|
|
|
+ // ],
|
|
|
[
|
|
|
"library" => "/opt/hooks/amqp/kea-hook-flowdat3.so",
|
|
|
"parameters" => [
|
|
@@ -193,48 +193,48 @@ class BaseKea implements KeaConfigInterface
|
|
|
],
|
|
|
];
|
|
|
|
|
|
- // $dhcp = $data['dhcp'];
|
|
|
- // $hosts = $data['hosts'];
|
|
|
- //
|
|
|
- // $hook = [
|
|
|
- // 'library' => $data['library'],
|
|
|
- // ];
|
|
|
- //
|
|
|
- // $dhcpModelParams = $dhcp && $dhcp->getDhcpModel() ? $dhcp->getDhcpModel()->getData('parameters') : null;
|
|
|
- //
|
|
|
- // $option122 = isset($dhcpModelParams['option122']) ? $dhcpModelParams['option122'] : null;
|
|
|
- // $ip = isset($dhcpModelParams['ip']) ? $dhcpModelParams['ip'] : null;
|
|
|
- // if ($option122 && $ip) {
|
|
|
- // $macs = [];
|
|
|
- // foreach ($hosts as $host) {
|
|
|
- // if ($host->getMac()) {
|
|
|
- // $macs[] = $host->getMac();
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // $hook['parameters']['option122'] = [
|
|
|
- // $ip => $macs
|
|
|
- // ];
|
|
|
- // }
|
|
|
- //
|
|
|
- // $remote_id_map = isset($dhcpModelParams['remote-id-map']) ? $dhcpModelParams['remote-id-map'] : null;
|
|
|
- // if ($remote_id_map) {
|
|
|
- // $hostConfig = [];
|
|
|
- // foreach ($hosts as $host) {
|
|
|
- // if ($host->getMac()) {
|
|
|
- // $mac = $host->getMac();
|
|
|
- // $state = $host->getState();
|
|
|
- // $shortname = $host->getHostType()->getShortname();
|
|
|
- //
|
|
|
- // $client_class = $state != HostStatus::STATE_NONE ? $state : $shortname;
|
|
|
- //
|
|
|
- // $hostConfig[$client_class][] = $mac;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // $hook['parameters']['remote-id-map'] = $hostConfig;
|
|
|
- // }
|
|
|
- //
|
|
|
- // $this->hooks_libraries[] = $hook;
|
|
|
+ $dhcp = $data['dhcp'];
|
|
|
+ $hosts = $data['hosts'];
|
|
|
+
|
|
|
+ $hook = [
|
|
|
+ 'library' => $data['library'],
|
|
|
+ ];
|
|
|
+
|
|
|
+ $dhcpModelParams = $dhcp && $dhcp->getDhcpModel() ? $dhcp->getDhcpModel()->getData('parameters') : null;
|
|
|
+
|
|
|
+ $option122 = isset($dhcpModelParams['option122']) ? $dhcpModelParams['option122'] : null;
|
|
|
+ $ip = isset($dhcpModelParams['ip']) ? $dhcpModelParams['ip'] : null;
|
|
|
+ if ($option122 && $ip) {
|
|
|
+ $macs = [];
|
|
|
+ foreach ($hosts as $host) {
|
|
|
+ if ($host->getMac() != '' && $host->getMtaEnabled() == true) {
|
|
|
+ $macs[] = $host->getMac();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $hook['parameters']['option122'] = [
|
|
|
+ $ip => $macs
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ $remote_id_map = isset($dhcpModelParams['remote-id-map']) ? $dhcpModelParams['remote-id-map'] : null;
|
|
|
+ if ($remote_id_map) {
|
|
|
+ $hostConfig = [];
|
|
|
+ foreach ($hosts as $host) {
|
|
|
+ if ($host->getMac()) {
|
|
|
+ $mac = $host->getMac();
|
|
|
+ $state = $host->getState();
|
|
|
+ $shortname = $host->getHostType()->getShortname();
|
|
|
+
|
|
|
+ $client_class = $state != HostStatus::STATE_NONE ? $state : $shortname;
|
|
|
+
|
|
|
+ $hostConfig[$client_class][] = $mac;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $hook['parameters']['remote-id-map'] = $hostConfig;
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->hooks_libraries[] = $hook;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -366,21 +366,21 @@ class BaseKea implements KeaConfigInterface
|
|
|
|
|
|
$option_122_data = [
|
|
|
[
|
|
|
- "name" => "subopt1",
|
|
|
+ "name" => "subopt3",
|
|
|
"space" => "pcc",
|
|
|
"code" => 3,
|
|
|
"csv-format" => false,
|
|
|
"data" => $provisioningServerBinary,
|
|
|
],
|
|
|
[
|
|
|
- "name" => "subopt2",
|
|
|
+ "name" => "subopt6",
|
|
|
"space" => "pcc",
|
|
|
"code" => 6,
|
|
|
"csv-format" => false,
|
|
|
"data" => $provisioningTypeBinary,
|
|
|
],
|
|
|
[
|
|
|
- "name" => "clabs",
|
|
|
+ "name" => "option122",
|
|
|
"space" => "dhcp4",
|
|
|
"code" => 122,
|
|
|
"csv-format" => false,
|