public function getSharedVgs() { /* * * get shared vgs of defined cluster. */ $criteria = new Criteria(); $criteria->add(EtvaClusterPeer::ID, $this->getId()); $criteria->addJoin(EtvaVolumegroupPeer::CLUSTER_ID, EtvaClusterPeer::ID); $criteria->add(EtvaVolumegroupPeer::STORAGE_TYPE, EtvaVolumegroup::STORAGE_TYPE_LOCAL_MAP, Criteria::ALT_NOT_EQUAL); $etva_shared_vgs = EtvaVolumegroupPeer::doSelect($criteria); return $etva_shared_vgs; }
public function executeJsonListFree(sfWebRequest $request) { $cid = $request->getParameter('cid'); $level = $request->getParameter('level'); $nid = $request->getParameter('nid'); $gtMB = $request->getParameter('gtMB'); if (!$level) { //back compatibility $level = 'node'; } $elements = array(); $criteria = new Criteria(); if ($level == 'node') { $criteria->add(EtvaNodeVolumegroupPeer::NODE_ID, $nid); $criteria->addJoin(EtvaNodeVolumegroupPeer::VOLUMEGROUP_ID, EtvaVolumegroupPeer::ID); } elseif ($level == 'cluster') { $criteria->add(EtvaVolumegroupPeer::CLUSTER_ID, $cid); $criteria->addAnd(EtvaVolumeGroupPeer::STORAGE_TYPE, EtvaVolumeGroup::STORAGE_TYPE_LOCAL_MAP, Criteria::ALT_NOT_EQUAL); } else { return; } $criteria->add(EtvaVolumegroupPeer::FREESIZE, 0, Criteria::NOT_EQUAL); if ($gtMB) { $criteria->addAnd(EtvaVolumegroupPeer::FREESIZE, intval($gtMB) * 1024 * 1024, Criteria::GREATER_THAN); } $nodisk = $request->getParameter('nodisk'); if ($nodisk) { $criteria->add(EtvaVolumegroupPeer::VG, sfConfig::get('app_volgroup_disk_flag'), Criteria::NOT_EQUAL); } $etva_vgs = EtvaVolumegroupPeer::doSelect($criteria); if (!$etva_vgs && !$gtMB) { $msg_i18n = $this->getContext()->getI18N()->__(EtvaVolumegroupPeer::_NOTAVAILABLE_); $info = array('success' => false, 'error' => $msg_i18n); $error = $this->setJsonError($info); //,204); // 204 => no content return $this->renderText($error); } foreach ($etva_vgs as $elem) { $id = $elem->getId(); $size = $elem->getFreesize(); $txt = $elem->getVg(); $elements[] = array('id' => $id, 'name' => $txt, 'value' => $size); } $result = array('total' => count($elements), 'data' => $elements); $return = json_encode($result); $this->getResponse()->setHttpHeader('Content-type', 'application/json'); return $this->renderText($return); }