Esempio n. 1
0
 public function ETFW_main(EtvaServer $etva_server, $method, $params, $mode)
 {
     // prepare soap info....
     $initial_params = array('dispatcher' => 'ETFW');
     $call_params = array_merge($initial_params, $params);
     // send soap request
     $response = $etva_server->soapSend($method, $call_params);
     // if soap response is ok
     if ($response['success']) {
         $response_decoded = (array) $response['response'];
         if ($mode) {
             $method = $mode;
         }
         switch ($method) {
             case 'etfw_save':
                 $return = $response;
                 break;
             default:
                 $return = array('success' => false, 'error' => 'No action \'' . $method . '\' defined yet', 'info' => 'No action \'' . $method . '\' implemented yet');
         }
         return $return;
     } else {
         $error_details = $response['info'];
         $error_details = nl2br($error_details);
         $error = $response['error'];
         $result = array('success' => false, 'error' => $error, 'info' => $error_details, 'faultcode' => $response['faultcode']);
         return $result;
     }
 }
Esempio n. 2
0
 public function ETMS_mailbox(EtvaServer $etva_server, $method, $params, $mode)
 {
     $response = $etva_server->soapSend($method, $params);
     // if soap response is ok
     if ($response['success']) {
         $response_decoded = (array) $response['response'];
         if ($mode) {
             $method = $mode;
         }
         switch ($method) {
             case 'get_users':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = (array) $data;
                 }
                 $return = array('success' => true, 'value' => $elements, 'agent' => $response['agent']);
                 break;
             case 'select_alias':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = array('alias' => $data);
                 }
                 $return = array('success' => true, 'value' => $elements, 'agent' => $response['agent']);
                 break;
             case 'edit_user':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = array('alias' => $data);
                 }
                 $return = array('success' => true, 'value' => $elements, 'agent' => $response['agent']);
                 break;
             case 'create_user':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = array('alias' => $data);
                 }
                 $return = array('success' => true, 'value' => $elements, 'agent' => $response['agent']);
                 break;
             case 'delete_user':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = array('alias' => $data);
                 }
                 $return = array('success' => true, 'value' => $elements, 'agent' => $response['agent']);
                 break;
             case 'select_domain':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[$dataType] = $data;
                 }
                 $return = array('success' => true, 'value' => $elements, 'agent' => $response['agent']);
                 break;
             case 'users_occupied_space':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[$dataType] = $data;
                 }
                 $return = array('success' => true, 'value' => $elements, 'agent' => $response['agent']);
                 break;
             default:
                 $return = array('success' => true, 'value' => $response_decoded, 'agent' => $response['agent']);
                 break;
         }
         return $return;
     } else {
         $error_details = $response['info'];
         $error_details = nl2br($error_details);
         $error = $response['error'];
         $result = array('success' => false, 'agent' => $response['agent'], 'error' => $error, 'info' => $error_details, 'faultcode' => $response['faultcode']);
         return $result;
     }
 }
Esempio n. 3
0
 public function ETFS_main(EtvaServer $etva_server, $r_method, $params, $mode, $service_id)
 {
     $method = str_replace(array("_cbx", "_tree", "_grid", "_filterBy", "_only"), "", $r_method);
     // prepare soap info....
     $initial_params = array();
     $call_params = array_merge($initial_params, $params);
     // send soap request
     $response = $etva_server->soapSend($method, $call_params);
     // if soap response is ok
     if ($response['success']) {
         $response_decoded = (array) $response['response'];
         if ($mode) {
             $method = $mode;
         }
         switch ($r_method) {
             case 'list_shares_filterBy':
                 $share_name = $params['name'];
                 $error_i18n = $this->getContext()->getI18N()->__('Share \'%name%\' not found.', array('%name%' => $share_name));
                 $info_i18n = $this->getContext()->getI18N()->__('Share \'%name%\' not found.', array('%name%' => $share_name));
                 $return = array('success' => false, 'error' => $error_i18n, 'info' => $info_i18n);
                 $shares_data = (array) $response_decoded;
                 foreach ($shares_data as $sObj) {
                     $share = (array) $sObj;
                     if ($share['name'] == $share_name) {
                         $return = array('success' => true, 'data' => $share);
                         break;
                     }
                 }
                 break;
             case 'list_shares_only':
                 $shares_data = (array) $response_decoded;
                 $return_data = array();
                 foreach ($shares_data as $sObj) {
                     $share = (array) $sObj;
                     if ($share['name'] !== 'global') {
                         array_push($return_data, $share);
                     }
                 }
                 $return = array('success' => true, 'data' => $return_data);
                 break;
             case 'list_groups':
             case 'list_smb_users':
             case 'list_users':
             case 'list_shares':
             case 'get_samba_status':
             case 'get_samba_status_raw':
             case 'get_global_configuration':
             case 'status_service':
                 $return_data = (array) $response_decoded;
                 $return = array('success' => true, 'data' => $return_data);
                 break;
                 /*case 'get_samba_status_raw':
                   $return_data = (array)$response_decoded;
                   error_log(print_r($return_data,true));
                   $return_data['status'] = str_replace("\\n","<br/>",$return_data['status']);
                   error_log(print_r($return_data,true));
                   $return = array( 'success'=>true, 'data'=>$return_data );
                   break;*/
             /*case 'get_samba_status_raw':
               $return_data = (array)$response_decoded;
               error_log(print_r($return_data,true));
               $return_data['status'] = str_replace("\\n","<br/>",$return_data['status']);
               error_log(print_r($return_data,true));
               $return = array( 'success'=>true, 'data'=>$return_data );
               break;*/
             case 'create_share':
             case 'update_share':
             case 'delete_share':
             case 'create_user':
             case 'update_user':
             case 'delete_user':
             case 'start_service':
             case 'restart_service':
             case 'stop_service':
             case 'set_global_configuration':
             case 'join_to_domain':
                 $okmsg_i18n = $this->getContext()->getI18N()->__($response_decoded['_okmsg_'], array());
                 $return = array('success' => true, 'data' => $data, 'response' => $okmsg_i18n);
                 break;
             default:
                 $error_i18n = $this->getContext()->getI18N()->__('No action \'%method%\' defined yet.', array('%method%' => $method));
                 $info_i18n = $this->getContext()->getI18N()->__('No action \'%method%\' implemented yet', array('%method%' => $method));
                 $return = array('success' => false, 'error' => $error_i18n, 'info' => $info_i18n);
         }
         return $return;
     } else {
         $error_details = $response['info'];
         $error_details = nl2br($error_details);
         $error_details_i18n = $this->getContext()->getI18N()->__($error_details);
         $error = $response['error'];
         $result = array('success' => false, 'error' => $error, 'info' => $error_details_i18n, 'faultcode' => $response['faultcode']);
         return $result;
     }
 }
Esempio n. 4
0
 public function Primavera_main(EtvaServer $etva_server, $r_method, $params, $mode, $service_id)
 {
     $method = str_replace(array("_cbx", "_tree", "_grid"), "", $r_method);
     // prepare soap info....
     $initial_params = array();
     $call_params = array_merge($initial_params, $params);
     // send soap request
     $response = $etva_server->soapSend($method, $call_params);
     // if soap response is ok
     if ($response['success']) {
         $response_decoded = (array) $response['response'];
         if ($mode) {
             $method = $mode;
         }
         switch ($r_method) {
             case 'primavera_info':
                 $data = array('id' => $service_id);
                 $disk_data = (array) $response_decoded['_disk_'];
                 $totalfreebytes = $disk_data['TotalNumberOfFreeBytes'];
                 $totalbytes = $disk_data['TotalNumberOfBytes'];
                 $totalfree_mb = round($totalfreebytes / 1024 / 1024, 2);
                 $total_mb = round($totalbytes / 1024 / 1024, 2);
                 $totalfree_per = round(100 * $totalfreebytes / $totalbytes, 2);
                 $data['totalfreeper'] = $totalfree_per;
                 $data['totalfreemb'] = $totalfree_mb;
                 $data['totalmb'] = $total_mb;
                 // format date
                 /*$backup_data = (array)$response_decoded['_backups_'];
                   $data['lastbackupdate'] = strftime('%Y-%m-%d %H:%M:%S', (int)$backup_data['changed']);*/
                 // translation of yes or no
                 $b_yes = $this->getContext()->getI18N()->__('Yes');
                 $b_no = $this->getContext()->getI18N()->__('No');
                 $services_data = (array) $response_decoded['_services_'];
                 foreach ($services_data as $s => $v) {
                     $sk = "{$s}" . "runservice";
                     $status = (array) $v;
                     $data["{$sk}"] = $status['state'] == 'SERVICE_RUNNING' ? $b_yes : $b_no;
                 }
                 $primavera_data = (array) $response_decoded['_primavera_'];
                 $data['segurancaactiva'] = $primavera_data['Seguranca_Activa'] == 0 ? $b_no : $b_yes;
                 $data['license'] = $primavera_data['License'] == 0 ? $b_no : $b_yes;
                 $data['segurancaproempactiva'] = $primavera_data['Seguranca_Pro_Emp_Activa'] == 0 ? $b_no : $b_yes;
                 $data['modoseguranca'] = $primavera_data['Modo_Seguranca'] == 0 ? $b_no : $b_yes;
                 $data['nempresas'] = $primavera_data['N_Empresas'];
                 $data['nutilizadores'] = $primavera_data['N_Utilizadores'];
                 $data['npostos'] = $primavera_data['N_Postos'];
                 $data['language'] = $primavera_data['Language'];
                 $network_data = (array) $response_decoded['_network_'];
                 $data['ipaddr'] = $network_data['ipaddr'];
                 $data['netmask'] = $network_data['netmask'];
                 $data['gateway'] = $network_data['gateway'];
                 $data['dhcp'] = $network_data['dhcp'];
                 $return = array('success' => true, 'data' => $data);
                 break;
             case 'primavera_backupinfo':
                 $data = array('id' => $service_id);
                 $empresas_data = (array) $response_decoded;
                 $empresas = array();
                 foreach ($empresas_data as $eObj) {
                     $e = (array) $eObj;
                     $db = (array) $e['DATABASE'];
                     $bkps = (array) $e['BACKUPS'];
                     //array_push($empresas,array( $db['name'], $e['name'] ));
                     array_push($empresas, array('name' => $e['name'], 'db' => $db['name'], 'bkps' => $bkps));
                 }
                 $data['empresas'] = $empresas;
                 $return = array('success' => true, 'data' => $data);
                 break;
             case 'windows_listusers':
                 $users_data = (array) $response_decoded;
                 $husers = array();
                 foreach ($users_data as $eObj) {
                     $e = (array) $eObj;
                     $uname = $e['username'];
                     if (!$this->ignoreWindowsUser($uname)) {
                         if (!$husers["{$uname}"]) {
                             $husers["{$uname}"] = array('username' => "{$uname}", 'groups' => array());
                         }
                         array_push($husers["{$uname}"]['groups'], $e['group']);
                     }
                 }
                 $wusers = array_values($husers);
                 $return = array('success' => true, 'data' => $wusers);
                 break;
             case 'primavera_listbackupplans':
                 $bp_data = (array) $response_decoded;
                 $backupplans = array();
                 foreach ($bp_data as $bpObj) {
                     $b = (array) $bpObj;
                     $str_companies = '';
                     $str_schedule = 'Daily';
                     if (isset($b['schedule'])) {
                         $schedule = (array) $b['schedule'];
                         if (isset($schedule[0])) {
                             $sc_0 = (array) $schedule[0];
                             if (preg_match("/semanal/i", $sc_0['periodo'])) {
                                 $str_schedule = 'Weekly';
                             } else {
                                 if (preg_match("/mensal/i", $sc_0['periodo'])) {
                                     $str_schedule = 'Monthly';
                                 }
                             }
                         }
                     }
                     if (isset($b['companies'])) {
                         $companies = (array) $b['companies'];
                         foreach ($companies as $cObj) {
                             $company = (array) $cObj;
                             if ($str_companies != '') {
                                 $str_companies .= ';';
                             }
                             $str_companies .= $company['key'] . ',' . $company['name'];
                         }
                     }
                     $bplan = array('id' => $b['id'], 'name' => $b['name'], 'date' => $b['date'], 'lastExecution' => $b['lastExecution'], 'nextExecution' => $b['nextExecution'], 'schedule' => $str_schedule, 'companies' => $str_companies);
                     $bplan['verify'] = $b['verify'] ? 'Yes' : 'No';
                     $bplan['overwrite'] = $b['overwrite'] ? 'Yes' : 'No';
                     $bplan['incremental'] = $b['incremental'] ? 'Yes' : 'No';
                     array_push($backupplans, $bplan);
                 }
                 $return = array('success' => true, 'data' => $backupplans);
                 break;
                 /*case 'primavera_listdatabases':
                   $data = array( 'id'=>$service_id );
                   $db_data = (array)$response_decoded;
                   $databases = array();
                   foreach($db_data as $dbObj){
                       $db = (array)$dbObj;
                       if( preg_match("/^PRI/",$db['name']) ){
                           $db_name = $db['name'];
                           $e_name = str_replace($db_name,'PRI','');
                           $dbase = array('db'=>$db_name,'name'=>$e_name);
                           array_push($databases,$dbase);
                       }
                   }
                   $data['databases'] = $databases;
                   $return = array( 'success'=>true, 'data'=>$data );
                   break;*/
             /*case 'primavera_listdatabases':
               $data = array( 'id'=>$service_id );
               $db_data = (array)$response_decoded;
               $databases = array();
               foreach($db_data as $dbObj){
                   $db = (array)$dbObj;
                   if( preg_match("/^PRI/",$db['name']) ){
                       $db_name = $db['name'];
                       $e_name = str_replace($db_name,'PRI','');
                       $dbase = array('db'=>$db_name,'name'=>$e_name);
                       array_push($databases,$dbase);
                   }
               }
               $data['databases'] = $databases;
               $return = array( 'success'=>true, 'data'=>$data );
               break;*/
             case 'windows_createuser':
             case 'primavera_backup':
             case 'primavera_fullbackup':
             case 'primavera_insertbackupplan':
             case 'primavera_removebackupplan':
             case 'primavera_restore':
             case 'primavera_fullrestore':
             case 'primavera_start':
             case 'primavera_stop':
             case 'primavera_insertuser':
             case 'primavera_updateuser':
             case 'primavera_deleteuser':
             case 'primavera_updateuser_aplicacoes':
             case 'primavera_updateuser_permissoes':
             case 'change_ip':
                 $data = array();
                 $okmsg_i18n = $this->getContext()->getI18N()->__($response_decoded['_okmsg_'], array());
                 $return = array('success' => true, 'data' => $data, 'response' => $okmsg_i18n);
                 break;
             case 'primavera_listempresas_cbx':
                 $empresas_data = (array) $response_decoded;
                 $return_empresas = array(array('name' => $this->getContext()->getI18N()->__('All'), 'cod' => '***'));
                 foreach ($empresas_data as $eObj) {
                     $empresa = (array) $eObj;
                     array_push($return_empresas, array('name' => $this->getContext()->getI18N()->__($empresa['name']), 'cod' => $empresa['name']));
                 }
                 $return = array('success' => true, 'data' => $return_empresas);
                 break;
             case 'primavera_listperfis':
             case 'primavera_listusers':
             case 'primavera_listempresas':
             case 'primavera_list_user_aplicacoes_join':
             case 'primavera_list_user_permissoes_join':
             case 'primavera_listaplicacoes':
             case 'primavera_viewuser':
                 $return_data = (array) $response_decoded;
                 $return = array('success' => true, 'data' => $return_data);
                 break;
             default:
                 $error_i18n = $this->getContext()->getI18N()->__('No action \'%method%\' defined yet.', array('%method%' => $method));
                 $info_i18n = $this->getContext()->getI18N()->__('No action \'%method%\' implemented yet', array('%method%' => $method));
                 $return = array('success' => false, 'error' => $error_i18n, 'info' => $info_i18n);
         }
         return $return;
     } else {
         $error_details = $response['info'];
         $error_details = nl2br($error_details);
         $error_details_i18n = $this->getContext()->getI18N()->__($error_details);
         $error = $response['error'];
         $result = array('success' => false, 'error' => $error, 'info' => $error_details_i18n, 'faultcode' => $response['faultcode']);
         return $result;
     }
 }
Esempio n. 5
0
 /**
  * checks server state
  * send soap request and update DB state
  * returns response from agent
  */
 private function checkState(EtvaServer $etva_server, $dispatcher)
 {
     $method = 'getstate';
     $response = $etva_server->soapSend($method, $dispatcher);
     $success = $response['success'];
     if (!$success) {
         $etva_server->setState(0);
         $etva_server->save();
         //notify system log
         $message = Etva::getLogMessage(array('name' => $etva_server->getName(), 'info' => $response['info']), EtvaServerPeer::_ERR_SOAPSTATE_);
         $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR)));
     } else {
         $etva_server->setState(1);
         $etva_server->save();
         //notify system log
         $message = Etva::getLogMessage(array('name' => $etva_server->getName()), EtvaServerPeer::_OK_SOAPSTATE_);
         $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message)));
     }
     return $response;
 }
Esempio n. 6
0
 public function ETASP_etasp_api(EtvaServer $etva_server, $method, $params, $mode)
 {
     error_log("ETASP_etasp_api called");
     if ($method == 'allinfo') {
         $elements = new stdClass();
         $methods = array('getResourceUsage', 'getDatabaseInfo', 'getInstanceMetadata');
         error_log('allinfo');
         // make the calls
         foreach ($methods as $method) {
             error_log($method);
             $response = $etva_server->soapSend($method, $params);
             if ($response['success']) {
                 $obj = $response['response'];
                 $elements = (object) array_merge((array) $obj->msg, (array) $elements);
             } else {
                 #todo implement error handling
                 error_log("error");
             }
         }
         error_log(print_r($elements, true));
         $method = 'allinfo';
         $return = array('success' => true, 'data' => $elements, 'total' => 1);
         return $return;
     } else {
         // send soap request
         $response = $etva_server->soapSend($method, $params);
     }
     // if soap response is ok
     if ($response['success'] && $method != 'allinfo') {
         $response_decoded = (array) $response['response'];
         if ($mode) {
             $method = $mode;
         }
         switch ($method) {
             case 'pack':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = (array) $data;
                 }
                 $obj = new stdClass();
                 $obj->success = 'ok';
                 $obj->msg->pack = $elements[0];
                 $return = array('success' => true, 'data' => $obj);
                 break;
             case 'getInstanceMetadata':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = array('alias' => $data);
                 }
                 $return = array('success' => true, 'value' => $elements);
                 break;
             case 'getDatabaseInfo':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = array('alias' => $data);
                 }
                 $return = array('success' => true, 'value' => $elements);
                 break;
             case 'getResourceUsage':
                 $elements = array();
                 foreach ($response_decoded as $dataType => $data) {
                     $elements[] = array('alias' => $data);
                 }
                 $return = array('success' => true, 'value' => $elements);
                 break;
         }
         return $return;
     } else {
         $error_details = $response['info'];
         $error_details = nl2br($error_details);
         $error = $response['error'];
         $result = array('success' => false, 'error' => $error, 'info' => $error_details, 'faultcode' => $response['faultcode']);
         return $result;
     }
 }