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