diff options
Diffstat (limited to 'application/modules/dev/controllers/ResourceController.php')
| -rw-r--r-- | application/modules/dev/controllers/ResourceController.php | 325 |
1 files changed, 158 insertions, 167 deletions
diff --git a/application/modules/dev/controllers/ResourceController.php b/application/modules/dev/controllers/ResourceController.php index 6889f9b..0c5fa85 100644 --- a/application/modules/dev/controllers/ResourceController.php +++ b/application/modules/dev/controllers/ResourceController.php @@ -1,172 +1,163 @@ -<?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_ResourceController extends Zend_Controller_Action -{ - - private $thisSession; - - public function init() - { - $this->_helper->layout->disableLayout(); - $this->_helper->viewRenderer->setNoRender(); - - $alphasessionID = $this->_request->getParam('alpha'); - $session = new Application_Model_Session(); - $sm = new Application_Model_SessionMapper(); - $result = $sm->findBy(array('alphasessionID' => $alphasessionID), true); - # print_a($result); - $this->thisSession = $session->setOptions($result[0]); - $this->thisSession->setID($result[0]['sessionID']); - } - - public function indexAction() - { - - - } - - public function getinitramfsAction() - { - - $bootosID = $this->thisSession->getBootosID(); - - if(is_dir("../resources/bootos/$bootosID/initramfs/") && is_numeric($bootosID)){ - - header('Content-Type: application/x-gzip'); - $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; - header('Content-Disposition: ' . $content_disp . '; filename="initramfs"'); - header('Pragma: no-cache'); - header('Expires: 0'); - - // create file. - chdir("../resources/bootos/$bootosID/initramfs/"); - $initname = array_pop(scandir("./")); - - passthru( "cat ".$initname); - } - } - - public function getconfigAction() - { - $bootmenuentryID = $this->thisSession->getBootmenuentryID(); - - $bootmenuentry = new Application_Model_BootMenuEntries(); - $bmm = new Application_Model_BootMenuEntriesMapper(); - $bmm->find($bootmenuentryID,$bootmenuentry); - # print_a($bootmenuentry); - - $configID = $bootmenuentry->getConfigID(); - - if(is_dir("../resources/config/$configID/config/") && is_numeric($configID)){ - - header('Content-Type: application/x-gzip'); - $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; - header('Content-Disposition: ' . $content_disp . '; filename="config.tgz"'); - header('Pragma: no-cache'); - header('Expires: 0'); - - // create the gzipped tarfile. - chdir("../resources/config/$configID/config/"); - passthru( "tar cz ./"); - } - } - - public function getkernelAction() - { - $bootosID = $this->thisSession->getBootosID(); - - if(is_dir("../resources/bootos/$bootosID/kernel/") && is_numeric($bootosID)){ - - header('Content-Type: application/x-gzip'); - $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; - header('Content-Disposition: ' . $content_disp . '; filename="kernel"'); - header('Pragma: no-cache'); - header('Expires: 0'); - - // create the gzipped tarfile. - chdir("../resources/bootos/$bootosID/kernel/"); - $kernelname = array_pop(scandir("./")); - - passthru( "cat ". $kernelname); - } - } - - public function getkclAction() - { - $bmeID = $this->thisSession->getBootmenuentryID(); - - if(is_numeric($bmeID)){ - - $bmemapper = new Application_Model_BootMenuEntriesMapper(); - $bme = new Application_Model_BootMenuEntries(); - $bmemapper->find($bmeID,$bme); - - header('Content-Type: text/html'); - $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; - header('Content-Disposition: ' . $content_disp . '; filename="kcl.txt"'); - header('Pragma: no-cache'); - header('Expires: 0'); - - if($bme->getKcl() != null) - $result = $bme->getKcl() . " " . $bme->getKclappend(); - else - $result = $bme->getKclappend(); - - echo $result; - - - } - - } - - public function getbootmenuentryAction() - { - // obsolete function (now only for debugging) - // after selecting the BootOS it will be saved in session - // so getkclAction, getkernelAction, getconfigAction and getinitramfsAction - // can be called with session-identifier - $bootmenuentryID = $this->_request->getParam('bootmenuentryID'); - $bootosID = $this->_request->getParam('bootosID'); - - $this->thisSession->setBootosID($bootosID)->setBootmenuentryID($bootmenuentryID); - $sessionMapper = new Application_Model_SessionMapper(); - $sessionMapper->save($this->thisSession); - - if($this->thisSession->getBootmenuentryID() != null){ - header('Content-Type: application/json'); - $return_val = - array( - 'info' => 'This function is for debugging purpose only', - 'kernel' => $this->generateURL('getkernel', 'alpha', $_SESSION['alphasessionID'], "kernel"), - 'initramfs' => $this->generateURL('getinitramfs', 'alpha', $_SESSION['alphasessionID'], "initramfs"), - 'kcl' => $this->generateURL('getkcl', 'alpha', $_SESSION['alphasessionID'], "kcl.txt"), - 'config' => $_SESSION['alphasessionID'] - ); - echo json_encode($return_val); - } - else{ - echo json_encode( - array( 'info' => 'This function is for debugging purpose only', - 'error'=> 'your session is out of date') - ); - } - } - - private function generateURL($action, $varname, $varvalue, $filename){ - $path = '/dev/resource/'. $action .'/' . $varname .'/' . $varvalue .'/file/' . $filename ; - $path = "http://" . $_SERVER['SERVER_NAME'] . $path; - return $path; - } +* 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_ResourceController extends Zend_Controller_Action { + + private $thisSession; + + public function init() { + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + $alphasessionID = $this->_request->getParam('alpha'); + $session = new Application_Model_Session(); + $sm = new Application_Model_SessionMapper(); + $result = $sm->findBy(array('alphasessionID' => $alphasessionID), true); +# print_a($result); + $this->thisSession = $session->setOptions($result[0]); + $this->thisSession->setID($result[0]['sessionID']); + } + + public function indexAction() { + + + } + + public function getinitramfsAction() { + + $bootosID = $this->thisSession->getBootosID(); + + if(is_dir("../resources/bootos/$bootosID/initramfs/") && is_numeric($bootosID)) { + + header('Content-Type: application/x-gzip'); + $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; + header('Content-Disposition: ' . $content_disp . '; filename="initramfs"'); + header('Pragma: no-cache'); + header('Expires: 0'); + + // create file. + chdir("../resources/bootos/$bootosID/initramfs/"); + $initname = array_pop(scandir("./")); + + passthru( "cat ".$initname); + } + } + + public function getconfigAction() { + $bootmenuentryID = $this->thisSession->getBootmenuentryID(); + + $bootmenuentry = new Application_Model_BootMenuEntries(); + $bmm = new Application_Model_BootMenuEntriesMapper(); + $bmm->find($bootmenuentryID, $bootmenuentry); +# print_a($bootmenuentry); + + $configID = $bootmenuentry->getConfigID(); + + if(is_dir("../resources/config/$configID/config/") && is_numeric($configID)) { + + header('Content-Type: application/x-gzip'); + $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; + header('Content-Disposition: ' . $content_disp . '; filename="config.tgz"'); + header('Pragma: no-cache'); + header('Expires: 0'); + + // create the gzipped tarfile. + chdir("../resources/config/$configID/config/"); + passthru( "tar cz ./"); + } + } + + public function getkernelAction() { + $bootosID = $this->thisSession->getBootosID(); + + if(is_dir("../resources/bootos/$bootosID/kernel/") && is_numeric($bootosID)) { + + header('Content-Type: application/x-gzip'); + $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; + header('Content-Disposition: ' . $content_disp . '; filename="kernel"'); + header('Pragma: no-cache'); + header('Expires: 0'); + + // create the gzipped tarfile. + chdir("../resources/bootos/$bootosID/kernel/"); + $kernelname = array_pop(scandir("./")); + + passthru( "cat ". $kernelname); + } + } + + public function getkclAction() { + $bmeID = $this->thisSession->getBootmenuentryID(); + + if(is_numeric($bmeID)) { + + $bmemapper = new Application_Model_BootMenuEntriesMapper(); + $bme = new Application_Model_BootMenuEntries(); + $bmemapper->find($bmeID, $bme); + + header('Content-Type: text/html'); + $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; + header('Content-Disposition: ' . $content_disp . '; filename="kcl.txt"'); + header('Pragma: no-cache'); + header('Expires: 0'); + + if($bme->getKcl() != null) + { $result = $bme->getKcl() . " " . $bme->getKclappend(); } + else + { $result = $bme->getKclappend(); } + + echo $result; + + + } + + } + + public function getbootmenuentryAction() { + // obsolete function (now only for debugging) + // after selecting the BootOS it will be saved in session + // so getkclAction, getkernelAction, getconfigAction and getinitramfsAction + // can be called with session-identifier + $bootmenuentryID = $this->_request->getParam('bootmenuentryID'); + $bootosID = $this->_request->getParam('bootosID'); + + $this->thisSession->setBootosID($bootosID)->setBootmenuentryID($bootmenuentryID); + $sessionMapper = new Application_Model_SessionMapper(); + $sessionMapper->save($this->thisSession); + + if($this->thisSession->getBootmenuentryID() != null) { + header('Content-Type: application/json'); + $return_val = + array( + 'info' => 'This function is for debugging purpose only', + 'kernel' => $this->generateURL('getkernel', 'alpha', $_SESSION['alphasessionID'], "kernel"), + 'initramfs' => $this->generateURL('getinitramfs', 'alpha', $_SESSION['alphasessionID'], "initramfs"), + 'kcl' => $this->generateURL('getkcl', 'alpha', $_SESSION['alphasessionID'], "kcl.txt"), + 'config' => $_SESSION['alphasessionID'] + ); + echo json_encode($return_val); + } else { + echo json_encode( + array( 'info' => 'This function is for debugging purpose only', + 'error' => 'your session is out of date') + ); + } + } + + private function generateURL($action, $varname, $varvalue, $filename) { + $path = '/dev/resource/'. $action .'/' . $varname .'/' . $varvalue .'/file/' . $filename ; + $path = "http://" . $_SERVER['SERVER_NAME'] . $path; + return $path; + } } |
