summaryrefslogtreecommitdiffstats
path: root/application/modules/dev/controllers/ResourceController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/modules/dev/controllers/ResourceController.php')
-rw-r--r--application/modules/dev/controllers/ResourceController.php325
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;
+ }
}