Exemple #1
0
 public function executeGraphDiskRWPNG(sfWebRequest $request)
 {
     $etva_lv = EtvaLogicalvolumePeer::retrieveByPK($request->getParameter('id'));
     $etva_server = $etva_lv->getEtvaServer();
     $etva_node = $etva_server->getEtvaNode();
     $graph_start = $request->getParameter('graph_start');
     $graph_end = $request->getParameter('graph_end');
     $disk_rra = new ServerDisk_rwRRA($etva_node->getUuid(), $etva_server->getUuid(), $etva_lv->getLv());
     $title = sprintf("%s :: %s", $etva_server->getName(), $etva_lv->getLv());
     $this->getResponse()->setContentType('image/png');
     $this->getResponse()->setHttpHeader('Content-Type', 'image/png', TRUE);
     $this->getResponse()->sendHttpHeaders();
     $this->getResponse()->setContent(print $disk_rra->getGraphImg($title, $graph_start, $graph_end));
     return sfView::HEADER_ONLY;
 }
 public function check_disks_availability($etva_node, $disks, $method)
 {
     $etva_server = $this->etva_server;
     $collDisks = array();
     $i = 0;
     foreach ($disks as $disk) {
         if (!($etva_lv = EtvaLogicalvolumePeer::retrieveByPK($disk['id']))) {
             $msg = Etva::getLogMessage(array('id' => $disk['id']), EtvaLogicalvolumePeer::_ERR_NOTFOUND_ID_);
             $msg_i18n = sfContext::getInstance()->getI18N()->__(EtvaLogicalvolumePeer::_ERR_NOTFOUND_ID_, array('%id%' => $disk['id']));
             $error = array('success' => false, 'agent' => $etva_node->getName(), 'error' => $msg_i18n);
             //notify event log
             $message = Etva::getLogMessage(array('name' => $etva_server->getName(), 'info' => $msg), EtvaServerPeer::_ERR_CREATE_);
             sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent($error['agent'], 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
             return $error;
         }
         $lv = $etva_lv->getLv();
         /*
          * check if is not system lv
          */
         if ($etva_lv->getMounted()) {
             $msg = Etva::getLogMessage(array('name' => $lv), EtvaLogicalvolumePeer::_ERR_SYSTEM_LV_);
             $msg_i18n = sfContext::getInstance()->getI18N()->__(EtvaLogicalvolumePeer::_ERR_SYSTEM_LV_, array('%name%' => $lv));
             $error = array('success' => false, 'agent' => $etva_node->getName(), 'error' => $msg_i18n, 'info' => $msg_i18n);
             //notify system log
             $message = Etva::getLogMessage(array('name' => $etva_server->getName(), 'info' => $msg), EtvaServerPeer::_ERR_CREATE_);
             sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent($etva_node->getName(), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
             return $error;
         }
         //check if lv already marked as 'in use'
         if ($method == self::SERVER_CREATE && $etva_lv->getInUse()) {
             $lv_server = $etva_lv->getEtvaServer();
             $msg = Etva::getLogMessage(array('name' => $lv, 'server' => $lv_server->getName()), EtvaLogicalvolumePeer::_ERR_INUSE_);
             $msg_i18n = sfContext::getInstance()->getI18N()->__(EtvaLogicalvolumePeer::_ERR_INUSE_, array('%name%' => $lv, '%server%' => $lv_server->getName()));
             $error = array('success' => false, 'agent' => $etva_node->getName(), 'error' => $msg_i18n, 'info' => $msg_i18n);
             //notify event log
             $message = Etva::getLogMessage(array('name' => $etva_server->getName(), 'info' => $msg), EtvaServerPeer::_ERR_CREATE_);
             sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent($error['agent'], 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
             return $error;
         }
         $etva_sl = new EtvaServerLogical();
         $etva_sl->setLogicalvolumeId($etva_lv->getId());
         $etva_sl->setDiskType($disk['disk_type']);
         $etva_sl->setBootDisk($i);
         $i++;
         $collDisks[] = $etva_sl;
     }
     // end each disk
     $this->collDisks = $collDisks;
     return array('success' => true);
 }