view->prebootlist = $prebootmapper->fetchAll(); $this->view->update = array(); foreach ($this->view->prebootlist as $preboot) { $this->view->update[$preboot->getID()] = $this->checkupdateAction($preboot); $preboot->setGroupID("[".$preboot->getGroupID()."] ".$groupmapper->find($preboot->getGroupID())->getTitle()); $preboot->setMembershipID("[".$preboot->getMembershipID()."] ".$personmapper->find($membershipmapper->find($preboot->getMembershipID())->getPersonID())->getFirstname()); } } public function createprebootAction() { $groupmapper = new Application_Model_GroupMapper(); if (!isset($_POST["createpreboot"])) { $createprebootForm = new dev_Form_PrebootCreate(array('grouplist' => $groupmapper->fetchAll())); } else { $createprebootForm = new dev_Form_PrebootCreate(array('grouplist' => $groupmapper->fetchAll()), $_POST); if ($createprebootForm->isValid($_POST)) { $preboot = new Application_Model_PreBoot($_POST); $preboot->setMembershipID('1'); $prebootmapper = new Application_Model_PreBootMapper(); try { exec("wget --spider ".$preboot->getPath_preboot()." 2>&1 | grep 'Remote file exists.'", $exists_preboot); if(!array_pop($exists_preboot)) { $this->view->createprebootForm = $createprebootForm; return; } $prebootID = $prebootmapper->save($preboot); $path_preboot = "../resources/bootmedium/$prebootID/"; mkdir($path_preboot , 0777, true); exec("wget -O '".$path_preboot."preboot.zip' ".$preboot->getPath_preboot()); } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; } $this->_redirect('/dev/preboot'); } } $this->view->createprebootForm = $createprebootForm; } public function checkupdateAction($preboot) { $prebootID = $preboot->getID(); exec("wget --server-response --spider ".escapeshellcmd($preboot->getPath_preboot())." 2>&1 | grep 'Last-Modified:'", $prebootdate); //print_a($prebootdate); $prebootdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($prebootdate)))); if(is_file("../resources/bootmedium/$prebootID/preboot.zip")) { $prebootolddate = filemtime("../resources/bootmedium/".$prebootID."/preboot.zip"); } else { $prebootolddate = false; } //print_a($prebootname,$prebootdate,$prebootolddate); if($prebootdate > $prebootolddate) { return true; } else { return false; } } public function updateprebootAction() { $prebootID = $this->_request->getParam('prebootID'); $prebootmapper = new Application_Model_PreBootMapper(); $preboot = new Application_Model_PreBoot(); $prebootmapper->find($prebootID, $preboot); $path_preboot = "../resources/bootmedium/$prebootID/"; exec("wget -O '".$path_preboot."preboot.zip' ".$preboot->getPath_preboot()); $filelist = array(); $filelist = scandir($path_preboot); $bootisoMapper = new Application_Model_BootIsoMapper(); foreach($filelist as $file) { if($file == "." || $file == ".." || $file == "preboot.zip") { //do nothing } else { $bootisoID = str_replace('.zip', '', $file); $serialnumber = $bootisoMapper->find($bootisoID)->getSerialnumber(); copy("../resources/bootmedium/$prebootID/preboot.zip", "../resources/bootmedium/$prebootID/$bootisoID".".zip"); $zip = new ZipArchive(); $res = $zip->open("../resources/bootmedium/$prebootID/$bootisoID".".zip"); if($res == = true) { $rootdir = $zip->getNameIndex(0); $zip->addFromString($rootdir."build/rootfs/serial", $serialnumber); $zip->close(); } } } $this->_redirect('/dev/preboot'); } public function editprebootAction() { $prebootID = $this->_request->getParam('prebootID'); $groupmapper = new Application_Model_GroupMapper(); if (!isset($_POST["editpreboot"])) { $prebootID = $this->_request->getParam('prebootID'); if (!isset($prebootID) || !is_numeric($prebootID)) { $this->_redirect('/dev/preboot'); } else { $preboot = new Application_Model_PreBoot(); $prebootmapper = new Application_Model_PreBootMapper(); $prebootmapper->find($prebootID, $preboot); $editprebootForm = new dev_Form_PrebootEdit(array('grouplist' => $groupmapper->fetchAll())); $editprebootForm->populate($preboot->toArray()); } } else { $editprebootForm = new dev_Form_PrebootEdit(array('grouplist' => $groupmapper->fetchAll()), $_POST); if ($editprebootForm->isValid($_POST)) { $preboot = new Application_Model_PreBoot($_POST); $preboot->setMembershipID('1'); $prebootmapper = new Application_Model_PreBootMapper(); $preboot->setID($prebootID); try { $prebootmapper->save($preboot); } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; } $this->_redirect('/dev/preboot'); } } $this->view->editprebootForm = $editprebootForm; } public function deleteprebootAction() { $prebootID = $this->_request->getParam('prebootID'); if (!isset($prebootID)) { $this->_redirect('/dev/preboot'); } else { $preboot = new Application_Model_PreBoot(); $preboot->setID($prebootID); $prebootmapper = new Application_Model_PreBootMapper(); $prebootmapper->delete($preboot); } $this->_redirect('/dev/preboot'); } }