Exemple #1
0
 public function action_set()
 {
     $out = array('status' => 'no');
     if (isset($this->field)) {
         $out = array('status' => 'ok');
         $val = \Validation::forge();
         $val->add_field('m', 'element num', 'required|min_length[1]|max_length[5]');
         $val->add_field('val', 'value', 'max_length[250]');
         $val->add_field('ip', 'ip_element id', 'required|min_length[1]|max_length[20]');
         if ($val->run()) {
             if ($this->tmpl) {
                 $ip = Model_Device_Template_Network_Ip::find($val->validated('ip'));
             } else {
                 $ip = Model_Network_Ip::find($val->validated('ip'));
             }
             if ($ip) {
                 $out['ip'] = $ip->id;
                 $new_value = $val->validated('val');
                 switch ($val->validated('m')) {
                     case 1:
                         //nic name
                         $ip->nic_name = $new_value;
                         break;
                     case 2:
                         //ipv4
                         if ($this->isValidIP($new_value)) {
                             $ip->ipv4 = $new_value;
                         } else {
                             $out['status'] = 'bad IP';
                         }
                         $out['old'] = $ip->ipv4;
                         break;
                     case 3:
                         //conn type
                         $ip->conn_type = $new_value;
                         break;
                     case 4:
                         //ipv6
                         if ($this->isValidIPv6($new_value)) {
                             $ip->ipv6 = $new_value;
                         } else {
                             $out['status'] = 'bad IPv6';
                         }
                         $out['old'] = $ip->ipv6;
                         break;
                     case 5:
                         //conn speed
                         $ip->conn_speed = $new_value;
                         break;
                 }
                 $ip->save();
             }
         }
     }
     echo json_encode($out);
 }
Exemple #2
0
 public function data()
 {
     $data = array('net_type' => $this->net_type, 'con_type' => $this->con_type, 'net' => $this->field->network);
     if ($this->net_type == 1) {
         $data['conn'] = $this->connection_data();
         if ($this->tmpl) {
             $data['ips'] = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get();
         } else {
             $data['ips'] = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get();
         }
     }
     if ($this->net_type == 2) {
         $data['conn'] = $this->connection_data();
         if ($this->tmpl) {
             $data['ips'] = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get();
             $data['macs'] = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get();
             $data['vlans'] = Model_Device_Template_Network_Vlan::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get();
         } else {
             $data['ips'] = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get();
             $data['macs'] = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get();
             $data['vlans'] = Model_Network_Vlan::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get();
         }
     }
     if ($this->net_type == 3) {
         $data['conn'] = $this->connection_data();
         if ($this->tmpl) {
             $data['ips'] = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get();
             $data['macs'] = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get();
             $data['vlans'] = Model_Device_Template_Network_Vlan::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get();
         } else {
             $data['ips'] = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get();
             $data['macs'] = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get();
             $data['vlans'] = Model_Network_Vlan::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get();
         }
     }
     if ($this->tmpl) {
         $data['cables'] = array();
         //Model_Cable::find()->where('dev1',$this->field->templateID)->or_where('dev2',$this->field->templateID)->get();
     } else {
         $data['cables'] = Model_Cable::find()->where('dev1', $this->field->deviceID)->or_where('dev2', $this->field->deviceID)->get();
     }
     return $data;
 }
Exemple #3
0
 public function action_index()
 {
     if (isset($this->field)) {
         $val = \Validation::forge();
         $out = true;
         $val->add_field('act', 'action id', 'required|min_length[1]|max_length[20]');
         $val->add_field('val', 'value', 'required|min_length[1]');
         if ($val->run()) {
             $size = $val->validated('val');
             switch ($val->validated('act')) {
                 case 'act1':
                     //number of NIC
                     if ($this->tmpl) {
                         $ip_q = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->where('type', 1);
                     } else {
                         $ip_q = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->where('type', 1);
                     }
                     $this->fix_fields($size, $ip_q->count(), 1);
                     $this->field->network->nics = $size;
                     $this->field->network->save();
                     break;
                 case 'act2':
                     //number of virtual ports
                     if ($this->tmpl) {
                         $ip_q = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->where('type', 2);
                     } else {
                         $ip_q = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->where('type', 2);
                     }
                     $this->fix_fields($size, $ip_q->count(), 2);
                     $this->field->network->vports = $size;
                     $this->field->network->save();
                     break;
                 case 'act3':
                     //number of ports(switch)
                     if ($this->tmpl) {
                         $ip_q = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->where('type', 1);
                     } else {
                         $ip_q = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->where('type', 1);
                     }
                     $this->fix_MACfields($size, $ip_q->count(), 1);
                     $this->field->network->ports = $size;
                     $this->field->network->save();
                     break;
                 case 'act4':
                     //number of uplinks(switch)
                     if ($this->tmpl) {
                         $ip_q = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->where('type', 2);
                     } else {
                         $ip_q = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->where('type', 2);
                     }
                     $this->fix_MACfields($size, $ip_q->count(), 2);
                     $this->field->network->uplinks = $size;
                     $this->field->network->save();
                     break;
                 case 'act5':
                     //number of uplinks(switch)
                     $out = false;
                     $this->field->network->config_data = $size;
                     $this->field->network->save();
                     break;
                 case 'act6':
                     // pach panel ports
                     if ($this->tmpl) {
                         $ip_q = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id);
                     } else {
                         $ip_q = Model_Network_Mac::find()->where('networkID', $this->field->network->id);
                     }
                     $this->fix_MACfields($size, $ip_q->count(), 3);
                     $this->field->network->ports = $size;
                     $this->field->network->save();
                     break;
             }
             if ($out) {
                 $data = $this->data();
                 return \Response::forge(\View::forge('network/windata', $data));
             }
         }
     }
 }