瀏覽代碼

Assert/Count relay ip address en NetGroup

Guillermo Espinoza 6 年之前
父節點
當前提交
01cb74bc4c

+ 7 - 2
src/IPv4Bundle/Admin/NetGroupAdmin.php

@@ -29,6 +29,9 @@ class NetGroupAdmin extends BaseAdmin
         $listMapper
             ->add('name')
             ->add('opcode')
+            ->add('relayString', null, [
+                'label' => 'list.label_relay',
+            ])
             ->add('_action', null, array(
                 'actions' => array(
                     'show' => array(),
@@ -48,7 +51,7 @@ class NetGroupAdmin extends BaseAdmin
             ->add('name')
             ->add('opcode')
             ->add('relay', 'collection', [
-                'allow_add' => true, 
+                'allow_add' => true,
                 'allow_delete' => true,
                 'required'  => false,
             ]);
@@ -62,7 +65,9 @@ class NetGroupAdmin extends BaseAdmin
         $showMapper
             ->add('name')
             ->add('opcode')
-            ->add('relay')
+            ->add('relayString', null, [
+                'label' => 'show.label_relay',
+            ])
         ;
     }
 }

+ 16 - 4
src/IPv4Bundle/Entity/NetGroup.php

@@ -52,7 +52,7 @@ class NetGroup implements TenancyIdTraitInterface, PreRemoveInterface
      * @ORM\OneToMany(targetEntity="SubNet", mappedBy="netGroup")
      */
     protected $subNets;
-    
+
     /**
      * @var array
      *
@@ -62,6 +62,10 @@ class NetGroup implements TenancyIdTraitInterface, PreRemoveInterface
      *     @Assert\NotBlank,
      *     @Assert\Ip
      * })
+     * @Assert\Count(
+     *      min = 1,
+     *      minMessage = "You must specify at least one relay IP address"
+     * )
      */
     protected $relay = array();
 
@@ -134,7 +138,7 @@ class NetGroup implements TenancyIdTraitInterface, PreRemoveInterface
 
         return $entities;
     }
-    
+
     /**
      * @return array
      */
@@ -142,7 +146,15 @@ class NetGroup implements TenancyIdTraitInterface, PreRemoveInterface
     {
         return $this->relay;
     }
-    
+
+    /**
+     * @return string
+     */
+    public function getRelayString()
+    {
+        return implode(',', array_values($this->relay));
+    }
+
     /**
      * @param array $relay
      *
@@ -151,7 +163,7 @@ class NetGroup implements TenancyIdTraitInterface, PreRemoveInterface
     public function setRelay($relay)
     {
         $this->relay = $relay;
-        
+
         return $this;
     }
 

+ 1 - 0
src/IPv4Bundle/Resources/translations/validators.es.yml

@@ -1,3 +1,4 @@
 pool.lastip.error: La última ip debe ser mayor a la primera ip
 pool.ips.outrange: La primera ip y la última ip deben pertenecer a la subred
 subnet.address.error: La dirección no posee el formato adecuado
+You must specify at least one relay IP address: Debe especificar al menos un relay IP address

+ 9 - 9
src/KeaBundle/Services/BaseKea.php

@@ -110,9 +110,9 @@ class BaseKea implements KeaConfigInterface
 
             $hostType = $subnet->getAllowedHostType();
             $client_class = '';
-            /* if ($hostType) {
+            if ($hostType != 'Cablemodem') {
                 $client_class = $hostType->getShortname();
-            } */
+            }
             if ($subnet->getStatus() != HostStatus::STATE_NONE && $subnet->getStatus() != '') {
                 if ($client_class != '') {
                     $client_class .= '-';
@@ -187,13 +187,13 @@ 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) {
@@ -203,12 +203,12 @@ class BaseKea implements KeaConfigInterface
         //             $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 = [];
@@ -217,9 +217,9 @@ class BaseKea implements KeaConfigInterface
         //             $mac = $host->getMac();
         //             $state = $host->getState();
         //             $shortname = $host->getHostType()->getShortname();
-        // 
+        //
         //             $client_class = $state != HostStatus::STATE_NONE ? $state : $shortname;
-        // 
+        //
         //             $hostConfig[$client_class][] = $mac;
         //         }
         //     }