Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
 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));
 }
Ejemplo n.º 3
0
 /**
  *
  * 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;
     }
 }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
 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;
 }