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; } }
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; } }
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; } }
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; } }
/** * 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; }
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; } }