Example #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);
 }
Example #2
0
 public function action_index()
 {
     $ip_data = Model_Network_Ip::find()->related('network')->related('network.device')->where('network.device.meta_update_user', $this->user)->order_by(\DB::expr('INET_ATON(ipv4)'), 'asc')->get();
     //$ip_data=Model_Network_Ip::find()->order_by(DB::expr('INET_ATON(ipv4)'),'asc')->get();
     $out = array('data' => array());
     foreach ($ip_data as $ip) {
         $vpsdata = array();
         $vps = $ip->network->device->vps;
         $d = array('ip' => $ip['ipv4'], 'host' => $ip->network->device->hostname, 'vps' => $this->vps($vps));
         if ($ip['ipv4'] != '') {
             array_push($out['data'], $d);
         }
     }
     echo json_encode($out);
 }
Example #3
0
 private function add_server($pos, $rack, $user, $sw, $macs, $pdu)
 {
     $pduid = $pdu['id'];
     $sockets = $pdu['sockets'];
     $hostnames = array("", "", "", "", "", "", "", "", "", "akcp-sp2", "c1-activedirectory-1", "c1-activedirectory-2", "c1-activedirectory-3", "c1-dns-1", "c1-dns-2", "c1-dns-3", "c1-dns-4", "c1-exchange-1", "c1-exchange-2", "c1-exchange-3", "c1-exchange-4", "c1-linux-1", "c1-linux-2", "c1-linux-3", "c1-linux-4", "c1-linux-5", "c1-mysql-1", "c1-mysql-2", "c1-mysql-3", "c1-mysql-4", "c1-web-1", "c1-web-2", "c1-web-3", "c1-web-4", "c1-windows-1", "c1-windows-2", "c1-windows-3", "c1-windows-4", "c1-windows-5", "c1-windows-6", "c2-exchange-3", "c2-exchange-4", "c2-mysql-1", "c2-mysql-2", "c2-web-1", "c2-windows-1", "c2_windows-2", "c3-linux-1", "c3-linux-2", "c3-linux-3", "c3-linux-4", "c3-windows-1", "c3-windows-2", "c3-windows-3", "fujitsu-tx-s2", "knuerr-diview", "knuerr-rmsII", "messpc", "sensatronics-e4", "sensatronics-em1", "sensatronics-senturion");
     $props = array('hostname' => $hostnames[$pos], 'type' => 0, 'cat' => 1, 'rack' => $rack->id, 'rack_pos' => $pos, 'rack_units' => 1, 'parent_device' => 0, 'meta_default_data' => 0, 'meta_update_time' => time(), 'meta_update_user' => $user);
     //print_r($props);
     $server = new Model_Device($props);
     $server->save();
     $this->net_type = 1;
     $this->add_device_default_fields($server);
     $network = Model_Device_Network::find()->where('deviceID', $server->id)->get_one();
     $network->nics = 2;
     $network->save();
     for ($i = 0; $i <= 1; $i++) {
         $prop = array('networkID' => $network->id, 'nic_name' => '', 'ipv4' => '192.168.8.' . $i, 'ipv6' => '', 'conn_type' => 1, 'conn_speed' => 3, 'type' => 1);
         $ip = new Model_Network_Ip($prop);
         $ip->save();
     }
     //add cabel
     $props = array('dev1' => $sw, 'port1' => $macs[$pos - 9], 'dev2' => $server->id, 'port2' => $ip->id, 'name1' => $pos - 9, 'name2' => 2, 'type' => 1, 'meta_update_time' => time(), 'meta_update_user' => $user);
     $cable = new Model_Cable($props);
     $cable->save();
     $power = Model_Device_Power::find()->where('deviceID', $server->id)->get_one();
     $powsockets = $power->socket;
     foreach ($powsockets as $sock) {
         $n = $pos - 9;
         $props = array('dev1' => $pduid, 'port1' => $sockets[38 - $n], 'dev2' => $server->id, 'port2' => $sock->id, 'name1' => $pos - 9, 'name2' => 1, 'type' => 2, 'meta_update_time' => time(), 'meta_update_user' => $user);
         $cable = new Model_Cable($props);
         $cable->save();
     }
     /*
     
     
     $props=Array(
     		'dev1'=>$sw,
     		'port1'=>$macs[$pos-9],
     		'dev2'=>$server->id,
     		'port2'=>$ip->id,
     		'name1'=>$pos-9,
     		'name2'=>1,
     		'type'=>2,
     		'meta_update_time'=>time(),
     		'meta_update_user'=>$user
     );
     $cable=new Model_Cable($props);
     $cable->save();
     */
     return $server;
 }
Example #4
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;
 }
Example #5
0
 private function add_server($pos, $rack, $user, $sw, $macs, $pdu)
 {
     $pduid = $pdu['id'];
     $sockets = $pdu['sockets'];
     $props = array('hostname' => 's' . $pos . '.rck1.fl1.noclayer.com', 'type' => 0, 'cat' => 1, 'rack' => $rack->id, 'rack_pos' => $pos, 'rack_units' => 1, 'parent_device' => 0, 'meta_default_data' => 0, 'meta_update_time' => time(), 'meta_update_user' => $user);
     //print_r($props);
     $server = new Model_Device($props);
     $server->save();
     $this->net_type = 1;
     $this->add_device_default_fields($server);
     $network = Model_Device_Network::find()->where('deviceID', $server->id)->get_one();
     $network->nics = 2;
     $network->save();
     for ($i = 0; $i <= 1; $i++) {
         $prop = array('networkID' => $network->id, 'nic_name' => '', 'ipv4' => '192.168.8.' . $i, 'ipv6' => '', 'conn_type' => 1, 'conn_speed' => 3, 'type' => 1);
         $ip = new Model_Network_Ip($prop);
         $ip->save();
     }
     //add cabel
     $props = array('dev1' => $sw, 'port1' => $macs[$pos - 9], 'dev2' => $server->id, 'port2' => $ip->id, 'name1' => $pos - 9, 'name2' => 2, 'type' => 1, 'meta_update_time' => time(), 'meta_update_user' => $user);
     $cable = new Model_Cable($props);
     $cable->save();
     $power = Model_Device_Power::find()->where('deviceID', $server->id)->get_one();
     $powsockets = $power->socket;
     foreach ($powsockets as $sock) {
         $n = $pos - 9;
         $props = array('dev1' => $pduid, 'port1' => $sockets[38 - $n], 'dev2' => $server->id, 'port2' => $sock->id, 'name1' => $pos - 9, 'name2' => 1, 'type' => 2, 'meta_update_time' => time(), 'meta_update_user' => $user);
         $cable = new Model_Cable($props);
         $cable->save();
     }
     /*
     
     
      $props=Array(
      'dev1'=>$sw,
      'port1'=>$macs[$pos-9],
      'dev2'=>$server->id,
      'port2'=>$ip->id,
      'name1'=>$pos-9,
      'name2'=>1,
      'type'=>2,
      'meta_update_time'=>time(),
      'meta_update_user'=>$user
      );
      $cable=new Model_Cable($props);
      $cable->save();
     */
     return $server;
 }
Example #6
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));
             }
         }
     }
 }
Example #7
0
 private function insert_template_to_device_data($field, $new_field)
 {
     #hdd element data
     #####################################################################################
     if ($field->type == 'hdd') {
         //get raid data
         $old_raid = Model_Raid::find()->where('tempfieldID', $field->id)->get_one();
         $hdd = Model_Raid::find()->where('fieldsetID', $new_field->id)->get_one();
         //create new hardware_raid
         $hdd->raid_type = $old_raid->raid_type;
         $hdd->size = $old_raid->size;
         $hdd->total = $old_raid->total;
         $hdd->meta_update_time = time();
         $hdd->meta_update_user = $this->user;
         //$hdd=new Model_Raid($prop);
         $hdd->save();
         //get all discs from array
         foreach ($old_raid->rows as $disc) {
             $m = array('model' => $disc->model, 'size' => $disc->size, 'vport' => $disc->vport, 'serial_number' => $disc->serial_number, 'hardware_raid' => $hdd->id, 'meta_update_time' => time(), 'meta_update_user' => $this->user);
             $discs = new Model_Raid_Data($m);
             $discs->save();
         }
     }
     //ram
     #####################################################################################
     if ($field->type == 'ram') {
         //get ram data
         $old_ram = Model_Ram::find()->where('tempfieldID', $field->id)->get_one();
         $ram = Model_Ram::find()->where('fieldsetID', $new_field->id)->get_one();
         //create new hardware_ram
         $ram->ram_type = $old_ram->ram_type;
         $ram->size = $old_ram->size;
         $ram->total = $old_ram->total;
         $ram->meta_update_time = time();
         $ram->meta_update_user = $this->user;
         $ram->save();
         //get all modules from array
         foreach ($old_ram->rows as $modul) {
             $m = array('hardware_ram' => $ram->id, 'meta_update_time' => time(), 'meta_update_user' => $this->user, 'model' => $modul->model, 'size' => $modul->size, 'port' => $modul->port, 'serial_number' => $modul->serial_number);
             $rams = new Model_Ram_Data($m);
             $rams->save();
         }
     }
     //images
     #####################################################################################
     if ($field->type == 'img') {
         //get field images
         $temp_imags = Model_Device_Template_Image::find()->where('elementID', $field->id)->get();
         foreach ($temp_imags as $img) {
             $props = array('name' => $img->name, 'elementID' => $new_field->id, 'type' => $img->type, 'width' => $img->width, 'height' => $img->height);
             $imgs = new Model_Image($props);
             $imgs->save();
             copy(DOCROOT . 'images/temp' . $img->id . '.png', DOCROOT . 'images/' . $imgs->id . '.png');
             copy(DOCROOT . 'images/tumb/temp' . $img->id . '.png', DOCROOT . 'images/tumb/' . $imgs->id . '.png');
         }
     }
     //power out (PDU,ATS,UPS)
     #####################################################################################
     if ($field->type == 'power_out') {
         //power is set automatic as field saved
         $power = Model_Device_Power::find()->where('fieldsetID', $new_field->id)->get_one();
         $extra = $field->power;
         if ($new_field->device->meta_default_data > 0) {
             $max = 42;
         } else {
             $max = 24;
         }
         if ($extra->output > $max) {
             $extra->output = $max;
         }
         //update default data with template power data
         $power->input = $extra->input;
         $power->output = $extra->output;
         $power->type = $extra->type;
         $power->current = $extra->current;
         if ($power->ru == 0) {
             $power->ru = $extra->ru;
             $power->pos = $extra->pos;
         }
         $power->save();
         //delete any default socket
         $defsockets = Model_Device_Power_Socket::find()->where('powerID', $power->id)->get();
         foreach ($defsockets as $ds) {
             $ds->delete();
         }
         $n = 1;
         foreach ($field->power->socket as $socket) {
             if ($n > $max) {
                 break;
             }
             $prop = array('powerID' => $power->id, 'conn_type' => $socket->conn_type, 'type' => $socket->type);
             $newsocket = new Model_Device_Power_Socket($prop);
             $newsocket->save();
             if ($socket->type == 2) {
                 $n++;
             }
         }
     }
     //power in (Server,Switch,Router,...)
     #####################################################################################
     if ($field->type == 'power_in') {
         //power is set automatic as field saved
         $power = Model_Device_Power::find()->where('fieldsetID', $new_field->id)->get_one();
         $extra = $field->power;
         //update default data with template power data
         $power->input = $extra->input;
         $power->output = $extra->output;
         $power->type = $extra->type;
         $power->current = $extra->current;
         $power->ru = $extra->ru;
         $power->pos = $extra->pos;
         $power->save();
         //delete any default socket
         $defsockets = Model_Device_Power_Socket::find()->where('powerID', $power->id)->get();
         foreach ($defsockets as $ds) {
             $ds->delete();
         }
         foreach ($field->power->socket as $socket) {
             $prop = array('powerID' => $power->id, 'conn_type' => $socket->conn_type, 'type' => $socket->type);
             $newsocket = new Model_Device_Power_Socket($prop);
             $newsocket->save();
         }
     }
     //kvm out (KVM switch)
     #####################################################################################
     if ($field->type == 'kvm_out') {
         //power is set automatic as field saved
         $kvm = Model_Device_Kvm::find()->where('fieldsetID', $new_field->id)->get_one();
         $extra = $field->kvm;
         //update default data with template power data
         $kvm->input = $extra->input;
         $kvm->output = $extra->output;
         $kvm->type = $extra->type;
         $kvm->save();
         //delete any default socket
         $defsockets = Model_Device_Kvm_Socket::find()->where('kvmID', $kvm->id)->get();
         foreach ($defsockets as $ds) {
             $ds->delete();
         }
         foreach ($field->kvm->socket as $socket) {
             $prop = array('kvmID' => $kvm->id, 'conn_type' => $socket->conn_type, 'type' => $socket->type);
             $newsocket = new Model_Device_Kvm_Socket($prop);
             $newsocket->save();
         }
     }
     //KVM in (Server,Switch,Router,...)
     #####################################################################################
     if ($field->type == 'kvm_in') {
         //kvm is set automatic as field saved
         $kvm = Model_Device_Kvm::find()->where('fieldsetID', $new_field->id)->get_one();
         $extra = $field->kvm;
         //update default data with template kvm data
         $kvm->input = $extra->input;
         $kvm->output = $extra->output;
         $kvm->type = $extra->type;
         $kvm->save();
         //delete any default socket
         $defsockets = Model_Device_Kvm_Socket::find()->where('kvmID', $kvm->id)->get();
         foreach ($defsockets as $ds) {
             $ds->delete();
         }
         foreach ($field->kvm->socket as $socket) {
             $prop = array('kvmID' => $kvm->id, 'conn_type' => $socket->conn_type, 'type' => $socket->type);
             $newsocket = new Model_Device_Kvm_Socket($prop);
             $newsocket->save();
         }
     }
     //network
     #####################################################################################
     if ($field->type == 'network') {
         //newtwork is set automatic as field saved
         $network = Model_Device_Network::find()->where('fieldsetID', $new_field->id)->get_one();
         $extra = $field->network;
         //update default data with  template network data
         $network->type = $extra->type;
         $network->nics = $extra->nics;
         $network->vports = $extra->vports;
         $network->ports = $extra->ports;
         $network->uplinks = $extra->uplinks;
         $network->save();
         switch ($network->type) {
             case 1:
                 //IP addresses
                 foreach ($field->network->ip as $ip) {
                     $prop = array('networkID' => $network->id, 'nic_name' => $ip->nic_name, 'ipv4' => $ip->ipv4, 'ipv6' => $ip->ipv6, 'conn_type' => $ip->conn_type, 'conn_speed' => $ip->conn_speed, 'type' => $ip->type);
                     $ips = new Model_Network_Ip($prop);
                     $ips->save();
                 }
                 break;
                 //MAC and VLAN
             //MAC and VLAN
             case 2:
                 $vlan2port = array();
                 //if no vlan is set to mac
                 $vlan2port[0] = 0;
                 foreach ($field->network->vlan as $vlan) {
                     $prop = array('networkID' => $network->id, 'name' => $vlan->name);
                     $vlans = new Model_Network_Vlan($prop);
                     $vlans->save();
                     $vlan2port[$vlan->id] = $vlans->id;
                 }
                 foreach ($field->network->mac as $mac) {
                     $prop = array('networkID' => $network->id, 'mac_address' => $mac->mac_address, 'conn_device' => $mac->conn_device, 'vlan' => $vlan2port[$mac->vlan], 'type' => $mac->type);
                     $macs = new Model_Network_Mac($prop);
                     $macs->save();
                 }
                 break;
             case 3:
                 foreach ($field->network->mac as $mac) {
                     $prop = array('networkID' => $network->id, 'mac_address' => $mac->mac_address, 'conn_device' => $mac->conn_device, 'vlan' => $mac->vlan, 'type' => $mac->type);
                     $macs = new Model_Network_Mac($prop);
                     $macs->save();
                 }
                 break;
         }
     }
 }