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