public function initData($arr) { if (array_key_exists(self::NAME_MAP, $arr)) { $this->setName($arr[self::NAME_MAP]); } if (array_key_exists(self::MEMORY_MAP, $arr)) { $memory = Etva::Byte_to_MBconvert($arr[self::MEMORY_MAP]); $this->setMem($memory); } if (array_key_exists(self::VCPU_MAP, $arr)) { $this->setCpus($arr[self::VCPU_MAP]); } if (array_key_exists(self::VNC_PORT_MAP, $arr)) { $this->setVncPort($arr[self::VNC_PORT_MAP]); } if (array_key_exists(self::VNC_KEYMAP_MAP, $arr)) { $this->setVncKeymap($arr[self::VNC_KEYMAP_MAP]); } if (array_key_exists(self::VM_STATE_MAP, $arr)) { $this->setVmState($arr[self::VM_STATE_MAP]); } if (array_key_exists(self::DISKS_MAP, $arr)) { $this->setDisks($arr[self::DISKS_MAP]); } if (array_key_exists(self::NETWORKS_MAP, $arr)) { $this->setNetworks($arr[self::NETWORKS_MAP]); } if (array_key_exists(self::FEATURES_MAP, $arr)) { $this->setFeatures(json_encode($arr[self::FEATURES_MAP])); } }
public function toDisplay() { $array_data = $this->toArray(BasePeer::TYPE_FIELDNAME); $array_data['mem_text'] = Etva::Byte_to_MBconvert($array_data['memtotal']); $array_data['mem_available'] = Etva::Byte_to_MBconvert($array_data['memfree']); if ($fencingconf = $this->getFencingconf()) { $fencingconf_arr = (array) json_decode($fencingconf); foreach ($fencingconf_arr as $f => $v) { $fk = "fencingconf_" . $f; $array_data[$fk] = $v; } } switch ($array_data['state']) { case self::NODE_ACTIVE: $array_data['state_text'] = sfContext::getInstance()->getI18N()->__('Up'); break; case self::NODE_INACTIVE: $array_data['state_text'] = sfContext::getInstance()->getI18N()->__('Down'); break; case self::NODE_FAIL_UP: case self::NODE_FAIL: $array_data['state_text'] = sfContext::getInstance()->getI18N()->__('Fail'); break; case self::NODE_MAINTENANCE_UP: case self::NODE_MAINTENANCE: $array_data['state_text'] = sfContext::getInstance()->getI18N()->__('Maintenance'); break; } return $array_data; }
public function executeJsonLoad(sfWebRequest $request) { $count = 0; $id = $request->getParameter('id'); if ($etva_node = EtvaNodePeer::retrieveByPK($id)) { $count = 1; } else { $msg_i18n = $this->getContext()->getI18N()->__(EtvaNodePeer::_ERR_NOTFOUND_ID_, array('%id%' => $id)); $error = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n, 'info' => $msg_i18n); // if is browser request return text renderer $error = $this->setJsonError($error); return $this->renderText($error); } $node_array = $etva_node->toDisplay(); // check if datacenter hasNodeHA? $node_array['datacenter_hasNodeHA'] = $etva_node->getEtvaCluster()->getHasnodeha() ? true : false; $run_servers = $etva_node->getServers(EtvaServerQuery::create()->filterByVmState(EtvaServer::RUNNING)); $stop_servers = $etva_node->getServers(EtvaServerQuery::create()->filterByVmState(EtvaServer::RUNNING, Criteria::NOT_EQUAL)); $node_array['servers_up'] = count($run_servers); $node_array['servers_down'] = count($stop_servers); // get sys info from node $node_va = new EtvaNode_VA($etva_node); $response = $node_va->send_get_sys_info(); if ($response['success']) { $node_array['sysinfo'] = (array) $response['response']; $node_array['node_free_memory'] = Etva::Byte_to_MBconvert($node_array['sysinfo']['meminfo']->NodeFreeMemory); } $return = array('success' => true, 'total' => $count, 'data' => $node_array); $result = json_encode($return); $this->getResponse()->setHttpHeader('Content-type', 'application/json'); return $this->renderText($result); }
public function executeJsonLoad(sfWebRequest $request) { $id = $request->getParameter('id'); if (!($etva_cluster = EtvaClusterPeer::retrieveByPK($id))) { $msg_i18n = $this->getContext()->getI18N()->__(EtvaClusterPeer::_ERR_CLUSTER_, array('%id%' => $id)); $error = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n, 'info' => $msg_i18n); // if is browser request return text renderer $error = $this->setJsonError($error); return $this->renderText($error); } $cluster_array = $etva_cluster->toDisplay(); $list_etva_nodes = $etva_cluster->getEtvaNodes(); $cluster_array['nodes_up'] = 0; $cluster_array['nodes_down'] = 0; $cluster_array['servers_assign'] = 0; $cluster_array['servers_unassign'] = 0; $cluster_array['count_fencing_cmd'] = 0; foreach ($list_etva_nodes as $etva_node) { $cluster_array['mem_text'] += $etva_node->getMemtotal(); $cluster_array['mem_available'] += $etva_node->getMemfree(); $cluster_array['cpus'] += $etva_node->getCputotal(); if ($etva_node->getState() == EtvaNode::NODE_ACTIVE) { $cluster_array['nodes_up'] += 1; } else { $cluster_array['nodes_down'] += 1; } if ($etva_node->getFencingconf_cmd()) { $cluster_array['count_fencing_cmd']++; } } $cluster_array['allnodes_have_fencing_cmd_configured'] = $cluster_array['count_fencing_cmd'] == count($list_etva_nodes) ? 1 : 0; $cluster_array['mem_text'] = Etva::Byte_to_MBconvert($cluster_array['mem_text']); $cluster_array['mem_available'] = Etva::Byte_to_MBconvert($cluster_array['mem_available']); $cluster_array['servers_assign'] = EtvaServerQuery::create()->filterByClusterId($etva_cluster->getId())->useEtvaServerAssignQuery()->endUse()->count(); $cluster_array['servers_unassign'] = EtvaServerQuery::create()->filterByClusterId($etva_cluster->getId())->count() - $cluster_array['servers_assign']; $return = array('success' => true, 'total' => $count, 'data' => $cluster_array); $result = json_encode($return); $this->getResponse()->setHttpHeader('Content-type', 'application/json'); return $this->renderText($result); }