Пример #1
0
 public function action_index()
 {
     $out = array('status' => 'ok', 'data' => array());
     \Fuel\Core\Module::load('basic');
     if ($_POST) {
         $val = \Validation::forge();
         $val->add_field('eid', 'vps id', 'max_length[20]');
         $val->add_field('val', 'ip address', 'required|min_length[1]|max_length[20]');
         if ($val->run()) {
             $v = $val->validated('eid');
             $ip = $val->validated('val');
             $vps = \Basic\Model_Vps::find($v);
             foreach ($vps->device->network as $net) {
                 //nope
             }
             if ($vps) {
                 $i = \Basic\Model_Network_Ip::query()->where('ipv4', $ip)->get_one();
                 $ipv4 = new \Ipm\Ipv4object($ip);
                 if (!$i) {
                     $prop = array('networkID' => $net->id, 'nic_name' => '', 'ipv4' => $ip, 'ipv6' => '', 'conn_type' => 0, 'conn_speed' => 0, 'type' => 3, 'addrint' => $ipv4->toInt());
                     $netip = new \Basic\Model_Network_Ip($prop);
                     $netip->save();
                     $vprop = array('vpsID' => $vps->id, 'portID' => $netip->id, 'type' => 1);
                     $port = new \Basic\Model_Vps_Ports($vprop);
                     $port->save();
                     $out['data'] = array('id' => $port->id, 'val' => $ip, 'vps' => $vps->id);
                     $out['status'] = 'ok';
                 }
             }
         }
     }
     echo json_encode($out);
 }
Пример #2
0
 private function update_history($ip)
 {
     //insert disconnect state
     $ipv4 = new \Ipm\Ipv4object($ip->ipv4);
     $ipv4Int = $ipv4->toInt();
     if ($ipv4Int > 0) {
         $q = array('ip_dotted' => $ip->ipv4, 'ip_int' => $ipv4Int, 'time' => time(), 'device' => 0, 'user' => $this->user);
         $history = new \Ipm\Model_History($q);
         $history->save();
     }
 }
Пример #3
0
 private function update_history($ip)
 {
     $ipv4 = new \Ipm\Ipv4object($ip->ipv4);
     $ipv4Int = $ipv4->toInt();
     $device = $ip->network->device;
     if (strlen($ip->ipv4) > 0) {
         $q = array('ip_dotted' => $ip->ipv4, 'ip_int' => $ipv4Int, 'time' => time(), 'device' => $device->id, 'devname' => $device->hostname, 'user' => 1);
         $history = new \Ipm\Model_History($q);
         $history->save();
     }
 }
Пример #4
0
 public static function IsValidLocation($sub, $device, $ip)
 {
     $valid = false;
     $locations = \Ipm\Model_Location::find()->where('node', $sub->id)->get();
     \Log::debug('isvalid ::');
     $device = $ip->network->device;
     $data = array($device->racks->rooms->id, $device->racks->rooms->floors->id, $device->racks->rooms->floors->buildings->id);
     foreach ($locations as $loc) {
         if ($loc->rack > 0) {
             //different racks
             if ($loc->rack == $device->racks->id) {
                 if ($device->rack_pos >= $loc->pos_from and $device->rack_pos <= $loc->pos_to) {
                     \Log::debug('rack ok::' . $ip->ipv4);
                     $valid = true;
                 }
             }
         } else {
             $fields = array('room', 'floor', 'building');
             for ($i = 0; $i <= 2; $i++) {
                 if ($loc[$fields[$i]] > 0) {
                     if ($loc[$fields[$i]] == $data[$i]) {
                         $valid = true;
                         \Log::debug($fields[$i] . '::' . $ip->ipv4);
                     }
                 }
             }
         }
     }
     if (!$valid) {
         \Log::debug('clean ip port::' . $ip->ipv4);
         $ipv4 = new \Ipm\Ipv4object($ip->ipv4);
         $ipv4Int = $ipv4->toInt();
         if ($ipv4Int > 0) {
             $q = array('ip_dotted' => $ip->ipv4, 'ip_int' => $ipv4Int, 'time' => time(), 'device' => 0, 'devname' => '', 'user' => 1);
             if ($ipv4Int > 0) {
                 $history = new \Ipm\Model_History($q);
                 $history->save();
             }
         }
         $ip->ipv4 = '';
         $ip->save();
     }
 }