Beispiel #1
0
 /**
  * 
  * frontend device CRUD connector 
  */
 public function action_device($id = null)
 {
     if ($id) {
         if ($id != 'new') {
         } else {
             //create new device in rack, return value
             if ($id == 'new') {
                 $val = \Validation::forge();
                 $val->add_field('rack', 'rack id', 'required|min_length[1]|max_length[20]');
                 //validate rack
                 if ($val->run()) {
                     $rack = Model_Rack::find($val->validated('rack'));
                     //rack exist
                     if ($rack) {
                         //check position
                         $pos = $this->check_device_position($rack);
                         if ($pos) {
                             $props = array('hostname' => 'new device', 'type' => 0, 'cat' => 0, 'rack' => $rack->id, 'rack_pos' => $pos, 'rack_units' => 1, 'parent_device' => 0, 'meta_default_data' => 0, 'meta_update_time' => time(), 'meta_update_user' => $this->user);
                             //print_r($props);
                             $new = new Model_Device($props);
                             $new->save();
                             $dev = array("id" => $new['id'], "position" => $new['rack_pos'], "units" => $new['rack_units'], "type" => $new['type'], "cat" => 0, "host" => $new['hostname'], "parent" => $new['parent_device']);
                         }
                         echo json_encode($dev);
                     }
                 } else {
                     $error = $val->error();
                     print_r($error);
                 }
             }
         }
     }
 }
Beispiel #2
0
 public function action_new()
 {
     $out = 0;
     if ($_POST) {
         $val = \Validation::forge();
         $val->add_field('rack', 'rack id', 'required|min_length[1]|max_length[20]');
         $val->add_field('p', 'position left|right', 'required|min_length[1]|max_length[20]');
         if ($val->run()) {
             $rack = Model_Rack::find($val->validated('rack'));
             if ($rack) {
                 $size = $rack->size;
                 //left or right side pdu
                 if ($val->validated('p') == 'l') {
                     $m = 1;
                 } else {
                     $m = 2;
                 }
                 $devs = Model_Device::find()->where('rack', $rack->id)->where('cat', 4)->where('meta_default_data', $m)->get();
                 $pos = $this->empty_space($devs, $rack->size);
                 if ($pos >= 0) {
                     $props = array('hostname' => 'vertical pdu', 'type' => 0, 'cat' => 4, 'rack' => $rack->id, 'rack_pos' => 0, 'rack_units' => 0, 'parent_device' => 0, 'meta_default_data' => $m, 'meta_update_time' => time(), 'meta_update_user' => $this->user);
                     //print_r($props);
                     $dev = new Model_Device($props);
                     $dev->save();
                     $this->add_device_default_fields($dev);
                     $power = Model_Device_Power::find()->where('deviceID', $dev->id)->get_one();
                     $this->tmpl = false;
                     $power->pos = $pos;
                     $power->input = 1;
                     $power->output = 8;
                     $power->save();
                     for ($i = 1; $i <= 7; $i++) {
                         $prop = array('powerID' => $power->id, 'conn_type' => 1, 'type' => 2);
                         if ($this->tmpl) {
                             $socket = new Model_Device_Template_Pdu_Socket($prop);
                         } else {
                             $socket = new Model_Device_Power_Socket($prop);
                         }
                         $socket->save();
                     }
                     $out = array('id' => $power->id, 'ru' => 8, 'pos' => $pos, 'devid' => $dev->id, 'name' => $dev->hostname, 'parent_device' => 0, 'out' => $power['output'], 'cur' => $power['current']);
                 }
             }
         }
     }
     echo json_encode(array('data' => $out));
 }
Beispiel #3
0
 private function add_switch($rack, $user, $pos, $name)
 {
     $props = array('hostname' => $name, 'type' => 0, 'cat' => 2, '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);
     $this->net_type = 2;
     $sw = new Model_Device($props);
     $sw->save();
     $this->add_device_default_fields($sw);
     $network = Model_Device_Network::find()->where('deviceID', $sw->id)->get_one();
     $network->ports = 48;
     $network->save();
     $macc = array();
     for ($i = 1; $i <= 48; $i++) {
         $prop = array('networkID' => $network->id, 'mac_address' => '', 'conn_device' => 0, 'vlan' => 0, 'type' => 1);
         $macs = new Model_Network_Mac($prop);
         $macs->save();
         array_push($macc, $macs->id);
     }
     return array('id' => $sw->id, 'macs' => $macc);
 }