瀏覽代碼

Kea host reservation preRemove

Espinoza Guillermo 6 年之前
父節點
當前提交
2a3f097bde
共有 1 個文件被更改,包括 13 次插入3 次删除
  1. 13 3
      src/HostBundle/EventListener/KEAHostReservationSubscriber.php

+ 13 - 3
src/HostBundle/EventListener/KEAHostReservationSubscriber.php

@@ -32,6 +32,7 @@ class KEAHostReservationSubscriber implements EventSubscriber
         return array(
             'postPersist',
             'postUpdate',
+            'preRemove',
         );
     }
 
@@ -54,12 +55,21 @@ class KEAHostReservationSubscriber implements EventSubscriber
     /**
      * @param LifecycleEventArgs $args
      */
-    public function execute(LifecycleEventArgs $args)
+    public function preRemove(LifecycleEventArgs $args)
+    {
+        $this->execute($args, true);
+    }
+
+    /**
+     * @param LifecycleEventArgs $args
+     * @param boolean $remove
+     */
+    public function execute(LifecycleEventArgs $args, $remove = false)
     {
         $entity = $args->getEntity();
         if ($entity instanceof Host) {
             
-            if ($entity->getFixedAddress()) {
+            if ($entity->getFixedAddress() && $remove == false) {
                 $query = "
                 INSERT INTO kea.hosts (dhcp_identifier,
                 dhcp_identifier_type,
@@ -78,7 +88,7 @@ class KEAHostReservationSubscriber implements EventSubscriber
             $databaseConnection = $this->serviceContainer->get('database_connection');
             $stmt = $databaseConnection->prepare($query);
             $stmt->bindValue("mac", hex2bin(str_replace(':', '', $entity->getMac())));
-            if ($entity->getFixedAddress()) {
+            if ($entity->getFixedAddress() && $remove == false) {
                 $stmt->bindValue("type", 'hw-address');
                 $stmt->bindValue("ip", $entity->getFixedAddress());
             }