예제 #1
0
파일: EtvaNode.php 프로젝트: ketheriel/ETVA
 public function retrieveVolumegroupByUuid($uuid)
 {
     $criteria = new Criteria();
     $criteria->add(EtvaNodeVolumegroupPeer::NODE_ID, $this->getId());
     $criteria->addJoin(EtvaNodeVolumegroupPeer::VOLUMEGROUP_ID, EtvaVolumegroupPeer::ID);
     $criteria->add(EtvaVolumegroupPeer::UUID, $uuid);
     return EtvaVolumegroupPeer::doSelectOne($criteria);
 }
예제 #2
0
 private function check_vgs(EtvaNode $etva_node)
 {
     $node_response = $etva_node->soapSend('getvgs_arr', array('force' => 1));
     if (!$node_response['success']) {
         $errors = $node_response['error'];
         Etva::getLogMessage(array('info' => ''), EtvaVolumegroupPeer::_ERR_INCONSISTENT_);
         $etva_node->setErrorMessage(EtvaVolumegroup_VA::LVINIT);
         $message = Etva::getLogMessage(array('info' => $node_response['info']), EtvaVolimegroupPeer::_ERR_SOAPUPDATE_);
         sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent($etva_node->getName(), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
         $response = array('success' => false, 'error' => $errors);
         $return = $this->setJsonError($response);
         return $this->renderText($return);
     }
     //verify if cluster has any logical volume that belongs to another cluster...
     $cluster_id = $etva_node->getClusterId();
     $my_vgs = $node_response['response'];
     $my_vgs = (array) $my_vgs;
     foreach ($my_vgs as $my_vg) {
         $vg_info = (array) $my_vg;
         //ignore in case of a local device
         if ($vg_info['type'] == EtvaVolumegroup::STORAGE_TYPE_LOCAL_MAP) {
             continue;
         }
         $c_uuid = new criteria();
         $c_uuid->add(EtvaVolumegroupPeer::UUID, $vg_info['uuid']);
         $c_uuid->addAnd(EtvaVolumegroupPeer::CLUSTER_ID, $cluster_id, Criteria::NOT_EQUAL);
         $e_vg = EtvaVolumegroupPeer::doSelectOne($c_uuid);
         if ($e_vg) {
             $c_c = new Criteria();
             $c_c->add(EtvaClusterPeer::ID, $e_vg->getClusterId());
             $etva_cluster = EtvaClusterPeer::doSelectOne($c_c);
             $msg_i18n = $this->getContext()->getI18N()->__(EtvaVolumegroupPeer::_ERR_INIT_OTHER_CLUSTER_, array('%name%' => $etva_cluster->getName()));
             // $res = "Volume group exists on cluster ".$etva_cluster->getName();
             $response = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n, 'info' => $msg_i18n);
             $return = $this->setJsonError($response);
             return $this->renderText($return);
         }
     }
 }