Merge branch 'develop' into new_networkmap_feature

This commit is contained in:
Arturo Gonzalez 2016-10-17 11:36:00 +02:00
commit 3e50676e19
73 changed files with 684 additions and 291 deletions

View File

@ -1,33 +1,7 @@
sudo: required
language: python
python:
- 2.7
env:
global:
- secure: "MEfyEpYEBkPmgPYX3CDKhaoiOltH5lDcUOYZ/19Yflg6ee20IBZOywCmrKH7VouKlOHUrGTUQqHBou0npm93qBju3MrPCE2R62PiDV2EHCGl3AFpLkgt0m1/DceWCWKlL+gI8uvnEFzVUuaPm6cEcRn1ikzg5b084bTxJ2B1Bvs="
- SAUCE_USERNAME="artica_pandorafms"
addons:
firefox: "latest"
sauce_connect: true
services:
- docker
before_install:
- sudo apt-get install xvfb
install:
- pip install selenium PyVirtualDisplay sauceclient testtools
#before_script:
# - "export DISPLAY=:99.0"
# - "sh -e /etc/init.d/xvfb start"
# - sleep 4 # give xvfb some time to start
script:
- docker run --name pandorafms -h pandorafms -dt -v "$TRAVIS_BUILD_DIR:/tmp/pandorafms" -p 127.0.0.1:80:80 pandorafms/pandorafms-base tail -f /var/log/messages
- docker exec -t pandorafms /tmp/pandorafms/tests/test.sh
- python $TRAVIS_BUILD_DIR/tests/run_console_tests.py
- docker run --rm -t -v "$TRAVIS_BUILD_DIR:/tmp/pandorafms" pandorafms/pandorafms-base /tmp/pandorafms/tests/test.sh

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 6.1dev-160913
Version: 6.1dev-160921
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="6.1dev-160913"
pandora_version="6.1dev-160921"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -41,7 +41,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '6.1dev';
use constant AGENT_BUILD => '160913';
use constant AGENT_BUILD => '160921';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 6.1dev
%define release 160913
%define release 160921
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 6.1dev
%define release 160913
%define release 160921
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="6.1dev"
PI_BUILD="160913"
PI_BUILD="160921"
OS_NAME=`uname -s`
FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{160913}
{160921}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("6.1dev(Build 160913)")
#define PANDORA_VERSION ("6.1dev(Build 160921)")
string pandora_path;
string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(6.1dev(Build 160913))"
VALUE "ProductVersion", "(6.1dev(Build 160921))"
VALUE "FileVersion", "1.0.0.0"
END
END

View File

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 6.1dev-160913
Version: 6.1dev-160921
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="6.1dev-160913"
pandora_version="6.1dev-160921"
package_pear=0
package_pandora=1

View File

@ -0,0 +1,39 @@
<?php
$tipo = $_GET['message'];
echo "<div class='info_box' style='padding-top:20px;padding-bottom:20px;'><span style='padding:20px;'>";
switch ($tipo) {
case "module":
echo __("The community version have not the ability to define your own library of local modules, or distribute it to remote agents. You need to do that changes individually on each agent, but it's possible by using external tools and space time and effort. Nor can distribute local plugins, and nor does it have access to the library of plugins enterprise to monitor applications such as Informix, Oracle, DB2, SQL Server, Exchange, WebSphere, Oracle Exadata, F5, JBoss, HyperV, VMWare, RHEV, to name a few. With the Enterprise version will have all this, and the ability to distribute and manage their own local modules to your systems, individually or through policies.");
break;
case "massive":
echo __("You want to manage your monitoring homogeneously? Do you have many systems and is difficult to manage in a comprehensive manner? Would you like to deploy monitoring, alerts and even local plugins with a single click? Pandora FMS Enterprise Policies are exactly what you need, you'll save time, effort and dislikes. More information (link to pandorafms.com)");
break;
case "events":
echo __("Pandora FMS Enterprise has event correlation. Through correlation you can generate alerts and / or new events based on logical rules on your realtime events. This allows you to automate the troubleshooting. If you know the value of working with events, the correlation will take you to a new level.");
break;
case "reporting":
echo __("The reports of the Enterprise version are more powerful: it has wizards, you can schedule sending via email in PDF, and it has a template system to create reports quickly for each of your customers. It will even allow your customers generate their own reports from templates created by you. If reports are key to your business, Pandora FMS Enterprise version can be very useful for you.");
break;
default:
break;
}
echo "</span></div>";
echo "<button id='cerrar' onclick='ocultar();'>OK</button>";
?>
<script>
function ocultar(){
$("#alert_messages" ).dialog('close');
}
</script>

View File

@ -71,7 +71,7 @@ config_check();
$table->width = "100%";
$table->styleTable = 'margin: auto; margin-top: 0px;';
$table->rowclass[0] = '';
$table->data[0][11] = ui_print_help_tip (__("Blank characters are used as AND conditions"), true);
// Search bar
$search_bar = '<form method="get" style="display: inline;" name="quicksearch" action="">';
if (!isset($config['search_keywords'])) {
@ -303,9 +303,9 @@ config_check();
$table->data[0][9] .= html_print_image ("images/header_email.png", true, array ("title" => __('You have %d unread message(s)', $msg_cnt), "id" => "yougotmail", "class" => "bot", 'style' => 'width:24px;'));
$table->data[0][9] .= '</a>';
}
$table->data[0][11] = ui_print_help_tip (__("Blank characters are used as AND conditions"), true);
html_print_table($table);
unset($table);
@ -386,8 +386,8 @@ config_check();
<?php
}
?>
$("#publienterprise").pulsate ();
<?php
if ($_GET["refr"]) {
$_get_refr = strip_tags($_GET["refr"]);

View File

@ -79,9 +79,9 @@ echo '<div id="login_in">';
echo '<table id="login_layout">';
echo'<tr style="height:15px;"><td>';
echo '<div class="login_links">';
echo '<a href="http://wiki.pandorafms.com/" target="_blank">' . __('Help') . '</a>';
echo '<a href="http://wiki.pandorafms.com/" target="_blank">' . __('Docs') . '</a>';
echo ' | ';
echo '<a href="http://forums.pandorafms.com/" target="_blank">' . __('Support') . '</a>';
echo '<a href="https://pandorafms.com/monitoring-services/support/" target="_blank">' . __('Support') . '</a>';
echo '</div>';
echo '</td></tr>';
echo'<tr>
@ -96,15 +96,16 @@ echo '<div id="login_in">';
}
else {
html_print_image ("images/logo_login.png", false, array ("class" => "login_logo", "alt" => "logo", "border" => 0, "title" => $logo_title), false, true);
echo "<br><span style='font-size:120%;color:white;top:10px;position:relative;'>Community edition</span>";
}
echo '</a>';
// This prints the current pandora console version.
// For stable/live function it might be wise to comment it out
/* CUSTOM BRANDING ENDS HERE */
echo '</td><td style="padding-top: 15px; position:absolute;">';
switch ($login_screen) {
case 'login':
if (!empty ($page) && !empty ($sec)) {

View File

@ -349,19 +349,27 @@ else {
switch ($config["dbtype"]) {
case "mysql":
$order['field2'] = "";
/*
$sql = sprintf ('SELECT *
FROM tagente
WHERE 1=1
%s
ORDER BY %s %s, %s %s LIMIT %d, %d', $search_sql, $order['field'],$order['order'], $order['field2'],
$order['order'], $offset, $config["block_size"]);
*/
$sql = sprintf ('SELECT *
FROM tagente
WHERE 1=1
%s
ORDER BY %s %s %s LIMIT %d, %d', $search_sql, $order['field'], $order['field2'],
$order['order'], $offset, $config["block_size"]);
break;
case "postgresql":
$sql = sprintf ('SELECT *
FROM tagente
WHERE 1=1
%s
ORDER BY %s %s, %s %s LIMIT %d OFFSET %d', $search_sql, $order['field'],$order['order'], $order['field2'],
ORDER BY %s %s %s LIMIT %d OFFSET %d', $search_sql, $order['field'], $order['field2'],
$order['order'], $config["block_size"], $offset);
break;
case "oracle":
@ -372,7 +380,7 @@ else {
FROM tagente
WHERE 1=1
%s
ORDER BY %s %s, %s %s', $search_sql, $order['field'],$order['order'], $order['field2'], $order['order']);
ORDER BY %s %s %s', $search_sql, $order['field'], $order['field2'], $order['order']);
$sql = oracle_recode_query ($sql, $set);
break;
}

View File

@ -37,9 +37,9 @@ $table->head = array ();
$table->data = array ();
$table->size = array ();
$table->size = array ();
$table->size[0] = '10%';
$table->size[0] = '5%';
$table->size[1] = '25%';
$table->size[2] = '10%';
$table->size[2] = '5%';
$table->size[3] = '20%';
$table->style[0] = 'font-weight: bold; ';
$table->style[1] = 'font-weight: bold; ';
@ -80,30 +80,8 @@ $table->data[0][1] .= '<span id="value">&nbsp;</span></span>';
$table->data[0][1] .= ' <span id="module_loading" class="invisible">';
$table->data[0][1] .= html_print_image('images/spinner.png', true) . '</span>';
$table->data[0][2] = __('Template');
$own_info = get_user_info ($config['id_user']);
if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM"))
$templates = alerts_get_alert_templates (false, array ('id', 'name'));
else {
$usr_groups = users_get_groups($config['id_user'], 'LW', true);
$filter_groups = '';
$filter_groups = implode(',', array_keys($usr_groups));
$templates = alerts_get_alert_templates (array ('id_group IN (' . $filter_groups . ')'), array ('id', 'name'));
}
$table->data[0][3] = html_print_select (index_array ($templates, 'id', 'name'),
'template', '', '', __('Select'), 0, true, false, true, '', false, 'width: 250px;');
$table->data[0][3] .= ' <a class="template_details invisible" href="#">' .
html_print_image("images/zoom.png", true, array("class" => 'img_help')) . '</a>';
if (check_acl ($config['id_user'], 0, "LM")) {
$table->data[0][3] .= '<a href="index.php?sec=galertas&sec2=godmode/alerts/configure_alert_template&pure='.$pure.'">';
$table->data[0][3] .= html_print_image ('images/add.png', true);
$table->data[0][3] .= "<div style='float:right;padding-top:5px;' >" . __('Create Template') . "</div>";
$table->data[0][3] .= '</a>';
}
$table->data[1][0] = __('Actions');
$groups_user = users_get_groups($config["id_user"]);
if (!empty($groups_user)) {
$groups = implode(',', array_keys($groups_user));
@ -124,14 +102,39 @@ $table->data[1][1] .= ui_print_help_icon ("alert-matches", true,
ui_get_full_url(false, false, false, false));
$table->data[1][1] .= '</span>';
if (check_acl ($config['id_user'], 0, "LM")) {
$table->data[1][1] .= '<a href="index.php?sec=galertas&sec2=godmode/alerts/configure_alert_action&pure='.$pure.'">';
$table->data[1][1] .= ' ' . __('Create Action');
$table->data[1][1] .= '<a style="margin-left:5px;" href="index.php?sec=galertas&sec2=godmode/alerts/configure_alert_action&pure='.$pure.'">';
$table->data[1][1] .= html_print_image ('images/add.png', true);
$table->data[1][1] .= '<span style="margin-left:5px;vertical-align:middle;">'.__('Create Action').'</span>';
$table->data[1][1] .= '</a>';
}
$table->data[1][2] = __('Threshold');
$table->data[1][3] = html_print_extended_select_for_time ('module_action_threshold', 0, '', 0,
__('None'), false, true) . ui_print_help_icon ('action_threshold', true, ui_get_full_url(false, false, false, false));
$table->data[2][0] = __('Template');
$own_info = get_user_info ($config['id_user']);
if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM"))
$templates = alerts_get_alert_templates (false, array ('id', 'name'));
else {
$usr_groups = users_get_groups($config['id_user'], 'LW', true);
$filter_groups = '';
$filter_groups = implode(',', array_keys($usr_groups));
$templates = alerts_get_alert_templates (array ('id_group IN (' . $filter_groups . ')'), array ('id', 'name'));
}
$table->data[2][1] = html_print_select (index_array ($templates, 'id', 'name'),
'template', '', '', __('Select'), 0, true, false, true, '', false, 'width: 250px;');
$table->data[2][1] .= ' <a class="template_details invisible" href="#">' .
html_print_image("images/zoom.png", true, array("class" => 'img_help')) . '</a>';
if (check_acl ($config['id_user'], 0, "LM")) {
$table->data[2][1] .= '<a href="index.php?sec=galertas&sec2=godmode/alerts/configure_alert_template&pure='.$pure.'">';
$table->data[2][1] .= html_print_image ('images/add.png', true);
$table->data[2][1] .= '<span style="margin-left:5px;vertical-align:middle;">'.__('Create Template').'</span>';
$table->data[2][1] .= '</a>';
}
$table->data[3][0] = __('Threshold');
$table->data[3][1] = html_print_extended_select_for_time ('module_action_threshold', 0, '', 0,
__('None'), false, true) . ui_print_help_icon ('action_threshold', true, ui_get_full_url(false, false, false, false));
echo '<form class="add_alert_form" method="post">';

View File

@ -401,10 +401,7 @@ else {
$table->size[4] = '1%';
}
$table->head[1] = __('Module') . '&nbsp;' .
'<a href="' . $url . '&sort_field=module&sort=up&pure='.$pure.'">' . html_print_image("images/sort_up.png", true, array("style" => $selectModuleUp)) . '</a>' .
'<a href="' . $url . '&sort_field=module&sort=down&pure='.$pure.'">' . html_print_image("images/sort_down.png", true, array("style" => $selectModuleDown)) . '</a>' .
'<br/>' . __('Template') . '&nbsp;' .
$table->head[1] = __('Template') . '&nbsp;' .
'<a href="' . $url . '&sort_field=template&sort=up&pure='.$pure.'">' . html_print_image("images/sort_up.png", true, array("style" => $selectTemplateUp)) . '</a>' .
'<a href="' . $url . '&sort_field=template&sort=down&pure='.$pure.'">' . html_print_image("images/sort_down.png", true, array("style" => $selectTemplateDown)) . '</a>';
$table->head[2] = __('Actions');
@ -417,6 +414,8 @@ $table->valign[2] = 'middle';
$table->valign[3] = 'middle';
$table->valign[4] = 'middle';
$table->style[4] = "min-width:80px";
$table->data = array ();
$url .= $sort_params;
@ -469,8 +468,9 @@ foreach ($simple_alerts as $alert) {
}
$module_name = modules_get_agentmodule_name ($alert['id_agent_module']);
$data[1] = ui_print_truncate_text($module_name, 'module_medium', false, true, true, '[&hellip;]', 'display:block;font-size: 7.2pt') . '<br>';
$data[0] .= ui_print_truncate_text($module_name, 'module_medium', false, true, true, '[&hellip;]', 'display:block;font-size: 7.2pt') . '<br>';
$template_group = db_get_value('id_group', 'talert_templates', 'id', $alert['id_alert_template']);
// The access to the template manage page is necessary have LW permissions on template group
@ -508,13 +508,13 @@ foreach ($simple_alerts as $alert) {
foreach ($actions as $action_id => $action) {
$data[2] .= "<tr>";
$data[2] .= "<td>";
$data[2] .= '<ul class="action_list">';
$data[2] .= '<li>';
$data[2] .= '<ul class="action_list" style="display:inline;">';
$data[2] .= '<li style="display:inline;">';
if ($alert['disabled'])
$data[2] .= '<font class="action_name" style="font-style: italic; color: #aaaaaa;">';
else
$data[2] .= '<font class="action_name">';
$data[2] .= ui_print_truncate_text($action['name'], GENERIC_SIZE_TEXT, false);
$data[2] .= ui_print_truncate_text($action['name'], (GENERIC_SIZE_TEXT+20), false);
$data[2] .= ' <em>(';
if ($action['fires_min'] == $action['fires_max']) {
if ($action['fires_min'] == 0)

View File

@ -205,7 +205,7 @@ $onheader['satellite'] = $satellitetab;
ui_print_page_header(
__('Massive operations') . ' &raquo; '. $options[$option],
"images/gm_massive_operations.png", false, "", true, $onheader);
"images/gm_massive_operations.png", false, "", true, $onheader,true, "massive");
// Checks if the PHP configuration is correctly
if ((get_cfg_var("max_execution_time") != 0)

View File

@ -40,7 +40,7 @@ if (defined('METACONSOLE')) {
else {
ui_print_page_header (__('Module management') . ' &raquo; ' .
__('Network component management'), "", false,
"network_component", true);
"network_component", true,"sell",true,"module");
$sec = 'gmodules';
}

View File

@ -27,7 +27,7 @@ if (! check_acl ($config['id_user'], 0, "PM")) {
}
// Header
ui_print_page_header (__('Module management')." &raquo; ".__('Module template management'), "images/gm_modules.png", false, "template_tab", true);
ui_print_page_header (__('Module management')." &raquo; ".__('Module template management'), "images/gm_modules.png", false, "template_tab", true,"",true,"module");
require_once ('include/functions_network_profiles.php');
@ -180,7 +180,7 @@ $table->class = "databox data";
$table->head = array ();
$table->head[0] = __('Name');
$table->head[1] = __('Description');
$table->head[2] = __('Action') .
$table->head[2] = '<span style="margin-right:7%;">'.__('Action') .'</span>'.
html_print_checkbox('all_delete', 0, false, true, false, 'check_all_checkboxes();');
$table->size = array ();
$table->size[1] = '65%';

View File

@ -620,7 +620,7 @@ $class = 'databox filters';
<td style="">
<?php
if ($action == 'new') {
html_print_select(reports_get_report_types(false, true), 'type', $type, 'chooseType();', '', '');
html_print_select(reports_get_report_types(false, true), 'type', $type, 'chooseType();', '', '','','','','','','','','',true,'reporting');
}
else {
$report_type = reports_get_report_types();

View File

@ -299,7 +299,7 @@ $table->data[8][1] .= ui_print_help_tip(
// Group
$table->data[9][0] = "<b>".__('Group');
$groups = users_get_groups (false, "PM", false);
$table->data[9][1] = html_print_select_groups(false, "PM", true, 'id_group', $id_group, '', '', 0, true);
$table->data[9][1] = html_print_select_groups(false, "PM", false, 'id_group', $id_group, '', '', 0, true);
// Incident
$values = array (0 => __('No'), 1 => __('Yes'));

View File

@ -105,6 +105,8 @@ enterprise_include_once ('meta/include/functions_components_meta.php');
$view = get_parameter ("view", "");
$create = get_parameter ("create", "");
$filemanager = (bool)get_parameter("filemanager", false);
$edit_file = get_parameter("edit_file",false);
$update_file = get_parameter("update_file",false);
$plugin_command = get_parameter('plugin_command', '');
$tab = get_parameter('tab', '');
@ -142,57 +144,102 @@ if ($create != "") {
// INIT FILEMANAGER
// =====================================================================
if ($filemanager) {
$id_plugin = (int)get_parameter('id_plugin', 0);
/* Add custom directories here */
$fallback_directory = "attachment/plugin";
$directory = (string) get_parameter ('directory', $fallback_directory);
$directory = str_replace("\\", "/", $directory);
// A miminal security check to avoid directory traversal
if (preg_match ("/\.\./", $directory))
$directory = $fallback_directory;
if (preg_match ("/^\//", $directory))
$directory = $fallback_directory;
if (preg_match ("/^manager/", $directory))
$directory = $fallback_directory;
$banned_directories['include'] = true;
$banned_directories['godmode'] = true;
$banned_directories['operation'] = true;
$banned_directories['reporting'] = true;
$banned_directories['general'] = true;
$banned_directories[ENTERPRISE_DIR] = true;
if (isset ($banned_directories[$directory]))
$directory = $fallback_directory;
$real_directory = realpath ($config['homedir'] . '/' . $directory);
echo '<h4>' . __('Index of %s', $directory) . '</h4>';
$chunck_url = '&view=' . $id_plugin;
if ($id_plugin == 0) {
$chunck_url = '&create=1';
if($edit_file) {
$location_file = get_parameter("location_file",'');
$filename = array_pop(explode("/",$location_file));
$file = file_get_contents($location_file);
echo "<h4>" . __("Edit file") ." ".$filename. "</h4>";
//echo "<a href='index.php?sec=gagente&sec2=enterprise/godmode/agentes/collections&action=file&id=" . $collection['id'] . "&directory=" . $relative_dir . "&hash2=" . $hash2 . "'>" . __('Back to file explorer') . "</a>";
echo "<form method='post' action='index.php?sec=gservers&sec2=godmode/servers/plugin&filemanager=1"."&update_file=1'>";
//html_print_input_hidden('location_file', $locationFile);
echo "<table style='width: 98%'>";
echo "<tr>";
echo "<th>" . __('Edit') . "</th>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<textarea name='content_file' style='width: 100%; height: 400px;' >";
echo $file;
echo "</textarea>";
echo "</td>";
echo "</tr>";
echo "<tr align='right'>";
echo "<td>";
html_print_input_hidden('location_file', $location_file);
echo __('Compatibility mode').":";
$options = array('unix' => 'Unix', 'windows' => 'Windows');
html_print_select($options, 'compatibility', $compatibility);
echo " <input type='submit' name='submit' value='" . __('Update') . "' class='sub upd' />";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}else {
if($update_file){
$location_file = get_parameter("location_file",'');
$contentFile = io_safe_output(get_parameter('content_file', ''));
$compatibility = get_parameter('compatibility', 'unix');
$is_win_compatible = strpos($contentFile, "\r\n");
// If is win compatible and the compatibility must be unix
if ($is_win_compatible !== false && $compatibility == 'unix') {
$contentFile = str_replace("\r\n", "\n", $contentFile);
}
// If is unix compatible and the compatibility must be win
else if ($is_win_compatible === false && $compatibility == 'windows') {
$contentFile = str_replace("\n", "\r\n", $contentFile);
}
$result = file_put_contents($location_file, $contentFile);
}
$id_plugin = (int)get_parameter('id_plugin', 0);
/* Add custom directories here */
$fallback_directory = "attachment/plugin";
$directory = (string) get_parameter ('directory', $fallback_directory);
$directory = str_replace("\\", "/", $directory);
// A miminal security check to avoid directory traversal
if (preg_match ("/\.\./", $directory))
$directory = $fallback_directory;
if (preg_match ("/^\//", $directory))
$directory = $fallback_directory;
if (preg_match ("/^manager/", $directory))
$directory = $fallback_directory;
$banned_directories['include'] = true;
$banned_directories['godmode'] = true;
$banned_directories['operation'] = true;
$banned_directories['reporting'] = true;
$banned_directories['general'] = true;
$banned_directories[ENTERPRISE_DIR] = true;
if (isset ($banned_directories[$directory]))
$directory = $fallback_directory;
$real_directory = realpath ($config['homedir'] . '/' . $directory);
echo '<h4>' . __('Index of %s', $directory) . '</h4>';
$chunck_url = '&view=' . $id_plugin;
if ($id_plugin == 0) {
$chunck_url = '&create=1';
}
$homedir_filemanager = isset ($config['homedir_filemanager']) ? $config['homedir_filemanager'] : false;
filemanager_file_explorer($real_directory,
$directory,
'index.php?sec=gservers&sec2=godmode/servers/plugin&filemanager=1&id_plugin=' . $id_plugin,
$fallback_directory,
true,
false,
'index.php?sec=gservers&sec2=godmode/servers/plugin' . $chunck_url . '&plugin_command=[FILE_FULLPATH]&id_plugin=' . $id_plugin,
true,
0775,
$homedir_filemanager);
}
$homedir_filemanager = isset ($config['homedir_filemanager']) ? $config['homedir_filemanager'] : false;
filemanager_file_explorer($real_directory,
$directory,
'index.php?sec=gservers&sec2=godmode/servers/plugin&filemanager=1&id_plugin=' . $id_plugin,
$fallback_directory,
false,
false,
'index.php?sec=gservers&sec2=godmode/servers/plugin' . $chunck_url . '&plugin_command=[FILE_FULLPATH]&id_plugin=' . $id_plugin,
true,
0775,
$homedir_filemanager);
return;
}

View File

@ -95,27 +95,27 @@ $table = new stdClass();
$table->width = '100%';
$table->class = 'databox filters';
$table->style[0] = 'font-weight: bolder;';
$table->style[0] = 'font-weight: bolder;width:250px';
$table->data[0][0] = __('URL update manager:');
$table->data[0][1] = html_print_input_text('url_update_manager',
$url_update_manager, __('URL update manager'), 40, 60, true);
$url_update_manager, __('URL update manager'), 80, 60, true);
$table->data[1][0] = __('Proxy server:');
$table->data[1][1] = html_print_input_text('update_manager_proxy_server',
$update_manager_proxy_server, __('Proxy server'), 40, 60, true);
$update_manager_proxy_server, __('Proxy server'), 80, 60, true);
$table->data[2][0] = __('Proxy port:');
$table->data[2][1] = html_print_input_text('update_manager_proxy_port',
$update_manager_proxy_port, __('Proxy port'), 40, 60, true);
$update_manager_proxy_port, __('Proxy port'), 80, 60, true);
$table->data[3][0] = __('Proxy user:');
$table->data[3][1] = html_print_input_text('update_manager_proxy_user',
$update_manager_proxy_user, __('Proxy user'), 40, 60, true);
$update_manager_proxy_user, __('Proxy user'), 80, 60, true);
$table->data[4][0] = __('Proxy password:');
$table->data[4][1] = html_print_input_password('update_manager_proxy_password',
$update_manager_proxy_password, __('Proxy password'), 40, 60, true);
$update_manager_proxy_password, __('Proxy password'), 80, 60, true);
if (license_free()) {
$config["identification_reminder"] = isset($config["identification_reminder"]) ? $config["identification_reminder"] : 1;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -296,17 +296,17 @@ if ($get_extended_event) {
// Tabs
$tabs = "<ul style='background:#ffffff !important; border-top: 0px; border-left: 0px; border-right: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; border-color: #D3D3D3;'>";
$tabs .= "<li><a href='#extended_event_general_page' id='link_general'>".html_print_image('images/lightning_go.png',true).__('General')."</a></li>";
$tabs .= "<li><a href='#extended_event_details_page' id='link_details'>".html_print_image('images/zoom.png',true).__('Details')."</a></li>";
$tabs .= "<li><a href='#extended_event_custom_fields_page' id='link_custom_fields'>".html_print_image('images/custom_field_col.png',true).__('Agent fields')."</a></li>";
$tabs .= "<li><a href='#extended_event_comments_page' id='link_comments'>".html_print_image('images/pencil.png',true).__('Comments')."</a></li>";
if (!$readonly &&
$tabs .= "<li><a href='#extended_event_general_page' id='link_general'>".html_print_image('images/lightning_go.png',true)."<span style='position:relative;top:-6px;left:5px;margin-right:10px;'>".__('General')."</span></a></li>";
$tabs .= "<li><a href='#extended_event_details_page' id='link_details'>".html_print_image('images/zoom.png',true)."<span style='position:relative;top:-6px;left:5px;margin-right:10px;'>".__('Details')."</span></a></li>";
$tabs .= "<li><a href='#extended_event_custom_fields_page' id='link_custom_fields'>".html_print_image('images/custom_field_col.png',true)."<span style='position:relative;top:-6px;left:5px;margin-right:10px;'>".__('Agent fields')."</span></a></li>";
$tabs .= "<li><a href='#extended_event_comments_page' id='link_comments'>".html_print_image('images/pencil.png',true)."<span style='position:relative;top:-6px;left:5px;margin-right:10px;'>".__('Comments')."</span></a></li>";
if (!$readonly &&
(tags_checks_event_acl($config["id_user"], $event["id_grupo"], "EM", $event['clean_tags'], $childrens_ids)) || (tags_checks_event_acl($config["id_user"], $event["id_grupo"], "EW", $event['clean_tags'],$childrens_ids))) {
$tabs .= "<li><a href='#extended_event_responses_page' id='link_responses'>".html_print_image('images/event_responses_col.png',true).__('Responses')."</a></li>";
$tabs .= "<li><a href='#extended_event_responses_page' id='link_responses'>".html_print_image('images/event_responses_col.png',true)."<span style='position:relative;top:-6px;left:3px;margin-right:10px;'>".__('Responses')."</span></a></li>";
}
if ($event['custom_data'] != '') {
$tabs .= "<li><a href='#extended_event_custom_data_page' id='link_custom_data'>".html_print_image('images/custom_field_col.png',true).__('Custom data')."</a></li>";
$tabs .= "<li><a href='#extended_event_custom_data_page' id='link_custom_data'>".html_print_image('images/custom_field_col.png',true)."<span style='position:relative;top:-6px;left:3px;margin-right:10px;'>".__('Custom data')."</span></a></li>";
}
$tabs .= "</ul>";

View File

@ -22,7 +22,7 @@
/**
* Pandora build version and version
*/
$build_version = 'PC160913';
$build_version = 'PC160921';
$pandora_version = 'v6.1dev';
// Do not overwrite default timezone set if defined.

View File

@ -8974,8 +8974,12 @@ function api_get_module_graph($id_module, $thrash2, $other, $thrash4) {
// returnError('error_module_graph', __(''));
}
else {
header('Content-type: text/html');
returnData('string', array('type' => 'string', 'data' => '<img src="data:image/jpeg;base64,' . $graph_image_file_encoded . '">'));
if($other['data'] < 40000){
header('Content-type: text/html');
returnData('string', array('type' => 'string', 'data' => '<img src="data:image/jpeg;base64,' . $graph_image_file_encoded . '">'));
} else {
returnData('string', array('type' => 'string', 'data' => $graph_image_file_encoded));
}
// To show only the base64 code, call returnData as:
// returnData('string', array('type' => 'string', 'data' => $graph_image_file_encoded));
}

View File

@ -733,6 +733,7 @@ function filemanager_file_explorer($real_directory, $relative_directory,
//Delete button
$data[4] = '';
$data[4] .= '<span style="">';
$typefile = array_pop(explode(".",$fileinfo['name']));
if (is_writable ($fileinfo['realpath']) &&
(! is_dir ($fileinfo['realpath']) || count (scandir ($fileinfo['realpath'])) < 3)) {
$data[4] .= '<form method="post" action="' . $url . '" style="display: inline;">';
@ -752,14 +753,15 @@ function filemanager_file_explorer($real_directory, $relative_directory,
$data[4] .= '</form>';
if (($editor) && (!$readOnly)) {
if ($fileinfo['mime'] == MIME_TEXT) {
$data[4] .= "<a style='vertical-align: top;' href='$url&edit_file=1&location_file=" . $fileinfo['realpath'] . "&hash=" . md5($fileinfo['realpath'] . $config['dbpass']) . "' style='float: left;'>" . html_print_image('images/edit.png', true, array("style" => 'margin-top: 2px;', 'title' => __('Edit file'))) . "</a>";
if (($typefile != 'bin') && ($typefile != 'pdf') && ($typefile != 'png') && ($typefile != 'jpg') &&
($typefile != 'iso') && ($typefile != 'docx') && ($typefile != 'doc')) {
$data[4] .= "<a style='vertical-align: top;' href='$url&edit_file=1&location_file=" . $fileinfo['realpath'] . "' style='float: left;'>" . html_print_image('images/edit.png', true, array("style" => 'margin-top: 2px;', 'title' => __('Edit file'))) . "</a>";
}
}
}
if ((!$fileinfo['is_dir']) && ($download_button)) {
$hash = md5($fileinfo['url'] . $config['dbpass']);
$data[4] .= '<a href="include/get_file.php?file='.urlencode(base64_encode($fileinfo['url'])).'&hash=' . $hash . '" style="vertical-align: 25%;">';
$hash = md5($fileinfo['realpath'] . $config['dbpass']);
$data[4] .= '<a href="include/get_file.php?file='.urlencode(base64_encode($fileinfo['realpath'])).'&hash=' . $hash . '" style="vertical-align: 25%;">';
$data[4] .= html_print_image('images/file.png', true);
$data[4] .= '</a>';
}

View File

@ -429,8 +429,8 @@ function html_print_select_groups($id_user = false, $privilege = "AR",
function html_print_select ($fields, $name, $selected = '', $script = '',
$nothing = '', $nothing_value = 0, $return = false, $multiple = false,
$sort = true, $class = '', $disabled = false, $style = false,
$option_style = false, $size = false) {
$option_style = false, $size = false,$modal=false,$message=''){
$output = "\n";
static $idcounter = array ();
@ -543,7 +543,11 @@ function html_print_select ($fields, $name, $selected = '', $script = '',
}
$output .= "</select>";
if ($modal){
$output .= "
<div id='publienterprise' class='".$message."' title='Community version' style='display:inline;position:relative;top:10px;left:0px;margin-top: -2px !important; margin-left: 2px !important;'><img data-title='Enterprise version' class='img_help forced_title' data-use_title_for_force_title='1' src='images/alert_enterprise.png'></div>
";
}
if ($return)
return $output;

View File

@ -4355,6 +4355,7 @@ function reporting_custom_graph($report, $content, $type = 'dinamic',
if ($graphs === false)
$graphs = array();
$labels = array();
foreach ($graphs as $graph_item) {
if ($type_report == 'automatic_graph') {
array_push ($modules, array(
@ -4366,12 +4367,13 @@ function reporting_custom_graph($report, $content, $type = 'dinamic',
}
array_push ($weights, $graph_item["weight"]);
}
$labels = array();
if (in_array('label',$content['style'])) {
$label = reporting_label_macro($content, $content['style']['label']);
$labels = array_fill_keys($modules, $label);
if (in_array('label',$content['style'])) {
$item = array('type' => 'custom_graph',
'id_agent' =>modules_get_agentmodule_agent($graph_item['id_agent_module']),
'id_agent_module'=>$graph_item['id_agent_module']);
$label = reporting_label_macro($item, $content['style']['label']);
$labels[$graph_item['id_agent_module']] = $label;
}
}
$return['chart'] = '';

View File

@ -2383,7 +2383,7 @@ function ui_get_full_url ($url = '', $no_proxy = false, $add_name_php_file = fal
* @return string Header HTML
*/
function ui_print_page_header ($title, $icon = "", $return = false, $help = "", $godmode = false, $options = "") {
function ui_print_page_header ($title, $icon = "", $return = false, $help = "", $godmode = false, $options = "",$modal = false, $message = "") {
$title = io_safe_input_html($title);
if (($icon == "") && ($godmode == true)) {
$icon = "images/gm_setup.png";
@ -2410,7 +2410,13 @@ function ui_print_page_header ($title, $icon = "", $return = false, $help = "",
$buffer .= '<ul class="mn"><li class="' . $type . '">&nbsp;' . '&nbsp; ';
$buffer .= '<span style="">' .
ui_print_truncate_text($title, 38);
ui_print_truncate_text($title, 46);
if ($modal){
$buffer .= "
<div id='publienterprise' class='".$message."' title='Community version' style='float: right;margin-top: -2px !important; margin-left: 2px !important;'><img data-title='Enterprise version' class='img_help forced_title' data-use_title_for_force_title='1' src='images/alert_enterprise.png'></div>
";
}
if ($help != "")
$buffer .= "<div class='head_help' style='float: right; margin-top: -2px !important; margin-left: 2px !important;'>" .
ui_print_help_icon ($help, true, '', 'images/help_w.png') . "</div>";

View File

@ -819,7 +819,7 @@ function pandoraFlotSlicebar(graph_id, values, datacolor, labels, legend, acumul
newdate = year + "/" + month + "/" + day;
if(!to){
to= '12:00';
to= '23:59';
}
window.location='index.php?sec=eventos&sec2=operation/events/events&id_agent='+id_agent+'&date_from='+newdate+'&time_from='+from+'&date_to='+newdate+'&time_to='+to+'&status=-1';
}
@ -980,9 +980,9 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend,
//threshold: [{ below: 80, color: "rgb(200, 20, 30)" } , { below: 65, color: "rgb(30, 200, 30)" }, { below: 50, color: "rgb(30, 200, 30)" }],
lines: {
show: line_show,
fill: filled,
fill: 0.2,
fillColor: {
colors: [ { opacity: 0.9 }, { opacity: 0.9 } ]
colors: [ { opacity: 0.9 }, { opacity: 0.6 } ]
},
lineWidth: lineWidth,
steps: steps_chart

View File

@ -1009,7 +1009,7 @@ function pch_vertical_graph ($graph_type, $index, $data, $width, $height,
/* Draw the chart */
$settings = array(
"ForceTransparency" => $ForceTransparency,
"ForceTransparency" => 20,
"Gradient" => TRUE,
"GradientMode" => GRADIENT_EFFECT_CAN,
"DisplayValues" => $show_values,

View File

@ -83,7 +83,40 @@ $(document).ready (function () {
);
return false;
});
$("#publienterprise").click (function () {
jQuery.get ("ajax.php",
{
"page": "general/alert_enterprise",
"message":$(this).attr("class")},
function (data, status) {
$("#alert_messages").hide ()
.empty ()
.append (data)
.dialog ({
title: $("#publienterprise").attr ("title"),
resizable: true,
draggable: true,
modal: true,
open: function (event, ui) {
$(this).css({'overflow': 'hidden','text-align': 'center','padding-right':'25px','padding-bottom':'25px'}); //this line does the actual hiding
},
overlay: {
opacity: 0.5,
background: "black"
},
width: 600
})
.show ();
},
"html"
);
return false;
});
if ($('#license_error_msg_dialog').length) {
if (typeof(process_login_ok) == "undefined")
process_login_ok = 0;

View File

@ -1022,15 +1022,18 @@ function toggle_full_value(id) {
}
});
}
function autoclick_profile_users(firts_level, second_level) {
if (typeof firts_level !== "undefined") {
var is_checked_firts = $('#checkbox-' + firts_level).is(':checked');
if (!is_checked_firts) {
$('#checkbox-' + firts_level).prop('checked', true);
}
if (second_level !== false) {
if (!$('#checkbox-' + second_level).is(":checked")) {
$('#checkbox-' + second_level).prop('checked', true);
function autoclick_profile_users(actual_level, firts_level, second_level) {
if ($('#checkbox-' + actual_level).is(":checked")) {
if (typeof firts_level !== "undefined") {
var is_checked_firts = $('#checkbox-' + firts_level).is(':checked');
if (!is_checked_firts) {
$('#checkbox-' + firts_level).prop('checked', true);
}
if (second_level !== false) {
if (!$('#checkbox-' + second_level).is(":checked")) {
$('#checkbox-' + second_level).prop('checked', true);
}
}
}
}

View File

@ -71,7 +71,7 @@
<div style='height: 10px'>
<?php
$version = '6.1dev';
$build = '160913';
$build = '160921';
$banner = "v$version Build $build";
error_reporting(0);

View File

@ -906,7 +906,7 @@ foreach ($result as $row) {
$data[1] .= '</a></strong>';
}
$data[2] = html_print_image('mages/'. modules_show_icon_type ($row['module_type']), true);
$data[2] = html_print_image('images/'. modules_show_icon_type ($row['module_type']), true);
if (check_acl ($config['id_user'], $row['id_group'], 'AW')) {
$show_edit_icon = true;
if (defined('METACONSOLE')) {

View File

@ -400,7 +400,7 @@ if ($config["pure"] == 0 || $meta) {
if (! defined ('METACONSOLE')) {
unset($onheader['history']);
ui_print_page_header (__("Events"), "images/op_events.png",
false, "eventview", false, $onheader);
false, "eventview", false, $onheader,true, "events");
}
else {
unset($onheader['rss']);

View File

@ -201,13 +201,14 @@ if (defined('METACONSOLE')) {
$table->head_colspan[0] = 5;
$table->headstyle[0] = 'text-align: center';
}
$table->style[0] = 'width: 500px;';
$table->style[2] = 'width: 200px;';
$data = array();
$data[0] = '<b>' . __('User ID') . '</b>';
$data[0] .= $jump . '<span style="font-weight: normal;">' . $id . '</span>';
$data[0] .= '<div style="position:absolute;left:200px;display:inline;">'.$jump . '<span style="font-weight: normal;">' . $id . '</span></div>';
$data[1] = '<b>' . __('Full (display) name') . '</b>';
$data[1] .= $jump . html_print_input_text_extended ("fullname", $user_info["fullname"], '', '', 40, 100, $view_mode, '', 'class="input"', true);
$data[1] .= '<div style="position:absolute;left:700px;display:inline;">'.$jump . html_print_input_text_extended ("fullname", $user_info["fullname"], '', '', 40, 100, $view_mode, '', 'class="input"', true).'</div>';
// Show "Picture" (in future versions, why not, allow users to upload it's own avatar here.
if (is_user_admin ($id)) {
@ -229,9 +230,9 @@ $table->data[] = $data;
$data = array();
$data[0] = __('E-mail');
$data[0] .= $jump . html_print_input_text_extended ("email", $user_info["email"], '', '', '40', '100', $view_mode, '', 'class="input"', true);
$data[0] .= '<div style="position:absolute;left:200px;display:inline;">'.$jump . html_print_input_text_extended ("email", $user_info["email"], '', '', '40', '100', $view_mode, '', 'class="input"', true).'</div>';
$data[1] = __('Phone number');
$data[1] .= $jump . html_print_input_text_extended ("phone", $user_info["phone"], '', '', '40', '30', $view_mode, '', 'class="input"', true);
$data[1] .= '<div style="position:absolute;left:700px;display:inline;">'.$jump . html_print_input_text_extended ("phone", $user_info["phone"], '', '', '40', '30', $view_mode, '', 'class="input"', true).'</div>';
$table->rowclass[] = '';
$table->rowstyle[] = 'font-weight: bold;';
$table->data[] = $data;
@ -240,9 +241,9 @@ if ($view_mode === false) {
if ($config["user_can_update_password"]) {
$data = array();
$data[0] = __('New Password');
$data[0] .= $jump . html_print_input_text_extended ("password_new", "", '', '', '40', '45', $view_mode, '', 'class="input"', true, true);
$data[0] .= '<div style="position:absolute;left:200px;display:inline;">'.$jump . html_print_input_text_extended ("password_new", "", '', '', '40', '45', $view_mode, '', 'class="input"', true, true).'</div>';
$data[1] = __('Password confirmation');
$data[1] .= $jump . html_print_input_text_extended ("password_conf", "", '', '', '40', '45', $view_mode, '', 'class="input"', true, true);
$data[1] .= '<div style="position:absolute;left:700px;display:inline;">'.$jump . html_print_input_text_extended ("password_conf", "", '', '', '40', '45', $view_mode, '', 'class="input"', true, true).'</div>';
$table->rowclass[] = '';
$table->rowstyle[] = 'font-weight: bold;';
$table->data[] = $data;
@ -272,7 +273,7 @@ $data[0] .= __('Default').' ('.$config["global_block_size"].')';
$values = array(-1 => __('Default'),1 => __('Yes'),0 => __('No'));
$data[1] = __('Interactive charts') . ui_print_help_tip(__('Whether to use Javascript or static PNG graphs'), true);
$data[1] .= $jump . html_print_select($values, 'flash_charts', $user_info["flash_chart"], '', '', -1, true, false, false);
$data[1] .= '<div style="position:absolute;left:700px;display:inline;">'.$jump . html_print_select($values, 'flash_charts', $user_info["flash_chart"], '', '', -1, true, false, false).'</div>';
$data[2] = __('Language');
@ -295,8 +296,8 @@ $id_usr = $config['id_user'];
if (!$meta) {
$data = array();
$data[0] = __('Shortcut bar') . ui_print_help_tip(__('This will activate a shortcut bar with alerts, events, messages... information'), true);
$data[0] .= $jump . html_print_checkbox('shortcut_bar', 1, $user_info["shortcut"], true);
$data[0] .= '<div style="position:absolute;left:200px;display:inline;">'.$jump . html_print_checkbox('shortcut_bar', 1, $user_info["shortcut"], true).'</div>';
$data[1] = __('Home screen'). ui_print_help_tip(__('User can customize the home page. By default, will display \'Agent Detail\'. Example: Select \'Other\' and type sec=estado&sec2=operation/agentes/estado_agente to show agent detail view'), true);
$values = array (
'Default' =>__('Default'),
@ -309,9 +310,9 @@ if (!$meta) {
if (enterprise_installed()) {
$values['Dashboard'] = __('Dashboard');
}
$data[1] .= $jump . html_print_select($values, 'section', io_safe_output($user_info["section"]), 'show_data_section();', '', -1, true, false, false);
$data[1] .= '<div style="position:absolute;left:700px;display:inline;">'.$jump . html_print_select($values, 'section', io_safe_output($user_info["section"]), 'show_data_section();', '', -1, true, false, false).'</div>';
if (enterprise_installed()) {
$dashboards = get_user_dashboards ($config['id_user']);
$dashboards_aux = array();
@ -358,8 +359,8 @@ if (!$meta) {
$double_auth_enabled = (bool) db_get_value('id', 'tuser_double_auth', 'id_user', $config['id_user']);
$data = array();
$data[0] = __('Double authentication');
$data[0] .= $jump;
$data[0] .= html_print_checkbox('double_auth', 1, $double_auth_enabled, true);
$data[0] .= '<div style="position:absolute;left:200px;display:inline;">'.$jump;
$data[0] .= html_print_checkbox('double_auth', 1, $double_auth_enabled, true).'</span>';
if ($double_auth_enabled) {
$data[0] .= $jump;
$data[0] .= html_print_button(__('Show information'), 'show_info', false, 'javascript:show_double_auth_info();', '', true);
@ -369,8 +370,8 @@ $data[0] .= "<div id=\"dialog-double_auth\"><div id=\"dialog-double_auth-contain
if (check_acl ($config['id_user'], 0, "ER")){
$data[1] = __('Event filter');
$data[1] .= $jump . html_print_select_from_sql ('SELECT id_filter, id_name FROM tevent_filter',
'event_filter', $user_info["id_filter"], '', __('None'), NULL, true);
$data[1] .= '<div style="position:absolute;left:700px;display:inline;">'.$jump . html_print_select_from_sql ('SELECT id_filter, id_name FROM tevent_filter',
'event_filter', $user_info["id_filter"], '', __('None'), NULL, true).'</div>';
}// Newsletter
else if (license_free()) {
$data[1] = __('Newsletter Subscribed') . ':';

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 6.1dev
%define release 160913
%define release 160921
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 6.1dev
%define release 160913
%define release 160921
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2

View File

@ -66,7 +66,7 @@ INSERT INTO tconfig (token, value) VALUES ('graph_res','5');
INSERT INTO tconfig (token, value) VALUES ('step_compact','1');
INSERT INTO tconfig (token, value) VALUES ('db_scheme_first_version','6.0orc');
INSERT INTO tconfig (token, value) VALUES('db_scheme_version','6.1dev');
INSERT INTO tconfig (token, value) VALUES('db_scheme_build','PD160913');
INSERT INTO tconfig (token, value) VALUES('db_scheme_build','PD160921');
INSERT INTO tconfig (token, value) VALUES ('show_unknown','0');
INSERT INTO tconfig (token, value) VALUES ('show_lastalerts','1');
INSERT INTO tconfig (token, value) VALUES ('style','pandora');

View File

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 6.1dev-160913
Version: 6.1dev-160921
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="6.1dev-160913"
pandora_version="6.1dev-160921"
package_cpan=0
package_pandora=1

View File

@ -43,7 +43,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "6.1dev";
my $pandora_build = "160913";
my $pandora_build = "160921";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 6.1dev
%define release 160913
%define release 160921
Summary: Pandora FMS Server
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 6.1dev
%define release 160913
%define release 160921
Summary: Pandora FMS Server
Name: %{name}

View File

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="6.1dev"
PI_BUILD="160913"
PI_BUILD="160921"
MODE=$1
if [ $# -gt 1 ]; then

View File

@ -33,7 +33,7 @@ use PandoraFMS::Tools;
use PandoraFMS::DB;
# version: define current version
my $version = "6.1dev PS160913";
my $version = "6.1dev PS160921";
# Pandora server configuration
my %conf;

View File

@ -35,7 +35,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
my $version = "6.1dev PS160913";
my $version = "6.1dev PS160921";
# save program name for logging
my $progname = basename($0);

View File

@ -26,6 +26,7 @@ RUN yum install -y \
xorg-x11-server-Xvfb; yum clean all;
RUN pip install pyvirtualdisplay
RUN pip install selenium
RUN pip install unittest2
RUN pip install testtools
# Pandora FMS Console dependencies

View File

@ -12,7 +12,7 @@ from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re
import unittest2, time, re
class ACLPropagation(PandoraWebDriverTestCase):
@ -177,4 +177,4 @@ class ACLTags(PandoraWebDriverTestCase):
self.assertEqual(modules,[])
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
from include.common_classes_60 import PandoraWebDriverTestCase
from include.common_functions_60 import login, click_menu_element, detect_and_pass_all_wizards, gen_random_string
from include.agent_functions import create_agent, delete_agent
from include.agent_functions import search_agent,create_agent, delete_agent
from include.api_functions import *
from include.module_functions import search_module
from include.bulk_operations import *
from selenium import webdriver
from selenium.webdriver.common.by import By
@ -10,8 +11,9 @@ from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re
import unittest2, time, re
class Bulk_operations(PandoraWebDriverTestCase):
@ -94,7 +96,7 @@ class Bulk_operations(PandoraWebDriverTestCase):
agent_name_2 = gen_random_string(6)
driver = self.driver
activate_api(driver,"1234")
params = [agent_name_1,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"]
@ -114,7 +116,12 @@ class Bulk_operations(PandoraWebDriverTestCase):
edit_agents_in_bulk(driver,agent_names_list,new_description="test C edit description bulk operation")
self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$")
self.assertEqual(self.driver.find_element_by_xpath('//div[@id="main"]//td[contains(.,"Agents updated successfully(2)")]').text,"Agents updated successfully(2)")
search_agent(driver,agent_name_1,go_to_agent=True)
self.assertEqual("test C edit description bulk operation" in driver.page_source,True)
def test_D_delete_modules_in_bulk(self):
u"""
@ -156,5 +163,168 @@ class Bulk_operations(PandoraWebDriverTestCase):
self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$")
search_module(driver,agent_name_1,module_name_1)
element = driver.find_elements_by_xpath('//a[contains(.,"No available data to show")]')
self.assertEqual(element,[])
def test_E_edit_module_group_in_bulk(self):
u"""
Create two agents and one module in this agents. With bulk operation, change module group that this module
"""
agent_name_1 = gen_random_string(6)
agent_name_2 = gen_random_string(6)
module_name_1 = gen_random_string(6)
driver = self.driver
activate_api(driver,"1234")
params = [agent_name_1,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"]
create_agent_api(driver,params,user="admin",pwd="pandora")
params = [agent_name_2,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"]
create_agent_api(driver,params,user="admin",pwd="pandora")
params = [agent_name_1,module_name_1,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"]
add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234")
params = [agent_name_2,module_name_1,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"]
add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234")
lista = driver.current_url.split('/')
url = lista[0]+'//'+lista[2]+'/pandora_console'
driver.get(url)
agent_name_list = [agent_name_1,agent_name_2]
module_name_list = [module_name_1]
edit_modules_in_bulk(driver,module_name_list,agent_name_list,new_module_group="Users")
self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$")
search_module(driver,agent_name_1,module_name_1,go_to_module=True)
self.assertEqual("Users" in driver.page_source,True)
def test_F_edit_module_umbral_in_bulk(self):
u"""
Create two agents and one module in this agents. With bulk operation, change module umbral with bulk operation
"""
agent_name_1 = gen_random_string(6)
agent_name_2 = gen_random_string(6)
module_name_1 = gen_random_string(6)
driver = self.driver
activate_api(driver,"1234")
params = [agent_name_1,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"]
create_agent_api(driver,params,user="admin",pwd="pandora")
params = [agent_name_2,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"]
create_agent_api(driver,params,user="admin",pwd="pandora")
params = [agent_name_1,module_name_1,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"]
add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234")
params = [agent_name_2,module_name_1,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"]
add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234")
lista = driver.current_url.split('/')
url = lista[0]+'//'+lista[2]+'/pandora_console'
driver.get(url)
agent_name_list = [agent_name_1,agent_name_2]
module_name_list = [module_name_1]
edit_modules_in_bulk(driver,module_name_list,agent_name_list,new_min="1",new_max="2")
self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$")
search_module(driver,agent_name_1,module_name_1,go_to_module=True)
driver.find_element_by_xpath('//a[contains(.,"Advanced options")]').click()
element = driver.find_element_by_xpath('//tr//td[contains(.,"1")]')
self.assertIsInstance(element,WebElement)
element = driver.find_element_by_xpath('//tr//td[contains(.,"2")]')
self.assertIsInstance(element,WebElement)
def test_G_edit_module_threshold_in_bulk(self):
u"""
Create two agents and one module in this agents. With bulk operation, change FF Threshold with bulk operation
Ticket Associated = 4059
"""
agent_name_1 = gen_random_string(6)
agent_name_2 = gen_random_string(6)
module_name_1 = gen_random_string(6)
driver = self.driver
activate_api(driver,"1234")
params = [agent_name_1,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"]
create_agent_api(driver,params,user="admin",pwd="pandora")
params = [agent_name_2,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"]
create_agent_api(driver,params,user="admin",pwd="pandora")
params = [agent_name_1,module_name_1,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"]
add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234")
params = [agent_name_2,module_name_1,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"]
add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234")
lista = driver.current_url.split('/')
url = lista[0]+'//'+lista[2]+'/pandora_console'
driver.get(url)
agent_name_list = [agent_name_1,agent_name_2]
module_name_list = [module_name_1]
ff_threshold_list = [0,1,2]
edit_modules_in_bulk(driver,module_name_list,agent_name_list,ff_threshold_list=ff_threshold_list)
self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$")
search_module(driver,agent_name_1,module_name_1,go_to_module=True)
driver.find_element_by_xpath('//a[contains(.,"Advanced options")]').click()
element = driver.find_element_by_xpath('//tr//td[contains(.,"0")]')
self.assertIsInstance(element,WebElement)
element = driver.find_element_by_xpath('//tr//td[contains(.,"1")]')
self.assertIsInstance(element,WebElement)
element = driver.find_element_by_xpath('//tr//td[contains(.,"2")]')
self.assertIsInstance(element,WebElement)
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -12,7 +12,7 @@ from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re
import unittest2, time, re
class Collections(PandoraWebDriverTestCase):
@ -82,4 +82,4 @@ class Collections(PandoraWebDriverTestCase):
self.assertEqual(element,[])
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -14,7 +14,7 @@ from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import StaleElementReferenceException, NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re
import unittest2, time, re
class Miscellaneous (PandoraWebDriverTestCase):
@ -62,5 +62,5 @@ class Miscellaneous (PandoraWebDriverTestCase):
self.assertIsInstance(element,WebElement)
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -9,7 +9,7 @@ from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import StaleElementReferenceException
from include.module_functions import *
import unittest, time, re
import unittest2, time, re
class Network_server_module(PandoraWebDriverTestCase):
@ -54,5 +54,5 @@ class Network_server_module(PandoraWebDriverTestCase):
break
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -13,7 +13,7 @@ from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re, datetime
import unittest2, time, re, datetime
class PAN13(PandoraWebDriverTestCase):
@ -162,4 +162,4 @@ class PAN13(PandoraWebDriverTestCase):
self.assertNotEqual(event_who_should_be_present_b,[])
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -11,7 +11,7 @@ from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re
import unittest2, time, re
class Policies(PandoraWebDriverTestCase):
@ -130,4 +130,4 @@ class Policies(PandoraWebDriverTestCase):
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -14,7 +14,7 @@ from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re
import unittest2, time, re
class SimpleService(PandoraWebDriverTestCase):
@ -275,4 +275,4 @@ class ManualService(PandoraWebDriverTestCase):
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -9,7 +9,7 @@ from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.remote.webelement import WebElement
import unittest, time, re
import unittest2, time, re
class Users(PandoraWebDriverTestCase):
@ -41,5 +41,5 @@ class Users(PandoraWebDriverTestCase):
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -8,7 +8,7 @@ from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
import unittest2, time, re
def activate_api(driver,api_pwd):

View File

@ -88,3 +88,78 @@ def delete_modules_in_bulk(driver,agent_name_list,module_name_list,select_agent_
driver.find_element_by_id("submit-go").click()
def copy_modules_in_bulk(driver,owner_agent_name,module_name_list,destiny_agents_list):
# module_name_list is a list of modules to copy
click_menu_element(driver,"Module operations")
driver.find_element_by_id("option").click()
Select(driver.find_element_by_id("option")).select_by_visible_text("Copy modules in bulk")
time.sleep(2)
driver.find_element_by_id("source_id_agent").click()
Select(driver.find_element_by_id("source_id_agent")).select_by_visible_text(owner_agent_name)
time.sleep(3)
for module_name in module_name_list:
Select(driver.find_element_by_id("target_modules")).select_by_visible_text(module_name)
for agent_name in destiny_agents_list:
Select(driver.find_element_by_id("destiny_id_agent")).select_by_visible_text(agent_name)
driver.find_element_by_id("submit-go").click()
def edit_modules_in_bulk(driver,module_name_list,agent_name_list,new_module_group=None,new_min=None,new_max=None,ff_threshold_list=None):
#ff_threshold_list example: ff_threshold_list = [normal value,warning value,critical value] -> Mode Change each status
click_menu_element(driver,"Module operations")
driver.find_element_by_id("option").click()
Select(driver.find_element_by_id("option")).select_by_visible_text("Edit modules in bulk")
Select(driver.find_element_by_id("module_type")).select_by_visible_text("All")
for module_name in module_name_list:
Select(driver.find_element_by_id("module_name")).select_by_visible_text(module_name)
time.sleep(3)
for agent_name in agent_name_list:
Select(driver.find_element_by_id("agents")).select_by_visible_text(agent_name)
time.sleep(3)
if new_module_group != None:
Select(driver.find_element_by_id("id_module_group")).select_by_visible_text(new_module_group)
if new_min != None:
driver.find_element_by_id("text-min").clear()
driver.find_element_by_id("text-min").send_keys(new_min)
if new_max != None:
driver.find_element_by_id("text-max").clear()
driver.find_element_by_id("text-max").send_keys(new_max)
if ff_threshold_list != None:
Select(driver.find_element_by_id("each_ff")).select_by_visible_text("Change each status")
time.sleep(3)
driver.find_element_by_id("text-min_ff_event_normal").clear()
driver.find_element_by_id("text-min_ff_event_normal").send_keys(ff_threshold_list[0])
driver.find_element_by_id("text-min_ff_event_warning").clear()
driver.find_element_by_id("text-min_ff_event_warning").send_keys(ff_threshold_list[1])
driver.find_element_by_id("text-min_ff_event_critical").clear()
driver.find_element_by_id("text-min_ff_event_critical").send_keys(ff_threshold_list[2])
driver.find_element_by_id("submit-go").click()

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from unittest import TestResult, TestCase
from unittest2 import TestResult, TestCase
from common_functions_60 import *
from datetime import datetime
from selenium import webdriver
@ -8,7 +8,7 @@ from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from sauceclient import SauceClient
#from sauceclient import SauceClient
from os import environ
import os
@ -25,17 +25,17 @@ class PandoraWebDriverTestCase(TestCase):
time_started = None
time_elapsed = None #Total time of the test
tickets_associated = []
sauce_username = environ["SAUCE_USERNAME"]
sauce_access_key = environ["SAUCE_ACCESS_KEY"]
sauce_client = None
sauce_labs_job_id = None
#sauce_username = environ["SAUCE_USERNAME"]
#sauce_access_key = environ["SAUCE_ACCESS_KEY"]
#sauce_client = None
#sauce_labs_job_id = None
desired_cap = {
'tunnel-identifier': environ["TRAVIS_JOB_NUMBER"],
'platform': "Windows 10",
'browserName': "firefox",
'version': "46",
}
#desired_cap = {
# 'tunnel-identifier': environ["TRAVIS_JOB_NUMBER"],
# 'platform': "Windows 10",
# 'browserName': "firefox",
# 'version': "46",
#}
@classmethod
def setUpClass(cls):
@ -46,11 +46,10 @@ class PandoraWebDriverTestCase(TestCase):
cls.base_url = os.getenv('DEVELOPMENT_URL')
else:
#Start VM in Sauce Labs
cls.driver = webdriver.Remote(command_executor='http://'+cls.sauce_username+':'+cls.sauce_access_key+'@ondemand.saucelabs.com:80/wd/hub',desired_capabilities=cls.desired_cap)
cls.sauce_labs_job_id = cls.driver.session_id
#cls.driver = webdriver.Remote(command_executor='http://'+cls.sauce_username+':'+cls.sauce_access_key+'@ondemand.saucelabs.com:80/wd/hub',desired_capabilities=cls.desired_cap)
#cls.sauce_labs_job_id = cls.driver.session_id
cls.driver = webdriver.Firefox()
cls.base_url = "http://127.0.0.1/"
@classmethod
def tearDownClass(cls):

View File

@ -6,7 +6,7 @@ from selenium.webdriver.support import expected_conditions as EC
import random, time
import string
import unittest
import unittest2
def is_enterprise(func):
u"""
@ -22,7 +22,7 @@ def is_enterprise(func):
if is_enterprise:
return func(*args,**kwargs)
else:
raise unittest.SkipTest("Skipping test")
raise unittest2.SkipTest("Skipping test")
return inner
@ -48,6 +48,7 @@ def login(driver,user="admin",passwd="pandora",pandora_url=None):
print "Pandora url is "+pandora_url
driver.get(pandora_url+"/pandora_console/index.php")
driver.add_cookie({'name': 'clippy_is_annoying', 'value': 1})
driver.find_element_by_id("nick").clear()
driver.find_element_by_id("nick").send_keys(user)
driver.find_element_by_id("pass").clear()
@ -109,11 +110,12 @@ def detect_and_pass_newsletter_wizard(driver):
def detect_and_pass_all_wizards(driver):
driver.implicitly_wait(2) #Optimisation workaround for skipping wizards quickly
detect_and_pass_pandorin(driver)
detect_and_pass_initial_wizard(driver)
detect_and_pass_newsletter_wizard(driver)
driver.implicitly_wait(30)
#driver.implicitly_wait(2) #Optimisation workaround for skipping wizards quickly
#detect_and_pass_pandorin(driver)
#detect_and_pass_initial_wizard(driver)
#detect_and_pass_newsletter_wizard(driver)
#driver.implicitly_wait(30)
return
def activate_home_screen(driver,mode):

View File

@ -156,7 +156,7 @@ def delete_module (driver,agent_name,module_name):
alert = driver.switch_to_alert()
alert.accept()
def search_module (driver,agent_name,module_name):
def search_module (driver,agent_name,module_name,go_to_module=False):
search_agent(driver,agent_name)
driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Manage"]').click()
@ -167,5 +167,8 @@ def search_module (driver,agent_name,module_name):
driver.find_element_by_id("submit-filter").click()
if go_to_module == True:
driver.find_element_by_xpath('//a[contains(.,"'+module_name+'")]').click()

View File

@ -8,7 +8,7 @@ from module_functions import create_module
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
import unittest2, time, re
def create_policy(driver,policy_name,group,description=None):

View File

@ -6,7 +6,7 @@ from selenium import webdriver
# Are we running headless?
if ('DISPLAY' not in os.environ):
display = Display(visible=0, size=(800, 600))
display = Display(visible=0, size=(1920, 1080))
display.start()
# Go to the installation page.

View File

@ -1,8 +1,8 @@
#!/usr/bin/env python
from unittest import *
from unittest2 import *
from console.include.common_functions_60 import *
from console.include.common_classes_60 import *
from sauceclient import SauceClient
from pyvirtualdisplay import Display
from os import environ, getenv
import subprocess, time, sys
@ -10,6 +10,11 @@ def get_test_file(test_list):
#return [test[0].split(' ')[0].split('.')[0].split('<')[1] for test in test_list]
return [test[0].test_name for test in test_list]
# Are we running headless?
if ('DISPLAY' not in os.environ):
display = Display(visible=0, size=(800, 600))
display.start()
#Run Enterprise tests
is_enterprise = '1' == getenv('ENTERPRISE', False)
@ -20,24 +25,25 @@ tests = a.discover(start_dir='console',pattern='*.py')
c = ArticaTestResult()
tests.run(c)
#sauce_client = SauceClient(environ["SAUCE_USERNAME"], environ["SAUCE_ACCESS_KEY"])
#for test,error_msg in c.failures+c.errors:
# try:
# sauce_client.jobs.update_job(test.sauce_labs_job_id, passed=False,tags=[environ["TRAVIS_BRANCH"],test.id()],build_num=environ["TRAVIS_JOB_NUMBER"],name=str(test.id().split('.')[1]+': '+test.id().split('.')[2]))
# except:
# print "Could not annotate Sauce Labs job #%s" % str(test)
# next
#
#for test,error_msg in c.success+c.skipped:
# try:
# sauce_client.jobs.update_job(test.sauce_labs_job_id, passed=True,tags=[environ["TRAVIS_BRANCH"],test.id()],build_num=environ["TRAVIS_JOB_NUMBER"],name=str(test.id().split('.')[1]+': '+test.id().split('.')[2]))
#
# except:
# print "Could not annotate Sauce Labs job #%s" % str(test)
# next
#Update Saouce Labs jobs
sauce_client = SauceClient(environ["SAUCE_USERNAME"], environ["SAUCE_ACCESS_KEY"])
for test,error_msg in c.failures+c.errors:
try:
sauce_client.jobs.update_job(test.sauce_labs_job_id, passed=False,tags=[environ["TRAVIS_BRANCH"],test.id()],build_num=environ["TRAVIS_JOB_NUMBER"],name=str(test.id().split('.')[1]+': '+test.id().split('.')[2]))
except:
print "Could not annotate Sauce Labs job #%s" % str(test)
next
for test,error_msg in c.success+c.skipped:
try:
sauce_client.jobs.update_job(test.sauce_labs_job_id, passed=True,tags=[environ["TRAVIS_BRANCH"],test.id()],build_num=environ["TRAVIS_JOB_NUMBER"],name=str(test.id().split('.')[1]+': '+test.id().split('.')[2]))
except:
print "Could not annotate Sauce Labs job #%s" % str(test)
next
if ('DISPLAY' not in os.environ):
display.stop()
print "Tests failed: %s" % c.failures
print "Tests succeeded: %s" % c.success

View File

@ -51,4 +51,14 @@ check "Starting the Pandora FMS Server" $?
service pandora_agent_daemon start
check "Starting the Pandora FMS Agent" $?
# Disable the initial wizards.
echo "UPDATE tconfig SET value='1' WHERE token='initial_wizard'" | mysql -u root -ppandora -Dpandora
echo "UPDATE tconfig SET value='1' WHERE token='instance_registered'" | mysql -u root -ppandora -Dpandora
echo "INSERT INTO tconfig (token, value) VALUES ('skip_login_help_dialog', '1')" | mysql -u root -ppandora -Dpandora
echo "UPDATE tusuario SET middlename='1'" | mysql -u root -ppandora -Dpandora
# Run console tests.
cd /tmp/pandorafms/tests && chmod +x run_console_tests.py && ./run_console_tests.py
check "Running tests for the Pandora FMS Console" $?
exit 0

View File

@ -6,7 +6,7 @@ from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import StaleElementReferenceException
import unittest, time, re
import unittest2, time, re
class PAN3(PandoraWebDriverTestCase):
@ -67,5 +67,5 @@ class PAN3(PandoraWebDriverTestCase):
break
if __name__ == "__main__":
unittest.main()
unittest2.main()

View File

@ -1,5 +1,5 @@
#!/usr/bin/env python
from unittest import *
from unittest2 import *
from console import *
from console.include.common_functions_60 import *
from console.include.common_classes_60 import *