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); }
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(); } }
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(); } }
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(); } }