diff options
Diffstat (limited to 'application/modules/dev/controllers/BootosController.php')
| -rw-r--r-- | application/modules/dev/controllers/BootosController.php | 398 |
1 files changed, 194 insertions, 204 deletions
diff --git a/application/modules/dev/controllers/BootosController.php b/application/modules/dev/controllers/BootosController.php index 55537a9..dfe2765 100644 --- a/application/modules/dev/controllers/BootosController.php +++ b/application/modules/dev/controllers/BootosController.php @@ -1,218 +1,208 @@ -<?php +<? php /* * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg - * This program is free software distributed under the GPL version 2. - * See http://gpl.openslx.org/ - * - * If you have any feedback please consult http://feedback.openslx.org/ and - * send your suggestions, praise, or complaints to feedback@openslx.org - * - * General information about OpenSLX can be found at http://openslx.org/ - */ - -class dev_BootosController extends Zend_Controller_Action -{ - - public function init() - { - $db = Zend_Db_Table::getDefaultAdapter(); - } +* This program is free software distributed under the GPL version 2. +* See http://gpl.openslx.org/ +* +* If you have any feedback please consult http://feedback.openslx.org/ and +* send your suggestions, praise, or complaints to feedback@openslx.org +* +* General information about OpenSLX can be found at http://openslx.org/ +*/ + +class dev_BootosController extends Zend_Controller_Action { + + public function init() { + $db = Zend_Db_Table::getDefaultAdapter(); + } + + public function indexAction() { + + $bootosmapper = new Application_Model_BootOsMapper(); + + $groupmapper = new Application_Model_GroupMapper(); + $membershipmapper = new Application_Model_MembershipMapper(); + $personmapper = new Application_Model_PersonMapper(); + $configmapper = new Application_Model_ConfigMapper(); + + $this->view->bootoslist = $bootosmapper->fetchAll(); + $this->view->update = array(); - public function indexAction() - { - - $bootosmapper = new Application_Model_BootOsMapper(); - - $groupmapper = new Application_Model_GroupMapper(); - $membershipmapper = new Application_Model_MembershipMapper(); - $personmapper = new Application_Model_PersonMapper(); - $configmapper = new Application_Model_ConfigMapper(); - - $this->view->bootoslist = $bootosmapper->fetchAll(); - $this->view->update = array(); - - if(count($this->view->bootoslist)>0){ - foreach ($this->view->bootoslist as $bootos){ - $this->view->update[$bootos->getID()] = $this->checkupdateAction($bootos); - $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupmapper->find($bootos->getGroupID())->getTitle()); - $bootos->setMembershipID("[".$bootos->getMembershipID()."] ".$personmapper->find($membershipmapper->find($bootos->getMembershipID())->getPersonID())->getFirstname()); - $bootos->setConfigID("[".$bootos->getConfigID()."] ".$configmapper->find($bootos->getConfigID())->getTitle()); - - } - } - + if(count($this->view->bootoslist) > 0) { + foreach ($this->view->bootoslist as $bootos) { + $this->view->update[$bootos->getID()] = $this->checkupdateAction($bootos); + $bootos->setGroupID("[".$bootos->getGroupID()."] ".$groupmapper->find($bootos->getGroupID())->getTitle()); + $bootos->setMembershipID("[".$bootos->getMembershipID()."] ".$personmapper->find($membershipmapper->find($bootos->getMembershipID())->getPersonID())->getFirstname()); + $bootos->setConfigID("[".$bootos->getConfigID()."] ".$configmapper->find($bootos->getConfigID())->getTitle()); + + } } - public function createbootosAction() - { - $groupmapper = new Application_Model_GroupMapper(); - $configmapper = new Application_Model_ConfigMapper(); - - if (!isset($_POST["createbootos"])){ - try{ - $createbootosForm = new dev_Form_BootosCreate(array('grouplist' => $groupmapper->fetchAll() ,'configlist'=>$configmapper->fetchAll())); - }catch(Zend_Exception $e){ - print_a($e); - } - } else { - - $createbootosForm = new dev_Form_BootosCreate(array('grouplist' => $groupmapper->fetchAll() ,'configlist'=>$configmapper->fetchAll()),$_POST); - - if ($createbootosForm->isValid($_POST)) { - - $bootos = new Application_Model_BootOs($_POST); - - $bootos->setMembershipID('1'); - if($bootos->getConfigID() == '') - $bootos->setConfigID(NULL); - $bootosmapper = new Application_Model_BootOsMapper(); - $bootos->setCreated(time()); - - try { - exec("wget --spider ".$bootos->getPath_kernel()." 2>&1 | grep 'Remote file exists.'", $exists_kernel); - exec("wget --spider ".$bootos->getPath_init()." 2>&1 | grep 'Remote file exists.'" , $exists_init); - - if(!array_pop($exists_init) || !array_pop($exists_kernel)){ - $this->view->createbootosForm = $createbootosForm; - return; - } - - $bootosID = $bootosmapper->save($bootos); - - $initpath = "../resources/bootos/".$bootosID."/initramfs/"; - $kernelpath = "../resources/bootos/".$bootosID."/kernel/"; - - mkdir($initpath ,0777, true); - mkdir($kernelpath ,0777, true); - - exec("wget -O '".$kernelpath."kernel' ".$bootos->getPath_kernel()); - exec("wget -O '".$initpath."initramfs' ".$bootos->getPath_init()); - - - - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - - } - - $this->_redirect('/dev/bootos'); - } - } - + } + + public function createbootosAction() { + $groupmapper = new Application_Model_GroupMapper(); + $configmapper = new Application_Model_ConfigMapper(); + + if (!isset($_POST["createbootos"])) { + try { + $createbootosForm = new dev_Form_BootosCreate(array('grouplist' => $groupmapper->fetchAll() , 'configlist' => $configmapper->fetchAll())); + } catch(Zend_Exception $e) { + print_a($e); + } + } else { + + $createbootosForm = new dev_Form_BootosCreate(array('grouplist' => $groupmapper->fetchAll() , 'configlist' => $configmapper->fetchAll()), $_POST); + + if ($createbootosForm->isValid($_POST)) { + + $bootos = new Application_Model_BootOs($_POST); + + $bootos->setMembershipID('1'); + if($bootos->getConfigID() == '') + { $bootos->setConfigID(NULL); } + $bootosmapper = new Application_Model_BootOsMapper(); + $bootos->setCreated(time()); + + try { + exec("wget --spider ".$bootos->getPath_kernel()." 2>&1 | grep 'Remote file exists.'", $exists_kernel); + exec("wget --spider ".$bootos->getPath_init()." 2>&1 | grep 'Remote file exists.'" , $exists_init); + + if(!array_pop($exists_init) || !array_pop($exists_kernel)) { $this->view->createbootosForm = $createbootosForm; + return; + } + + $bootosID = $bootosmapper->save($bootos); + + $initpath = "../resources/bootos/".$bootosID."/initramfs/"; + $kernelpath = "../resources/bootos/".$bootosID."/kernel/"; + + mkdir($initpath , 0777, true); + mkdir($kernelpath , 0777, true); + + exec("wget -O '".$kernelpath."kernel' ".$bootos->getPath_kernel()); + exec("wget -O '".$initpath."initramfs' ".$bootos->getPath_init()); + + + + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + + } + + $this->_redirect('/dev/bootos'); + } } - - public function checkupdateAction($bootos) - { - exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_kernel())."' 2>&1 | grep 'Last-Modified:'", $kerneldate); - exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_init())."' 2>&1 | grep 'Last-Modified:'", $initdate); - - $kerneldate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($kerneldate)))); - $kernelname = array_pop(scandir("../resources/bootos/".$bootos->getID()."/kernel/")); - - if($kernelname != "." && $kernelname != "..") - $kernelolddate = filemtime("../resources/bootos/".$bootos->getID()."/kernel/".$kernelname); - else - $kernelolddate = false; - - $initdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($initdate)))); - $initname = array_pop(scandir("../resources/bootos/".$bootos->getID()."/initramfs/")); - - if($initname != "." && $initname != "..") - $initolddate = filemtime("../resources/bootos/".$bootos->getID()."/initramfs/".$initname); - else - $initolddate = false; - - //print_a($kernelname,$kerneldate,$kernelolddate,$initname,$initdate,$initolddate); - - - if($kerneldate > $kernelolddate || $initdate > $initolddate) - return true; - else - return false; - - } - - public function updatebootosAction() - { - $bootosID = $this->_request->getParam('bootosID'); - $bootosmapper = new Application_Model_BootOsMapper(); - $bootos = $bootosmapper->find($bootosID); - - $initpath = "../resources/bootos/".$bootosID."/initramfs/"; - $kernelpath = "../resources/bootos/".$bootosID."/kernel/"; - - exec("wget -P ".$kernelpath." -N ".$bootos->getPath_kernel()); - exec("wget -P ".$initpath." -N ".$bootos->getPath_init()); - - $this->_redirect('/dev/bootos'); - } - public function editbootosAction() - { - $bootosID = $this->_request->getParam('bootosID'); - $groupmapper = new Application_Model_GroupMapper(); - $configmapper = new Application_Model_ConfigMapper(); - - if (!isset($_POST["editbootos"])){ - $bootosID = $this->_request->getParam('bootosID'); - if (!isset($bootosID) || !is_numeric($bootosID)){ - $this->_redirect('/dev/bootos'); - } else { - $bootos = new Application_Model_BootOs(); - $bootosmapper = new Application_Model_BootOsMapper(); - $bootos = $bootosmapper->find($bootosID); - - $editbootosForm = new dev_Form_BootosEdit(array('grouplist' => $groupmapper->fetchAll() ,'configlist'=>$configmapper->fetchAll())); - $editbootosForm->populate($bootos->toArray()); - } - }else{ - $editbootosForm = new dev_Form_BootosEdit(array('grouplist' => $groupmapper->fetchAll() ,'configlist'=>$configmapper->fetchAll()),$_POST); - - if ($editbootosForm->isValid($_POST)) { - - //TODO: Check for new URL and download new files. - $bootos = new Application_Model_BootOs($_POST); - $bootos->setMembershipID('1'); - if($bootos->getConfigID() == '') - $bootos->setConfigID(NULL); - $bootosmapper = new Application_Model_BootOsMapper(); - $bootos->setCreated(time()); - $bootos->setID($bootosID); - - try { - $bootosmapper->save($bootos); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - } - - $this->_redirect('/dev/bootos'); - } - - } - - $this->view->editbootosForm = $editbootosForm; - + $this->view->createbootosForm = $createbootosForm; + } + + public function checkupdateAction($bootos) { + exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_kernel())."' 2>&1 | grep 'Last-Modified:'", $kerneldate); + exec("wget --server-response --spider '".escapeshellcmd($bootos->getPath_init())."' 2>&1 | grep 'Last-Modified:'", $initdate); + + $kerneldate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($kerneldate)))); + $kernelname = array_pop(scandir("../resources/bootos/".$bootos->getID()."/kernel/")); + + if($kernelname != "." && $kernelname != "..") + { $kernelolddate = filemtime("../resources/bootos/".$bootos->getID()."/kernel/".$kernelname); } + else + { $kernelolddate = false; } + + $initdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($initdate)))); + $initname = array_pop(scandir("../resources/bootos/".$bootos->getID()."/initramfs/")); + + if($initname != "." && $initname != "..") + { $initolddate = filemtime("../resources/bootos/".$bootos->getID()."/initramfs/".$initname); } + else + { $initolddate = false; } + + //print_a($kernelname,$kerneldate,$kernelolddate,$initname,$initdate,$initolddate); + + + if($kerneldate > $kernelolddate || $initdate > $initolddate) + { return true; } + else + { return false; } + + } + + public function updatebootosAction() { + $bootosID = $this->_request->getParam('bootosID'); + $bootosmapper = new Application_Model_BootOsMapper(); + $bootos = $bootosmapper->find($bootosID); + + $initpath = "../resources/bootos/".$bootosID."/initramfs/"; + $kernelpath = "../resources/bootos/".$bootosID."/kernel/"; + + exec("wget -P ".$kernelpath." -N ".$bootos->getPath_kernel()); + exec("wget -P ".$initpath." -N ".$bootos->getPath_init()); + + $this->_redirect('/dev/bootos'); + } + + public function editbootosAction() { + $bootosID = $this->_request->getParam('bootosID'); + $groupmapper = new Application_Model_GroupMapper(); + $configmapper = new Application_Model_ConfigMapper(); + + if (!isset($_POST["editbootos"])) { + $bootosID = $this->_request->getParam('bootosID'); + if (!isset($bootosID) || !is_numeric($bootosID)) { + $this->_redirect('/dev/bootos'); + } else { + $bootos = new Application_Model_BootOs(); + $bootosmapper = new Application_Model_BootOsMapper(); + $bootos = $bootosmapper->find($bootosID); + + $editbootosForm = new dev_Form_BootosEdit(array('grouplist' => $groupmapper->fetchAll() , 'configlist' => $configmapper->fetchAll())); + $editbootosForm->populate($bootos->toArray()); + } + } else { + $editbootosForm = new dev_Form_BootosEdit(array('grouplist' => $groupmapper->fetchAll() , 'configlist' => $configmapper->fetchAll()), $_POST); + + if ($editbootosForm->isValid($_POST)) { + + //TODO: Check for new URL and download new files. + $bootos = new Application_Model_BootOs($_POST); + $bootos->setMembershipID('1'); + if($bootos->getConfigID() == '') + { $bootos->setConfigID(NULL); } + $bootosmapper = new Application_Model_BootOsMapper(); + $bootos->setCreated(time()); + $bootos->setID($bootosID); + + try { + $bootosmapper->save($bootos); + } catch(Zend_Exception $e) { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + } + + $this->_redirect('/dev/bootos'); + } + } - public function deletebootosAction() - { - $bootosID = $this->_request->getParam('bootosID'); - if (!isset($bootosID)){ - $this->_redirect('/dev/bootos'); - } else { - $bootos = new Application_Model_BootOs(); - $bootos->setID($bootosID); - $bootosmapper = new Application_Model_BootOsMapper(); - $bootosmapper->delete($bootos); - } - $this->_redirect('/dev/bootos'); - + $this->view->editbootosForm = $editbootosForm; + + } + + public function deletebootosAction() { + $bootosID = $this->_request->getParam('bootosID'); + if (!isset($bootosID)) { + $this->_redirect('/dev/bootos'); + } else { + $bootos = new Application_Model_BootOs(); + $bootos->setID($bootosID); + $bootosmapper = new Application_Model_BootOsMapper(); + $bootosmapper->delete($bootos); } + $this->_redirect('/dev/bootos'); + + } } |
