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 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)); }
/** * * update local machine interface. invoques local perl script throught php */ static function updateLocalNetwork(SystemNetwork $network_obj) { $network = $network_obj->_VA(); $build_args = array(); if ($network['if']) { $build_args[] = '-if ' . $network['if']; } if ($network['ip']) { $build_args[] = '-ip ' . $network['ip']; } if ($network['netmask']) { $build_args[] = '-netmask ' . $network['netmask']; } if ($network['gateway']) { $build_args[] = '-gateway ' . $network['gateway']; } if ($network['primarydns']) { $build_args[] = '-primarydns ' . $network['primarydns']; } if ($network['secondarydns']) { $build_args[] = '-secondarydns ' . $network['secondarydns']; } if ($network['dhcp']) { $build_args[] = '-dhcp'; } $args = implode(' ', $build_args); $path = sfConfig::get('sf_root_dir') . DIRECTORY_SEPARATOR . "utils"; $command = "perl -I" . $path . DIRECTORY_SEPARATOR . "pl" . " " . $path . DIRECTORY_SEPARATOR . "pl" . DIRECTORY_SEPARATOR . "script_chgip.pl " . $args; ob_start(); passthru('echo ' . $command . ' | sudo /usr/bin/php -f ' . $path . DIRECTORY_SEPARATOR . 'sudoexec.php', $return); $result = ob_get_contents(); ob_end_clean(); if ($result == 0 && $return == 0) { return true; } else { return false; } }
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; }
private function localUpdate($net) { $sys = new SystemNetwork(); if (!$sys->fromArray($net)) { return false; } $updated_network = SystemNetworkUtil::updateLocalNetwork($sys); if (!$updated_network) { return false; } return true; }