protected function execute($arguments = array(), $options = array())
 {
     $context = sfContext::createInstance(sfProjectConfiguration::getApplicationConfiguration('app', $options['env'], true));
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'])->getConnection();
     // add your code here
     $nid = $arguments['id'];
     $this->log("[INFO] node check id={$nid}");
     if (!($etva_node = EtvaNodePeer::retrieveByPK($nid))) {
         $msg_i18n = $context->getI18N()->__(EtvaNodePeer::_ERR_NOTFOUND_ID_, array('%id%' => $nid));
         $error = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n, 'info' => $msg_i18n);
         $this->log("[ERROR] " . $error['error']);
         return $error;
     } else {
         $etva_node_va = new EtvaNode_VA($etva_node);
         $response = $etva_node_va->checkState();
         if (!$response['success']) {
             $this->log("[ERROR] " . $response['error']);
         } else {
             $this->log("[INFO] " . $response['response']);
         }
         return $response;
     }
 }
 protected function execute($arguments = array(), $options = array())
 {
     $context = sfContext::createInstance(sfProjectConfiguration::getApplicationConfiguration('app', $options['env'], true));
     parent::execute($arguments, $options);
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'])->getConnection();
     // add your code here
     $this->log('Refreshing Guest Agents Info...' . "\n");
     $nodes = EtvaNodeQuery::create()->filterByState(EtvaNode::NODE_ACTIVE)->find();
     foreach ($nodes as $node) {
         $node_va = new EtvaNode_VA($node);
         $this->log('Collecting info for node: ' . $node->getName() . "\n");
         $bulk_response_gas = $node_va->send_get_gas_info();
         //$this->log('The following servers info were updated: '.implode('; ', $bulk_response_gas));
         $message = 'The following servers info were updated: ' . implode('; ', $bulk_response_gas);
         $this->log($message);
         $context->getEventDispatcher()->notify(new sfEvent($node->getName(), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::INFO)));
     }
 }
Exemple #3
0
 public function executeJsonListSyncLogicalVolumes(sfWebRequest $request)
 {
     //adding cluster id filter
     $elements = array();
     // get node id from cluster context
     $etva_node = EtvaNodePeer::getOrElectNode($request);
     if (!$etva_node) {
         $msg_i18n = $this->getContext()->getI18N()->__(EtvaNodePeer::_ERR_NOTFOUND_ID_, array('%id%' => $nid));
         $error = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n, 'info' => $msg_i18n);
         $node_log = Etva::getLogMessage(array('id' => $nid), EtvaNodePeer::_ERR_NOTFOUND_ID_);
         //notify system log
         $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $node_log, 'priority' => EtvaEventLogger::ERR)));
         // if is a CLI soap request return json encoded data
         if (sfConfig::get('sf_environment') == 'soap') {
             return json_encode($error);
         }
         // if is browser request return text renderer
         $error = $this->setJsonError($error);
         return $this->renderText($error);
     }
     $sharedonly = false;
     $force = false;
     if ($request->getParameter('force')) {
         $force = true;
     }
     if ($request->getParameter('level') == 'cluster') {
         $sharedonly = true;
     }
     $etva_node_va = new EtvaNode_VA($etva_node);
     $elements = $etva_node_va->get_sync_logicalvolumes($force, $sharedonly);
     // return array
     $result = array('success' => true, 'total' => count($elements), 'data' => $elements, 'agent' => $etva_node->getName());
     $return = json_encode($result);
     if (sfConfig::get('sf_environment') == 'soap') {
         return $return;
     }
     $this->getResponse()->setHttpHeader('Content-type', 'application/json');
     return $this->renderText($return);
 }
Exemple #4
0
 public function restore($backup_id)
 {
     //clear stage cache
     $this->delStage(self::RESTORE_STAGE);
     chdir(sfConfig::get('sf_root_dir'));
     /*
      * TELL VA to reset stuff
      */
     $node_list = EtvaNodePeer::doSelect(new Criteria());
     $node_num = count($node_list);
     if ($node_num != 1) {
         /*
          * ERROR should be only one element (standard ETVA release only)
          */
         $msg = "Sould only be one Virtualization Agent! {$node_num} found!";
         $data = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'info' => $msg, 'error' => $msg);
         return $data;
     }
     $node = $node_list[0];
     /*
      * check node state ok to comm with agent
      */
     if (!$node->getState()) {
         $node_name = $node->getName();
         $msg = sfContext::getInstance()->getI18N()->__(EtvaNodePeer::_STATE_DOWN_, array('%name%' => $node_name));
         $data = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'action' => 'check_nodes', 'info' => $msg, 'error' => $msg);
         return $data;
     }
     $this->disable();
     /*
      *
      * FIRST THING....CLEANUP DESTINATION FOLDER AND GET RESTORE ARCHIVE
      *
      */
     IOFile::unlinkRecursive($this->archive_base_dir, false);
     $full_path = $this->archive_base_dir . '/' . self::ARCHIVE_FILE;
     $this->setStage(self::RESTORE_STAGE, self::GET_RESTORE);
     $response = $this->getApplianceBackup($backup_id, $full_path);
     /*
      *
      * DECOMPRESS BACKUP ARCHIVE
      *
      */
     $this->setStage(self::RESTORE_STAGE, self::ARCHIVE_RESTORE);
     $create_gz = new gzip_file($full_path);
     $base_dir = $this->archive_base_dir;
     $create_gz->set_options(array('basedir' => $base_dir, 'overwrite' => 1));
     $create_gz->extract_files();
     /*
      * get DB file and put in tmp_db_filename
      */
     $db_filename = $base_dir . '/' . self::DB_FILE;
     if (!file_exists($db_filename)) {
         return array('success' => false, 'error' => 'no file');
     }
     // move DB backup to correct folder...
     rename($db_filename, $this->tmp_db_filename);
     /*
      *
      * CLEAN DB ????
      *
      */
     /*
      * delete tables and build again....
      */
     $command = "symfony propel:insert-sql --no-confirmation";
     $path = sfConfig::get('sf_root_dir') . DIRECTORY_SEPARATOR . "utils";
     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) {
         $msg = 'An error occurred while deleting DB. Aborted!' . $status;
         $data = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'action' => self::DB_RESTORE, 'info' => $msg, 'error' => $msg);
         return $data;
     }
     /*
      *
      * RESTORE CENTRAL MANAGEMENT BACKUP (DB)
      *
      *
      */
     $this->setStage(self::RESTORE_STAGE, self::DB_RESTORE);
     /*
      * load data to DB
      */
     //sfContext::getInstance()->getStorage()->regenerate(true);
     exec("symfony propel:data-load " . $this->tmp_db_filename, $output, $status);
     if ($status != 0) {
         // aconteceu erro
         $msg = 'An error occurred while generating DB dump. Aborted!' . $status;
         $data = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'action' => self::DB_RESTORE, 'info' => $msg, 'error' => $msg);
         return $data;
     }
     /*
      * 
      * generate session to stay logged in...
      *
      */
     sfContext::getInstance()->getStorage()->regenerate();
     $this->setStage(self::RESTORE_STAGE, self::VA_RESET);
     $node_va = new EtvaNode_VA($node);
     /*
      * get new uuid from DB
      */
     $backup_node = EtvaNodePeer::doSelectOne(new Criteria());
     $uuid = $backup_node->getUuid();
     $response = $node_va->send_change_uuid($uuid);
     if (!$response['success']) {
         return $response;
     }
     $response = array('success' => true);
     return $response;
 }
Exemple #5
0
 public function executeJsonUpdate(sfWebRequest $request)
 {
     // create node entry
     $id = $request->getParameter('id');
     $etva_node = EtvaNodePeer::retrieveByPK($id);
     if (!$etva_node) {
         $form = new EtvaNodeForm();
     } else {
         $form = new EtvaNodeForm($etva_node);
     }
     $data = (array) json_decode($request->getParameter($form->getName()));
     if ($data['name'] && $data['name'] != $etva_node->getName()) {
         // if name changed
         $node_va = new EtvaNode_VA($etva_node);
         $response = $node_va->send_change_name($data['name']);
         // send to VA to change name
         if (!$response['success']) {
             if (sfConfig::get('sf_environment') == 'soap') {
                 return json_encode($response);
             }
             $return = $this->setJsonError($response);
             return $this->renderText($return);
         }
     }
     try {
         $etva_node->fromArray($data, BasePeer::TYPE_FIELDNAME);
         $etva_node->save();
     } catch (Exception $e) {
         $result = array('success' => false, 'error' => array('node' => $e->getMessage()), 'obj' => $etva_cluster);
         $error = $this->setJsonError($result);
         return $this->renderText($error);
     }
     $name = $etva_node->getName();
     $i18n_msg = $msg_i18n = $this->getContext()->getI18N()->__(EtvaNodePeer::_OK_UPDATE_, array('%name%' => $name));
     //notify system log
     $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => Etva::getLogMessage(array('name' => $name), EtvaNodePeer::_OK_UPDATE_))));
     $return = array('success' => true, 'agent' => sfConfig::get('config_acronym'), 'response' => $i18n_msg, 'node_id' => $etva_node->getId());
     $return = json_encode($return);
     error_log("getFencingconf_cmd " . $etva_node->getFencingconf_cmd('status'));
     $this->getResponse()->setHttpHeader('Content-type', 'application/json');
     return $this->renderText($return);
 }
 protected function execute($arguments = array(), $options = array())
 {
     $context = sfContext::createInstance(sfProjectConfiguration::getApplicationConfiguration('app', 'dev', true));
     parent::execute($arguments, $options);
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $con = $databaseManager->getDatabase($options['connection'])->getConnection();
     // add your code here
     $this->log('[INFO] Send explicit check to VirtAgents...' . "\n");
     $inactive_nodes = EtvaNodeQuery::create()->filterByState(EtvaNode::NODE_INACTIVE)->find();
     if (count($inactive_nodes) > 0) {
         $queue = new processCheckQueuing($this);
         foreach ($inactive_nodes as $node) {
             $cluster = $node->getEtvaCluster();
             // only if cluster has HA
             if ($cluster->getHasNodeHA()) {
                 $message = sprintf('Node %s is inactive and the cluster %s has Node HA configured.', $node->getName(), $cluster->getName());
                 $this->log($message);
                 Etva::makeNotifyLogMessage($this->name, $message);
                 // if fail mark as coma
                 $etva_node_va = new EtvaNode_VA($node);
                 $response = $etva_node_va->checkState(EtvaNode::NODE_COMA);
                 if (!$response['success']) {
                     $msg_fail = sprintf(' agent %s getstate fail ', $node->getName());
                     $this->log($msg_fail);
                     Etva::makeNotifyLogMessage($this->name, $msg_fail);
                     $queue->enqueueProcess($node, 180);
                 } else {
                     $msg_ok = sprintf(' agent %s getstate with success ', $node->getName());
                     $this->log($msg_ok);
                     Etva::makeNotifyLogMessage($this->name, $msg_ok, array(), null, array(), EtvaEventLogger::INFO);
                 }
             } else {
                 $msg_noha = sprintf('Node %s is inactive but the cluster %s doesn\'t have Node HA configured.', $node->getName(), $cluster->getName());
                 $this->log($msg_noha);
             }
         }
         $queue->loop();
     } else {
         $this->log('No inactive nodes found!');
     }
 }
Exemple #7
0
 /**
  * Perform update on table setting
  *
  * @param      string $param parameter name to perform operation
  * @param      string $value value for the $param
  *
  */
 public function executeJsonUpdateSetting(sfWebRequest $request)
 {
     $isAjax = $request->isXmlHttpRequest();
     if (!$isAjax) {
         return $this->redirect('@homepage');
     }
     $settings = $request->getParameter('settings');
     $settings_decoded = json_decode($settings, true);
     $force = $request->getParameter('force');
     $networks = $request->getParameter('networks');
     $network_decoded = json_decode($networks, true);
     if ($networks) {
         $etva_data = Etva::getEtvaModelFile();
         $etvamodel = $etva_data['model'];
         /*
          * get nodes....and call node agent script
          */
         $remote_errors = array();
         $change_networks = 0;
         $cm_networks = new SystemNetworkUtil();
         $interfaces_devices = sfConfig::get('app_device_interfaces');
         $devices = $interfaces_devices[$etvamodel];
         $cm_networks->loadCMNetworks($devices);
         $sys_networks = $cm_networks->getNetworks();
         if ($etvamodel == 'standard') {
             $local = $network_decoded['lan'];
             $remote = $network_decoded['cm_management'];
             $cm_ip = $remote['ip'];
             $local_net = new SystemNetwork();
             $local_net->fromArray($local);
             $remote_net = new SystemNetwork();
             $remote_net->fromArray($remote);
             $sys_lan_if = $devices['lan'];
             $sys_manag_if = $devices['cm_management'];
             $sys_lan_net = $sys_networks[$sys_lan_if];
             $sys_manag_net = $sys_networks[$sys_manag_if];
             if (!$local_net->equals($sys_lan_net) || !$remote_net->equals($sys_manag_net)) {
                 $change_networks = 1;
             }
         } else {
             $local = $network_decoded['cm_management'];
             $remote = array();
             $cm_ip = $local['ip'];
             $local_net = new SystemNetwork();
             $local_net->fromArray($local);
             $sys_manag_if = $devices['cm_management'];
             $sys_manag_net = $sys_networks[$sys_manag_if];
             if (!$local_net->equals($sys_manag_net)) {
                 $change_networks = 1;
             }
         }
         if ($change_networks) {
             $criteria = new Criteria();
             $etva_nodes = EtvaNodePeer::doSelect($criteria);
             if (!$force) {
                 // check for nodes state if not force
                 foreach ($etva_nodes as $etva_node) {
                     $node_state = $etva_node->getState();
                     if (!$node_state) {
                         $remote_errors[] = Etva::getLogMessage(array('agent' => $etva_node->getName(), 'msg' => 'Down'), Etva::_AGENT_MSG_);
                     }
                     /*
                      * check if servers has an MA and are down...send error
                      */
                     $etva_servers = $etva_node->getEtvaServers();
                     foreach ($etva_servers as $etva_server) {
                         $server_ma = $etva_server->getAgentTmpl();
                         $server_state = $etva_server->getState();
                         if (!$server_state && $server_ma) {
                             $remote_errors[] = Etva::getLogMessage(array('agent' => $etva_server->getName(), 'msg' => 'Down'), Etva::_AGENT_MSG_);
                         }
                     }
                 }
                 //end foreach
             }
             if ($remote_errors && !$force) {
                 $msg = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'action' => 'check_nodes', 'info' => implode('<br>', $remote_errors), 'error' => implode(' ', $remote_errors));
                 $error = $this->setJsonError($msg);
                 return $this->renderText($error);
             }
             if ($etvamodel != 'standard') {
                 // only if not standard version
                 /*
                  * 
                  * check ISO DIR in use
                  *
                  */
                 $isosdir = sfConfig::get("config_isos_dir");
                 $criteria = new Criteria();
                 $criteria->add(EtvaServerPeer::LOCATION, "%{$isosdir}%", Criteria::LIKE);
                 $criteria->add(EtvaServerPeer::VM_STATE, 'running');
                 $servers_running_iso = EtvaServerPeer::doSelect($criteria);
                 foreach ($servers_running_iso as $server) {
                     $remote_errors[] = $this->getContext()->getI18N()->__(EtvaServerPeer::_CDROM_INUSE_, array('%name%' => $server->getName()));
                 }
                 if ($remote_errors) {
                     $message = Etva::getLogMessage(array('info' => ETVA::_CDROM_INUSE_), ETVA::_ERR_ISODIR_INUSE_);
                     $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
                     $i18n_br_sep = implode('<br>', $remote_errors);
                     $i18n_sp_sep = implode(' ', $remote_errors);
                     //$iso_br_msg = Etva::getLogMessage(array('info'=>'<br>'.$br_sep), ETVA::_ERR_ISODIR_INUSE_);
                     $i18n_iso_br_msg = $this->getContext()->getI18N()->__(ETVA::_ERR_ISODIR_INUSE_, array('%info%' => '<br>' . $i18n_br_sep));
                     //$iso_sp_msg = Etva::getLogMessage(array('info'=>$sp_sep), ETVA::_ERR_ISODIR_INUSE_);
                     $i18n_iso_sp_msg = $this->getContext()->getI18N()->__(ETVA::_ERR_ISODIR_INUSE_, array('%info%' => $i18n_sp_sep));
                     $msg = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'info' => $i18n_iso_br_msg, 'error' => $i18n_iso_sp_msg);
                     $error = $this->setJsonError($msg);
                     return $this->renderText($error);
                 }
                 /*
                  * if all ok so far.....send nodes umount ISO DIR
                  */
                 foreach ($etva_nodes as $etva_node) {
                     $node_va = new EtvaNode_VA($etva_node);
                     $response = array('success' => true);
                     if ($force && $etva_node->getState()) {
                         $response = $node_va->send_umount_isosdir();
                     }
                     $success = $response['success'];
                     if (!$success) {
                         $node_msg = Etva::getLogMessage(array('name' => $response['agent'], 'info' => $response['error']), EtvaNodePeer::_ERR_ISODIR_UMOUNT_);
                         $remote_errors[] = $node_msg;
                         $message = Etva::getLogMessage(array('info' => $node_msg), EtvaSettingPeer::_ERR_SETTING_REMOTE_CONNECTIVITY_SAVE_);
                         $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
                     }
                 }
                 if (!empty($remote_errors)) {
                     $msg = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'info' => implode('<br>', $remote_errors), 'error' => implode(' ', $remote_errors));
                     $error = $this->setJsonError($msg);
                     return $this->renderText($error);
                 }
             }
             /*
              * update using local script
              */
             $local_updated = $this->localUpdate($local);
             if (!$local_updated) {
                 $intf = $local['if'];
                 $msg_i18n = $this->getContext()->getI18N()->__(SystemNetwork::_ERR_NOTFOUND_INTF_, array('%name%' => $intf, '%info%' => ''));
                 $info = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'error' => $msg_i18n);
                 $error = $this->setJsonError($info);
                 return $this->renderText($error);
             }
             if (empty($remote_errors)) {
                 foreach ($etva_nodes as $etva_node) {
                     // send update to nodes if force
                     $etva_node->setSoapTimeout(5);
                     $remote_updated = $this->remoteUpdate($etva_node, $remote, $cm_ip);
                     if ($remote_updated !== true) {
                         if ($remote_updated === false) {
                             $intf = $remote['intf'];
                             $msg_i18n = $this->getContext()->getI18N()->__(SystemNetwork::_ERR_NOTFOUND_INTF_, array('%name%' => $intf, '%info%' => ''));
                             $remote_errors[] = $msg_i18n;
                             //$error = array('success'=>false,'agent'=>sfConfig::get('config_acronym'),'error'=>$msg_i18n);
                         } else {
                             $agent_msg = Etva::getLogMessage(array('agent' => $remote_updated['agent'], 'msg' => $remote_updated['error']), Etva::_AGENT_MSG_);
                             $message = Etva::getLogMessage(array('info' => $agent_msg), EtvaSettingPeer::_ERR_SETTING_REMOTE_CONNECTIVITY_SAVE_);
                             $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
                             $remote_errors[] = $agent_msg;
                         }
                     }
                     /*
                      * update MA if any...
                      *
                      */
                     $etva_servers = $etva_node->getEtvaServers();
                     foreach ($etva_servers as $etva_server) {
                         $server_ma = $etva_server->getAgentTmpl();
                         $server_state = $etva_server->getState();
                         if ($server_state && $server_ma) {
                             $aux_ip = $etva_server->getIp();
                             $etva_server->setSoapTimeout(5);
                             $remote_updated = $this->remoteUpdate($etva_server, $remote, $cm_ip);
                             if ($remote_updated === false) {
                                 $intf = $remote['intf'];
                                 $msg_i18n = $this->getContext()->getI18N()->__(SystemNetwork::_ERR_NOTFOUND_INTF_, array('%name%' => $intf, '%info%' => ''));
                                 $remote_errors[] = $msg_i18n;
                                 //$error = array('success'=>false,'agent'=>sfConfig::get('config_acronym'),'error'=>$msg_i18n);
                             } else {
                                 $agent_msg = Etva::getLogMessage(array('agent' => $remote_updated['agent'], 'msg' => $remote_updated['error']), Etva::_AGENT_MSG_);
                                 $message = Etva::getLogMessage(array('info' => $agent_msg), EtvaSettingPeer::_ERR_SETTING_REMOTE_CONNECTIVITY_SAVE_);
                                 $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
                                 $remote_errors[] = $agent_msg;
                             }
                         }
                     }
                 }
             }
             if (!empty($remote_errors)) {
                 $msg = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'info' => implode('<br>', $remote_errors), 'error' => implode(' ', $remote_errors));
                 $error = $this->setJsonError($msg);
                 return $this->renderText($error);
             }
         }
         // end if changed networks
     }
     foreach ($settings_decoded as $data) {
         $param = $data['param'];
         $value = $data['value'];
         if (!($etva_setting = EtvaSettingPeer::retrieveByPk($param))) {
             $msg_i18n = $this->getContext()->getI18N()->__(EtvaSettingPeer::_ERR_NOTFOUND_PARAM_, array('%id%' => $param));
             $info = array('success' => false, 'error' => $msg_i18n);
             $error = $this->setJsonError($info);
             return $this->renderText($error);
         }
         $etva_setting->setValue($value);
         switch ($param) {
             case 'vnc_keymap':
                 if ($etva_setting->saveVNCkeymap()) {
                     //notify system log
                     $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => Etva::getLogMessage(array('name' => $etva_setting->getValue()), EtvaSettingPeer::_OK_VNCKEYMAP_CHANGE_))));
                 } else {
                     //notify system log
                     $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => Etva::getLogMessage(array('name' => $value), EtvaSettingPeer::_ERR_VNCKEYMAP_CHANGE_), 'priority' => EtvaEventLogger::ERR)));
                 }
                 break;
             default:
                 try {
                     $etva_setting->save();
                     //notify system log
                     $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => Etva::getLogMessage(array('name' => $etva_setting->getParam(), 'value' => $etva_setting->getValue()), EtvaSettingPeer::_OK_SETTING_CHANGE_))));
                 } catch (Exception $e) {
                     //notify system log
                     $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => Etva::getLogMessage(array('name' => $value), EtvaSettingPeer::_ERR_SETTING_CHANGE_), 'priority' => EtvaEventLogger::ERR)));
                 }
                 break;
         }
     }
     // end foreach
     $msg_i18n = $this->getContext()->getI18N()->__(EtvaSettingPeer::_OK_SETTING_CONNECTIVITY_SAVE_);
     $message = EtvaSettingPeer::_OK_SETTING_CONNECTIVITY_SAVE_;
     $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message)));
     $info = array('success' => true, 'agent' => sfConfig::get('config_acronym'), 'response' => $msg_i18n);
     return $this->renderText(json_encode($info));
 }