public function executeJsongetIP(sfWebRequest $request) { $id = $request->getParameter('id'); $dev_flag = 'va_management'; $interfaces_devices = sfConfig::get('app_device_interfaces'); $etvamodel = $this->getUser()->getAttribute('etvamodel'); $devices = $interfaces_devices[$etvamodel]; $device = $devices[$dev_flag]; $method = 'get_va_ipconf'; $params = array('network' => $device); $etva_node = EtvaNodePeer::retrieveByPK($id); $response = $etva_node->soapSend($method, $params); $success = $response['success']; if (!$success) { $msg_i18n = $this->getContext()->getI18N()->__(SystemNetwork::_ERR_NOTFOUND_INTF_, array('%info%' => $response['info'], '%name%' => $params['network'])); $error = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n, 'info' => $msg_i18n); $info = array('success' => false, 'agent' => $response['agent'], 'error' => $msg_i18n, 'info' => $msg_i18n); $error = $this->setJsonError($info); return $this->renderText($error); } $response_decoded = (array) $response['response']; $data = array(); $sys_network = new SystemNetwork(); $sys_network->set(SystemNetwork::INTF, $params['network']); if ($response_decoded[SystemNetwork::INTF]) { $sys_network->set(SystemNetwork::INTF, $response_decoded[SystemNetwork::INTF]); } if ($response_decoded[SystemNetwork::IP]) { $sys_network->set(SystemNetwork::IP, $response_decoded[SystemNetwork::IP]); } if ($response_decoded[SystemNetwork::NETMASK]) { $sys_network->set(SystemNetwork::NETMASK, $response_decoded[SystemNetwork::NETMASK]); } if ($response_decoded[SystemNetwork::GW]) { $sys_network->set(SystemNetwork::GW, $response_decoded[SystemNetwork::GW]); } if ($response_decoded[SystemNetwork::BOOTP]) { $sys_network->set(SystemNetwork::BOOTP, $response_decoded[SystemNetwork::BOOTP]); } if ($response_decoded[SystemNetwork::DNS]) { $sys_network->set(SystemNetwork::DNS, $response_decoded[SystemNetwork::DNS]); } if ($response_decoded[SystemNetwork::DNSSec]) { $sys_network->set(SystemNetwork::DNSSec, $response_decoded[SystemNetwork::DNSSec]); } $static = 0; $ip = $sys_network->get(SystemNetwork::IP); $subnet = $sys_network->get(SystemNetwork::NETMASK); $gw = $sys_network->get(SystemNetwork::GW); $if = $sys_network->get(SystemNetwork::INTF); $dns = $sys_network->get(SystemNetwork::DNS); $seconddns = $sys_network->get(SystemNetwork::DNSSec); $bootp = $sys_network->get(SystemNetwork::BOOTP); if ($bootp == 'none' || $bootp == 'static') { $static = 1; } $data['network_' . $dev_flag . '_static'] = $static; $data['network_' . $dev_flag . '_bootp'] = $static ? 'static' : 'dhcp'; $data['network_' . $dev_flag . '_ip'] = $ip; $data['network_' . $dev_flag . '_netmask'] = $subnet; $data['network_' . $dev_flag . '_gateway'] = $gw; $data['network_' . $dev_flag . '_if'] = $if; $data['network_primarydns'] = $dns; $data['network_secondarydns'] = $seconddns; $data['network_staticdns'] = $static; $data['network_bootpdns'] = $static ? 'static' : 'dhcp'; $data['node_id'] = $etva_node->getId(); $msg = array('success' => true, 'data' => $data); return $this->renderText(json_encode($msg)); }
public function equals(SystemNetwork $other) { return $this->get(SystemNetwork::IP) == $other->get(SystemNetwork::IP) && $this->get(SystemNetwork::NETMASK) == $other->get(SystemNetwork::NETMASK) && $this->get(SystemNetwork::GW) == $other->get(SystemNetwork::GW) && $this->get(SystemNetwork::DNS) == $other->get(SystemNetwork::DNS) && $this->get(SystemNetwork::DNSSec) == $other->get(SystemNetwork::DNSSec); }
public function send_change_ip($network) { $sys_network = new SystemNetwork(); if (!$sys_network->fromArray($network)) { $intf = $network['if']; $msg_i18n = sfContext::getInstance()->getI18N()->__(SystemNetwork::_ERR_NOTFOUND_INTF_, array('%name%' => $intf, '%info%' => '')); //notify event log $node_log = Etva::getLogMessage(array('name' => $intf, 'info' => ''), SystemNetwork::_ERR_NOTFOUND_INTF_); $message = Etva::getLogMessage(array('name' => sfConfig::get('config_acronym'), 'info' => $node_log), EtvaNodePeer::_ERR_CHANGEIP_); sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR))); $error = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n); return $error; } $criteria = new Criteria(); $criteria->add(EtvaNodePeer::ID, $this->etva_node->getId(), Criteria::NOT_EQUAL); $cluster_nodes = $this->etva_node->getNodesCluster($criteria); foreach ($cluster_nodes as $node) { $node_name = $node->getName(); $node_ip = $node->getIp(); if ($sys_network->get(SystemNetwork::IP) == $node_ip) { $msg_i18n = sfContext::getInstance()->getI18N()->__(SystemNetwork::_ERR_IP_INUSE_, array('%ip%' => $node_ip, '%name%' => $node_name)); $msg = Etva::getLogMessage(array('ip' => $node_ip, 'name' => $node_name), SystemNetwork::_ERR_IP_INUSE_); $message = Etva::getLogMessage(array('name' => sfConfig::get('config_acronym'), 'info' => $msg), EtvaNodePeer::_ERR_CHANGEIP_); sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR))); $error = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n); return $error; } } $method = self::CHANGE_IP; $params = $sys_network->_VA(); /* * update MA if any... * */ $etva_servers = $this->etva_node->getEtvaServers(); foreach ($etva_servers as $etva_server) { $server_ma = $etva_server->getAgentTmpl(); $server_state = $etva_server->getState(); if ($server_state && $server_ma) { $etva_server->setSoapTimeout(5); $response = $etva_server->soapSend($method, $params); $result = $this->processChangeIpResponse($response, $method); } } $this->etva_node->setSoapTimeout(5); $response = $this->etva_node->soapSend($method, $params); $result = $this->processChangeIpResponse($response, $method); return $result; }