centralM
[ class tree: centralM ] [ index: centralM ] [ all elements ]

Source for file actions.class.php

Documentation is available at actions.class.php

  1. <?php
  2.  
  3. /**
  4.  * volgroup actions.
  5.  *
  6.  * @package    centralM
  7.  * @subpackage volgroup
  8.  * @author     Your name here
  9.  * @version    SVN: $Id: actions.class.php 12474 2008-10-31 10:41:27Z fabien $
  10.  */
  11. class volgroupActions extends sfActions
  12. {
  13.   public function executeIndex(sfWebRequest $request)
  14.   {
  15.     $this->etva_volumegroup_list EtvaVolumegroupPeer::doSelect(new Criteria());
  16.   }
  17.  
  18.   public function executeNew(sfWebRequest $request)
  19.   {
  20.     $this->form new EtvaVolumegroupForm();
  21.   }
  22.  
  23.   public function executeCreate(sfWebRequest $request)
  24.   {
  25.     $this->forward404Unless($request->isMethod('post'));
  26.  
  27.     $this->form new EtvaVolumegroupForm();
  28.  
  29.     $this->processForm($request$this->form);
  30.  
  31.     $this->setTemplate('new');
  32.   }
  33.  
  34.  
  35.   public function executeJsonCreate(sfWebRequest $request){
  36.  
  37.  
  38. //      $c = new Criteria();
  39. //      $c->add(EtvaNodePeer::UID ,$request->getParameter('uid'));
  40.  
  41.  
  42.  
  43. //      if(!$etva_node = EtvaNodePeer::doSelectOne($c)){
  44. //            $error_msg = sprintf('Object etva_node does not exist (%s).', $request->getParameter('uid'));
  45. //            $error = array('success'=>false,'errors'=>$error_msg);
  46. //            return $error;
  47. //      }
  48.  
  49.       $vgInfo json_decode($request->getParameter('vg'));
  50.       $vg $vgInfo->vg;
  51.       $nid $request->getParameter('nid');
  52.  
  53.       $criteriaVG new Criteria();
  54.       $criteriaVG->add(EtvaVolumegroupPeer::NODE_ID,$nid);
  55.  
  56.       $criteriaPV new Criteria();
  57.       $criteriaPV->add(EtvaPhysicalvolumePeer::NODE_ID,$nid);
  58.       
  59.       $etva_volgroup EtvaVolumegroupPeer::retrieveByVg($vg,$criteriaVG);
  60.  
  61.  
  62.  
  63.             if(!$etva_volgroup$etva_volgroup new EtvaVolumegroup();
  64.  
  65.  
  66.             $etva_volgroup->setNodeId($nid);
  67.             $etva_volgroup->setVg($vg);
  68.             $etva_volgroup->setSize($vgInfo->size);
  69.             $etva_volgroup->setFreesize($vgInfo->freesize);
  70.  
  71.             $vg_devs $vgInfo->physicalvolumes;
  72.  
  73.             foreach($vg_devs as $dev=>$devInfo){
  74.  
  75.                 $etva_physicalvol EtvaPhysicalvolumePeer::retrieveByPV($devInfo->pv,$criteriaPV);
  76.             if(!$etva_physicalvol$etva_physicalvol new EtvaPhysicalvolume();
  77.  
  78.             // $etva_physicalvol = new EtvaPhysicalvolume();
  79.             $etva_physicalvol->setNodeId($nid);
  80.             $etva_physicalvol->setName($dev);
  81.             $etva_physicalvol->setDevice($devInfo->device);
  82.             //$etva_physicalvol->setDevsize($devInfo->size);
  83.             $etva_physicalvol->setPv($devInfo->pv);
  84.             $etva_physicalvol->setPvsize($devInfo->size);
  85.             $etva_physicalvol->setPvfreesize($devInfo->freesize);
  86.             $etva_physicalvol->setAllocatable(0);
  87.           //  $etva_physicalvol->setPvinit($devInfo->pvinit);
  88.           //  $etva_physicalvol->setStorageType($devInfo->type);
  89.         //    $etva_physicalvol->save();
  90.  
  91.             $etva_vg_phy EtvaVolumePhysicalPeer::retrieveByVGPV($etva_volgroup->getId(),$etva_physicalvol->getId());
  92.  
  93.             if(!$etva_vg_phy$etva_vg_phy new EtvaVolumePhysical();
  94.  
  95.             $etva_vg_phy->setEtvaPhysicalvolume($etva_physicalvol);
  96.             $etva_vg_phy->setEtvaVolumegroup($etva_volgroup);
  97.             $etva_vg_phy->save();
  98.             }
  99.  
  100.     $result json_encode(array('success'=>true));
  101.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  102.     return $this->renderText($result);
  103.  
  104.         
  105.  
  106.   }
  107.  
  108.   public function executeJsonExtend(sfWebRequest $request){
  109.  
  110.  
  111. //      $c = new Criteria();
  112. //      $c->add(EtvaNodePeer::UID ,$request->getParameter('uid'));
  113.  
  114.  
  115.  
  116. //      if(!$etva_node = EtvaNodePeer::doSelectOne($c)){
  117. //            $error_msg = sprintf('Object etva_node does not exist (%s).', $request->getParameter('uid'));
  118. //            $error = array('success'=>false,'errors'=>$error_msg);
  119. //            return $error;
  120. //      }
  121.  
  122.       $vg $request->getParameter('vg');      
  123.       $nid $request->getParameter('nid');
  124.       $pv $request->getParameter('pv');
  125.  
  126.       $criteriaVG new Criteria();
  127.       $criteriaVG->add(EtvaVolumegroupPeer::NODE_ID,$nid);
  128.  
  129.       $criteriaPV new Criteria();
  130.       $criteriaPV->add(EtvaPhysicalvolumePeer::NODE_ID,$nid);
  131.  
  132.       $etva_volgroup EtvaVolumegroupPeer::retrieveByVg($vg,$criteriaVG);
  133.       $etva_volgroup_id $etva_volgroup->getId();
  134.  
  135.       $etva_physicalvol EtvaPhysicalvolumePeer::retrieveByPV($pv,$criteriaPV);
  136.       $etva_physicalvol->setAllocatable(0);
  137.       $etva_physicalvol_id $etva_physicalvol->getId();
  138.  
  139.  
  140.       $etva_volphys new EtvaVolumePhysical();
  141.       $etva_volphys->setPhysicalvolumeId($etva_physicalvol_id);
  142.       $etva_volphys->setVolumegroupId($etva_volgroup_id);
  143.       
  144.       $etva_physicalvol->save();
  145.       $etva_volphys->save();
  146.  
  147.  
  148.            
  149.     $result json_encode(array('success'=>true));
  150.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  151.     return $this->renderText($result);
  152.  
  153.  
  154.  
  155.   }
  156.  
  157.   public function executeJsonReduce(sfWebRequest $request){
  158.  
  159.  
  160.  
  161.       $vg $request->getParameter('vg');
  162.       $nid $request->getParameter('nid');
  163.       $pv $request->getParameter('pv');
  164.  
  165.       $criteriaVG new Criteria();
  166.       $criteriaVG->add(EtvaVolumegroupPeer::NODE_ID,$nid);
  167.  
  168.       $criteriaPV new Criteria();
  169.       $criteriaPV->add(EtvaPhysicalvolumePeer::NODE_ID,$nid);
  170.  
  171.       $etva_volgroup EtvaVolumegroupPeer::retrieveByVg($vg,$criteriaVG);
  172.       $etva_volgroup_id $etva_volgroup->getId();
  173.  
  174.       $etva_physicalvol EtvaPhysicalvolumePeer::retrieveByPV($pv,$criteriaPV);
  175.       $etva_physicalvol->setAllocatable(1);
  176.  
  177.       $etva_physicalvol_id $etva_physicalvol->getId();
  178.  
  179.  
  180.       $etva_volphys EtvaVolumePhysicalPeer::retrieveByVGPV($etva_volgroup_id$etva_physicalvol_id);     
  181.       $etva_physicalvol->save();
  182.       $etva_volphys->delete();
  183.  
  184.  
  185.  
  186.     $result json_encode(array('success'=>true));
  187.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  188.     return $this->renderText($result);
  189.  
  190.  
  191.  
  192.   }
  193.  
  194.   public function executeEdit(sfWebRequest $request)
  195.   {
  196.     $this->forward404Unless($etva_volumegroup EtvaVolumegroupPeer::retrieveByPk($request->getParameter('id'))sprintf('Object etva_volumegroup does not exist (%s).'$request->getParameter('id')));
  197.     $this->form new EtvaVolumegroupForm($etva_volumegroup);
  198.   }
  199.  
  200.   public function executeUpdate(sfWebRequest $request)
  201.   {
  202.     $this->forward404Unless($request->isMethod('post'|| $request->isMethod('put'));
  203.     $this->forward404Unless($etva_volumegroup EtvaVolumegroupPeer::retrieveByPk($request->getParameter('id'))sprintf('Object etva_volumegroup does not exist (%s).'$request->getParameter('id')));
  204.     $this->form new EtvaVolumegroupForm($etva_volumegroup);
  205.  
  206.     $this->processForm($request$this->form);
  207.  
  208.     $this->setTemplate('edit');
  209.   }
  210.  
  211.  
  212.   public function executeSoapUpdate(sfWebRequest $request)
  213.   {
  214.  
  215.  
  216.  
  217.  
  218.    // if(SF_ENVIRONMENT == 'soap'){
  219.  
  220.         $vgs $request->getParameter('vgs');
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.         $c new Criteria();
  228.         $c->add(EtvaNodePeer::UID ,$request->getParameter('uid'));
  229.  
  230.  
  231.  
  232.         if(!$etva_node EtvaNodePeer::doSelectOne($c)){
  233.             $error_msg sprintf('Object etva_node does not exist (%s).'$request->getParameter('uid'));
  234.             $error array('success'=>false,'errors'=>$error_msg);
  235.             return $error;
  236.         }
  237.  
  238.  
  239.  
  240.         $criteriaVG new Criteria();
  241.         $criteriaVG->add(EtvaVolumegroupPeer::NODE_ID,$etva_node->getId());
  242.  
  243.         $criteriaPV new Criteria();
  244.         $criteriaPV->add(EtvaPhysicalvolumePeer::NODE_ID,$etva_node->getId());
  245.         // return 'AKIAKIAKI';
  246.  
  247.         foreach($vgs as $vg=>$vgInfo){
  248.  
  249.             $etva_volgroup EtvaVolumegroupPeer::retrieveByVg($vg,$criteriaVG);
  250.  
  251.             
  252.  
  253.             if(!$etva_volgroup$etva_volgroup new EtvaVolumegroup();
  254.  
  255.  
  256.             $etva_volgroup->setNodeId($etva_node->getId());
  257.             $etva_volgroup->setVg($vg);
  258.             $etva_volgroup->setSize($vgInfo->size);
  259.             $etva_volgroup->setFreesize($vgInfo->freesize);
  260.  
  261.             $vg_devs $vgInfo->physicalvolumes;
  262.  
  263.             foreach($vg_devs as $dev=>$devInfo){
  264.                
  265.                 $etva_physicalvol EtvaPhysicalvolumePeer::retrieveByPV($devInfo->pv,$criteriaPV);
  266.             if(!$etva_physicalvol$etva_physicalvol new EtvaPhysicalvolume();
  267.  
  268.             // $etva_physicalvol = new EtvaPhysicalvolume();
  269.             $etva_physicalvol->setNodeId($etva_node->getId());
  270.             $etva_physicalvol->setName($dev);
  271.             $etva_physicalvol->setDevice($devInfo->device);
  272.             //$etva_physicalvol->setDevsize($devInfo->size);
  273.             $etva_physicalvol->setPv($devInfo->pv);
  274.             $etva_physicalvol->setPvsize($devInfo->size);
  275.             $etva_physicalvol->setPvfreesize($devInfo->freesize);
  276.           //  $etva_physicalvol->setPvinit($devInfo->pvinit);
  277.           //  $etva_physicalvol->setStorageType($devInfo->type);
  278.         //    $etva_physicalvol->save();
  279.             
  280.             $etva_vg_phy EtvaVolumePhysicalPeer::retrieveByVGPV($etva_volgroup->getId(),$etva_physicalvol->getId());
  281.             
  282.             if(!$etva_vg_phy$etva_vg_phy new EtvaVolumePhysical();
  283.             
  284.             $etva_vg_phy->setEtvaPhysicalvolume($etva_physicalvol);
  285.             $etva_vg_phy->setEtvaVolumegroup($etva_volgroup);
  286.             $etva_vg_phy->save();
  287.  
  288.  
  289.             }
  290.  
  291.             // $etva_vg = EtvaVolumegroupPeer::retrieveByName($lvInfo->vg,$criteria);
  292.  
  293. //
  294. //            if($etva_vg){
  295. //
  296. //                $etva_logicalvol->setVolumegroupId($etva_vg->getId());
  297. //
  298. //                $etva_logicalvol->setLv($lv);
  299. //                $etva_logicalvol->setSize($lvInfo->size);
  300. //                $etva_logicalvol->setFreesize($lvInfo->freesize);
  301. //                $etva_logicalvol->setStorageType($lvInfo->type);
  302. //
  303. //                $etva_logicalvol->save();
  304. //            }
  305.                // return 'aki';
  306.         }
  307.  
  308.         return array('success'=>true);
  309.  
  310.     
  311.  
  312.     }
  313.  
  314.  
  315.   public function executeDelete(sfWebRequest $request)
  316.   {
  317.     $request->checkCSRFProtection();
  318.  
  319.     $this->forward404Unless($etva_volumegroup EtvaVolumegroupPeer::retrieveByPk($request->getParameter('id'))sprintf('Object etva_volumegroup does not exist (%s).'$request->getParameter('id')));
  320.     $etva_volumegroup->delete();
  321.  
  322.     $this->redirect('volgroup/index');
  323.   }
  324.  
  325.   public function executeJsonDelete(sfWebRequest $request)
  326.   {
  327.     $isAjax $request->isXmlHttpRequest();
  328.  
  329.     if(!$isAjaxreturn $this->redirect('@homepage');
  330.  
  331.       $criteria new Criteria();
  332.       $criteria->add(EtvaVolumegroupPeer::NODE_ID,$request->getParameter('nid'));
  333.       if(!$etva_vg EtvaVolumegroupPeer::retrieveByVg($request->getParameter('vg'),$criteria)){
  334.         $error_msg sprintf('Object EtvaVolumegroup does not exist (%s).'$request->getParameter('vg'));
  335.         $info array('success'=>false,'errors'=>$error_msg);
  336.         $error $this->setJsonError($info);
  337.         return $this->renderText($error);
  338.     }
  339.  
  340.  
  341.     $volphys $etva_vg->getEtvaVolumePhysicals();
  342.  
  343.     foreach($volphys as $vp){
  344.         $pv $vp->getEtvaPhysicalvolume();
  345.         $pv->setAllocatable(1);
  346.         $pv->save();
  347.         
  348.         $vp->delete();
  349.         
  350.     }
  351.  
  352.     $etva_vg->delete();
  353.  
  354.     $result array('success'=>true);
  355.     $result json_encode($result);
  356.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  357.     return $this->renderText($result);
  358.   }
  359.  
  360.   public function executeVgsListFree(sfWebRequest $request)
  361.   {
  362.  
  363.       $elements array();
  364.  
  365.      
  366.       
  367.       $criteria new Criteria();
  368.       $criteria->add(EtvaVolumegroupPeer::NODE_ID,$request->getParameter('id'));
  369.  
  370.       $criteria->add(EtvaVolumegroupPeer::FREESIZE,0,Criteria::NOT_EQUAL);
  371.  
  372.       $list EtvaVolumegroupPeer::doSelect($criteria);
  373.       
  374.       foreach ($list as $elem){
  375.           
  376.                 $size $elem->getFreesize();
  377.                 $txt $elem->getVg();
  378.                // $size = Etva::byte_to_MBconvert($size);
  379.                 $elements[array('id'=>$txt,'txt'=>$txt,'size'=>$size);
  380.           
  381.       }
  382.  
  383.       $result array('total' =>   count($elements),'data'  => $elements);
  384.  
  385.       $return json_encode($result);
  386.         $this->getResponse()->setHttpHeader("X-JSON"'()');
  387. //
  388. //
  389.       return $this->renderText($return);
  390.  
  391.       
  392.   }
  393.  
  394.   public function executeVgsTree(sfWebRequest $request)
  395.   {
  396.  
  397.   $criteria new Criteria();
  398.   $criteria->add(EtvaVolumegroupPeer::NODE_ID,$request->getParameter('id'));
  399.  
  400.   $list EtvaVolumegroupPeer::doSelect($criteria);
  401.  
  402.   $aux array();
  403.  
  404.       foreach ($list as $vg){
  405.           $etva_vp $vg->getEtvaVolumePhysicals();
  406.  
  407.  
  408.           $pvs_tree array();
  409.           
  410.  
  411.           foreach($etva_vp as $vp){
  412.               
  413.               $pv $vp->getEtvaPhysicalvolume();
  414.               
  415.               $id $pv->getPv();
  416.               $elem $pv->getDevice();
  417.               $pretty_size $size $pv->getPvsize();
  418.               $qtip '';
  419.               $cls 'dev-pv';          
  420.               
  421.               $pvs_tree[array('id'=>$id,'cls'=>$cls,'uiProvider'=>'col','iconCls'=>'task','text'=>$elem,'size'=>$size,'prettysize'=>$pretty_size,'singleClickExpand'=>true,'type'=>'dev-pv','qtip'=>$qtip,'leaf'=>true);
  422.  
  423.  
  424.  
  425.  
  426.           }
  427.  
  428.           $id $vg->getVg();
  429.           $qtip '';
  430.           $cls 'vg';
  431.           $pretty_size $size $vg->getSize();
  432.          // $pretty_size = $props->pretty_size;
  433.  
  434.  
  435.         //  $pvsList = $props->physicalvolumes;
  436.           // $pvs_tree = $this->generatepvsTree($pvsList);
  437.  
  438.  
  439.         //  $aux_[] = array('id'=>'toto','cls'=>$cls,'text'=>'elem','singleClickExpand'=>true,'type'=>'vg','qtip'=>$qtip,'children'=>$tt);
  440.  
  441. //          $aux[] = array('id'=>$id,'cls'=>$cls,'text'=>$elem,'expanded'=> true,'singleClickExpand'=>true,'type'=>'vg','qtip'=>$qtip,'children'=>$aux_);
  442. $aux[array('id'=>$id,'uiProvider'=>'col','iconCls'=>'devices-folder','cls'=>$cls,'text'=>$id,'type'=>'vg','size'=>$size,'prettysize'=>$pretty_size'singleClickExpand'=>true,'qtip'=>$qtip,'children'=>$pvs_tree);
  443.  
  444.      
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452. //          $id = $elem->getLv();
  453. //          $pretty_size = $elem->getSize();
  454. //          $size = $elem->getSize();
  455. //
  456. //          $vg = $etva_vg->getVg();
  457. //          $vg_size = $etva_vg->getSize();
  458. //          $vg_freesize = $etva_vg->getFreesize();
  459. //          $cls = 'lv';
  460. //          $aux[] = array('id'=>$id,'cls'=>$cls,'uiProvider'=>'col','iconCls'=>'devices-folder','text'=>$id,'size'=>$size,'prettysize'=>$pretty_size,'vgsize'=>$vg_size,'singleClickExpand'=>true,'type'=>'lv','vg'=>$vg,'vgfreesize'=>$vg_freesize,'leaf'=>true);
  461.  
  462.  
  463.       }
  464.  
  465.       $return json_encode($aux);
  466.         $this->getResponse()->setHttpHeader("X-JSON"'()');
  467.  
  468.  
  469.     return $this->renderText($return);
  470.    //   $tt = array();
  471.    //   $aux_it[0] = array('id'=>'toto','cls'=>$cls,'text'=>'elem','singleClickExpand'=>true,'type'=>'vg','qtip'=>$qtip,'children'=>$tt);
  472.  
  473.   }
  474.   
  475.  
  476.   protected function processForm(sfWebRequest $requestsfForm $form)
  477.   {
  478.     $form->bind($request->getParameter($form->getName())$request->getFiles($form->getName()));
  479.     if ($form->isValid())
  480.     {
  481.       $etva_volumegroup $form->save();
  482.  
  483.       $this->redirect('volgroup/edit?id='.$etva_volumegroup->getId());
  484.     }
  485.   }
  486. }

Documentation generated on Fri, 19 Jun 2009 10:45:58 +0100 by phpDocumentor 1.4.2