diff --git a/extras/chrome_extension/css/popup.css b/extras/chrome_extension/css/popup.css index 8f8d6f2c79..a736abea57 100644 --- a/extras/chrome_extension/css/popup.css +++ b/extras/chrome_extension/css/popup.css @@ -1,84 +1,170 @@ +* { + font-family: "Open Sans", "Noto Sans", sans-serif +} + body { - min-width:425px; - min-height:540px; - margin:5px; - font-family:Tahoma, Geneva, Arial; - font-size:10pt; + min-width: 425px; + min-height: 540px; + margin: 5px; + font-family: Tahoma, Geneva, Arial; + font-size: 10pt; } -h1 { font-weight: bold; font-size:16px; margin:2px 0px 2px 0px; color:#237948; font-family:arial } -h2{ - color : black; +h1 { + font-weight: bold; + font-size: 14px; + margin: 2px 0px 2px 0px; } -p -{ - font-family:"Times New Roman"; - font-size:20px; +h2 { + color : #333; +} +p { + font-size: 20px; +} +a { + color: #254533; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a:visited { + color: #254533; text-decoration:none; +} +a:visited:hover { + text-decoration: underline; } -a { color: #254533; text-decoration:none; } -a:hover { text-decoration:underline; } -a:visited { color: #254533; text-decoration:none; } -a:visited:hover { text-decoration:underline; } +span.res { + font-size: 80%; + color: #555; +} -span.res { font-size:80%; color:#555; } - -img.pm { margin-right:3px;cursor:pointer; margin-top:0px; } -div.main{ - background-color : white; +img.pm { + margin-right: 3px; + cursor: pointer; + margin-top: 2px; + float: right; +} +div.main { + background-color: white; height: 500px; width: 400px; } -div.textarea{ - background-color : #D5DED5; - width :100% +div.textarea { + background-color: #D5DED5; + width: 100% +} +div.e { + text-align: right; + font-size:8pt; +} +div.b { + background-color:white; + display: none; +} +div.b p a { + font-size: 10pt; } -div.e{ text-align:right; font-size:8pt; } -div.b { background-color:white; border:1px solid #BABABA; margin:5px; padding:4px; display:none; } -div.b p a { font-size: 10pt; } -div.b p { margin:2px 0px 4px 0px; display:none; color:#333; font-size:9pt; } div.b div.items p { - margin:2px 0px 8px 0px; color:#333; width:355px;float:left;display:block; + margin: 2px 0px 8px 0px; + width: 355px; + float: left; + display: block; } div.b div.items p img { - float:left;margin:0px 3px 0px 0px; + float: left; + margin: 0px 3px 0px 0px; } -div.options_header{ - margin : 10px 10px; +div.options_header { + margin: 10px 10px; } -div.options_divider{ - width : 100%; - background-color : #C8C8C8; +div.options_divider { + width: 627px; + margin-top: 30px; } -div.optionsG_textarea{ - background-color : green; - width : 450px; - margin : 5px, 10px; +div.options_divider h2{ + margin: 20px 20px 0; + padding: 5px; + font-weight: 500; + border: 2px solid #82b92e; + border-top-left-radius: 2px; + border-top-right-radius: 2px; + color: white; + text-align: center; + background: #82b92e; + font-size: 14px; + font-weight: 600; } -div.options_textarea{ - background-color : #ebebeb; - width : 550px; - margin : 10px 10px; + +div.options_textarea { + background-color: #f6f6f6; + width: 550px; + margin: 0 20px; + padding: 10px 10px 25px 25px; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + border: 1px solid #e4e4e4; + border-top: 0; +} + +div.options_footer { + width: 550px; + margin: 10px 10px; padding: 10px; - -webkit-border-radius:10px; - border: 2px solid #c8c8c8; } -div.options_footer{ - width : 550px; - margin : 10px 10px; - padding: 10px; +select { + background: white; + border: 1px solid #888; + font-size: smaller; + padding: 2px 1px; + width: 250px; +} + +.sound_selector td:first-child { + padding-left: 25px; + width: 39%; +} + +.options_textarea button { + background-color: #82b92e; + border: 1px solid #82b92e; + color: white; + padding: 6px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 12px; + border-radius: 2px; + margin: 25px 0px 0px 422px; +} + +.options_textarea button:hover { + background-color: transparent; + color: #82b92e; + cursor: pointer; +} + +.options_textarea h3 { + text-align: left; + font-size: 11.4pt; +} + +button h3 { + margin: 0; + font-size: 10pt !important; } .tooltip { - display:none; - font-size:12px; - height:70px; - width:160px; - padding:25px; - color:#eee; + display: none; + font-size: 12px; + height: 70px; + width: 160px; + padding: 25px; + color: #eee; } .spinner { @@ -87,11 +173,78 @@ div.options_footer{ left: 50%; margin-left: -50px; margin-top: -50px; - text-align:center; - z-index:1234; + text-align: center; + z-index: 1234; overflow: auto; width: 100px; height: 102px; } +.error { + display: flex; + border: solid #e4e4e4 1px; + border-radius: 2px; + background: #f6f6f6; + padding: 10px; + margin: 10px; + margin-top: 35px; +} +.error_text { + margin: 0 10px; +} + +.result { + margin: 10px; + height: 500; + overflow-y: auto; +} + +#events_title { + padding: 5px 0; + margin: 0; + padding-bottom: 10px; + border-bottom: 1px solid #e5e5e5; +} + +.event { + border: solid 1px #e5e5e5; + border-top: 0; + padding: 5px 6px; + color: white; +} + +.event a { + margin-left: 5px; + color: white; + font-size: 9pt; +} + +.sev-Warning a { + margin-left: 5px; + color: #333; +} + +.event p { + margin: 0 0 0 6px; + padding-top: 2px; + display: none; + font-size: 8pt; +} + +.sev-Warning { + background: #FDDD30; + color: #333; +} +.sev-Critical { + background: #F84348; +} +.sev-Informational { + background: #4CA8E0; +} +.sev-Normal { + background: #84B839; +} +.sev-Maintenance { + background: #A8A8A8; +} \ No newline at end of file diff --git a/extras/chrome_extension/images/error.png b/extras/chrome_extension/images/error.png new file mode 100644 index 0000000000..af676eb8f1 Binary files /dev/null and b/extras/chrome_extension/images/error.png differ diff --git a/extras/chrome_extension/images/gear.png b/extras/chrome_extension/images/gear.png index 77863fc470..bc064777f9 100644 Binary files a/extras/chrome_extension/images/gear.png and b/extras/chrome_extension/images/gear.png differ diff --git a/extras/chrome_extension/images/icon.png b/extras/chrome_extension/images/icon.png index a793b1ca3b..1fb89b2f3e 100644 Binary files a/extras/chrome_extension/images/icon.png and b/extras/chrome_extension/images/icon.png differ diff --git a/extras/chrome_extension/images/icon128.png b/extras/chrome_extension/images/icon128.png index 5fae8cedf8..1859358929 100644 Binary files a/extras/chrome_extension/images/icon128.png and b/extras/chrome_extension/images/icon128.png differ diff --git a/extras/chrome_extension/images/icon16.png b/extras/chrome_extension/images/icon16.png index 3bc0ff4040..59788e3458 100644 Binary files a/extras/chrome_extension/images/icon16.png and b/extras/chrome_extension/images/icon16.png differ diff --git a/extras/chrome_extension/images/icon19.png b/extras/chrome_extension/images/icon19.png index 79e819f62e..d3749f3f34 100644 Binary files a/extras/chrome_extension/images/icon19.png and b/extras/chrome_extension/images/icon19.png differ diff --git a/extras/chrome_extension/images/icon32.png b/extras/chrome_extension/images/icon32.png index a27ee9dc3f..33c63fbb56 100644 Binary files a/extras/chrome_extension/images/icon32.png and b/extras/chrome_extension/images/icon32.png differ diff --git a/extras/chrome_extension/images/icon48.png b/extras/chrome_extension/images/icon48.png index f6941faccf..1fb89b2f3e 100644 Binary files a/extras/chrome_extension/images/icon48.png and b/extras/chrome_extension/images/icon48.png differ diff --git a/extras/chrome_extension/images/icon64.png b/extras/chrome_extension/images/icon64.png index c9cb50c065..cdf016624c 100644 Binary files a/extras/chrome_extension/images/icon64.png and b/extras/chrome_extension/images/icon64.png differ diff --git a/extras/chrome_extension/images/logo.png b/extras/chrome_extension/images/logo.png index 16bf203322..3305749f7a 100644 Binary files a/extras/chrome_extension/images/logo.png and b/extras/chrome_extension/images/logo.png differ diff --git a/extras/chrome_extension/images/minus.gif b/extras/chrome_extension/images/minus.gif deleted file mode 100644 index 2e74ca7bb9..0000000000 Binary files a/extras/chrome_extension/images/minus.gif and /dev/null differ diff --git a/extras/chrome_extension/images/minus.png b/extras/chrome_extension/images/minus.png new file mode 100644 index 0000000000..380d9112b8 Binary files /dev/null and b/extras/chrome_extension/images/minus.png differ diff --git a/extras/chrome_extension/images/plus.gif b/extras/chrome_extension/images/plus.gif deleted file mode 100644 index 47db223eb0..0000000000 Binary files a/extras/chrome_extension/images/plus.gif and /dev/null differ diff --git a/extras/chrome_extension/images/plus.png b/extras/chrome_extension/images/plus.png new file mode 100644 index 0000000000..2666d189e3 Binary files /dev/null and b/extras/chrome_extension/images/plus.png differ diff --git a/extras/chrome_extension/images/refresh.png b/extras/chrome_extension/images/refresh.png index d4c16a67a0..3f81fdde0d 100644 Binary files a/extras/chrome_extension/images/refresh.png and b/extras/chrome_extension/images/refresh.png differ diff --git a/extras/chrome_extension/images/spinny.gif b/extras/chrome_extension/images/spinny.gif index bb6d8f7ca8..6bf2309a0b 100644 Binary files a/extras/chrome_extension/images/spinny.gif and b/extras/chrome_extension/images/spinny.gif differ diff --git a/extras/chrome_extension/js/background.js b/extras/chrome_extension/js/background.js index 3de478b61b..8f3b80e866 100644 --- a/extras/chrome_extension/js/background.js +++ b/extras/chrome_extension/js/background.js @@ -1,29 +1,35 @@ -var timer = null; -var allEvents=new Array(); -var newEvents=new Array(); -var oldEvents=new Array(); -var api_div_numbers=21; - +var refreshTimer = null; +var isFetching = null; +var storedEvents = new Array(); +var notVisited = {}; $(window).load(function() { initilise(); - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(main , 100 ); + // Wait some ms to throw main function + var delay = setTimeout(main, 100); + resetInterval(); }); - - -function fetchEvents(){ - return oldEvents; +function fetchEvents() { + return storedEvents; } +function fetchNotVisited() { + return notVisited; +} + +function removeNotVisited(eventId) { + if (notVisited[eventId] === true) delete notVisited[eventId]; +} function main() { - var url=localStorage["ip_address"]+'/include/api.php?op=get&op2=events&return_type=csv&apipass='+localStorage["api_pass"]+'&user='+localStorage["user_name"]+'&pass='+localStorage["pass"]; - var feedUrl = url; - localStorage["data_check"]="true"; + + chrome.runtime.sendMessage({text: "FETCH_EVENTS"}); + // Do not fetch if is fetching now + if (isFetching) return; + isFetching = true; + + var feedUrl = localStorage["ip_address"]+'/include/api.php?op=get&op2=events&return_type=csv&apipass='+localStorage["api_pass"]+'&user='+localStorage["user_name"]+'&pass='+localStorage["pass"]; req = new XMLHttpRequest(); req.onload = handleResponse; req.onerror = handleError; @@ -32,96 +38,85 @@ function main() { } function handleError() { - localStorage["data_check"]="false"; - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(main , 1000); + chrome.runtime.sendMessage({text: "FETCH_EVENTS_URL_ERROR"}); + isFetching = false; } function handleResponse() { var doc = req.responseText; if (doc=="auth error") { - localStorage["data_check"]="false"; - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(main , 1000); - } - else{ - var n=doc.search("404 Not Found"); - if(n>0){ - localStorage["data_check"]="false"; - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(main , 1000); - } - - else{ - localStorage["data_check"]="true" + chrome.runtime.sendMessage({text: "FETCH_EVENTS_URL_ERROR"}); + } else { + var n = doc.search("404 Not Found"); + if (n>0) { + chrome.runtime.sendMessage({text: "FETCH_EVENTS_DATA_ERROR"}); + } else { getEvents(doc); + chrome.runtime.sendMessage({text: "FETCH_EVENTS_SUCCESS"}); } } + isFetching = false; } function getEvents(reply){ - if(check()){ - all_event_array=reply.split("\n"); - allEvents=divideArray(all_event_array); - if(oldEvents.length==0){ - oldEvents=allEvents; + var fetchedEvents = parseReplyEvents(reply); + + // If there is no events requested, mark all as visited + if (storedEvents.length == 0) { + notVisited = {}; + storedEvents = fetchedEvents; + return; + } + + // Discriminate the new events + newEvents=fetchNewEvents(fetchedEvents,storedEvents); + var newNotVisited = {}; + var notVisitedCount = 0; + + // Check if popup is displayed to make some actions + var views = chrome.extension.getViews({ type: "popup" }); + for(var k=0;k' + title + '
' + event + ''; + // Otherwise, we need to ask the user for permission + // Note, Chrome does not implement the permission static property + // So we have to check for NOT 'denied' instead of 'default' + else if (Notification.permission !== 'denied') { + Notification.requestPermission(function (permission) { + // Whatever the user answers, we make sure we store the information + if(!('permission' in Notification)) { + Notification.permission = permission; + } + + // If the user is okay, let's create a notification + if (permission === "granted") getNotification(pEvent); + }); + } } -function check(){ - if (localStorage["data_check"]=="true" && localStorage["ip_address"] != null && localStorage["api_pass"] != null &&localStorage["user_name"]!=null &&localStorage["pass"]!=null && localStorage["ip_address"] != "" && localStorage["api_pass"] != "" &&localStorage["user_name"]!="" &&localStorage["pass"]!=""){ - return true; +function getNotification(pEvent){ + + // Build the event text + var even = pEvent['type']; + if (pEvent['source'] != '') even += " : " + pEvent['source']; + even += ". Event occured at " + pEvent['date']; + if(pEvent['module'] != 0) even += " in the module with Id "+ pEvent['module']; + even += "."; + + var url = (pEvent['agent']=="") + ? localStorage["ip_address"]+"/index.php?sec=eventos&sec2=operation/events/events" + : localStorage["ip_address"]+"/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=" + pEvent['agent']; + + var notification = new Notification( + pEvent['title'], + { + body: even, + icon: "images/icon.png" + } + ); + + // Add the link + notification.onclick = function (event) { + event.preventDefault(); + window.open(url, '_blank'); } - else - return false; + + // Close notification after 10 secs + setTimeout(function() {notification.close()}, 10000); +} + +function resetInterval () { + if (refreshTimer) clearInterval(refreshTimer); + refreshTimer = setInterval(main, localStorage["refresh"]*1000); } function initilise(){ - if(localStorage["ip_address"]==undefined){ - localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; - - } - - if(localStorage["api_pass"]==undefined){ - localStorage["api_pass"]="doreik0"; - } - - if(localStorage["user_name"]==undefined){ - localStorage["user_name"]="demo"; - } - - if(localStorage["pass"]==undefined){ - localStorage["pass"]="demo"; - } - if(localStorage["critical"]==null){ - localStorage["critical"]="11"; - } - if(localStorage["informational"]==null){ - localStorage["informational"]="1"; - } - if(localStorage["maintenance"]==null){ - localStorage["maintenance"]="10"; - } - if(localStorage["normal"]==null){ - localStorage["normal"]="6"; - } - if(localStorage["warning"]==null){ - localStorage["warning"]="2"; - } - if(localStorage["events"]==null){ - localStorage["events"]=20; - } - if(localStorage["refresh"]==null){ - localStorage["refresh"]="10"; - } - if(localStorage["ip_address"]==null){ - localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; - } - - if(localStorage["api_pass"]==null){ - localStorage["api_pass"]="doreik0"; - } - - if(localStorage["user_name"]==null){ - localStorage["user_name"]="demo"; - } - - if(localStorage["pass"]==null){ - localStorage["pass"]="demo"; - } - if(localStorage["sound_alert"]==null){ - localStorage["sound_alert"]="on"; - } - if(localStorage["changed"]==null){ - localStorage["changed"]="false"; - } - if(localStorage["new_events"]==null){ - localStorage["new_events"]=parseInt(localStorage["events"]); - } + if (isFetching == null) isFetching = false; + if(localStorage["ip_address"]==undefined){ + localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; + } + + if(localStorage["api_pass"]==undefined){ + localStorage["api_pass"]="doreik0"; + } + + if(localStorage["user_name"]==undefined){ + localStorage["user_name"]="demo"; + } + + if(localStorage["pass"]==undefined){ + localStorage["pass"]="demo"; + } + if(localStorage["critical"]==null){ + localStorage["critical"]="11"; + } + if(localStorage["informational"]==null){ + localStorage["informational"]="1"; + } + if(localStorage["maintenance"]==null){ + localStorage["maintenance"]="10"; + } + if(localStorage["normal"]==null){ + localStorage["normal"]="6"; + } + if(localStorage["warning"]==null){ + localStorage["warning"]="2"; + } + if(localStorage["events"]==null){ + localStorage["events"]=20; + } + if(localStorage["refresh"]==null){ + localStorage["refresh"]="10"; + } + if(localStorage["ip_address"]==null){ + localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; + } + + if(localStorage["api_pass"]==null){ + localStorage["api_pass"]="doreik0"; + } + + if(localStorage["user_name"]==null){ + localStorage["user_name"]="demo"; + } + + if(localStorage["pass"]==null){ + localStorage["pass"]="demo"; + } + if(localStorage["sound_alert"]==null){ + localStorage["sound_alert"]="on"; + } + if(localStorage["changed"]==null){ + localStorage["changed"]="false"; + } + if(localStorage["new_events"]==null){ + localStorage["new_events"]=parseInt(localStorage["events"]); + } + if(localStorage["error"]==null) { + localStorage["error"] = true; + } } diff --git a/extras/chrome_extension/js/options.js b/extras/chrome_extension/js/options.js index c8ff5cd6c1..cee8033dde 100644 --- a/extras/chrome_extension/js/options.js +++ b/extras/chrome_extension/js/options.js @@ -11,7 +11,7 @@ function initialise(){ document.getElementById('normal').value = localStorage["normal"]; document.getElementById('warning').value = localStorage["warning"]; document.getElementById('refresh').value = localStorage["refresh"]; - document.getElementById('events').value = localStorage["events"]; + document.getElementById('number_events').value = localStorage["events"]; if(localStorage["sound_alert"]=="on"){ disable(false); document.getElementById('sound_alert_o').checked=true; @@ -20,7 +20,6 @@ function initialise(){ disable(true); document.getElementById('sound_alert_f').checked=true; } - } function change(value, id){ @@ -46,16 +45,13 @@ function change_o(value, id){ if(id=="refresh"){ localStorage["refresh"]=value; } - if(id=="events"){ + if(id=="number_events"){ localStorage["events"]=value; } } function change_global(value,id){ - console.log("value => "+value); - console.log("id => "+id); bg=chrome.extension.getBackgroundPage(); - bg.location.reload(); if(id=="ip_address"){ localStorage["ip_address"]=value; } @@ -96,12 +92,6 @@ function disable(state){ } } -function windowClose() { - //window.close(); - console.log("close"); -} - - //Add callbacks to elements $(document).ready (function () { @@ -163,13 +153,12 @@ $(document).ready (function () { change_o($(this).val(), "refresh"); }); - $("#events").change(function () { - change_o($(this).val(), "events"); + $("#number_events").change(function () { + change_o($(this).val(), "number_events"); }); //Close button $("#close").click (function () { window.close(); }); - }); diff --git a/extras/chrome_extension/js/popup.js b/extras/chrome_extension/js/popup.js index c6213cbf4e..e9f41c328f 100644 --- a/extras/chrome_extension/js/popup.js +++ b/extras/chrome_extension/js/popup.js @@ -1,5 +1,3 @@ -var timer = null; -var event_array; var max_events; var bg; $(document).ready(function(){ @@ -8,198 +6,165 @@ $(document).ready(function(){ localStorage["events"]="20"; } bg=chrome.extension.getBackgroundPage(); - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(mainPoP , 2000 ); -}); -function mainPoP(){ - if(bg.check()){ + // Display the information + if (bg.fetchEvents().length == 0) { + showError("Error in fetching data!! Check your internet connection"); + } else { showEvents(); } - else - { - showUrlError(); - } -} -function showUrlError(){ - var res=document.createDocumentFragment(); - var r = document.getElementById('e'); - var eve=document.createElement('div'); - eve.id="event_temp"; - eve.setAttribute("class","b"); - - var p = document.createElement('a'); - p.href="options.html"; - p.target="_blank"; - p.innerText="Configure ip address,API password, user name and password with correct values"; - eve.appendChild(p); - res.appendChild(eve); - r.parentNode.insertBefore(res,r); - $('.loader').hide(); - $('div.b').show(); - - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(refresh , 1000 ); + + // Adding buttons listeners + document.getElementById("m_refresh").addEventListener("click", mrefresh); + + // Added listener to background messages + chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){ + switch (message.text) { + case "FETCH_EVENTS": + setSpinner(); + //$('div.b').hide(); + break; + case "FETCH_EVENTS_SUCCESS": + unsetSpinner(); + showEvents(); + break; + case "FETCH_EVENTS_DATA_ERROR": + unsetSpinner(); + showError("Error in fetching data!! Check your internet connection"); + break; + case "FETCH_EVENTS_URL_ERROR": + unsetSpinner(); + showError("Configure ip address,API password, user name and password with correct values"); + break; + default: + console.log("Unrecognized message: ", message.text); + break; + } + }); +}); + +function setSpinner () { + $('#refr_img_id').attr("src", "images/spinny.gif"); } -function showDataError(){ - var res=document.createDocumentFragment(); - var r = document.getElementById('e'); - var eve=document.createElement('div'); - eve.id="event_temp"; - eve.setAttribute("class","b"); - - var p = document.createElement('a'); - p.innerText="Error in fetching data!! Check your internet connection"; - eve.appendChild(p); - res.appendChild(eve); - r.parentNode.insertBefore(res,r); - $('.loader').hide(); - $('div.b').show(); - - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(refresh , 1000 ); +function unsetSpinner() { + $('#refr_img_id').attr("src", "images/refresh.png"); +} + +function clearError() { + $('.error').hide(); + $('.error a').text(""); + $('.result').css('height', null); +} + +function showError(text){ + $('.error a').text(text); + $('.error').show(); + $('.result').height(420); } function showEvents(){ - var allEvents=bg.fetchEvents(); - var r = document.getElementById('e'); - var res=document.createDocumentFragment(); + + clearError(); + $('#events').empty(); + var e_refr = document.getElementById('event_temp'); + if(e_refr){ + wrapper.removeChild(e_refr); + } + var allEvents = bg.fetchEvents(); + var notVisitedEvents = bg.fetchNotVisited(); var eve=document.createElement('div'); eve.id="event_temp"; eve.setAttribute("class","b"); var i=0; if(allEvents.length>0){ - while(i_ + var nums = id.split('_'); + var pid = "p_" + nums[1]; + + // Mark as visited if visited + if($(this).parent().css('font-weight') == '600') { + bg.removeNotVisited(nums[2]); + $(this).parent().css('font-weight', ''); + } + + // Toggle information if($('#' + pid).css('display') == 'none') { - $('#' + pid).slideDown("fast"); - $(this).attr({src: 'images/minus.gif'}); + $('#' + pid).slideDown(); + $(this).attr({src: 'images/minus.png'}); } else { - $('#' + pid).slideUp("fast"); - $(this).attr({src: 'images/plus.gif'}); + $('#' + pid).slideUp(); + $(this).attr({src: 'images/plus.png'}); } } -function refresh(){ - localStorage["new_events"]=0; - bg.hideBadge(); - var e = document.getElementById('event_temp'); - if(e){ - e.parentNode.removeChild(e); - } - mainPoP(); -} - - function mrefresh(){ localStorage["new_events"]=0; - bg.hideBadge(); - var bg=chrome.extension.getBackgroundPage(); - bg.location.reload(); - var e = document.getElementById('event_temp'); - if(e){ - e.parentNode.removeChild(e); - } - mainPoP(); + bg.updateBadge(); + clearError(); + bg.resetInterval(); + bg.main(); } diff --git a/extras/chrome_extension/manifest.json b/extras/chrome_extension/manifest.json index 025e680ffa..662eaf24ee 100644 --- a/extras/chrome_extension/manifest.json +++ b/extras/chrome_extension/manifest.json @@ -20,10 +20,10 @@ }, "options_page": "options.html", "permissions": [ - "tabs", - "notifications", - "http://*/*", - "background" + "tabs", + "notifications", + "http://*/*", + "background" ], "default_locale": "en" } diff --git a/extras/chrome_extension/options.html b/extras/chrome_extension/options.html index 7678782265..59410b8b05 100644 --- a/extras/chrome_extension/options.html +++ b/extras/chrome_extension/options.html @@ -3,6 +3,7 @@ Pandora FMS extension + @@ -35,23 +36,18 @@ - -
+
- - + - - - - - + - + - + - + - + - - +

Event Alert Sounds Configuration

Sound Alerts + Sound Alerts On Off
SeveritySound Type
Critical
Informational
Maintenance
Normal
Warning
Auto Refresh Time + Auto Refresh Time
Number of events - @@ -173,10 +169,11 @@
+ +
diff --git a/extras/chrome_extension/popup.html b/extras/chrome_extension/popup.html index e616020f50..951adfc0ca 100644 --- a/extras/chrome_extension/popup.html +++ b/extras/chrome_extension/popup.html @@ -1,5 +1,6 @@ + @@ -7,16 +8,28 @@
- -
Loading...
-
-
-

Events

-
+ + + + + + + +
+
+
+
+ +
+
+

ERROR

+ +
+
+
+
+
diff --git a/extras/pandora_update_version.sh b/extras/pandora_update_version.sh index cb98c5789b..2b77dd8e02 100755 --- a/extras/pandora_update_version.sh +++ b/extras/pandora_update_version.sh @@ -54,6 +54,19 @@ AGENT_WIN_FILE="$CODEHOME/pandora_agents/win32/pandora.cc" AGENT_WIN_MPI_FILE="$CODEHOME/pandora_agents/win32/installer/pandora.mpi" AGENT_WIN_RC_FILE="$CODEHOME/pandora_agents/win32/versioninfo.rc" SATELLITE_FILE="$PANDHOME_ENT/satellite_server/satellite_server.pl" +PERL_PLUGIN_FILES="$PANDHOME_ENT/pandora_plugins/NGINX/nginx_requests_queued.pl \ +$PANDHOME_ENT/pandora_plugins/Sybase/sybase_plugin.pl \ +$PANDHOME_ENT/pandora_plugins/MarkLogic/pandora_marklogic.pl \ +$PANDHOME_ENT/pandora_plugins/Apache/pandora_apache.pl \ +$PANDHOME_ENT/pandora_plugins/Oracle/Database/pandora_oracle.pl \ +$PANDHOME_ENT/pandora_plugins/OpenNebula/pandora_opennebula.pl \ +$PANDHOME_ENT/pandora_plugins/Nutanix/pandora_nutanix.pl \ +$PANDHOME_ENT/pandora_plugins/MTL/pandora_mtl.pl \ +$PANDHOME_ENT/pandora_plugins/Informix/informix.pl \ +$PANDHOME_ENT/pandora_plugins/Ruckus/ruckus.pl \ +$PANDHOME_ENT/pandora_plugins/UX/pandora_ux.pl \ +$PANDHOME_ENT/pandora_server/util/plugins/vmware-plugin.pl " +PLUGIN_LIB_FILE="$CODEHOME/pandora_server/lib/PandoraFMS/PluginTools.pm" # Update version in spec files function update_spec_version { @@ -87,6 +100,14 @@ function update_installer_version { sed -i -e "/^PI_VERSION/s/=.*/=\"$VERSION\"/" -e "/^PI_BUILD/s/=.*/=\"$BUILD\"/" "$FILE" } +# Update version in Perl files +function update_perl_version { + FILE=$1 + + sed -i -e "s/my\s\s*\$pandora_version\s*=.*/my \$pandora_version = \"$VERSION\";/" "$FILE" + sed -i -e "s/my\s\s*\$pandora_build\s*=.*/my \$pandora_build = \"$BUILD\";/" "$FILE" +} + # Spec files for file in $SPEC_FILES; do echo "Updating spec file $file..." @@ -105,6 +126,12 @@ for file in $INSTALLER_FILES; do update_installer_version $file done +# Perl plugins files +for file in $PERL_PLUGIN_FILES; do + echo "Updating plugin file $file..." + update_perl_version $file +done + # Pandora Server echo "Updating Pandora Server version..." sed -i -e "s/my\s\s*\$pandora_version\s*=.*/my \$pandora_version = \"$VERSION\";/" "$SERVER_FILE" @@ -116,6 +143,9 @@ sed -i -e "s/my\s\s*\$version\s*=.*/my \$version = \"$VERSION PS$BUILD\";/" "$SE sed -i -e "s/\s*\#\s*\Version.*/\# Version $VERSION/" "$SERVER_CONF_FILE" sed -i -e "s/\s*\!define PRODUCT_VERSION.*/\!define PRODUCT_VERSION \"$VERSION\"/" "$SERVER_WIN_MPI_OPEN_FILE" sed -i -e "s/\s*\!define PRODUCT_VERSION.*/\!define PRODUCT_VERSION \"$VERSION\"/" "$SERVER_WIN_MPI_ENT_FILE" +echo "Updateing Pandora PluginTools version..." +sed -i -e "s/my\s\s*\$pandora_version\s*=.*/my \$pandora_version = \"$VERSION\";/" "$PLUGIN_LIB_FILE" +sed -i -e "s/my\s\s*\$pandora_build\s*=.*/my \$pandora_build = \"$BUILD\";/" "$PLUGIN_LIB_FILE" # Pandora Satellite Server echo "Updating Pandora Satellite Server version..." diff --git a/pandora_agents/pc/AIX/pandora_agent.conf b/pandora_agents/pc/AIX/pandora_agent.conf index 173b2e8aac..d0e53ebecd 100644 --- a/pandora_agents/pc/AIX/pandora_agent.conf +++ b/pandora_agents/pc/AIX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, AIX version +# Version 7.0NG.718, AIX version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/FreeBSD/pandora_agent.conf b/pandora_agents/pc/FreeBSD/pandora_agent.conf index 5964b8c23b..0eb8f55178 100644 --- a/pandora_agents/pc/FreeBSD/pandora_agent.conf +++ b/pandora_agents/pc/FreeBSD/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, FreeBSD Version +# Version 7.0NG.718, FreeBSD Version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/HP-UX/pandora_agent.conf b/pandora_agents/pc/HP-UX/pandora_agent.conf index c32ca457de..7108651c8b 100644 --- a/pandora_agents/pc/HP-UX/pandora_agent.conf +++ b/pandora_agents/pc/HP-UX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, HP-UX Version +# Version 7.0NG.718, HP-UX Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/Linux/pandora_agent.conf b/pandora_agents/pc/Linux/pandora_agent.conf index fdea3a3700..21b8b41c06 100644 --- a/pandora_agents/pc/Linux/pandora_agent.conf +++ b/pandora_agents/pc/Linux/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, GNU/Linux +# Version 7.0NG.718, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/NT4/pandora_agent.conf b/pandora_agents/pc/NT4/pandora_agent.conf index fc457d1358..d79070cbf8 100644 --- a/pandora_agents/pc/NT4/pandora_agent.conf +++ b/pandora_agents/pc/NT4/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, GNU/Linux +# Version 7.0NG.718, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/SunOS/pandora_agent.conf b/pandora_agents/pc/SunOS/pandora_agent.conf index ca431a8917..38d1a68066 100644 --- a/pandora_agents/pc/SunOS/pandora_agent.conf +++ b/pandora_agents/pc/SunOS/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, Solaris Version +# Version 7.0NG.718, Solaris Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/Win32/pandora_agent.conf b/pandora_agents/pc/Win32/pandora_agent.conf index c17122f997..44a621e200 100644 --- a/pandora_agents/pc/Win32/pandora_agent.conf +++ b/pandora_agents/pc/Win32/pandora_agent.conf @@ -1,6 +1,6 @@ # Base config file for Pandora FMS Windows Agent # (c) 2006-2010 Artica Soluciones Tecnologicas -# Version 7.0NG.716 +# Version 7.0NG.718 # This program is Free Software, you can redistribute it and/or modify it # under the terms of the GNU General Public Licence as published by the Free Software diff --git a/pandora_agents/shellscript/aix/pandora_agent.conf b/pandora_agents/shellscript/aix/pandora_agent.conf index e9929e30ee..cc91d44bed 100644 --- a/pandora_agents/shellscript/aix/pandora_agent.conf +++ b/pandora_agents/shellscript/aix/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.716, AIX version +# Version 7.0NG.718, AIX version # General Parameters # ================== diff --git a/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf b/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf index 3688e15492..a3f71e626a 100644 --- a/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf +++ b/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.716 +# Version 7.0NG.718 # FreeBSD/IPSO version # Licenced under GPL licence, 2003-2007 Sancho Lerena diff --git a/pandora_agents/shellscript/hp-ux/pandora_agent.conf b/pandora_agents/shellscript/hp-ux/pandora_agent.conf index 1a2d1075d7..e57d9b8e72 100644 --- a/pandora_agents/shellscript/hp-ux/pandora_agent.conf +++ b/pandora_agents/shellscript/hp-ux/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.716, HPUX Version +# Version 7.0NG.718, HPUX Version # General Parameters # ================== diff --git a/pandora_agents/shellscript/linux/pandora_agent.conf b/pandora_agents/shellscript/linux/pandora_agent.conf index cf9c6d54b7..9544190a1c 100644 --- a/pandora_agents/shellscript/linux/pandora_agent.conf +++ b/pandora_agents/shellscript/linux/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716 +# Version 7.0NG.718 # Licensed under GPL license v2, # (c) 2003-2010 Artica Soluciones Tecnologicas # please visit http://pandora.sourceforge.net diff --git a/pandora_agents/shellscript/mac_osx/pandora_agent.conf b/pandora_agents/shellscript/mac_osx/pandora_agent.conf index 107aeacbc5..0a635fe968 100644 --- a/pandora_agents/shellscript/mac_osx/pandora_agent.conf +++ b/pandora_agents/shellscript/mac_osx/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716 +# Version 7.0NG.718 # Licensed under GPL license v2, # (c) 2003-2009 Artica Soluciones Tecnologicas # please visit http://pandora.sourceforge.net diff --git a/pandora_agents/shellscript/openWRT/pandora_agent.conf b/pandora_agents/shellscript/openWRT/pandora_agent.conf index 9189faa142..0bedcbadf7 100644 --- a/pandora_agents/shellscript/openWRT/pandora_agent.conf +++ b/pandora_agents/shellscript/openWRT/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716 +# Version 7.0NG.718 # Licensed under GPL license v2, # please visit http://pandora.sourceforge.net diff --git a/pandora_agents/shellscript/solaris/pandora_agent.conf b/pandora_agents/shellscript/solaris/pandora_agent.conf index 1cf52d41cf..5208129e75 100644 --- a/pandora_agents/shellscript/solaris/pandora_agent.conf +++ b/pandora_agents/shellscript/solaris/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.716, Solaris version +# Version 7.0NG.718, Solaris version # General Parameters # ================== diff --git a/pandora_agents/unix/AIX/pandora_agent.conf b/pandora_agents/unix/AIX/pandora_agent.conf index 625fca365d..5edd29b25a 100644 --- a/pandora_agents/unix/AIX/pandora_agent.conf +++ b/pandora_agents/unix/AIX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, AIX version +# Version 7.0NG.718, AIX version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 6d30e38af6..f6d790481a 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.716-171204 +Version: 7.0NG.718-180131 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/control.orig b/pandora_agents/unix/DEBIAN/control.orig deleted file mode 100644 index 0d45b0b974..0000000000 --- a/pandora_agents/unix/DEBIAN/control.orig +++ /dev/null @@ -1,14 +0,0 @@ -package: pandorafms-agent-unix -<<<<<<< HEAD -Version: 7.0NG-170406 -======= -Version: 7.0NG-170418 ->>>>>>> develop -Architecture: all -Priority: optional -Section: admin -Installed-Size: 260 -Maintainer: Miguel de Dios -Homepage: http://pandorafms.org/ -Depends: coreutils, perl, unzip -Description: Pandora FMS agents are based on native languages in every platform: scripts that can be written in any language. It’s possible to reproduce any agent in any programming language and can be extended without difficulty the existing ones in order to cover aspects not taken into account up to the moment. These scripts are formed by modules that each one gathers a "chunk" of information. Thus, every agent gathers several "chunks" of information; this one is organized in a data set and stored in a single file, called data file. diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 454f613da2..bda0341e92 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.716-171204" +pandora_version="7.0NG.718-180131" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh.orig b/pandora_agents/unix/DEBIAN/make_deb_package.sh.orig deleted file mode 100644 index 731ccfb803..0000000000 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh.orig +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash - -#Pandora FMS- http:#pandorafms.com -# ================================================== -# Copyright (c) 2005-2010 Artica Soluciones Tecnologicas -# Please see http:#pandorafms.org for full contribution list - -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public License -# as published by the Free Software Foundation; version 2 - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -<<<<<<< HEAD -pandora_version="7.0NG-170406" -======= -pandora_version="7.0NG-170418" ->>>>>>> develop - -echo "Test if you has the tools for to make the packages." -whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null -if [ $? = 1 ] -then - echo "No found \"dpkg-deb\" aplication, please install." - exit 1 -else - echo "Found \"dpkg-debs\"." -fi - -cd .. - -echo "Make a \"temp_package\" temp dir for job." - -mkdir -p temp_package/usr -mkdir -p temp_package/usr/share/pandora_agent/ -mkdir -p temp_package/usr/bin/ -mkdir -p temp_package/usr/sbin/ -mkdir -p temp_package/etc/pandora/plugins -mkdir -p temp_package/etc/pandora/collections -mkdir -p temp_package/etc/init.d/ -mkdir -p temp_package/lib/systemd/system/ -mkdir -p temp_package/var/log/pandora/ -mkdir -p temp_package/var/spool/pandora/data_out -mkdir -p temp_package/usr/share/man/man1/ -mkdir -p temp_package/usr/share/pandora_agent/plugins -mkdir -p temp_package/tmp -mkdir -p temp_package/etc/logrotate.d/ - -echo "Make directory system tree for package." -cp DEBIAN temp_package -R -chmod 755 -R temp_package/DEBIAN - -#Next lines is same to -#cp -aRf * temp_package/usr/share/pandora_agent/ -#but don't copy recursive the temp_package into temp_package - -for item in `ls | grep -v NT4 | grep -v AIX | grep -v FreeBSD | grep -v HP-UX | grep -v SunOS | grep -v temp_package` -do - #if [ \( $item != 'temp_package' \) -a \( $item != 'NT4' \) ] - #then - cp -aRf $item temp_package/usr/share/pandora_agent/ - #fi -done -cp -aRf tentacle_client temp_package/usr/bin/ -cp -aRf pandora_agent temp_package/usr/bin/ -cp -aRf pandora_agent_exec temp_package/usr/bin/pandora_agent_exec -cp -aRf pandora_agent_daemon temp_package/etc/init.d/pandora_agent_daemon -cp -aRf pandora_agent_daemon.service temp_package/lib/systemd/system/pandora_agent_daemon.service -cp -aRf pandora_agent_logrotate temp_package/etc/logrotate.d/pandora_agent -cp Linux/pandora_agent.conf temp_package/etc/pandora/ - -cp -aRf man/man1/* temp_package/usr/share/man/man1/ - -# Relocate plugins to the final dir and delete -mv temp_package/usr/share/pandora_agent/plugins/* temp_package/etc/pandora/plugins - -echo "Official plugins are placed on /etc/pandora/plugins" > temp_package/usr/share/pandora_agent/plugins/README - -#Disabled, now the package overwrite the previous files. -##Create a temp file for to update files of plugins dir but don't crush dir. -##cp -aRf temp_package/usr/share/pandora_agent/plugins temp_package/tmp -##rm -rf temp_package/usr/share/pandora_agent/plugins/* - -echo "Remove the SVN files and other temp files." -for item in `find temp_package` -do - echo -n "." - echo $item | grep "svn" > /dev/null - #last command success - if [ $? -eq 0 ] - then - rm -rf $item - fi - - echo $item | grep "make_deb_package.sh" > /dev/null - #last command success - if [ $? -eq 0 ] - then - rm -rf $item - fi -done -echo "END" - -echo "Calcule md5sum for md5sums file control of package" -for item in `find temp_package` -do - echo -n "." - if [ ! -d $item ] - then - echo $item | grep "DEBIAN" > /dev/null - #last command success - if [ $? -eq 1 ] - then - md5=`md5sum $item | cut -d" " -f1` - - #delete "temp_package" in the path - final_path=${item#temp_package} - echo $md5" "$final_path >> temp_package/DEBIAN/md5sums - fi - fi -done -echo "END" - -echo "Make the package \"Pandorafms console\"." -dpkg-deb --build temp_package -mv temp_package.deb pandorafms.agent_unix_$pandora_version.deb - -echo "Delete the \"temp_package\" temp dir for job." -rm -rf temp_package diff --git a/pandora_agents/unix/Darwin/pandora_agent.conf b/pandora_agents/unix/Darwin/pandora_agent.conf index d7647191a4..9fcd0e0ec3 100644 --- a/pandora_agents/unix/Darwin/pandora_agent.conf +++ b/pandora_agents/unix/Darwin/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, GNU/Linux +# Version 7.0NG.718, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2012 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/FreeBSD/pandora_agent.conf b/pandora_agents/unix/FreeBSD/pandora_agent.conf index 2625ca7542..8c2a2e1519 100644 --- a/pandora_agents/unix/FreeBSD/pandora_agent.conf +++ b/pandora_agents/unix/FreeBSD/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, FreeBSD Version +# Version 7.0NG.718, FreeBSD Version # Licensed under GPL license v2, # Copyright (c) 2003-2016 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/HP-UX/pandora_agent.conf b/pandora_agents/unix/HP-UX/pandora_agent.conf index 2387412e15..e3bf99a391 100644 --- a/pandora_agents/unix/HP-UX/pandora_agent.conf +++ b/pandora_agents/unix/HP-UX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, HP-UX Version +# Version 7.0NG.718, HP-UX Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/Linux/pandora_agent.conf b/pandora_agents/unix/Linux/pandora_agent.conf index da5c2b2c18..0e1f7b4e00 100644 --- a/pandora_agents/unix/Linux/pandora_agent.conf +++ b/pandora_agents/unix/Linux/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, GNU/Linux +# Version 7.0NG.718, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2014 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/NT4/pandora_agent.conf b/pandora_agents/unix/NT4/pandora_agent.conf index a0717d889e..15a79c55ac 100644 --- a/pandora_agents/unix/NT4/pandora_agent.conf +++ b/pandora_agents/unix/NT4/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, GNU/Linux +# Version 7.0NG.718, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/NetBSD/pandora_agent.conf b/pandora_agents/unix/NetBSD/pandora_agent.conf index 0cc5dc41cc..ec2b14b196 100644 --- a/pandora_agents/unix/NetBSD/pandora_agent.conf +++ b/pandora_agents/unix/NetBSD/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, NetBSD Version +# Version 7.0NG.718, NetBSD Version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/SunOS/pandora_agent.conf b/pandora_agents/unix/SunOS/pandora_agent.conf index ac8ece9b0c..607da990a3 100644 --- a/pandora_agents/unix/SunOS/pandora_agent.conf +++ b/pandora_agents/unix/SunOS/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.716, Solaris Version +# Version 7.0NG.718, Solaris Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 54f5201a7e..a995a728d6 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -40,8 +40,8 @@ my $Sem = undef; # Semaphore used to control the number of threads my $ThreadSem = undef; -use constant AGENT_VERSION => '7.0NG.716'; -use constant AGENT_BUILD => '171204'; +use constant AGENT_VERSION => '7.0NG.718'; +use constant AGENT_BUILD => '180131'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; @@ -832,19 +832,23 @@ sub read_config (;$) { config_update('agent_name', $Conf{'agent_name'}); } elsif ($Conf{'agent_name_cmd'} ne '') { my $result = `$Conf{'agent_name_cmd'}`; - - # Use only the first line. - my ($temp_agent_name, $remain) = split(/\n/, $result); - chomp ($temp_agent_name); - - # Remove white spaces of the first and last. - $temp_agent_name =~ s/^ *(.*?) *$/$1/; - - $Conf{'agent_name'} = $temp_agent_name if ($temp_agent_name ne ''); - } else { - $Conf{'agent_name'} = hostname(); + if($result ne '') { + # Use only the first line. + my ($temp_agent_name, $remain) = split(/\n/, $result); + chomp ($temp_agent_name); + + # Remove white spaces of the first and last. + $temp_agent_name =~ s/^ *(.*?) *$/$1/; + + $Conf{'agent_name'} = $temp_agent_name if ($temp_agent_name ne ''); + } } } + + # Fall back to the hostname if agent_name is still empty. + if ($Conf{'agent_name'} eq '') { + $Conf{'agent_name'} = hostname(); + } # Update the agent MD5 since agent_name may have changed $AgentMD5 = md5 ($Conf{'agent_name'}); @@ -1294,13 +1298,14 @@ sub check_collections () { # Read local md5 my $local_collection_md5 = ''; - if (defined (open (MD5_FILE, "< $ConfDir/collections/$collection_md5_file"))) { - $local_collection_md5 = ; - close MD5_FILE; - } - else{ - log_message ('Collection', "Could not open dir $ConfDir/collections/$collection_md5_file"); - next; + if (-f "$ConfDir/collections/$collection_md5_file") { + if (open (MD5_FILE, "< $ConfDir/collections/$collection_md5_file")) { + $local_collection_md5 = ; + close MD5_FILE; + } else { + log_message ('Collection', "Could not open dir $ConfDir/collections/$collection_md5_file"); + next; + } } # Check for changes @@ -1308,7 +1313,7 @@ sub check_collections () { next if ($local_collection_md5 eq $remote_collection_md5); # Download and unzip - if(recv_file ($collection_md5_file, $Conf{'server_path_md5'}) != 0){ + if (recv_file ($collection_file, $Conf{'server_path_zip'}) != 0) { log_message ('Collection', "Could not write $collection_file on " . $Conf{'server_path_zip'}); next; } diff --git a/pandora_agents/unix/pandora_agent.orig b/pandora_agents/unix/pandora_agent.orig deleted file mode 100755 index 2f7de8cc2a..0000000000 --- a/pandora_agents/unix/pandora_agent.orig +++ /dev/null @@ -1,2824 +0,0 @@ -#!/usr/bin/perl -# ********************************************************************** -# Pandora FMS Generic Unix/Perl Agent -# (c) 2009-2015 Artica Soluciones Tecnológicas -# with the help of many people. Please see http://pandorafms.org -# This code is licensed under GPL 2.0 license. -# ********************************************************************** - -=head1 NAME - -pandora_agent - Pandora FMS Agent - -=head1 VERSION - -Version 6.0 - -=head1 USAGE - -<< pandora_agent F >> - -=cut - - -use strict; -use warnings; - -use POSIX qw(strftime floor); -use Sys::Hostname; -use File::Basename; -use File::Copy; -use IO::Socket; -use Sys::Syslog; - -# Agent XML data -my $Xml; - -# Semaphore used to acces $Xml -my $Sem = undef; - -# Semaphore used to control the number of threads -my $ThreadSem = undef; - -use constant AGENT_VERSION => '7.0NG'; -<<<<<<< HEAD -use constant AGENT_BUILD => '170406'; -======= -use constant AGENT_BUILD => '170418'; ->>>>>>> develop - -# Agent log default file size maximum and instances -use constant DEFAULT_MAX_LOG_SIZE => 600000; -use constant DEFAULT_LOG_ROTATE => 3; - -# Commands to retrieve total memory information in kB -use constant TOTALMEMORY_CMDS => { - linux => 'cat /proc/meminfo | grep MemTotal: | awk \'{ print $2 }\'', - solaris => '/usr/sbin/prtconf | awk \'/Memory/ { print $3 * 1024 }\'', - hpux => 'swapinfo -t | grep memory | awk \'{print $2}\'', - freebsd => '/sbin/sysctl hw.physmem | awk \'{print $2 / 1024}\'', -}; - -# Commands to retrieve free memory information in kB -use constant FREEMEMORY_CMDS => { - linux => 'cat /proc/meminfo | grep MemFree: | awk \'{ print $2 }\'', - solaris => 'vmstat 1 2 | tail -1 | awk \'{ print $5 }\'', - hpux => 'swapinfo -t | grep memory | awk \'{print $4}\'', - freebsd => '/sbin/sysctl -n vm.stats.vm.v_page_size vm.stats.vm.v_free_count | tr "\n" " " | awk \'{ print $1 * $2 / 1024 }\'', -}; - -# Commands to retrieve cpu information -use constant CPUUSAGE_CMDS => { - linux => 'vmstat 1 2 | tail -1 | awk \'{ print $13 }\'', - solaris => 'vmstat 1 2 | tail -1 | awk \'{ print $21 }\'', - hpux => 'vmstat 1 2 | tail -1 | awk \'{ print $16 }\'', - freebsd => 'vmstat -n 0 1 2 | tail -1 | awk \'{ print $15 }\'' -}; - -# Commands to retrieve process information -use constant PROC_CMDS => { - # cpu usage, memory usage, command name - linux => 'ps aux | awk \'NR > 1 {ps = ""; for (i = 11; i <= NF; ++i) {ps = (ps " " $i) }; print $3, $6, ps}\'', - solaris => 'prstat 1 1 | awk \'NR > 1 {split ($10, ps, "/"); cpu = substr ($9, 1, length ($9) - 1); mem = substr ($3, 1, length ($3) - 1); print cpu, mem, ps[1]}\'', - hpux => 'ps -elf | awk \'NR > 1 {ps = ""; for (i = 15; i <= NF; ++i) {ps = (ps " " $i) }; print 0, $10, ps}\'', - aix => 'ps aux | awk \'NR > 1 {print $3, $6, $11}\'', - freebsd => 'ps axww -o %cpu= -o %mem= -o command= | sed -e "s/^ *//"', -}; - -# Commands to retrieve partition information in kB -use constant PART_CMDS => { - # total, available, mount point - linux => 'df -P | awk \'NR > 1 {print $2, $4, $6}\'', - solaris => 'df -k | awk \'NR > 1 {print $2, $4, $6}\'', - hpux => 'df -P | awk \'NR > 1 {print $2, $4, $6}\'', - aix => 'df -kP | awk \'NR > 1 {print $2, $4, $6}\'', - freebsd => 'df -k | awk \'NR > 1 {print $2, $4, $6}\'' -}; - -# Commands to call df with POSIX output format -use constant DF_CMDS => { - # total, available, mount point - linux => 'df -P', - solaris => 'df -k', - hpux => 'df -P', - aix => 'df -kP', - freebsd => 'df -k' -}; - -# 2 to the power of 32. -use constant POW232 => 2**32; - -# OS and OS version -my $OS = $^O; - -my $OS_VERSION; - -# Used to calculate the MD5 checksum of a string -use constant MOD232 => 2**32; - -# Directory where pandora_agent.conf is located -my $ConfDir = ''; - -# Pandora FMS agent configuration file -my $ConfFile = 'pandora_agent.conf'; - -# Set to 1 if broker agents are enabled. -my $BrokerEnabled = 0; - -# Broker agent configuration files -my @BrokerPid; - -# Configuration tokens -my %DefaultConf = ( - 'server_ip' => 'localhost', - 'server_path' => '/var/spool/pandora/data_in', - 'logfile' =>'/var/log/pandora/pandora_agent.log', - 'logsize' => DEFAULT_MAX_LOG_SIZE, - 'logrotate' => DEFAULT_LOG_ROTATE, - 'temporal' => '/var/spool/pandora', - 'interval' => 300, - 'debug' => 0, - 'agent_name' => '', - 'agent_alias' => hostname(), - 'ehorus_conf' => undef, - 'agent_name_cmd' => '', - 'description' => '', - 'group' => '', - 'group_id' => undef, - 'group_password' => undef, - 'encoding' => 'UTF-8', - 'server_port' => 41121, - 'transfer_mode' => 'tentacle', - 'transfer_timeout' => 30, - 'server_user' => 'pandora', - 'server_pwd' => '', - 'server_ssl' => '0', - 'server_opts' => '', - 'delayed_startup' => 0, - 'pandora_nice' => 10, - 'cron_mode' => 0, - 'remote_config' => 0, - 'secondary_mode' => 'never', - 'secondary_server_ip' => 'localhost', - 'secondary_server_path' => '/var/spool/pandora/data_in', - 'secondary_server_port' => 41121, - 'secondary_transfer_mode' => 'tentacle', - 'secondary_transfer_timeout' => 30, - 'secondary_server_user' => 'pandora', - 'secondary_server_pwd' => '', - 'secondary_server_ssl' => '0', - 'secondary_server_opts' => '', - 'autotime' => 0, - 'temporal_min_size' => 1, - 'timezone_offset' => 0, - 'pandora_exec' => 'pandora_agent_exec', - 'agent_threads' => 1, - 'udp_server_port' => 41122, - 'udp_server_auth_address' => '0.0.0.0', - 'udp_server' => 0, - 'proxy_mode' => 0, - 'proxy_max_connection' => 10, - 'proxy_timeout' => 1, - 'intensive_interval' => 0, - 'timestamp' => 0, - 'xml_buffer' => 0, - 'custom_id' => '', - 'url_address' => '', -); -my %Conf = %DefaultConf; - -# Modules -my @Modules; - -# Logfile file handle -my $LogFileFH; - -# Logfile index -my $LogFileIdx; - -# Agent name MD5; -my $AgentMD5; - -# Remote configuration file name -my $RemoteConfFile; - -# Remote md5 file name -my $RemoteMD5File; - -# Process data -my %Procs = ( - '__utimestamp__' => 0 -); - -# Partition data -my %Parts = ( - '__utimestamp__' => 0 -); - -# Collections -my %Collections; - -# Custom fields -my %Customfields; - -# $DevNull -my $DevNull = '/dev/null'; - -# Shell command separator -my $CmdSep = ';'; - -# Global macros -my %Macros; - -# PID of tentacle proxy, used in proxy mode -my $tentacle_pid = undef; - -# PID of udp_server -my $udp_server_pid = undef; - -################################################################################ -# Print usage information and exit. -################################################################################ -sub print_usage () { - print "\nUsage: $0 \n\n"; - print "\tPandora home is the directory where pandora_agent.conf is located,\n"; - print "\tby default /etc/pandora.\n\n"; - exit 1; -} - -################################################################################ -# Print an error message and exit. -################################################################################ -sub error ($) { - my $msg = shift; - print ("[ERROR] $msg\n\n"); - `logger -i -t pandora_agent_daemon [ERROR] $msg 2>/dev/null`; - exit 1; -} - -################################################################################ -# Check a regular expression. Returns 1 if its valid, 0 otherwise. -################################################################################ -sub valid_regexp ($) { - my $regexp = shift; - - eval { - '' =~ /$regexp/; - }; - - # Something went wrong - return 0 if ($@); - - return 1; -} - -################################################################################ -# Recursively delete files and directories. -################################################################################ -sub rmrf { - my $path = shift; - local *DIR; - - if (-d $path) { - opendir (DIR, $path) || return; - while (defined (my $file_name = readdir(DIR))) { - next if ($file_name eq '.' || $file_name eq '..'); - rmrf ("$path/$file_name"); - } - closedir (DIR); - rmdir ($path); - } else { - unlink ($path); - } -} - -################################################################################ -# Recursively set file permissions. -################################################################################ -sub chmodr { - my ($perm, $path) = @_; - local *DIR; - - if (-d $path) { - opendir (DIR, $path) || return; - while (defined (my $file_name = readdir(DIR))) { - next if ($file_name eq '.' || $file_name eq '..'); - chmodr ($perm, "$path/$file_name"); - } - closedir (DIR); - } - chmod ($perm, $path); -} - -################################################################################ -# Open the agent logfile and start logging. -################################################################################ -sub start_log (;$) { - my $quiet = shift; - - # Get the logfile - $Conf{'logfile'} = read_config ('logfile'); - $Conf{'logfile'} = '/var/log/pandora/pandora_agent.log' unless defined ($Conf{'logfile'}); - - # Open it - if ($Conf{'logfile'} eq 'syslog') { - openlog('pandora_agent', 'nowait', 'daemon'); - } else { - open ($LogFileFH, "> $Conf{'logfile'}") or error ("Could not open log file $Conf{'logfile'} for writing: $!."); - print "Logging to $Conf{'logfile'}\n" if (!defined ($quiet)); - } -} - -################################################################################ -# Rotates the agent logfile. -################################################################################ -sub rotate_log () { - if ($Conf{'logfile'} eq 'syslog') { - # No action needed - return; - } else { - if ($Conf{'logrotate'} < 0){ - $Conf{'logrotate'} = DEFAULT_LOG_ROTATE; - } - if ($Conf{'logfile'} eq 'syslog') { - return; - } - - # Rotate file - $LogFileIdx = ($LogFileIdx+1) % $Conf{'logrotate'}; - my $fsize = (stat $Conf{'logfile'})[7]; - - stop_log(); - move ($Conf{'logfile'}, $Conf{'logfile'} . "." . $LogFileIdx); - start_log('quiet'); - - } -} - -################################################################################ -# Close the agent logfile and stop logging. -################################################################################ -sub stop_log () { - if ($Conf{'logfile'} eq 'syslog') { - closelog(); - } else { - close ($LogFileFH); - } -} - -################################################################################ -# Log a message to the agent logfile. -################################################################################ -sub log_message ($$;$) { - my ($source, $msg, $dest) = @_; - - if (defined ($dest)) { - print $dest strftime ('%Y/%m/%d %H:%M:%S', localtime ()) . " - [$source] - $msg\n"; - } elsif ($Conf{'logfile'} eq 'syslog') { - syslog('info', $msg); - } else { - #Trying to write into log file to test its writable - syswrite ($LogFileFH, ""); - - #If no error, the file is writable - if (!$!) { - print $LogFileFH strftime ('%Y/%m/%d %H:%M:%S', localtime ()) . " - [$source] - $msg\n"; - } else { - #If error then log into syslog! - `logger -i -t pandora_agent_daemon [ERROR] $msg 2>/dev/null`; - } - } -} - -################################################################################ -# Parse configuration file (modules, plugins and collections) -################################################################################ -sub parse_conf_modules($) { - my ($param) = @_; - - # Mark the start of a module definition - my $module_begin = 0; - - # Skeleton for modules - my $module = {}; - - foreach my $line (@{$param}) { - - next if ($line =~ m/^\s*#/) or ($line =~ m/^\s*$/); - # Module definition - if ($line =~ /^\s*module_begin\s*$/) { - $module_begin = 1; - init_module ($module); - } elsif ($line =~ /^\s*module_name\s+(.+)$/) { - $module->{'name'} = $1; - $module->{'name'} =~ s/\s+$//g; - $module->{'name'} =~ s/^\s+//g; - } elsif ($line =~ /^\s*module_description\s+(.+)$/) { - $module->{'description'} = $1; - } elsif ($line =~ /^\s*module_type\s+(\S+)\s*$/) { - $module->{'type'} = $1; - }elsif ($line =~ /^\s*module_precondition\s+(.*)$/) { - my $action = $1; - - # Numeric comparison - if ($action =~ /^\s*([<>!=]+)\s+(\d+(?:\.\d*)?)\s+(.*)$/) { - push (@{$module->{'precondition'}}, {'operator' => $1, 'value_1' => $2, 'command' => $3}); - # Interval - } elsif ($action =~ /^\s*[(]\s*(\d+(?:\.\d*)?)\s*,\s*(\d+(?:\.\d*)?)\s*[)]\s+(.*)$/) { - push (@{$module->{'precondition'}}, {'operator' => '()', 'value_1' => $1, 'value_2' => $2, 'command' => $3}); - # Regular expression - } elsif ($action =~ /^\s*=~\s+(\S*)\s+(.*)$/) { - if (valid_regexp ($1)) { - push (@{$module->{'precondition'}}, {'operator' => '=~', 'value_1' => $1, 'command' => $2}); - } else { - log_message ('setup', "Invalid regular expression in module precondition: $line"); - } - } - } elsif ($line =~ /^\s*module_exec\s+(.+)$/) { - $module->{'func'} = \&module_exec; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_cpuusage\s+(.*)$/) { - $module->{'func'} = \&module_cpuusage; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_freememory\s+(.*)$/) { - $module->{'func'} = \&module_freememory; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_freepercentmemory\s+(.*)$/) { - $module->{'func'} = \&module_freepercentmemory; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*(module_proc|module_service)\s+(.+)$/) { - $module->{'func'} = \&module_proc; - $module->{'params'} = $2; - } elsif ($line =~ /^\s*module_cpuproc\s+(.+)$/) { - $module->{'func'} = \&module_cpuproc; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_memproc\s+(.+)$/) { - $module->{'func'} = \&module_memproc; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_freedisk\s+(.*)$/) { - $module->{'func'} = \&module_freedisk; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_freepercentdisk\s+(.*)$/) { - $module->{'func'} = \&module_freepercentdisk; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_occupiedpercentdisk\s+(.*)$/) { - $module->{'func'} = \&module_occupiedpercentdisk; - $module->{'params'} = $1; - } elsif ($line =~ /^\s*module_max\s+(.*)\s*$/) { - $module->{'max'} = $1; - } elsif ($line =~ /^\s*module_min\s+(.*)\s*$/) { - $module->{'min'} = $1; - } elsif ($line =~ /^\s*module_postprocess\s+(.*)\s*$/) { - $module->{'post_process'} = $1; - } elsif ($line =~ /^\s*module_interval\s+(\d+)\s*$/) { - $module->{'interval'} = $1; - } elsif ($line =~ /^\s*module_timeout\s+(\d+)\s*$/) { - $module->{'timeout'} = $1; - } elsif ($line =~ /^\s*module_save\s+(\w+)$/) { - $module->{'save'} = $1; - } elsif ($line =~ /^\s*module_alert_template\s+(.*)$/) { - $module->{'alert_template'} = $1; - } elsif ($line =~ /^\s*module_condition\s+(.*)$/) { - my $action = $1; - # Numeric comparison - if ($action =~ /^\s*([<>!=]+)\s+(\d+(?:\.\d*)?)\s+(.*)$/) { - push (@{$module->{'conditions'}}, {'operator' => $1, 'value_1' => $2, 'command' => $3}); - # Interval - } elsif ($action =~ /^\s*[(]\s*(\d+(?:\.\d*)?)\s*,\s*(\d+(?:\.\d*)?)\s*[)]\s+(.*)$/) { - push (@{$module->{'conditions'}}, {'operator' => '()', 'value_1' => $1, 'value_2' => $2, 'command' => $3}); - # Regular expression - } elsif ($action =~ /^\s*=~\s+(\S*)\s+(.*)$/) { - if (valid_regexp ($1)) { - push (@{$module->{'conditions'}}, {'operator' => '=~', 'value_1' => $1, 'command' => $2}); - } else { - log_message ('setup', "Invalid regular expression in module condition: $line"); - } - } - } elsif ($line =~ /^\s*module_intensive_condition\s+(.*)$/) { - my $action = $1; - - $module->{'is_intensive'} = 1; - - # Numeric comparison - if ($action =~ /^\s*([<>!=]+)\s+(\d+(?:\.\d*)?)\s*$/) { - push (@{$module->{'intensive_conditions'}}, {'operator' => $1, 'value_1' => $2}); - # Interval - } elsif ($action =~ /^\s*[(]\s*(\d+(?:\.\d*)?)\s*,\s*(\d+(?:\.\d*)?)\s*[)]\s*$/) { - push (@{$module->{'intensive_conditions'}}, {'operator' => '()', 'value_1' => $1, 'value_2' => $2}); - # Regular expression - } elsif ($action =~ /^\s*=~\s+(\S*)\s*$/) { - if (valid_regexp ($1)) { - push (@{$module->{'intensive_conditions'}}, {'operator' => '=~', 'value_1' => $1}); - } else { - log_message ('setup', "Invalid regular expression in intensive condition: $line"); - } - } - } elsif ($line =~ /^\s*module_crontab\s+(((\*|(\d+(-\d+){0,1}))\s*){5}).*$/) { - $module->{'cron'} = $1; - chomp ($module->{'cron'}); - } elsif ($line =~ /^\s*module_cron_interval\s+(\d+).*$/) { - $module->{'cron_interval'} = $1; - } elsif ($line =~ /^\s*module_end\s*$/) { - - $module_begin = 0; - - # Check for invalid modules - next unless (($module->{'name'} ne '' && $module->{'func'} != 0) || $module->{'func'} == \&module_plugin); - - # Set the intensive interval - if ($module->{'is_intensive'} == 1) { - $module->{'intensive_interval'} = $module->{'interval'}; - } else { - $module->{'intensive_interval'} = $module->{'interval'} * ($Conf{'interval'} / $Conf{'intensive_interval'}); - } - - # Make the module run the first time - $module->{'counter'} = $module->{'intensive_interval'}; - - # Replace macros - replace_macros ($module); - - push (@Modules, {%{$module}}); - # Plugin - } elsif ($line =~ /^\s*module_plugin\s+(.+)$/) { - - # Single line plugin definition - if ($module_begin == 0) { - - # Set default values for the module configuration - init_module ($module); - - # Configure the plugin - $module->{'func'} = \&module_plugin; - $module->{'params'} = $1; - - # Set the intensive interval - if ($module->{'is_intensive'} == 1) { - $module->{'intensive_interval'} = $module->{'interval'}; - } else { - $module->{'intensive_interval'} = $module->{'interval'} * ($Conf{'interval'} / $Conf{'intensive_interval'}); - } - - # Make the module run the first time - $module->{'counter'} = $module->{'intensive_interval'}; - - # Replace macros - replace_macros ($module); - - push (@Modules, {%{$module}}); - } else { - $module->{'func'} = \&module_plugin; - $module->{'params'} = $1; - } - # Module proc command redefinition - } elsif ($line =~ /^\s*module_proc_cmd\s+(.+)$/) { - PROC_CMDS->{$OS} = $1; - # Module freedisk command redefinition - } elsif ($line =~ /^\s*module_freedisk_cmd\s+(.+)$/) { - PART_CMDS->{$OS} = $1; - # Collection - } elsif ($line =~ /^\s*file_collection\s+(.+)$/) { - my $collection = $1; - - # Prevent path traversal attacks - if ($collection !~ m/(\.\.)|\//) { - $Collections{$collection} = 0; - } - # Min critical - } elsif ($line =~ /^\s*module_min_critical\s+(.*)\s*$/) { - $module->{'min_critical'} = $1; - # Max critical - } elsif ($line =~ /^\s*module_max_critical\s+(.*)\s*$/) { - $module->{'max_critical'} = $1; - # Min warning - } elsif ($line =~ /^\s*module_min_warning\s+(.*)\s*$/) { - $module->{'min_warning'} = $1; - # Max warning - } elsif ($line =~ /^\s*module_max_warning\s+(.*)\s*$/) { - $module->{'max_warning'} = $1; - # Disabled - } elsif ($line =~ /^\s*module_disabled\s+(.*)\s*$/) { - $module->{'disabled'} = $1; - # Min ff event - } elsif ($line =~ /^\s*module_min_ff_event\s+(.*)\s*$/) { - $module->{'min_ff_event'} = $1; - # Unit - } elsif ($line =~ /^\s*module_unit\s+(.*)\s*$/) { - $module->{'unit'} = $1; - # Module_group - } elsif ($line =~ /^\s*module_group\s+(.*?)\s*$/) { - $module->{'module_group'} = $1; - # Custom id - } elsif ($line =~ /^\s*module_custom_id\s+(.*)\s*$/) { - $module->{'custom_id'} = $1; - # Str warning - } elsif ($line =~ /^\s*module_str_warning\s+(.*)\s*$/) { - $module->{'str_warning'} = $1; - # Str critical - } elsif ($line =~ /^\s*module_str_critical\s+(.*)\s*$/) { - $module->{'str_critical'} = $1; - # Critical instructions - } elsif ($line =~ /^\s*module_critical_instructions\s+(.*)\s*$/) { - $module->{'critical_instructions'} = $1; - # Warning instructions - } elsif ($line =~ /^\s*module_warning_instructions\s+(.*)\s*$/) { - $module->{'warning_instructions'} = $1; - # Unknown instructions - } elsif ($line =~ /^\s*module_unknown_instructions\s+(.*)\s*$/) { - $module->{'unknown_instructions'} = $1; - # Tags - } elsif ($line =~ /^\s*module_tags\s+(.*)\s*$/) { - $module->{'tags'} = $1; - # Critical inverse - } elsif ($line =~ /^\s*module_critical_inverse\s+(\S+)\s*$/) { - $module->{'critical_inverse'} = $1; - # Warning inverse - } elsif ($line =~ /^\s*module_warning_inverse\s+(\S+)\s*$/) { - $module->{'warning_inverse'} = $1; - # Quiet - } elsif ($line =~ /^\s*module_quiet\s+(\S+)\s*$/) { - $module->{'quiet'} = $1; - # FF interval - } elsif ($line =~ /^\s*module_ff_interval\s+(\S+)\s*$/) { - $module->{'module_ff_interval'} = $1; - } elsif ($line =~ /^\s*module_min_ff_event_normal\s+(\S+)\s*$/) { - $module->{'min_ff_event_normal'} = $1; - } elsif ($line =~ /^\s*module_min_ff_event_warning\s+(\S+)\s*$/) { - $module->{'min_ff_event_warning'} = $1; - } elsif ($line =~ /^\s*module_min_ff_event_critical\s+(\S+)\s*$/) { - $module->{'min_ff_event_critical'} = $1; - } elsif ($line =~ /^\s*module_ff_timeout\s+(\S+)\s*$/) { - $module->{'ff_timeout'} = $1; - } elsif ($line =~ /^\s*module_each_ff\s+(\S+)\s*$/) { - $module->{'each_ff'} = $1; - # Macros - } elsif ($line =~ /^\s*module_macro(\S+)\s+(.*)\s*$/) { - $module->{'macros'}{$1} = $2; - } - } - return; -} - -################################################################################ -# Create configuration file for broker agents. -################################################################################ -sub write_broker_conf($){ - my ($broker_agent) = @_; - my $content = ''; - - # I don't think the following should be copied either: proxy_* - my %ignored_tokens = ( - 'broker_agent' => 1, 'agent_name_cmd' => 1, 'udp_server' => 1, 'cron_mode' => 1 - ); - - open (CONF_FILE, "$ConfDir/$ConfFile") or error ("Could not open file '$ConfDir/$ConfFile': $!."); - open (BROKER_FILE, ">$ConfDir/${broker_agent}.conf") or error ("Could not write configuration file: $!"); - - while (my $line = ) { - - my ( $token ) = $line =~ m/^\s*(\S+)(\s.*)?$/; - # Skip tokens which should not be copied to broker configuration - next if defined $ignored_tokens{$token}; - - # Change the agent name - if ($line =~ m/^\s*#*\s*agent_name\s+/) { - $line = "agent_name $broker_agent\n"; - } - # Change the logfile - elsif ($line =~ m/^\s*logfile\s+(.*)/) { - $line = 'logfile ' . dirname ($1) . "/$broker_agent.log\n"; - } - - print BROKER_FILE $line; - } - close (BROKER_FILE); - close (CONF_FILE); -} - -################################################################################ -# Read configuration file. Exit on error. -################################################################################ -sub read_config (;$) { - my $token = shift; - my @found_tokens; - my $module; - - error ("File '$ConfDir/$ConfFile' not found.") unless (-e "$ConfDir/$ConfFile"); - open (CONF_FILE, "$ConfDir/$ConfFile") or error ("Could not open file '$ConfDir/$ConfFile': $!."); - - my @file = ; - close(CONF_FILE); - - foreach my $line (@file){ - # Skip comments and empty lines - next if ($line =~ m/^\s*#/) or ($line =~ m/^\s*$/); - - # Replace CRLF with LF - $line =~ s/\r\n/\n/g; - - # Token search - if (defined ($token)) { - if ($line =~ /^\s*(\S+)\s+(.*)$/ && $1 eq $token) { - - # Multiple value token - if (wantarray ()) { - push (@found_tokens, $2); - } - # Single value token - else { - return $2; - } - } - next; - } - - # Store the custom fields - - if (($line =~ m/^(custom_field\d+_name)\s+(.*)/) or ($line =~ m/^(custom_field\d+_value)\s+(.*)/)) { - $Customfields{$1} = $2; - next; - } - - # Save global macros - if ($line =~ m/^macro(\S+)\s+(.*)/) { - $Macros{$1} = $2; - next; - } - - next if ($line =~ /^module\s*\w*/); - - #Configuration token - if ($line =~ /^\s*(\S+)\s+(.*)$/) { - log_message ('setup', "$1 is $2"); - $Conf{$1} = $2; - - # Look for broker agents. - if ($1 eq 'broker_agent') { - $BrokerEnabled = 1; - } - - # Remove trailing spaces - $Conf{$1} =~ s/\s*$//; - } - } - - # Token search - if (defined ($token)) { - - # Multiple value token - if (wantarray ()) { - return @found_tokens; - } - - # Single value token not found. - return undef; - } - - # Set the intensive interval - if ($Conf{'intensive_interval'} == 0) { - $Conf{'intensive_interval'} = $Conf{'interval'}; - } - - # Search for includes after all other variables have been set - foreach my $line (@file) { - - # Skip comments and empty lines - next if ($line =~ m/^\s*#/) or ($line =~ m/^\s*$/); - - # Replace CRLF with LF - $line =~ s/\r\n/\n/g; - - # Additional configuration file - if ($line =~ /^include\s+(.*)\s*/) { - $Conf{'include'} = $Conf{'include'} ? "$Conf{'include'} $1" : $1; - - foreach my $file_name (glob("$1")) { - open (FILE, "$file_name") or next; - - log_message ('setup', "reading $file_name"); - my @file_conf = ; - parse_conf_modules(\@file_conf); - close (FILE); - } - next; - } - } - - # Module, plugin and collection definitions - parse_conf_modules(\@file); - - # If agent_name_cmd is defined, agent_name is set by command result. - if ($Conf{'agent_name'} eq '') { - if ($Conf{'agent_name_cmd'} eq '__rand__') { - $Conf{'agent_name'} = generate_agent_name(); - config_update('agent_name', $Conf{'agent_name'}); - } elsif ($Conf{'agent_name_cmd'} ne '') { - my $result = `$Conf{'agent_name_cmd'}`; - - # Use only the first line. - my ($temp_agent_name, $remain) = split(/\n/, $result); - chomp ($temp_agent_name); - - # Remove white spaces of the first and last. - $temp_agent_name =~ s/^ *(.*?) *$/$1/; - - $Conf{'agent_name'} = $temp_agent_name if ($temp_agent_name ne ''); - } else { - $Conf{'agent_name'} = hostname(); - } - } - - # Update the agent MD5 since agent_name may have changed - $AgentMD5 = md5 ($Conf{'agent_name'}); - $RemoteConfFile = "$AgentMD5.conf"; - $RemoteMD5File = "$AgentMD5.md5"; - - # Load thread support if agent_threads is greater than 1. - if ($Conf{'agent_threads'} > 1) { - eval { - local $SIG{__DIE__}; - require threads; - require threads::shared; - require Thread::Semaphore; - }; - if (!$@) { - $Sem = Thread::Semaphore->new; - $ThreadSem = Thread::Semaphore->new ($Conf{'agent_threads'}); - threads::shared::share (\$Xml); - threads::shared::share (\$Sem); - log_message ('log', 'Using thread library.'); - } else { - log_message ('log', 'Thread library is not available. agent_threads is set to 1 (disabled).'); - $Conf{'agent_threads'} = 1; - $Sem = undef; - $ThreadSem = undef; - } - } else { - $Sem = undef; - $ThreadSem = undef; - log_message ('log', 'Thread is disabled.'); - } - - # Accept 'yes' for backward compatibility - $Conf{'server_ssl'} = '1' if ($Conf{'server_ssl'} eq 'yes'); - $Conf{'secondary_server_ssl'} = '1' if ($Conf{'secondary_server_ssl'} eq 'yes'); - - # Set tentacle client options - if ($Conf{'transfer_mode'} eq 'tentacle') { - $Conf{'server_opts'} = '-x \'' . $Conf{'server_pwd'} . '\' ' . $Conf{'server_opts'} if ($Conf{'server_pwd'} ne ''); - $Conf{'server_opts'} = '-c ' . $Conf{'server_opts'} if ($Conf{'server_ssl'} eq '1'); - } - - # Set tentacle client options for secondary server - if ($Conf{'secondary_transfer_mode'} eq 'tentacle') { - $Conf{'secondary_server_opts'} = '-x \'' . $Conf{'secondary_server_pwd'} . '\' ' . $Conf{'secondary_server_opts'} if ($Conf{'secondary_server_pwd'} ne ''); - $Conf{'secondary_server_opts'} = '-c ' . $Conf{'secondary_server_opts'} if ($Conf{'secondary_server_ssl'} eq '1'); - } -} - -################################################################################# -## Remove any trailing / from directory names. -################################################################################# -sub fix_directory ($) { - my $dir = shift; - - my $char = chop ($dir); - return $dir if ($char eq '/'); - return $dir . $char; -} - - - -################################################################################ -# Sends a file to the server. -################################################################################ -#sub send_file ($;$) { -sub send_file { - my ($file, $secondary) = @_; - my $output; - - my $pid = fork(); - return 1 unless defined $pid; - - if ($pid == 0) { - # execute the transfer program by child process. - eval { - local $SIG{'ALRM'} = sub {die}; - alarm ($Conf{'transfer_timeout'}); - if ($Conf{'transfer_mode'} eq 'tentacle') { - $output = `tentacle_client -v -a $Conf{'server_ip'} -p $Conf{'server_port'} $Conf{'server_opts'} "$file" 2>&1 >$DevNull`; - } elsif ($Conf{'transfer_mode'} eq 'ssh') { - $output = `scp -P $Conf{'server_port'} "$file" pandora@"$Conf{'server_ip'}:$Conf{'server_path'}" 2>&1 >$DevNull`; - } elsif ($Conf{'transfer_mode'} eq 'ftp') { - my $base = basename ($file); - my $dir = dirname ($file); - - $output = `ftp -n $Conf{'server_opts'} $Conf{'server_ip'} $Conf{'server_port'} 2>&1 >$DevNull <&1 >$DevNull`; - } - alarm (0); - }; - - if ($@) { - log_message ('error', "Error sending file '$file': File transfer command is not responding."); - exit 1; - } - - # Get the errorlevel - my $rc = $? >> 8; - if ($rc != 0) { - log_message ('error', "Error sending file '$file': $output"); - } - exit $rc; - } - - # Wait the child process termination and get the errorlevel - waitpid ($pid, 0); - my $rc = $? >> 8; - - return $rc unless (defined ($secondary)); - - # Send the file to the secondary server - return $rc unless ($Conf{'secondary_mode'} eq 'always' || ($Conf{'secondary_mode'} eq 'on_error' && $rc != 0)); - - swap_servers (); - $rc = send_file ($file); - swap_servers (); - return $rc; -} - -################################################################################ -# Send buffered XML files. -################################################################################ -sub send_buffered_xml_files () { - - # Read XML files from the temporal directory - opendir(TEMPORAL, $Conf{'temporal'}) or return; - while (my $xml_file = readdir(TEMPORAL)) { - - # Skip non data files and symlinks - next if ($xml_file !~ m/^$Conf{'agent_name'}\.[0-9]+\.data$/ || -l "$Conf{'temporal'}/$xml_file"); - - my $rc = send_file ("$Conf{'temporal'}/$xml_file", 1); - - if ($rc == 0) { - if ($Conf{'debug'} eq '1') { - rename "$Conf{'temporal'}/$xml_file", "$Conf{'temporal'}/$xml_file". "sent"; - } else { - unlink ("$Conf{'temporal'}/$xml_file"); - } - } - } -} - -################################################################################ -# Swap primary and secondary servers. -################################################################################ -sub swap_servers () { - ($Conf{'server_ip'}, $Conf{'secondary_server_ip'}) = ($Conf{'secondary_server_ip'}, $Conf{'server_ip'}); - ($Conf{'server_path'}, $Conf{'secondary_server_path'}) = ($Conf{'secondary_server_path'}, $Conf{'server_path'}); - ($Conf{'server_port'}, $Conf{'secondary_server_port'}) = ($Conf{'secondary_server_port'}, $Conf{'server_port'}); - ($Conf{'transfer_mode'}, $Conf{'secondary_transfer_mode'}) = ($Conf{'secondary_transfer_mode'}, $Conf{'transfer_mode'}); - ($Conf{'transfer_timeout'}, $Conf{'secondary_transfer_timeout'}) = ($Conf{'secondary_transfer_timeout'}, $Conf{'transfer_timeout'}); - ($Conf{'server_user'}, $Conf{'secondary_server_user'}) = ($Conf{'secondary_server_user'}, $Conf{'server_user'}); - ($Conf{'server_pwd'}, $Conf{'secondary_server_pwd'}) = ($Conf{'secondary_server_pwd'}, $Conf{'server_pwd'}); - ($Conf{'server_ssl'}, $Conf{'secondary_server_ssl'}) = ($Conf{'secondary_server_ssl'}, $Conf{'server_ssl'}); - ($Conf{'server_opts'}, $Conf{'secondary_server_opts'}) = ($Conf{'secondary_server_opts'}, $Conf{'server_opts'}); -} - -################################################################################ -# Receive a file from the server. -################################################################################ -sub recv_file ($) { - my $file = shift; - my $output; - - my $pid = fork(); - return 1 unless defined $pid; - - if ($pid == 0) { - # execute the transfer program by child process. - eval { - local $SIG{'ALRM'} = sub {die}; - alarm ($Conf{'transfer_timeout'}); - if ($Conf{'transfer_mode'} eq 'tentacle') { - $output = `cd "$Conf{'temporal'}"$CmdSep tentacle_client -v -g -a $Conf{'server_ip'} -p $Conf{'server_port'} $Conf{'server_opts'} $file 2>&1 >$DevNull` - } elsif ($Conf{'transfer_mode'} eq 'ssh') { - $output = `scp -P $Conf{'server_port'} pandora@"$Conf{'server_ip'}:$Conf{'server_path'}/$file" $Conf{'temporal'} 2>&1 >$DevNull`; - } elsif ($Conf{'transfer_mode'} eq 'ftp') { - my $base = basename ($file); - my $dir = dirname ($file); - - $output = `ftp -n $Conf{'server_opts'} $Conf{'server_ip'} $Conf{'server_port'} 2>&1 >$DevNull <&1 >$DevNull`; - } - alarm (0); - }; - - if ($@) { - log_message ('error', "Error retrieving file: File transfer command is not responding."); - exit 1; - } - - # Get the errorlevel - my $rc = $? >> 8; - if ($rc != 0) { - log_message ('error', "Error retrieving file: $output"); - } - exit $rc; - } - - # Wait the child process termination and get the errorlevel - waitpid ($pid, 0); - my $rc = $? >> 8; - - return $rc; -} - -################################################################################ -# Check the server for a remote configuration. -################################################################################ -sub check_remote_config () { - - return unless ($Conf{'remote_config'} eq '1'); - - # Calculate the configuration file MD5 digest - open (CONF_FILE, "$ConfDir/$ConfFile") or error ("Could not open file '$ConfDir/$ConfFile': $!."); - binmode(CONF_FILE); - my $conf_md5 = md5 (join ('', )); - close (CONF_FILE); - - # Remove temporary files if they exist as symlink to avoid symlink attack - for my $file ("$Conf{'temporal'}/$RemoteMD5File", "$Conf{'temporal'}/$RemoteConfFile") { - error ("File '$file' already exists as a symlink and could not be removed: $!") if (-l $file && ! unlink($file)); - } - - # Get the remote MD5 file - if (recv_file ($RemoteMD5File) != 0) { - open (MD5_FILE, "> $Conf{'temporal'}/$RemoteMD5File") || error ("Could not open file '$ConfDir/$RemoteMD5File' for writing: $!."); - print MD5_FILE $conf_md5; - close (MD5_FILE); - copy ("$ConfDir/$ConfFile", "$Conf{'temporal'}/$RemoteConfFile"); - send_file ("$Conf{'temporal'}/$RemoteConfFile"); - send_file ("$Conf{'temporal'}/$RemoteMD5File"); - log_message ('remote config', 'Uploading configuration for the first time.'); - unlink ("$Conf{'temporal'}/$RemoteConfFile"); - unlink ("$Conf{'temporal'}/$RemoteMD5File"); - return; - } - - open (MD5_FILE, "< $Conf{'temporal'}/$RemoteMD5File") || error ("Could not open file '$ConfDir/$RemoteMD5File' for writing: $!."); - my $remote_conf_md5 = ; - close (MD5_FILE); - - # No changes - return if ($remote_conf_md5 eq $conf_md5); - - # Get the new configuration file - return if (recv_file ($RemoteConfFile) != 0); - log_message ('remote config', 'Configuration has changed!'); - - # Save the new configuration - move ("$Conf{'temporal'}/$RemoteConfFile", "$ConfDir/$ConfFile"); - - # Empty macros, modules, plugins and collections - %Macros = (); - @Modules = (); - %Collections = (); - %Conf = %DefaultConf; - - # Reload the new configuration - read_config (); - - # Log file may have changed - stop_log (); - start_log ('quiet'); - - #Set nice of the pandora_agent - my $PID = $$; - `renice "$Conf{'pandora_nice'}" "$PID"`; -} - -################################################################################ -# SUB launch_tentacle_proxy -# Launchs tentacle server in proxy mode. -################################################################################ -sub launch_tentacle_proxy () { - # Check if proxy server ip is right. - if ($Conf{'server_ip'} ne "localhost") { - - #Create a new process and launch tentacle. - $tentacle_pid = fork(); - - if ($tentacle_pid == 0) { - - #Execute tentacle server as a daemon - my $new_process = "tentacle_server -b ".$Conf{'server_ip'}." -g ".$Conf{'server_port'}." -c ".$Conf{'proxy_max_connection'}." -t ".$Conf{'proxy_timeout'}; - - $new_process .= ' -C' if ($Conf{'server_ssl'} eq '1'); - - log_message ('setup', 'Proxy mode enabled'); - exec ($new_process); - } - } else { - log_message ('error', 'You can not proxy to localhost'); - exit 1; - } -} - -################################################################################ -# Delete old collections and download new collections. -################################################################################ -sub check_collections () { - - # Delete old collections if there are no broker agents - if ($BrokerEnabled == 0) { - opendir (DIR, "$ConfDir/collections") || return; - while (defined (my $file_name = readdir(DIR))) { - next if ($file_name eq '.' || $file_name eq '..'); - - # Do not delete md5 files associated to a collection - $file_name =~ s/\.md5$//; - - if (! defined ($Collections{$file_name})) { - rmrf ("$ConfDir/collections/$file_name"); - unlink ("$ConfDir/collections/$file_name.md5"); - } - } - closedir (DIR); - } - - # Download new collections - while (my ($collection, $in_path) = each (%Collections)) { - my $collection_file = $collection . ".zip"; - my $collection_md5_file = $collection . ".md5"; - - # Add the collection directory to the PATH - if ($in_path == 0) { - $Collections{$collection} = 1; - $ENV{'PATH'} .= ":$ConfDir/collections/$collection"; - } - - # Get remote md5 - error ("File '$Conf{'temporal'}/$collection_md5_file' already exists as a symlink and could not be removed: $!.") if (-l "$Conf{'temporal'}/$collection_md5_file" && !unlink("$Conf{'temporal'}/$collection_md5_file")); - next unless (recv_file ($collection_md5_file) == 0); - open (MD5_FILE, "< $Conf{'temporal'}/$collection_md5_file") || error ("Could not open file '$Conf{'temporal'}/$collection_md5_file' for reading: $!."); - my $remote_collection_md5 = ; - close (MD5_FILE); - unlink ("$Conf{'temporal'}/$collection_md5_file"); - - # Read local md5 - my $local_collection_md5 = ''; - if (defined (open (MD5_FILE, "< $ConfDir/collections/$collection_md5_file"))) { - $local_collection_md5 = ; - close MD5_FILE; - } - - # Check for changes - $local_collection_md5 = $remote_collection_md5 unless defined ($local_collection_md5); - next if ($local_collection_md5 eq $remote_collection_md5); - - # Download and unzip - next unless (recv_file ($collection_file) == 0); - rmrf ("$ConfDir/collections/$collection"); - `unzip -d "$ConfDir/collections/$collection" "$Conf{'temporal'}/$collection_file" 2>$DevNull`; - unlink ("$Conf{'temporal'}/$collection_file"); - - # Save the new md5 - open (MD5_FILE, "> $ConfDir/collections/$collection_md5_file") || error ("Could not open file '$ConfDir/collections/$collection_md5_file' for writing: $!."); - print MD5_FILE "$remote_collection_md5"; - close (MD5_FILE); - - # Set proper file permissions - chmodr (0750, "$ConfDir/collections/$collection"); - } -} - -############################################################################### -# Return the MD5 checksum of the given string as a hex string. -# Pseudocode from: http://en.wikipedia.org/wiki/MD5#Pseudocode -############################################################################### -my @S = ( - 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, - 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, - 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, - 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21 -); -my @K = ( - 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, - 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, - 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, - 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, - 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, - 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, - 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, - 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, - 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, - 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, - 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, - 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, - 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, - 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, - 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, - 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 -); -sub md5 { - my $str = shift; - - # No input! - if (!defined($str)) { - return ""; - } - - # Note: All variables are unsigned 32 bits and wrap modulo 2^32 when - # calculating. - - # Initialize variables. - my $h0 = 0x67452301; - my $h1 = 0xEFCDAB89; - my $h2 = 0x98BADCFE; - my $h3 = 0x10325476; - - # Pre-processing. - my $msg = unpack ("B*", pack ("A*", $str)); - my $bit_len = length ($msg); - - # Append "1" bit to message. - $msg .= '1'; - - # Append "0" bits until message length in bits ≡ 448 (mod 512). - $msg .= '0' while ((length ($msg) % 512) != 448); - - # Append bit /* bit, not byte */ length of unpadded message as 64-bit - # little-endian integer to message. - $msg .= unpack ("B32", pack ("V", $bit_len)); - $msg .= unpack ("B32", pack ("V", $bit_len >> 32)); - - # Process the message in successive 512-bit chunks. - for (my $i = 0; $i < length ($msg); $i += 512) { - - my @w; - my $chunk = substr ($msg, $i, 512); - - # Break chunk into sixteen 32-bit little-endian words w[i], 0 <= i <= - # 15. - for (my $j = 0; $j < length ($chunk); $j += 32) { - push (@w, unpack ("V", pack ("B32", substr ($chunk, $j, 32)))); - } - - # Initialize hash value for this chunk. - my $a = $h0; - my $b = $h1; - my $c = $h2; - my $d = $h3; - my $f; - my $g; - - # Main loop. - for (my $y = 0; $y < 64; $y++) { - if ($y <= 15) { - $f = $d ^ ($b & ($c ^ $d)); - $g = $y; - } - elsif ($y <= 31) { - $f = $c ^ ($d & ($b ^ $c)); - $g = (5 * $y + 1) % 16; - } - elsif ($y <= 47) { - $f = $b ^ $c ^ $d; - $g = (3 * $y + 5) % 16; - } - else { - $f = $c ^ ($b | (0xFFFFFFFF & (~ $d))); - $g = (7 * $y) % 16; - } - - my $temp = $d; - $d = $c; - $c = $b; - $b = ($b + leftrotate (($a + $f + $K[$y] + $w[$g]) % POW232, $S[$y])) % POW232; - $a = $temp; - } - - # Add this chunk's hash to result so far. - $h0 = ($h0 + $a) % POW232; - $h1 = ($h1 + $b) % POW232; - $h2 = ($h2 + $c) % POW232; - $h3 = ($h3 + $d) % POW232; - } - - # Digest := h0 append h1 append h2 append h3 #(expressed as little-endian) - return unpack ("H*", pack ("V", $h0)) . - unpack ("H*", pack ("V", $h1)) . - unpack ("H*", pack ("V", $h2)) . - unpack ("H*", pack ("V", $h3)); -} - -############################################################################### -# MD5 leftrotate function. See: http://en.wikipedia.org/wiki/MD5#Pseudocode -############################################################################### -sub leftrotate { - my ($x, $c) = @_; - - return (0xFFFFFFFF & ($x << $c)) | ($x >> (32 - $c)); -} - -############################################################################### -# Return the SHA256 checksum of the given string as a hex string. -# Pseudocode from: http://en.wikipedia.org/wiki/SHA-2#Pseudocode -############################################################################### -my @K2 = ( - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, - 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, - 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, - 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, - 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, - 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, - 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, - 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 -); -sub sha256 { - my $str = shift; - - # No input! - if (!defined($str)) { - return ""; - } - - # Note: All variables are unsigned 32 bits and wrap modulo 2^32 when - # calculating. - - # First 32 bits of the fractional parts of the square roots of the first 8 - # primes. - my $h0 = 0x6a09e667; - my $h1 = 0xbb67ae85; - my $h2 = 0x3c6ef372; - my $h3 = 0xa54ff53a; - my $h4 = 0x510e527f; - my $h5 = 0x9b05688c; - my $h6 = 0x1f83d9ab; - my $h7 = 0x5be0cd19; - - # Pre-processing. - my $msg = unpack ("B*", pack ("A*", $str)); - my $bit_len = length ($msg); - - # Append "1" bit to message. - $msg .= '1'; - - # Append "0" bits until message length in bits = 448 (mod 512). - $msg .= '0' while ((length ($msg) % 512) != 448); - - # Append bit /* bit, not byte */ length of unpadded message as 64-bit - # big-endian integer to message. - $msg .= unpack ("B32", pack ("N", $bit_len >> 32)); - $msg .= unpack ("B32", pack ("N", $bit_len)); - - # Process the message in successive 512-bit chunks. - for (my $i = 0; $i < length ($msg); $i += 512) { - - my @w; - my $chunk = substr ($msg, $i, 512); - - # Break chunk into sixteen 32-bit big-endian words. - for (my $j = 0; $j < length ($chunk); $j += 32) { - push (@w, unpack ("N", pack ("B32", substr ($chunk, $j, 32)))); - } - - # Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array: - for (my $i = 16; $i < 64; $i++) { - my $s0 = rightrotate($w[$i - 15], 7) ^ rightrotate($w[$i - 15], 18) ^ ($w[$i - 15] >> 3); - my $s1 = rightrotate($w[$i - 2], 17) ^ rightrotate($w[$i - 2], 19) ^ ($w[$i - 2] >> 10); - $w[$i] = ($w[$i - 16] + $s0 + $w[$i - 7] + $s1) % POW232; - } - - # Initialize working variables to current hash value. - my $a = $h0; - my $b = $h1; - my $c = $h2; - my $d = $h3; - my $e = $h4; - my $f = $h5; - my $g = $h6; - my $h = $h7; - - # Compression function main loop. - for (my $i = 0; $i < 64; $i++) { - my $S1 = rightrotate($e, 6) ^ rightrotate($e, 11) ^ rightrotate($e, 25); - my $ch = ($e & $f) ^ ((0xFFFFFFFF & (~ $e)) & $g); - my $temp1 = ($h + $S1 + $ch + $K2[$i] + $w[$i]) % POW232; - my $S0 = rightrotate($a, 2) ^ rightrotate($a, 13) ^ rightrotate($a, 22); - my $maj = ($a & $b) ^ ($a & $c) ^ ($b & $c); - my $temp2 = ($S0 + $maj) % POW232; - - $h = $g; - $g = $f; - $f = $e; - $e = ($d + $temp1) % POW232; - $d = $c; - $c = $b; - $b = $a; - $a = ($temp1 + $temp2) % POW232; - } - - # Add the compressed chunk to the current hash value. - $h0 = ($h0 + $a) % POW232; - $h1 = ($h1 + $b) % POW232; - $h2 = ($h2 + $c) % POW232; - $h3 = ($h3 + $d) % POW232; - $h4 = ($h4 + $e) % POW232; - $h5 = ($h5 + $f) % POW232; - $h6 = ($h6 + $g) % POW232; - $h7 = ($h7 + $h) % POW232; - } - - # Produce the final hash value (big-endian). - return unpack ("H*", pack ("N", $h0)) . - unpack ("H*", pack ("N", $h1)) . - unpack ("H*", pack ("N", $h2)) . - unpack ("H*", pack ("N", $h3)) . - unpack ("H*", pack ("N", $h4)) . - unpack ("H*", pack ("N", $h5)) . - unpack ("H*", pack ("N", $h6)) . - unpack ("H*", pack ("N", $h7)); -} - -############################################################################### -# Rotate a 32-bit number a number of bits to the right. -############################################################################### -sub rightrotate { - my ($x, $c) = @_; - - return (0xFFFFFFFF & ($x << (32 - $c))) | ($x >> $c); -} - -################################################################################ -# Try to guess the OS version. -################################################################################ -sub guess_os_version ($) { - my $os = shift; - my $os_version; - - # Linux - if ($os eq 'linux') { - $os_version = `lsb_release -sd 2>$DevNull`; - # AIX - } elsif ($os eq 'aix') { - $os_version = "$2.$1" if (`uname -rv` =~ /\s*(\d)\s+(\d)\s*/); - # Windows - } elsif ($os =~ /win/i) { - $os_version = `ver`; - $DevNull = '/Nul'; - $CmdSep = '\&'; - $OS = "windows"; - - # Solaris, HP-UX, BSD and others - } else { - $os_version = `uname -r`; - } - - # Something went wrong - return '' unless defined ($os_version); - - # Remove any trailing new lines - chomp ($os_version); - - return $os_version; -} - -################################################################################ -# Execute the given module. -################################################################################ -sub exec_module ($) { - my $module = shift; - - # Need something to execute - if ($module->{'func'} == 0) { - $ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1); - return; - } - - # Check module interval - if (++($module->{'counter'}) < $module->{'intensive_interval'}) { - $ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1); - return; - } - - # Check module cron - if (check_module_cron ($module) != 1) { - $ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1); - return; - } - - # Check module preconditions - if (evaluate_module_preconditions ($module) == 0) { - return; - } - - # Reset module counter - $module->{'counter'} = 0; - - # Temporarily disable strict refs - no strict 'refs'; - - # Run - my @value = &{$module->{'func'}}($module); - if (defined ($value[0])) { - - # Evaluate intensive conditions - if ($module->{'is_intensive'} == 1) { - my $intensive_match = evaluate_module_intensive_conditions ($module, $value[0]); - if ($intensive_match == $module->{'intensive_match'} && $module->{'timestamp'} + $module->{'interval'} * $Conf{'interval'} > time ()) { - $ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1); - return; - } - - # Update the time reference - $module->{'timestamp'} = time () if ($module->{'timestamp'} + $module->{'interval'} * $Conf{'interval'} <= time ()); - - # Update the intensive match status - $module->{'intensive_match'} = $intensive_match; - } - - # Evaluate module conditions - evaluate_module_conditions ($module, $value[0]); - - # Write the module XML - write_module_xml ($module, @value); - } - - # Save the module value if needed (only works for the first returned value) - if ($module->{'save'} ne '') { - if (defined ($value[0])) { - $ENV{$module->{'save'}} = $value[0] ; - } else { - $ENV{$module->{'save'}} = ''; - } - } - - $ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1); -} - -################################################################################ -# Load process information. -################################################################################ -sub load_procs () { - my $utimestamp = time (); - - # Do we know hoy to get process information in this OS? - return unless defined (PROC_CMDS->{$OS}); - - # Update at most once every interval - return if ($Procs{'__utimestamp__'} > ($utimestamp - $Conf{'interval'})); - - # Get process information - my $cmd = PROC_CMDS->{$OS}; - my @procs = `$cmd`; - return undef unless ($? eq 0); - - # Clear past process infomation - %Procs = (); - - # Parse process information - foreach my $proc (@procs) { - - chomp ($proc); - my @proc_info = split (/\s+/, $proc); - next unless ($#proc_info >= 2); - - # Process command - my $proc_cmd = join (' ', @proc_info[2..$#proc_info]); - - # Process command - $Procs{$proc_cmd} = (); - - # Process CPU usage - $Procs{$proc_cmd}{'cpu'} = $proc_info[0]; - - # Process virtual size - $Procs{$proc_cmd}{'size'} = $proc_info[1]; - } - - $Procs{'__utimestamp__'} = $utimestamp; -} - -################################################################################ -# Load partition information. -################################################################################ -sub load_parts () { - my $utimestamp = time (); - - # Do we know hoy to get partition information in this OS? - return unless defined (PART_CMDS->{$OS}); - - # Update at most once every interval - return if ($Parts{'__utimestamp__'} > ($utimestamp - $Conf{'interval'})); - - # Get partition information - my $cmd = PART_CMDS->{$OS}; - my @parts = `$cmd`; - return undef unless ($? eq 0); - - # Parse partition information - foreach my $part (@parts) { - - chomp ($part); - my @part_info = split (/\s+/, $part); - next unless ($#part_info >= 2); - - my $part = join (' ', @part_info[2..$#part_info]); - - # Mount point - $Parts{$part} = (); - - # Total space in kB - $Parts{$part}{'total'} = $part_info[0]; - - # Available space in kB - $Parts{$part}{'avail'} = $part_info[1]; - } - - $Parts{'__utimestamp__'} = $utimestamp; -} - -################################################################################ -# Execute the given command. -################################################################################ -sub module_exec ($) { - my $module = shift; - my @data; - my $exe; - - # Check module parameters - return () unless ($module->{'params'} ne ''); - - my $params = $module->{'params'}; - - # Execute the command - if ($module->{'timeout'} == 0) { - @data = `$params 2> $DevNull`; - log_message ('debug', "Executing module " . $module->{'name'} . " ($params 2> $DevNull)") if ($Conf{'debug'} eq '1'); - } else { - my $cmd = quotemeta ($params); - @data = `$Conf{'pandora_exec'} $module->{'timeout'} $cmd 2> $DevNull`; - log_message ('debug', "Executing module " . $module->{'name'} . ' (' . $Conf{'pandora_exec'} . ' ' . $module->{'timeout'} . " $cmd 2> $DevNull)") if ($Conf{'debug'} eq '1'); - } - - # Something went wrong or no data - return () unless ($? eq 0 && defined ($data[0])); - - return @data; -} - -################################################################################ -# Get the status of a process. 1 running, 0 not running. -################################################################################ -sub module_proc ($) { - my $module = shift; - - # Check module parameters - return () unless ($module->{'params'} ne ''); - - # Data collection layer - load_procs (); - - return (1) if defined ($Procs{$module->{'params'}}); - return (0); -} - -################################################################################ -# Get the CPU usage of a process. -################################################################################ -sub module_cpuproc ($) { - my $module = shift; - - # Check module parameters - return () unless ($module->{'params'} ne ''); - - # Data collection layer - load_procs (); - - return () unless defined ($Procs{$module->{'params'}}) and defined ($Procs{$module->{'params'}}{'cpu'}); - return ($Procs{$module->{'params'}}{'cpu'}); -} - -################################################################################ -# Get the memory usage of a process in Mbytes. -################################################################################ -sub module_memproc ($) { - my $module = shift; - - # Check module parameters - return () unless ($module->{'params'} ne ''); - - # Data collection layer - load_procs (); - - return () unless defined ($Procs{$module->{'params'}}) and defined ($Procs{$module->{'params'}}{'size'}); - return (sprintf ("%d", $Procs{$module->{'params'}}{'size'} / 1024)); -} - -################################################################################ -# Get the free space in a partition in Mbytes. -################################################################################ -sub module_freedisk ($) { - my $module = shift; - - # Check module parameters - return () unless ($module->{'params'} ne ''); - - # Data collection layer - load_parts (); - - return () unless defined ($Parts{$module->{'params'}}) and defined ($Parts{$module->{'params'}}{'avail'}); - - my $avail = sprintf("%d", $Parts{$module->{'params'}}{'avail'} / 1024); - return ($avail); -} - -################################################################################ -# Get the free space in a partition in %. -################################################################################ -sub module_freepercentdisk ($) { - my $module = shift; - - # Check module parameters - return () unless ($module->{'params'} ne ''); - - # Data collection layer - load_parts (); - - return () unless defined ($Parts{$module->{'params'}}) and defined ($Parts{$module->{'params'}}{'avail'}); - - my $availp = sprintf("%d", $Parts{$module->{'params'}}{'avail'} * 100 / $Parts{$module->{'params'}}{'total'}); - return ($availp); -} - -################################################################################ -# Get the occupied space in a partition in %. -################################################################################ -sub module_occupiedpercentdisk ($) { - my $module = shift; - - # Check module parameters - return () unless ($module->{'params'} ne ''); - - # Data collection layer - load_parts (); - - return () unless defined ($Parts{$module->{'params'}}) and defined ($Parts{$module->{'params'}}{'avail'}); - - my $occupiedp = sprintf("%d", ($Parts{$module->{'params'}}{'total'} - $Parts{$module->{'params'}}{'avail'}) * 100 / $Parts{$module->{'params'}}{'total'}); - return ($occupiedp); -} - -################################################################################ -# Get the CPU usage %. -################################################################################ -sub module_cpuusage ($) { - my $module = shift; - - # Do we know hoy to get CPU usage in this OS? - return unless defined (CPUUSAGE_CMDS->{$OS}); - - # Get CPU usage - my $cmd = CPUUSAGE_CMDS->{$OS}; - my @data = `$cmd 2> $DevNull`; - - # Something went wrong or no data - return () unless ($? eq 0 && defined ($data[0])); - - return ($data[0]); -} - -################################################################################ -# Get the free space in a partition in Mbytes. -################################################################################ -sub module_freememory ($) { - my $module = shift; - - # Do we know hoy to get memory information in this OS? - return () unless defined (FREEMEMORY_CMDS->{$OS}); - - # Get available memory - my $cmd = FREEMEMORY_CMDS->{$OS}; - my @data = `$cmd 2> $DevNull`; - - # Something went wrong or no data - return () unless ($? eq 0 && defined ($data[0])); - - return (sprintf ("%d", $data[0] / 1024)); -} - -################################################################################ -# Get the free space in a partition in %. -################################################################################ -sub module_freepercentmemory ($) { - my $module = shift; - - # Do we know hoy to get memory information in this OS? - return unless defined (TOTALMEMORY_CMDS->{$OS}); - - # Get CPU usage - my $cmd = TOTALMEMORY_CMDS->{$OS}; - my @data = `$cmd 2> $DevNull`; - - # Something went wrong or no data - return () unless ($? eq 0 && defined ($data[0])); - - # Get total memory in MB - my $total = sprintf ("%d", $data[0] / 1024); - - # Get available memory in MB - my ($avail) = module_freememory ($module); - return () unless defined ($avail); - - return sprintf (("%d", $avail * 100 / $total)); -} - -################################################################################ -# Evaluate and execute module preconditions. -################################################################################ -sub evaluate_module_preconditions ($) { - my ($module) = @_; - - # Evaluate preconditions - foreach my $precondition (@{$module->{'precondition'}}) { - my $data = `$precondition->{'command'} 2> $DevNull`; - return 0 if (evaluate_condition ($precondition, $data) == 0); - } - - return 1; -} - -################################################################################ -# Evaluate a module condition. Returns 1 if the condition matches, 0 otherwise. -################################################################################ -sub evaluate_condition ($$) { - my ($condition, $data) = @_; - - { - no warnings; - if (($condition->{'operator'} eq '>' && $data > $condition->{'value_1'}) || - ($condition->{'operator'} eq '<' && $data < $condition->{'value_1'}) || - ($condition->{'operator'} eq '=' && $data == $condition->{'value_1'}) || - ($condition->{'operator'} eq '!=' && $data != $condition->{'value_1'}) || - ($condition->{'operator'} eq '=~' && $data =~ /$condition->{'value_1'}/) || - ($condition->{'operator'} eq '()' && $data > $condition->{'value_1'} && $data < $condition->{'value_2'})) { - return 1; - } - } - - return 0; -} - - -################################################################################ -# Evaluate and execute module conditions. -################################################################################ -sub evaluate_module_conditions ($$) { - my ($module, $data) = @_; - - # Evaluate conditions - foreach my $condition (@{$module->{'conditions'}}) { - if (evaluate_condition ($condition, $data) == 1) { - `$condition->{'command'} 2> $DevNull`; - } - } -} - -################################################################################ -# Evaluate intensive conditions. -################################################################################ -sub evaluate_module_intensive_conditions ($$) { - my ($module, $data) = @_; - - # Evaluate conditions - foreach my $condition (@{$module->{'intensive_conditions'}}) { - return 0 if (evaluate_condition ($condition, $data) == 0); - } - - return 1; -} - -################################################################################ -# Checks the module's cron string. Returns 1 if the module should be run, 0 if -# not. -################################################################################ -sub check_module_cron ($) { - my $module = shift; - - # No cron string defined - return 1 unless ($module->{'cron'} ne ''); - - # Check if the module was already executed - return 0 unless (time() >= $module->{'cron_utimestamp'}); - - # Get cron configuration - my @cron_params = split (/\s/, $module->{'cron'}); - - # Get current time - my $current_time = time(); - my @time = localtime($current_time); - - # Minutes, hours, day of the month, month and day of the week - my @time_params = @time[1, 2, 3, 4, 6]; - - # Fix month (localtime retuns 0..11 and we need 1..12) - $time_params[3] += 1; - - # Check cron parameters - for (my $i = 0; $i < 5; $i++) { - - # Wildcard - next if ($cron_params[$i] eq '*'); - - # Get interval - my ($bottom, $top) = split (/-/, $cron_params[$i]); - $top = $bottom unless defined ($top); - - # Check if next execution will overflow the cron (only minutes overflow) - # If overflow, execute the module - my $overflow_cron = 0; - if ($i == 0) { - my $start_cron_seconds = $bottom*60; - my $current_exec_seconds = $time_params[$i]*60; - my $next_exec_seconds = $time_params[$i]*60 + $module->{'interval'}*$Conf{'interval'}; - if ($current_exec_seconds > $start_cron_seconds && $current_exec_seconds > $next_exec_seconds) { - $start_cron_seconds += 3600; - } - if (($current_exec_seconds <= $start_cron_seconds) && ($start_cron_seconds <= $next_exec_seconds)) { - $overflow_cron = 1 - } - } - - # Check interval - if ($bottom <= $top) { - return 0 if (($time_params[$i] < $bottom || $time_params[$i] > $top) && !$overflow_cron); - } else { - return 0 if (($time_params[$i] < $bottom && $time_params[$i] > $top) && !$overflow_cron); - } - } - - # Do not check in the next minute, hour, day or month. - my $offset = 0; - if ($module->{'cron_interval'} >= 0) { - $offset = $module->{'cron_interval'}; - } elsif($cron_params[0] ne '*') { - # 1 minute - $offset = 60; - } elsif($cron_params[1] ne '*') { - # 1 hour - $offset = 3600; - } elsif($cron_params[2] ne '*' || $cron_params[4] ne '*') { - # 1 day - $offset = 86400; - } elsif($cron_params[3] ne '*') { - # 31 days - $offset = 2678400; - } - - $module->{'cron_utimestamp'} = $current_time + $offset; - return 1; -} - -################################################################################ -# Write module data in XML format. -################################################################################ -sub write_module_xml ($@) { - my ($module, @data) = @_; - - # No data - return unless (defined $data[0]); - - # Is it a plugin? - if ($module->{'func'} == \&module_plugin) { - $Sem->down () if (defined ($Sem)); - $Xml .= $data[0]; - $Sem->up () if (defined ($Sem)); - return; - } - - # Critical section - $Sem->down () if (defined ($Sem)); - - $Xml .= "\n" . - " {'name'} . "]]>\n" . - " {'description'} . "]]>\n" . - " " . $module->{'type'} . "\n"; - - # Interval - $Xml .= " " . $module->{'interval'} . "\n"; - - # Min - $Xml .= " " . $module->{'min'} . "\n" if (defined ($module->{'min'})); - - # Max - $Xml .= " " . $module->{'max'} . "\n" if (defined ($module->{'max'})); - - # Post process - $Xml .= " " . $module->{'post_process'} . "\n" if (defined ($module->{'post_process'})); - - # Min critical - $Xml .= " " . $module->{'min_critical'} . "\n" if (defined ($module->{'min_critical'})); - - # Max critical - $Xml .= " " . $module->{'max_critical'} . "\n" if (defined ($module->{'max_critical'})); - - # Min warning - $Xml .= " " . $module->{'min_warning'} . "\n" if (defined ($module->{'min_warning'})); - - # Max warning - $Xml .= " " . $module->{'max_warning'} . "\n" if (defined ($module->{'max_warning'})); - - # Disabled - $Xml .= " " . $module->{'disabled'} . "\n" if (defined ($module->{'disabled'})); - - # Min ff event - $Xml .= " " . $module->{'min_ff_event'} . "\n" if (defined ($module->{'min_ff_event'})); - - # Unit - $Xml .= " {'unit'} . "]]>\n" if (defined ($module->{'unit'})); - - # Module group - $Xml .= " " . $module->{'module_group'} . "\n" if (defined ($module->{'module_group'})); - - # Custom ID - $Xml .= " {'custom_id'} . "]]>\n" if (defined ($module->{'custom_id'})); - - # Str warning - $Xml .= " {'str_warning'} . "]]>\n" if (defined ($module->{'str_warning'})); - - # Str critical - $Xml .= " {'str_critical'} . "]]>\n" if (defined ($module->{'str_critical'})); - - # Critical instructions - $Xml .= " {'critical_instructions'} . "]]>\n" if (defined ($module->{'critical_instructions'})); - - # Warning instructions - $Xml .= " {'warning_instructions'} . "]]>\n" if (defined ($module->{'warning_instructions'})); - - # Unknown instructions - $Xml .= " {'unknown_instructions'} . "]]>\n" if (defined ($module->{'unknown_instructions'})); - - # Tags - $Xml .= " {'tags'} . "]]>\n" if (defined ($module->{'tags'})); - - # Critical inverse - $Xml .= " " . $module->{'critical_inverse'} . "\n" if (defined ($module->{'critical_inverse'})); - - # Warning inverse - $Xml .= " " . $module->{'warning_inverse'} . "\n" if (defined ($module->{'warning_inverse'})); - - # Quiet - $Xml .= " " . $module->{'quiet'} . "\n" if (defined ($module->{'quiet'})); - - # Module FF interval - $Xml .= " " . $module->{'module_ff_interval'} . "\n" if (defined ($module->{'module_ff_interval'})); - - # Module Alert template - $Xml .= " " . $module->{'alert_template'} . "\n" if (defined ($module->{'alert_template'})); - - # Module Alert template - $Xml .= " " . $module->{'cron'} . "\n" if (defined ($module->{'cron'}) and ($module->{'cron'} ne "")); - - # FF threshold configuration - $Xml .= " " . $module->{'min_ff_event_normal'} . "\n" if (defined ($module->{'min_ff_event_normal'})); - $Xml .= " " . $module->{'min_ff_event_warning'} . "\n" if (defined ($module->{'min_ff_event_warning'})); - $Xml .= " " . $module->{'min_ff_event_critical'} . "\n" if (defined ($module->{'min_ff_event_critical'})); - $Xml .= " " . $module->{'ff_timeout'} . "\n" if (defined ($module->{'ff_timeout'})); - $Xml .= " " . $module->{'each_ff'} . "\n" if (defined ($module->{'each_ff'})); - - # Data list - if ($#data > 0) { - $Xml .= " \n"; - # Single data - } else { - chomp ($data[0]); - $Xml .= " \n"; - } - $Xml .= "\n"; - - $Sem->up () if (defined ($Sem)); -} - -################################################################################ -# Receive a UDP server signal to restart agent -################################################################################ -sub udp_server_signal () { - log_message ('udp server', 'Received signal to restart the agent.'); -} - -################################################################################ -# Basic UDP server to restart agent on UDP signal received -################################################################################ -sub udp_server ($$) { - - my $udp_port = shift; - my $udp_auth_address = shift; - my $parent_pid = getppid(); - my @udp_auth_list = split(',', $udp_auth_address); - - my($sock, $oldmsg, $newmsg, $hisaddr, $hishost, $MAXLEN); - $MAXLEN = 1024; - - log_message ('udp server', 'Starting UDP server listening on '.$udp_auth_address.":".$udp_port); - $sock = IO::Socket::INET->new(LocalPort => $udp_port, Proto => 'udp') or die "socket: $@"; - - while ($sock->recv($newmsg, $MAXLEN)) { - my $hishost = $sock->peerhost(); - my $address_found = 0; - foreach my $single_address (@udp_auth_list) { - $address_found = $address_found || ($hishost eq $single_address); - } - if (($udp_auth_address eq "0.0.0.0") || $address_found){ - if ($newmsg =~ /REFRESH AGENT/){ - # Send signal to restart agent - log_message ('udp server', 'Received signal from '.$hishost); - kill 'SIGINT' , $parent_pid; - } - elsif ($newmsg =~ /START PROCESS (.*)/){ - my $process_name = $1; - $process_name =~ s/^\s*//g; - $process_name =~ s/\s*$//g; - if (defined($Conf{"process_${process_name}_start"})) { - log_message ('udp server', "Process $process_name started from $hishost"); - system "$Conf{\"process_${process_name}_start\"} 2>$DevNull &"; - } else { - log_message ('udp server', "Attempt to start unknown process $process_name from $hishost"); - } - } - elsif ($newmsg =~ /STOP PROCESS (.*)/){ - my $process_name = $1; - $process_name =~ s/^\s*//g; - $process_name =~ s/\s*$//g; - if (defined($Conf{"process_${process_name}_stop"})) { - log_message ('udp server', "Process $process_name stopped from $hishost"); - system "$Conf{\"process_${process_name}_stop\"} 2>$DevNull &"; - } else { - log_message ('udp server', "Attempt to stop unknown process $process_name from $hishost"); - } - } - } - } -} - -################################################################################ -# Execute the given plugin. -################################################################################ -sub module_plugin ($) { - my $plugin = shift; - - my $command = $plugin->{'params'}; - - # Empty plugin - return () if ($command eq ''); - - # Execute the plugin - - my $output = ""; - if ($plugin->{'timeout'} == 0) { - $output = `$command 2>$DevNull`; - log_message ('debug', "Executing plugin: " . $command) if ($Conf{'debug'} eq '1'); - } else { - $output = `$Conf{'pandora_exec'} $plugin->{'timeout'} $command 2> $DevNull`; - log_message ('debug', "Executing plugin: (" . $command . ") with timeout: " . $plugin->{'timeout'} . "s") if ($Conf{'debug'} eq '1'); - } - - # Do not save the output if there was an error - if ($? != 0) { - return (); - } - - return ($output); -} - -################################################################################ -# TERM Handler -################################################################################ -sub kill_signal_handler (){ - # Kill tentacle server if it was launched - - if (defined ($tentacle_pid)) { - print "kill -9 $tentacle_pid\n"; - `kill -9 $tentacle_pid`; - } - - # Kill udp_server if it was forked. - if (defined ($udp_server_pid) && $udp_server_pid) { - kill 'TERM', $udp_server_pid; - log_message ('udp server', 'terminated.'); - } - - exit (0); -} - -################################################################################ -# Get the free disk space in the temporal directory (in bytes). -################################################################################ -sub temporal_freedisk () { - - # Call df - return 0 unless defined (DF_CMDS->{$OS}); - my $cmd = DF_CMDS->{$OS} . ' ' . $Conf{'temporal'} . ' | awk \'NR > 1 {print $4}\''; - my $temporal_freedisk = `$cmd`; - - # Check for errors - return 0 unless ($? eq 0); - - # Convert to bytes - return 1024 * int ($temporal_freedisk); -} - -################################################################################ -# Replace module macros. -################################################################################ -sub replace_macros ($) { - my $module = shift; - - # Replace macros - foreach my $token (keys (%{$module})) { - - # No need to skip macros for now, since it's a hash ref and only array refs - # are searched for macros. - #if ($token eq 'macros') { - # next; - #} - - # No defined value for conf token - if (! defined ($module->{$token})) { - next; - } - - # Simple configuration token - if(ref($module->{$token}) eq ''){ - # Module macros - while (my ($macro, $subst) = each (%{$module->{'macros'}})) { - eval { - $module->{$token} =~ s/$macro/$subst/g; - }; - } - # Global macros - while (my ($macro, $subst) = each (%Macros)) { - eval { - $module->{$token} =~ s/$macro/$subst/g; - }; - } - } - # Hash array - elsif (ref($module->{$token}) eq 'ARRAY'){ - for (my $i = 0; $i <= $#{$module->{$token}}; $i++) { - - # Array of configuration tokens - foreach my $key (keys (%{$module->{$token}->[$i]})) { - - # Module macros (each configuration token is a hash) - while (my ($macro, $subst) = each (%{$module->{'macros'}})) { - eval { - $module->{$token}->[$i]->{$key} =~ s/$macro/$subst/g; - } - } - - # Global macros (each configuration token is a hash) - while (my ($macro, $subst) = each (%Macros)) { - eval { - $module->{$token}->[$i]->{$key} =~ s/$macro/$subst/g; - } - } - } - } - } - } -} - -################################################################################ -# Initialize a module with default values. -################################################################################ -sub init_module ($) { - my $module = shift; - - $module->{'name'} = ''; - $module->{'type'} = 'generic_data'; - $module->{'description'} = ''; - $module->{'func'} = 0; - $module->{'params'} = ''; - $module->{'interval'} = 1; - $module->{'timeout'} = 0; - $module->{'counter'} = 0; - $module->{'max'} = undef; - $module->{'min'} = undef; - $module->{'post_process'} = undef; - $module->{'min_critical'} = undef; - $module->{'max_critical'} = undef; - $module->{'min_warning'} = undef; - $module->{'max_warning'} = undef; - $module->{'disabled'} = undef; - $module->{'min_ff_event'} = undef; - $module->{'save'} = ''; - $module->{'conditions'} = []; - $module->{'cron'} = ''; - $module->{'cron_utimestamp'} = 0; - $module->{'cron_interval'} = -1; - $module->{'precondition'} = []; - $module->{'is_intensive'} = 0; - $module->{'intensive_conditions'} = []; - $module->{'intensive_match'} = 0; - $module->{'timestamp'} = 0; - $module->{'unit'} = undef; - $module->{'module_group'} = undef; - $module->{'custom_id'} = undef; - $module->{'str_warning'} = undef; - $module->{'str_critical'} = undef; - $module->{'critical_instructions'} = undef; - $module->{'warning_instructions'} = undef; - $module->{'unknown_instructions'} = undef; - $module->{'tags'} = undef; - $module->{'critical_inverse'} = undef; - $module->{'warning_inverse'} = undef; - $module->{'quiet'} = undef; - $module->{'module_ff_interval'} = undef; - $module->{'macros'} = {}; - $module->{'alert_template'} = undef; -} - -################################################################################ -# Generate a unique agent name. -################################################################################ -sub generate_agent_name { - return sha256(join('|', ($Conf{'agent_alias'}, $Conf{server_ip}, time(), sprintf("%04d", rand(10000))))); -} - -################################################################################ -# Set the value of a token in the configuration file. If the token does not -# exist, it is appended to the end of the file. -################################################################################ -sub config_update ($$) { - my ($token, $value) = @_; - - # Read the original configuration file. - open(my $fh, '<', "$ConfDir/$ConfFile") or die($!); - my @lines = <$fh>; - close ($fh); - - # Set the new value for the configuration token. - my $found = 0; - for(my $i = 0; $i < $#lines; $i++) { - if ($lines[$i] =~ m/[#\s]*$token/) { - $lines[$i] = "$token $value\n"; - $found = 1; - last; - } - } - - # Append the token to the end if it was not found in the file. - if ($found == 0) { - push(@lines, "$token $value\n"); - } - - # Write the changes to the configuration file. - open($fh, '>', "$ConfDir/$ConfFile") or die($!); - print $fh @lines; - close($fh); -} - -################################################################################ -# Get the eHorus key from the eHorus agent configuration file. -################################################################################ -sub get_ehkey { - my $fh; - - return '' unless defined($Conf{'ehorus_conf'}); - - # Open the eHorus configuration file. - if (!open($fh, '<', $Conf{'ehorus_conf'})) { - # Do not write to the log, since ehorus_conf points to the default eHorus configuration file by default. - return ''; - } - - # Look for the eHorus key. - while (my $line = <$fh>) { - - # Skip comments. - next if ($line =~ m/^\s*#/); - - if ($line =~ m/\s*eh_key\s+(\S+)/) { - my $eh_key = $1; - close($fh); - - return $eh_key; - } - } - - # Not found. - close($fh); - return ''; -} - -################################################################################ -# Main. -################################################################################ - -#Handler TERM signal. -$SIG{'TERM'} = \&kill_signal_handler; - -# Check command line arguments -print_usage unless ($#ARGV == 0); -$ConfDir = fix_directory ($ARGV[0]); -error ("Directory '$ConfDir' does not exist.") unless (-d "$ConfDir"); - -#Pandora home path -$ENV{'PANDORA_HOME'}=$ConfDir; - -# Get user to run as -my $pandora_user = read_config ('pandora_user'); -if (defined ($pandora_user)) { - # Change the EUID - my $pandora_user_uid = getpwnam ($pandora_user); - if (!defined ($pandora_user_uid)) { - error ("Cannot get uid for user $pandora_user. Does the user exist and can we read /etc/passwd?"); - } - $> = $pandora_user_uid; - if ($> != $pandora_user_uid) { - error ("Cannot run as $pandora_user: Insufficient permissions."); - } -} - -# Guess the OS version -$OS_VERSION = guess_os_version ($OS); - -# Start logging -start_log (); -log_message ('log', 'Running as user ' . getpwuid ($>)); - -# Read configuration file -read_config (); - -$ENV{'PANDORA_AGENT'}=$Conf{'agent_name'}; - -# Fix directory names -$Conf{'temporal'} = fix_directory ($Conf{'temporal'}); -error ("Temporal directory '" . $Conf{'temporal'} . "' does not exist.") unless (-d "$Conf{'temporal'}"); -$Conf{'server_path'} = fix_directory ($Conf{'server_path'}); -$Conf{'secondary_server_path'} = fix_directory ($Conf{'secondary_server_path'}); - -# Startup delay -log_message ('log', 'Sleeping for ' . $Conf{'delayed_startup'} . ' seconds.') if ($Conf{'delayed_startup'} > 0); -sleep ($Conf{'delayed_startup'}); - -#Set nice of the pandora_agent -my $PID = $$; -`renice "$Conf{'pandora_nice'}" "$PID"`; - -#Launch tentacle server in proxy mode if configured -if ($Conf{'proxy_mode'}) { - - #Check if user is root - if ($> != 0) { - launch_tentacle_proxy(); - } else { - log_message ('error', 'Proxy mode can not be launched as root'); - exit 1; - } -} - -# Add the plugins directory to the PATH -$ENV{'PATH'} .= ":$ConfDir/plugins"; - -# Start UDP server if configured -if ($Conf{'udp_server'} == 1){ - $udp_server_pid = fork(); - - if ($udp_server_pid == 0){ - $0 = 'udp_server (pandora_agent)'; - udp_server ($Conf{'udp_server_port'}, $Conf{'udp_server_auth_address'}); - exit; - } -} - -# Must be set to 0 if the agent is a broker agent -my $main_agent = -1; - -# base time to start eatch iteration with the same interval. -my $iter_base_time = time(); -$LogFileIdx = -1; -# Loop -while (1) { - if (-e $Conf{'logfile'} && (stat($Conf{'logfile'}))[7] > $Conf{'logsize'}) { - rotate_log(); - } - # Ignore signals from UDP and Tentacle server while processing execution - if ($Conf{'udp_server'} == 1 || $Conf{'proxy_mode'}){ - $SIG{'INT'} = 'DEFAULT'; - } - - # Check for a new configuration - check_remote_config () unless ($Conf{'debug'} eq '1'); - - # Check file collections - check_collections () unless ($Conf{'debug'} eq '1'); - - # Launch broker agents - @BrokerPid = (); - my @broker_agents = read_config ('broker_agent'); - foreach my $broker_agent (@broker_agents) { - - # Create broker conf file if it does not exist - if (! -e "$ConfDir/${broker_agent}.conf") { - write_broker_conf($broker_agent); - } - - $main_agent = fork (); - - # Broker agent - if ($main_agent == 0) { - - # Set the configuration file - $ConfFile = "${broker_agent}.conf"; - - # Log to a new file - stop_log (); - start_log ('quiet'); - - # Read configuration file - %Macros = (); - @Modules = (); - %Collections = (); - %Conf = %DefaultConf; - read_config (); - - $Conf{'agent_alias'} = $broker_agent; - # Check for a new configuration - check_remote_config () unless ($Conf{'debug'} eq '1'); - - # Check file collections - check_collections () unless ($Conf{'debug'} eq '1'); - - # Execute - last; - } else { - push (@BrokerPid, $main_agent); - } - } - - my $address; - - if(defined($Conf{'address'})) { - # Check if address is auto to get the local ip - if ($Conf{'address'} eq 'auto') { - my @address_list; - - if( -x "/bin/ip" || -x "/sbin/ip" || -x "/usr/sbin/ip" ) { - @address_list = `ip addr show 2>$DevNull | sed -e '/127.0.0/d' -e '/[0-9]*\\.[0-9]*\\.[0-9]*/!d' -e 's/^[ \\t]*\\([^ \\t]*\\)[ \\t]*\\([^ \\t]*\\)[ \\t].*/\\2/' -e 's/\\/.*//'`; - } - else { - @address_list = `ifconfig -a 2>$DevNull | sed -e '/127.0.0/d' -e '/[0-9]*\\.[0-9]*\\.[0-9]*/!d' -e 's/^[ \\t]*\\([^ \\t]*\\)[ \\t]*\\([^ \\t]*\\)[ \\t].*/\\2/' -e 's/.*://'`; - } - - for (my $i = 0; $i <= $#address_list; $i++) { - chomp($address_list[$i]); - if ($i > 0) { - $address .= ','; - } - - $address .= $address_list[$i]; - } - } - else { - $address = $Conf{'address'}; - } - } - - # Clear the XML - $Xml = ""; - - # Get the eHorus key. - my $eh_key = get_ehkey(); - - # Custom fields - my @customfieldskeys = keys(%Customfields); - if ($#customfieldskeys > -1 || $eh_key ne '') { - $Xml .= "\n"; - - foreach my $customfieldkey (@customfieldskeys) { - if($customfieldkey =~ m/^(custom_field\d+_)name/) { - if(defined($Customfields{$1."value"})) { - $Xml .= " \n"; - $Xml .= " \n"; - $Xml .= " \n"; - $Xml .= " \n"; - } - } - } - - # Add the eHorus key as a custom field. - if ($eh_key ne '') { - $Xml .= " \n"; - $Xml .= " eHorusID\n"; - $Xml .= " \n"; - $Xml .= " \n"; - } - - $Xml .= "\n"; - } - - # Execute modules - foreach my $module (@Modules) { - - # Execute the module in a separate thread - if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1) { - $ThreadSem->down (); - my $thr = threads->create (\&exec_module, $module); - if (! defined ($thr)) { - $ThreadSem->up (); - } else { - $thr->detach(); - } - # Execute the module - } else { - exec_module($module); - } - } - - # Wait for all the threads - $ThreadSem->down ($Conf{'agent_threads'}) if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1); - $ThreadSem->up ($Conf{'agent_threads'}) if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1); - - if ($Xml ne "" || $Conf{'timestamp'} + $Conf{'interval'} <= time ()) { - - # Update the time reference - $Conf{'timestamp'} = time () if ($Conf{'timestamp'} + $Conf{'interval'} <= time ()); - - # Compose the XML - my $xml_header = "\n" . - ""; - - # Save XML data file - my $temp_file = $Conf{'temporal'} . '/' . $Conf{'agent_name'} . '.' . time () . '.data'; - error ("File '$temp_file' already exists as a symlink and could not be removed: $!") if (-l $temp_file && !unlink($temp_file)); - open (TEMP_FILE, "> $temp_file") || error ("Could not write XML data file: $!"); - print TEMP_FILE $Xml; - close (TEMP_FILE); - - # Debug mode - if ($Conf{'debug'} eq '1') { - log_message ('debug', "Wrote XML data file '$temp_file'"); - log_message ('debug', "Wrote XML data file '$temp_file'", *STDOUT); - } - - # Send the XML data file - my $rc = send_file ($temp_file, 1); - if ($rc == 0 || $Conf{'xml_buffer'} == 0 || temporal_freedisk () < $Conf{'temporal_min_size'}) { - if ($Conf{'debug'} eq '1') { - rename $temp_file, $temp_file . "sent"; - } else { - unlink ($temp_file); - } - } - - # Send buffered XML data files - if ($Conf{'xml_buffer'} == 1) { - send_buffered_xml_files (); - } - } - - # Enable signal capture to break the Sleep interval on UDP signal - if ($Conf{'udp_server'} == 1) { - $SIG{'INT'} = \&udp_server_signal; - } - - # Sleep if main agent - if ($main_agent != 0) { - foreach my $broker_pid (@BrokerPid) { - waitpid ($broker_pid, 0); - } - - # Cron mode - last if ($Conf{'cron_mode'} == 1); - - $iter_base_time += $Conf{'intensive_interval'}; - my $now = time(); - - my $interval_remain = $iter_base_time - $now; - - if ($interval_remain >= 0) { - sleep ($interval_remain); - } else { - # don't sleep if iteraion took more than "intensive_interval" seconds - $iter_base_time = $now; # use current time as base time - } - } - # Finish if broker agent - else { - exit (0); - } -} - -__END__ - -=head1 EXIT STATUS - -=over - -=item 0 on Success - -=item 1 on Error - -=back - -=head1 CONFIGURATION - -By default pandora_agent uses F as B. There is the F file with all the configuration of the agent. - -=head1 DEPENDENCIES - - -=head1 LICENSE - -This is released under the GNU Lesser General Public License. - -=head1 SEE ALSO - - -=head1 COPYRIGHT - -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L - -=cut diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 18322ee1fc..44412eb00c 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -2,8 +2,8 @@ #Pandora FMS Linux Agent # %define name pandorafms_agent_unix -%define version 7.0NG.716 -%define release 171204 +%define version 7.0NG.718 +%define release 180131 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.redhat.spec.orig b/pandora_agents/unix/pandora_agent.redhat.spec.orig deleted file mode 100644 index 1c9bc88435..0000000000 --- a/pandora_agents/unix/pandora_agent.redhat.spec.orig +++ /dev/null @@ -1,145 +0,0 @@ -# -#Pandora FMS Linux Agent -# -%define name pandorafms_agent_unix -%define version 7.0NG -<<<<<<< HEAD -%define release 170406 -======= -%define release 170418 ->>>>>>> develop - -Summary: Pandora FMS Linux agent, PERL version -Name: %{name} -Version: %{version} -Release: %{release} -License: GPL -Vendor: ArticaST -Source0: %{name}-%{version}.tar.gz -URL: http://pandorafms.org -Group: System/Monitoring -Packager: Sancho Lerena -Prefix: /usr/share -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -BuildArch: noarch -Requires(pre): shadow-utils -Requires(post): chkconfig /bin/ln -Requires(preun): chkconfig /bin/rm /usr/sbin/userdel -Requires: fileutils textutils unzip -Requires: util-linux procps grep -Requires: /sbin/ip /bin/awk -Requires: perl perl(Sys::Syslog) perl(IO::Socket::SSL) -# Required by plugins -#Requires: sh-utils sed passwd net-tools rpm -AutoReq: 0 -Provides: %{name}-%{version} - -%description -Pandora FMS agent for unix. Pandora FMS is an OpenSource full-featured monitoring software. - -%prep -rm -rf $RPM_BUILD_ROOT - -%setup -q -n unix - -%build - -%install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT%{prefix}/pandora_agent/ -mkdir -p $RPM_BUILD_ROOT/usr/bin/ -mkdir -p $RPM_BUILD_ROOT/usr/sbin/ -mkdir -p $RPM_BUILD_ROOT/etc/pandora/ -mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d/ -mkdir -p $RPM_BUILD_ROOT/var/log/pandora/ -mkdir -p $RPM_BUILD_ROOT/usr/share/man/man1/ -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ -cp -aRf * $RPM_BUILD_ROOT%{prefix}/pandora_agent/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/tentacle_client $RPM_BUILD_ROOT/usr/bin/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent $RPM_BUILD_ROOT/usr/bin/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent_exec $RPM_BUILD_ROOT/usr/bin/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent_daemon $RPM_BUILD_ROOT/etc/rc.d/init.d/pandora_agent_daemon -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/man/man1/pandora_agent.1.gz $RPM_BUILD_ROOT/usr/share/man/man1/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/man/man1/tentacle_client.1.gz $RPM_BUILD_ROOT/usr/share/man/man1/ - -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/Linux/pandora_agent.conf $RPM_BUILD_ROOT/usr/share/pandora_agent/pandora_agent.conf.rpmnew - -install -m 0644 pandora_agent_logrotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/pandora_agent - -if [ -f $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent.spec ] ; then - rm $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent.spec -fi - -%clean -rm -Rf $RPM_BUILD_ROOT - -%pre -getent passwd pandora >/dev/null || \ - /usr/sbin/useradd -d %{prefix}/pandora -s /bin/false -M -g 0 pandora -exit 0 -chown pandora:root /var/log/pandora - -%post -if [ ! -d /etc/pandora ] ; then - mkdir -p /etc/pandora -fi - -if [ ! -f /usr/share/pandora_agent/pandora_agent.conf ] ; then - cp /usr/share/pandora_agent/pandora_agent.conf.rpmnew /usr/share/pandora_agent/pandora_agent.conf -fi - -if [ ! -f /etc/pandora/pandora_agent.conf ] ; then - ln -s /usr/share/pandora_agent/pandora_agent.conf /etc/pandora/pandora_agent.conf -else - ln -s /usr/share/pandora_agent/pandora_agent.conf.rpmnew /etc/pandora/pandora_agent.conf.rpmnew -fi - -if [ ! -e /etc/pandora/plugins ]; then - ln -s /usr/share/pandora_agent/plugins /etc/pandora -fi - -if [ ! -e /etc/pandora/collections ]; then - ln -s /usr/share/pandora_agent/collections /etc/pandora -fi - -mkdir -p /var/spool/pandora/data_out -if [ ! -d /var/log/pandora ]; then - mkdir -p /var/log/pandora -fi -/sbin/chkconfig --add pandora_agent_daemon -/sbin/chkconfig pandora_agent_daemon on - -%preun - -# Upgrading -if [ "$1" = "1" ]; then - exit 0 -fi - -/sbin/chkconfig --del pandora_agent_daemon -/etc/rc.d/init.d/pandora_agent_daemon stop >/dev/null 2>&1 || : - -# Remove symbolic links -pushd /etc/pandora -for f in pandora_agent.conf plugins collections -do - [ -L $f ] && rm -f $f -done -exit 0 - -%files -%defattr(750,root,root) -/usr/bin/pandora_agent - -%defattr(755,pandora,root) -%{prefix}/pandora_agent - -%defattr(755,root,root) -/usr/bin/pandora_agent_exec -/usr/bin/tentacle_client -/etc/rc.d/init.d/pandora_agent_daemon - -%defattr(644,root,root) -/usr/share/man/man1/pandora_agent.1.gz -/usr/share/man/man1/tentacle_client.1.gz -%config(noreplace) %{_sysconfdir}/logrotate.d/pandora_agent diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 1b7a6adf9b..c0e75c3639 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -2,8 +2,8 @@ #Pandora FMS Linux Agent # %define name pandorafms_agent_unix -%define version 7.0NG.716 -%define release 171204 +%define version 7.0NG.718 +%define release 180131 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec.orig b/pandora_agents/unix/pandora_agent.spec.orig deleted file mode 100644 index 9fa4f46e9d..0000000000 --- a/pandora_agents/unix/pandora_agent.spec.orig +++ /dev/null @@ -1,142 +0,0 @@ -# -#Pandora FMS Linux Agent -# -%define name pandorafms_agent_unix -%define version 7.0NG -<<<<<<< HEAD -%define release 170406 -======= -%define release 170418 ->>>>>>> develop - -Summary: Pandora FMS Linux agent, PERL version -Name: %{name} -Version: %{version} -Release: %{release} -License: GPL -Vendor: ArticaST -Source0: %{name}-%{version}.tar.gz -URL: http://pandorafms.org -Group: System/Monitoring -Packager: Sancho Lerena -Prefix: /usr/share -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -BuildArch: noarch -PreReq: %fillup_prereq %insserv_prereq /usr/bin/sed /usr/bin/grep /usr/sbin/useradd -Requires: coreutils unzip perl -AutoReq: 0 -Provides: %{name}-%{version} - -%description -Pandora FMS agent for unix. Pandora FMS is an OpenSource full-featured monitoring software. - -%prep -rm -rf $RPM_BUILD_ROOT - -%setup -q -n unix - -%build - -%install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT%{prefix}/pandora_agent/ -mkdir -p $RPM_BUILD_ROOT/usr/bin/ -mkdir -p $RPM_BUILD_ROOT/usr/sbin/ -mkdir -p $RPM_BUILD_ROOT/etc/pandora/ -mkdir -p $RPM_BUILD_ROOT/etc/init.d/ -mkdir -p $RPM_BUILD_ROOT/var/log/pandora/ -mkdir -p $RPM_BUILD_ROOT/usr/share/man/man1/ -cp -aRf * $RPM_BUILD_ROOT%{prefix}/pandora_agent/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/tentacle_client $RPM_BUILD_ROOT/usr/bin/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent $RPM_BUILD_ROOT/usr/bin/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent_exec $RPM_BUILD_ROOT/usr/bin/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent_daemon $RPM_BUILD_ROOT/etc/init.d/pandora_agent_daemon -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent_daemon $RPM_BUILD_ROOT/etc/init.d/pandora_agent_daemon -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/man/man1/pandora_agent.1.gz $RPM_BUILD_ROOT/usr/share/man/man1/ -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/man/man1/tentacle_client.1.gz $RPM_BUILD_ROOT/usr/share/man/man1/ - -cp -aRf $RPM_BUILD_ROOT%{prefix}/pandora_agent/Linux/pandora_agent.conf $RPM_BUILD_ROOT/usr/share/pandora_agent/pandora_agent.conf.rpmnew - -#if [ -f $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent.spec ] ; then -# rm $RPM_BUILD_ROOT%{prefix}/pandora_agent/pandora_agent.spec -#fi - -%clean -rm -Rf $RPM_BUILD_ROOT - -%pre -if [ "`id pandora | grep uid | wc -l`" = 0 ] -then - /usr/sbin/useradd -d %{prefix}/pandora -s /bin/false -M -g 0 pandora -fi - -%post -chown pandora:root /var/log/pandora -if [ ! -d /etc/pandora ] ; then - mkdir -p /etc/pandora -fi - -if [ ! -f /usr/share/pandora_agent/pandora_agent.conf ] ; then - cp /usr/share/pandora_agent/pandora_agent.conf.rpmnew /usr/share/pandora_agent/pandora_agent.conf -fi - -if [ ! -f /etc/pandora/pandora_agent.conf ] ; then - ln -s /usr/share/pandora_agent/pandora_agent.conf /etc/pandora/pandora_agent.conf -else - ln -s /usr/share/pandora_agent/pandora_agent.conf.rpmnew /etc/pandora/pandora_agent.conf.rpmnew -fi - -if [ ! -e /etc/pandora/plugins ]; then - ln -s /usr/share/pandora_agent/plugins /etc/pandora -fi - -if [ ! -e /etc/pandora/collections ]; then - ln -s /usr/share/pandora_agent/collections /etc/pandora -fi -cp -aRf /usr/share/pandora_agent/pandora_agent_logrotate /etc/logrotate.d/pandora_agent - -mkdir -p /var/spool/pandora/data_out -chkconfig pandora_agent_daemon on - -%preun - -# Upgrading -if [ "$1" = "1" ]; then - exit 0 -fi - -chkconfig --del pandora_agent_daemon -/etc/init.d/pandora_agent_daemon stop -rm /etc/init.d/pandora_agent_daemon -/usr/sbin/userdel pandora -rm -Rf /etc/pandora/pandora_agent.conf -rm -Rf /var/log/pandora/pandora_agent* 2> /dev/null -rm -Rf /usr/share/pandora_agent -rm -Rf /usr/share/man/man1/pandora_agent.1.gz -rm -Rf /usr/share/man/man1/tentacle_client.1.gz -exit 0 - -%postun - -# Upgrading -if [ "$1" = "1" ]; then - exit 0 -fi - -rm -Rf /etc/logrotate.d/pandora_agent - -%files -%defattr(750,pandora,root) -/usr/bin/pandora_agent -/usr/bin/pandora_agent_exec - -%defattr(755,pandora,root) -/usr/bin/tentacle_client -/etc/init.d/pandora_agent_daemon -%docdir %{prefix}/pandora_agents/docs -%{prefix}/pandora_agent - -%defattr(644,pandora,root) -/usr/share/man/man1/pandora_agent.1.gz -/usr/share/man/man1/tentacle_client.1.gz - diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index c9b3e7f487..65a0d45d80 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -9,8 +9,8 @@ # Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license. # ********************************************************************** -PI_VERSION="7.0NG.716" -PI_BUILD="171204" +PI_VERSION="7.0NG.718" +PI_BUILD="180131" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/unix/pandora_agent_installer.orig b/pandora_agents/unix/pandora_agent_installer.orig deleted file mode 100755 index 580adf06dc..0000000000 --- a/pandora_agents/unix/pandora_agent_installer.orig +++ /dev/null @@ -1,557 +0,0 @@ -#!/bin/sh - -# ********************************************************************** -# Pandora FMS Agent Installer for Unix (generic installer) -# (c) 2008-2015 Artica ST -# (c) 2008-2010 Sancho Lerena -# -# This is a generic installer for all Unix-like systems.(AIX, HP-UX, SunOS, Linux, FreeBSD, NetBSD) -# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license. -# ********************************************************************** - -PI_VERSION="7.0NG" -<<<<<<< HEAD -PI_BUILD="170406" -======= -PI_BUILD="170418" ->>>>>>> develop -OS_NAME=`uname -s` - -FORCE=0 -LOG_TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"` - -PREFIX=/usr -if [ "$OS_NAME" = "FreeBSD" ] || [ "$OS_NAME" = "NetBSD" ] -then - PREFIX=/usr/local -fi -PANDORA_HOME=$PREFIX/share/pandora_agent -PANDORA_BIN=$PREFIX/bin/pandora_agent -PANDORA_EXEC_BIN=$PREFIX/bin/pandora_agent_exec -PANDORA_REVENT_BIN=$PREFIX/bin/pandora_revent -PANDORA_TEMP=/var/spool/pandora -PANDORA_CFG=/etc/pandora -PANDORA_LOG_DIR=/var/log/pandora -PANDORA_LOG=pandora_agent.log -TENTACLE=$PREFIX/bin/tentacle_client -TENTACLE_SERVER=$PREFIX/bin/tentacle_server -PANDORA_MAN=$PREFIX/share/man -PANDORA_STARTUP=/etc/init.d/pandora_agent_daemon -DAEMON_SCRIPT=pandora_agent_daemon -PANDORA_USER="root" -PANDORA_PERL_PATH="perl" -WITHOUT_TENTACLE_SERVER=0 -FAKEROOT=0 - -# defaults for each platforms -case $OS_NAME in -AIX) - PANDORA_STARTUP=/etc/rc.pandora_agent_daemon - ;; -HP-UX) - PANDORA_STARTUP=/sbin/init.d/pandora_agent_daemon - ;; -FreeBSD) - PANDORA_CFG=$PREFIX/etc/pandora - PANDORA_MAN=$PREFIX/man - PANDORA_STARTUP=$PREFIX/etc/rc.d/pandora_agent - DAEMON_SCRIPT=$OS_NAME/pandora_agent - PANDORA_PERL_PATH=/usr/local/bin/perl - ;; -NetBSD) - PANDORA_CFG=/usr/local/etc/pandora - PANDORA_STARTUP=/etc/rc.d/pandora_agent - DAEMON_SCRIPT=$OS_NAME/pandora_agent - PANDORA_PERL_PATH=/usr/pkg/bin/perl - ;; -esac - -MODE=$1 - -# options -while : -do - case "$2" in - "--no-tentacle-server") WITHOUT_TENTACLE_SERVER=1;; - "--fakeroot") FAKEROOT=1;; - *) break;; - esac - shift -done - -PANDORA_BASE=`echo $2 | sed -e 's|/$||'` -if [ "$3" != "" ] -then - PANDORA_USER=$3 - if [ -z "$PANDORA_BASE" ] - then - echo "When specifying a custom user the agent must be installed to a custom location where that user has write permissions!" - exit 1 - fi -fi - -[ "$4" ] && PANDORA_PERL_PATH=$4 - -# Check for Perl 5.6.x or higher available -PERL_VERSION=`$PANDORA_PERL_PATH -v | egrep 'v5.[6-9]|v5.[12][0-9]' | grep perl` - -if [ -z "$PERL_VERSION" ] -then - echo "Perl 5.6.x or higher is not detected. This is required for Pandora FMS" - echo "Detected: $PERL_VERSION " - echo "Aborting install..." - exit 2 -fi - -if [ -z "`echo Linux HP-UX SunOS AIX Solaris Darwin BSD bsd FreeBSD NetBSD | grep \"$OS_NAME\"`" ] -then - echo "This system: '$OS_NAME' is not supported by this script" - echo "Please make the install yourself as it's described in documentation" - exit 1 -fi - - -# check for root to do the install -if [ $FAKEROOT -ne 1 ] && [ -z "`id | grep \"uid=0(root)\"`" ] -then - echo "You need to be root to do the install. Please made a manual install" - echo "if you want to install Pandora FMS agent without root" - echo " " - echo "Aborting install" - exit 2 -fi - -help () { - echo "Syntax": - echo " " - echo " ./pandora_agent_installer < --mode > [ --option ] [ destination_path ] [ user_to_run_as ] [custom_perl_path]" - echo " " - echo "Modes:" - echo " " - echo " --force-install To force installation if already installed on system" - echo " --install To install Pandora FMS Agent on this system" - echo " --uninstall To uninstall/remove Pandora FMS Agent on this System" - echo " " - echo "Option:" - echo " " - echo " --no-tentacle-server Skip tentacle server installation (by default tentalce server installed)" - echo " --fakeroot treate \"destination_path\" as root directory" - echo " " - echo "Some exaples of how to use the installer:" - echo " " - echo " ./pandora_agent_installer --install" - echo " ./pandora_agent_installer --install /opt/pandora" - echo " ./pandora_agent_installer --install \"\" pandora" - echo " ./pandora_agent_installer --install /opt/pandora root /opt/pandora/perl5/usr/local/bin/perl" - echo " ./pandora_agent_installer --uninstall /opt/pandora" - echo " " -} - -uninstall () { - if [ "$OS_NAME" = "Darwin" ] - then - launchctl remove com.pandorafms.pandorafms - rm /Library/LaunchDaemons/com.pandorafms.pandorafms.plist 2> /dev/null - fi - - echo "Removing Pandora FMS Agent..." - rm -Rf $PANDORA_BASE$PANDORA_BIN 2> /dev/null - rm -Rf $PANDORA_BASE$PANDORA_EXEC_BIN 2> /dev/null - rm -Rf $PANDORA_BASE$PANDORA_REVENT_BIN 2> /dev/null - rm -f $DESTDIR/etc/logrotate.d/pandora_agent - - #Test if exist Pandora Server in this machine - if [ -d $PANDORA_BASE$PANDORA_TEMP/data_in ] - then - echo "You have a Pandora Server in this machine. Then don't delete "$PANDORA_TEMP - rm -Rf $PANDORA_BASE$PANDORA_TEMP/data_out 2> /dev/null - else - rm -Rf $PANDORA_BASE$PANDORA_TEMP 2> /dev/null - rm -Rf $PANDORA_BASE$TENTACLE_SERVER 2> /dev/null - fi - rm -Rf $PANDORA_BASE$PANDORA_CFG/pandora_agent.conf 2> /dev/null - - rm -Rf $PANDORA_BASE/etc/init.d/pandora_agent_daemon 2> /dev/null - rm -Rf $PANDORA_BASE/sbin/init.d/pandora_agent_daemon 2> /dev/null - rm -Rf $PANDORA_BASE/etc/rc.pandora_agent_daemon 2> /dev/null - rm -Rf $PANDORA_BASE/etc/rc?.d/S90pandora_agent_daemon 2> /dev/null - rm -Rf $PANDORA_BASE/sbin/rc?.d/S90pandora_agent_daemon 2> /dev/null - rm -Rf $PANDORA_BASE/etc/rc?.d/S90pandora_agent 2> /dev/null - rm -Rf $PANDORA_BASE/sbin/rc?.d/S90pandora_agent 2> /dev/null - rm -Rf $PANDORA_BASE/etc/rc.d/rc?.d/S90pandora_agent_daemon 2> /dev/null - rm -Rf $PANDORA_BASE/etc/rc.d/rc?.d/S90pandora_agent 2> /dev/null - rm -Rf $PANDORA_BASE/usr/local/etc/rc.d/pandora_agent 2> /dev/null - if [ $FAKEROOT -ne 1 ] - then - rm -Rf /etc/init.d/pandora_agent_daemon 2> /dev/null - rm -Rf /sbin/init.d/pandora_agent_daemon 2> /dev/null - rm -Rf /etc/rc.pandora_agent_daemon 2> /dev/null - rm -Rf /etc/rc?.d/S90pandora_agent_daemon 2> /dev/null - rm -Rf /sbin/rc?.d/S90pandora_agent_daemon 2> /dev/null - rm -Rf /etc/rc?.d/S90pandora_agent 2> /dev/null - rm -Rf /sbin/rc?.d/S90pandora_agent 2> /dev/null - rm -Rf /etc/rc.d/rc?.d/S90pandora_agent_daemon 2> /dev/null - rm -Rf /etc/rc.d/rc?.d/S90pandora_agent 2> /dev/null - rm -Rf /usr/local/etc/rc.d/pandora_agent 2> /dev/null - fi - - rm -Rf $PANDORA_BASE$PANDORA_HOME 2> /dev/null - rm -Rf $PANDORA_BASE$PANDORA_LOG_DIR/$PANDORA_LOG 2> /dev/null - rm -Rf $PANDORA_BASE$TENTACLE 2> /dev/null - - rm -Rf $PANDORA_BASE$PANDORA_MAN/{man1,cat1}/tentacle_client.1.gz 2> /dev/null - rm -Rf $PANDORA_BASE$PANDORA_MAN/{man1,cat1}/pandora_agent.1.gz 2> /dev/null - - # Skip delete of /etc/pandora if exists configuration of a server or satellite - if [ ! -f $PANDORA_BASE/$PANDORA_CFG/pandora_server.conf -a ! -f $PANDORA_BASE/$PANDORA_CFG/satellite_server.conf ] - then - rm -Rf $PANDORA_BASE/$PANDORA_CFG 2> /dev/null - fi - - if [ ! -z "$PANDORA_BASE" ] - then - echo "Please delete manually $PANDORA_BASE for complete uninstall" - fi - - echo " " - echo "Done" -} - -# -# install_perl_script [OPTIONS] SRCFILE DESTFILE -# Install perl script. If PANDORA_PERL_DECODED_PATH is set, path of the perl -# in shebang line is replaced with PANDORA_PERL_DECODED_PATH value. -# OPTIONS: -# -o OWNER owner of the installed script -# -g GROUP group of the installed script -# -m PREM mode of the installed script -# -install_perl_script () { - OWNER=""; GROUP=""; PERM="" - while : - do - case $1 in - -o) OWNER=$2;; - -g) GROUP=$2;; - -m) PERM=$2;; - *) break;; - esac - shift;shift - done - SRC="$1" - DEST="$2" - - # do install - if echo $PANDORA_PERL_PATH | grep "/" > /dev/null && [ "$PANDORA_PERL_PATH" != "/usr/bin/perl" ] - then - sed -e "s:^#\!.*:#\!$PANDORA_PERL_PATH:g" $SRC > $DEST - else - cp $SRC $DEST - fi - - # set owner, group and permissions - [ "$OWNER" ] && chown $OWNER $DEST 2>/dev/null - [ "$GROUP" ] && chgrp $GROUP $DEST 2>/dev/null - [ "$PERM" ] && chmod $PERM $DEST -} - -install () { - OS_VERSION=`uname -r` - OLDFILENAMETMP=`date +"%Y-%m-%d"` - - echo "Detecting Unix distribution: $OS_NAME version $OS_VERSION" - if [ -f $PANDORA_BASE$PANDORA_HOME ] && [ "$FORCE" = "0" ] - then - echo "Seems that default dir already exists. Please use --force-install to" - echo "force installer to install on $PANDORA_BASE$PANDORA_HOME" - exit - else - echo "Checking default dir $PANDORA_BASE$PANDORA_HOME..." - fi - - if [ -f $PANDORA_BASE$PANDORA_BIN ] && [ "$FORCE" = "0" ] - then - echo "Seems that $PANDORA_BASE$PANDORA_BIN already exists. Please use --force-install to" - echo "force installer to reinstall overwriting it" - echo " " - exit - else - echo "Checking Pandora FMS Agent on $PANDORA_BASE$PANDORA_BIN...." - fi - - # Alter dynamically the daemon launcher and setup the new path - # if PANDORA_BASE is customized. - if [ "$PANDORA_BASE" ] && [ $FAKEROOT -ne 1 ] - then - DAEMON_TEMP=pandora_agent_daemon_temp - - # Backup the daemon script - cp -f "$DAEMON_SCRIPT" "${DAEMON_SCRIPT}.bak" - - AGENT_CFG=$OS_NAME/pandora_agent.conf - AGENT_CFG_TEMP=$OS_NAME/pandora_agent.conf.temp - - # Backup the configuration file - cp -f "$AGENT_CFG" "${AGENT_CFG}.bak" - - if [ "$OS_NAME" = "FreeBSD" ] || [ "$OS_NAME" = "NetBSD" ] - then - sed -e "\|^PATH=|s|=|=$PANDORA_BASE$PREFIX/bin:|" \ - -e "s|/usr/local/etc/pandora|$PANDORA_BASE$PANDORA_CFG|g" \ - -e "s|/usr/local/bin/pandora_agent|$PANDORA_BASE$PANDORA_BIN|g" \ - $DAEMON_SCRIPT > $DAEMON_TEMP - mv $DAEMON_TEMP $DAEMON_SCRIPT - else - sed -e "\|^PATH=|s|=|=$PANDORA_BASE/usr/bin:|" \ - -e "\|^PANDORA_PATH=|s|=|=$PANDORA_BASE|" \ - -e "\|^LOGFILE=|s|=|=$PANDORA_BASE|" \ - -e "\|^DAEMON=|s|=|=$PANDORA_BASE|" \ - -e "\|^DAEMON_TENTACLE=|s|=|=$PANDORA_BASE|" \ - -e "s/^PANDORA_USER=.*/PANDORA_USER=$PANDORA_USER/" \ - $DAEMON_SCRIPT > $DAEMON_TEMP - mv $DAEMON_TEMP $DAEMON_SCRIPT - fi - - sed -e "s|^temporal[ \t][ \t]*|temporal $PANDORA_BASE|" \ - -e "s|^logfile[ \t][ \t]*|logfile $PANDORA_BASE|" \ - $AGENT_CFG > $AGENT_CFG_TEMP - mv $AGENT_CFG_TEMP $AGENT_CFG - fi - echo "Creating Pandora FMS Agent home directory at $PANDORA_BASE$PANDORA_HOME" - if [ "$PANDORA_BASE" ] - then - mkdir -p $PANDORA_BASE 2> /dev/null - mkdir -p $PANDORA_BASE/var/log 2> /dev/null - mkdir -p $PANDORA_BASE/$PANDORA_MAN/man1 2> /dev/null - mkdir -p $PANDORA_BASE$PREFIX/bin 2> /dev/null - fi - - mkdir -p $PANDORA_BASE$PANDORA_HOME 2> /dev/null - - # Create directories based on PANDORA_BASE - - mkdir -p $PANDORA_BASE/tmp 2> /dev/null - mkdir -p $PANDORA_BASE$PANDORA_TEMP/data_out 2> /dev/null - mkdir -p $PANDORA_BASE$PANDORA_CFG 2> /dev/null - mkdir -p $PANDORA_BASE$PANDORA_LOG_DIR 2> /dev/null - - # Set the user the agent will run as - if [ "$PANDORA_USER" != "root" ] - then - sed -e "s/.*pandora_user .*/pandora_user $PANDORA_USER/" $AGENT_CFG > $AGENT_CFG_TEMP 2> /dev/null && \ - mv $AGENT_CFG_TEMP $AGENT_CFG - chmod 755 pandora_agent_daemon - chown -R $PANDORA_USER $PANDORA_BASE 2>/dev/null - fi - - # Create logfile - if [ ! -z "`touch $PANDORA_BASE$PANDORA_LOG_DIR/$PANDORA_LOG`" ] - then - echo "Seems to be a problem generating logfile ($PANDORA_BASE$PANDORA_LOG_DIR/$PANDORA_LOG) please check it"; - else - echo "Created logfile at $PANDORA_BASE$PANDORA_LOG_DIR/$PANDORA_LOG..." - fi - echo "$LOG_TIMESTAMP Pandora FMS installer has created this file at startup" > $PANDORA_BASE$PANDORA_LOG_DIR/$PANDORA_LOG - - # Copying agent and securing it - echo "Copying Pandora FMS Agent to $PANDORA_BASE$PANDORA_BIN..." - install_perl_script -m 755 -o $PANDORA_USER -g 0 pandora_agent $PANDORA_BASE$PANDORA_BIN - install_perl_script -m 755 -o $PANDORA_USER -g 0 pandora_agent_exec $PANDORA_BASE$PANDORA_EXEC_BIN - install_perl_script -m 755 -o $PANDORA_USER -g 0 pandora_revent $PANDORA_BASE$PANDORA_REVENT_BIN - - echo "Copying Pandora FMS Agent configuration file to $PANDORA_BASE$PANDORA_CFG/pandora_agent.conf..." - if [ -f $PANDORA_BASE/$PANDORA_CFG/pandora_agent.conf ] - then - cp $PANDORA_BASE/$PANDORA_CFG/pandora_agent.conf $PANDORA_BASE/$PANDORA_CFG/pandora_agent.conf.$OLDFILENAMETMP - echo "Backing up old configuration file to $PANDORA_BASE/$PANDORA_CFG/pandora_agent.conf.$OLDFILENAMETMP" - fi - - echo "Copying Pandora FMS Agent plugins to $PANDORA_BASE$PANDORA_HOME/plugins..." - - [ -d $PANDORA_BASE$PANDORA_HOME/plugins ] || mkdir -p $PANDORA_BASE$PANDORA_HOME/plugins >/dev/null 2>&1 - for PLUGIN in plugins/* - do - if grep '^#!.*/perl' $PLUGIN >/dev/null 2>&1 - then - install_perl_script $PLUGIN $PANDORA_BASE$PANDORA_HOME/$PLUGIN - else - cp $PLUGIN $PANDORA_BASE$PANDORA_HOME/plugins - fi - done - chmod -R 700 $PANDORA_BASE$PANDORA_HOME/plugins - - PANDORA_BASE_REAL="$PANDORA_BASE" - [ $FAKEROOT -eq 1 ] && PANDORA_BASE_REAL="" - - ln -s $PANDORA_BASE_REAL$PANDORA_HOME/plugins $PANDORA_BASE$PANDORA_CFG - - echo "Copying Pandora FMS Agent collections to $PANDORA_BASE$PANDORA_HOME/collections..." - cp -r collections $PANDORA_BASE$PANDORA_HOME - chmod -R 700 $PANDORA_BASE$PANDORA_HOME/collections - ln -s $PANDORA_BASE_REAL$PANDORA_HOME/collections $PANDORA_BASE$PANDORA_CFG - - if [ $WITHOUT_TENTACLE_SERVER -eq 0 ] - then - echo "Copying tentacle server to $PANDORA_BASE$TENTACLE_SERVER" - install_perl_script -m 755 -o $PANDORA_USER -g 0 tentacle_server $PANDORA_BASE$TENTACLE_SERVER - fi - - echo "Copying tentacle client to $PANDORA_BASE$TENTACLE" - install_perl_script -m 755 -o $PANDORA_USER -g 0 tentacle_client $PANDORA_BASE$TENTACLE - - echo "Installing the Pandora Agent and Tentacle Client manuals" - cp man/man1/tentacle_client.1.gz $PANDORA_BASE/$PANDORA_MAN/man1 - chmod 644 $PANDORA_BASE/$PANDORA_MAN/man1/tentacle_client.1.gz - cp man/man1/pandora_agent.1.gz $PANDORA_BASE/$PANDORA_MAN/man1 - chmod 644 $PANDORA_BASE/$PANDORA_MAN/man1/pandora_agent.1.gz - - echo "Setting secure permissions and ownership for all Pandora FMS Agent files..." - chown -R $PANDORA_USER $PANDORA_BASE$PANDORA_HOME 2>/dev/null - chmod -R 700 $PANDORA_BASE$PANDORA_TEMP/data_out - chmod 711 $PANDORA_BASE$PANDORA_LOG_DIR - chmod 640 $PANDORA_BASE$PANDORA_LOG_DIR/$PANDORA_LOG - chown $PANDORA_USER:0 $PANDORA_BASE$PANDORA_LOG_DIR/$PANDORA_LOG 2>/dev/null - if [ "$OS_NAME" = "FreeBSD" ] || [ "$OS_NAME" = "NetBSD" ] - then - chown $PANDORA_USER:daemon $PANDORA_BASE$PANDORA_TEMP 2>/dev/null - chmod -R 770 $PANDORA_BASE$PANDORA_TEMP - chmod 775 $PANDORA_BASE$PANDORA_TEMP - fi - - echo "Copying default agent configuration to $PANDORA_BASE$PANDORA_CFG/pandora_agent.conf" - - cp $OS_NAME/pandora_agent.conf $PANDORA_BASE$PANDORA_CFG/pandora_agent.conf - chmod 600 $PANDORA_BASE$PANDORA_CFG/pandora_agent.conf - chown $PANDORA_USER $PANDORA_BASE$PANDORA_CFG/pandora_agent.conf 2>/dev/null - - echo "Linking start-up daemon script '$DAEMON_SCRIPT' on $OS_NAME"; - - if [ "$OS_NAME" = "Darwin" ] - then - # Specific service install on Darwin/macOSX - launchctl load -F Darwin/com.pandorafms.pandorafms.plist - echo "Start Pandora FMS service with 'launchctl start com.pandorafms.pandorafms'" - echo "This service has been scheduled to launch on each system startup" - else - DESTDIR="" - [ "$PANDORA_BASE" ] && [ $FAKEROOT -eq 1 ] && DESTDIR=$PANDORA_BASE - - cp $DAEMON_SCRIPT $DESTDIR$PANDORA_STARTUP - chmod 755 $DESTDIR$PANDORA_STARTUP - chown root:0 $DESTDIR$PANDORA_STARTUP 2>/dev/null - - RCDIRS="" - MSG="" - if [ "$OS_NAME" = "AIX" ] - then - RCDIRS=/etc/rc.d/rc2.d - MSG="Pandora FMS agent has been included in $DESTDIR/etc/rc.d/rc2.d/S90pandora_agent_daemon" - elif [ "$OS_NAME" = "HP-UX" ] - then - RCDIRS="/sbin/rc2.d /sbin/rc3.d" - MSG="Pandora FMS agent has been included in $DESTDIR/sbin/rcX.d/S90pandora_agent_daemon" - elif [ "$OS_NAME" = "SunOS" ] - then - RCDIRS=/etc/rc2.d - MSG="Pandora FMS agent has been included in $DESTDIR/etc/rc2.d/S90pandora_agent_daemon" - elif [ "$OS_NAME" = "Linux" ] - then - if [ -d /etc/rc.d/ ] - then - RCDIRS="/etc/rc.d/rc2.d /etc/rc.d/rc3.d" - else - RCDIRS="/etc/rc2.d /etc/rc3.d" - fi - fi - [ "$RCDIRS" ] && for RCDIR in $RCDIRS - do - [ $FAKEROOT -eq 1 ] && [ ! -d $DESTDIR$RCDIR ] && mkdir -p $DESTDIR$RCDIR >/dev/null 2>&1 - ln -s $PANDORA_STARTUP $DESTDIR$RCDIR/S90pandora_agent 2> /dev/null - done - [ "$MSG" ] && echo "$MSG" - fi - - if [ -d /etc/logrotate.d ] - then - [ -d $DESTDIR/etc/logrotate.d ] && mkdir -p $DESTDIR/etc/logrotate.d - echo "Creating logrotate.d entry for Pandora FMS log management" - sed -e "s|^/var/log/pandora/pandora_agent.log|$PANDORA_BASE_REAL$PANDORA_LOG_DIR/$PANDORA_LOG|" pandora_agent_logrotate \ - > $DESTDIR/etc/logrotate.d/pandora_agent - else - echo "Please add a log rotation schedule manually to your log rotation daemon (if any)" - fi - - echo "Done." - echo " " - echo "You have your startup script ready at $PANDORA_STARTUP" - echo " " - echo "Tentacle is the default transfer mode since 2.0 version." - echo " " - echo "If you want to use SSH, firstly you need to copy your public SSH keys " - echo " ($HOME/.ssh/id_dsa) under /home/pandora/.ssh/authorized_keys " - echo "on your Pandora FMS Server host" - echo " " - echo "You may need to install manually some additional required dependencies:" - echo "perl-Sys-Syslog" - echo " " - echo "You also need to setup your $PANDORA_BASE$PANDORA_CFG/pandora_agent.conf config file" - echo " " - if [ "$OS_NAME" = "FreeBSD" ] - then - echo "Define 'pandora_agent_enable=\"YES\"' in /etc/rc.conf to enable the daemon." - elif [ "$OS_NAME" = "NetBSD" ] - then - echo "Define 'pandora_agent=\"YES\"' in /etc/rc.conf to enable the daemon." - else - echo "Check your startup configuration to be sure Pandora FMS Agent is ready " - echo "to start automatically when system restarts": - fi - - # Restore the daemon script - cp -f "$DAEMON_SCRIPT.bak" "$DAEMON_SCRIPT" >/dev/null 2>&1 - rm -f "$DAEMON_SCRIPT.bak" >/dev/null 2>&1 - - # Restore the configuration file - cp -f "$AGENT_CFG.bak" "$AGENT_CFG" >/dev/null 2>&1 - rm -f "$AGENT_CFG.bak" >/dev/null 2>&1 - -} - -if [ ! -f "pandora_agent" ] -then - echo " " - echo "Execute installer from the directory where you have your files. " - help - exit 1 -fi - -# Script banner at start -echo " " -echo "Pandora FMS Agent UNIX Installer $PI_VERSION $PI_BUILD (c) 2008-2015 ArticaST" -echo "This program is licensed under GPL2 Terms. http://pandorafms.com" -echo " " - - -case "$MODE" in - -'--force-install') - FORCE=1 - install - exit - ;; - -'--install') - install - exit - ;; - -'--uninstall') - uninstall - exit - ;; - -*) - help - ;; -esac - diff --git a/pandora_agents/win32/bin/pandora_agent.conf b/pandora_agents/win32/bin/pandora_agent.conf index 5cbf2b0876..3d921af535 100644 --- a/pandora_agents/win32/bin/pandora_agent.conf +++ b/pandora_agents/win32/bin/pandora_agent.conf @@ -1,6 +1,6 @@ # Base config file for Pandora FMS Windows Agent # (c) 2006-2017 Artica Soluciones Tecnologicas -# Version 7.0NG.716 +# Version 7.0NG.718 # This program is Free Software, you can redistribute it and/or modify it # under the terms of the GNU General Public Licence as published by the Free Software diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 2fa8e26884..33624f4878 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -3,7 +3,7 @@ AllowLanguageSelection {Yes} AppName -{Pandora FMS Windows Agent v7.0NG.716} +{Pandora FMS Windows Agent v7.0NG.718} ApplicationID {17E3D2CF-CA02-406B-8A80-9D31C17BD08F} @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{171204} +{180131} ViewReadme {Yes} diff --git a/pandora_agents/win32/installer/pandora.mpi.orig b/pandora_agents/win32/installer/pandora.mpi.orig deleted file mode 100644 index cc5c4e6b56..0000000000 --- a/pandora_agents/win32/installer/pandora.mpi.orig +++ /dev/null @@ -1,3561 +0,0 @@ -array set info { -AllowLanguageSelection -{Yes} - -AppName -{Pandora FMS Windows Agent v7.0NG} - -ApplicationID -{17E3D2CF-CA02-406B-8A80-9D31C17BD08F} - -ApplicationURL -{http://pandorafms.org} - -AutoRefreshFiles -{Yes} - -BuildFailureAction -{Fail (recommended)} - -CancelledInstallAction -{Rollback and Stop} - -CleanupCancelledInstall -{Yes} - -CommandLineFailureAction -{Fail (recommended)} - -Company -{Artica ST http://www.artica.es} - -CompressionLevel -{9} - -CompressionMethod -{zlib} - -Copyright -{2004-2011} - -DefaultDirectoryLocation -{} - -DefaultLanguage -{English} - -DefaultToSystemLanguage -{Yes} - -EnableResponseFiles -{Yes} - -Ext -{.exe} - -ExtractSolidArchivesOnStartup -{No} - -Icon -{logo.png} - -IgnoreDirectories -{} - -IgnoreFiles -{} - -Image -{logo.png} - -IncludeDebugging -{0} - -InstallPassword -{} - -InstallVersion -{7.0.0.0} - -Language,ca -{No} - -Language,cs -{No} - -Language,de -{No} - -Language,en -{Yes} - -Language,es -{Yes} - -Language,fr -{No} - -Language,hu -{No} - -Language,it -{No} - -Language,lt -{No} - -Language,nl -{No} - -Language,pl -{No} - -Language,pt_br -{No} - -Language,ru -{No} - -LastIgnoreDirectories -{} - -LastIgnoreFiles -{} - -PackageDescription -{Pandora FMS Windows Agent} - -PackageLicense -{Gnu Public Licence v2 (GPL2)} - -PackageMaintainer -{Ramon Novoa } - -PackageName -{<%ShortAppName%>} - -PackagePackager -{Raul Mateos , Sancho Lerena , Ramon Novoa } - -PackageRelease -{<%PatchVersion%>} - -PackageSummary -{This is the installer for Pandora FMS agent for all Microsoft Windows platforms } - -PackageVersion -{<%MajorVersion%>.<%MinorVersion%>} - -PreserveFileAttributes -{Yes} - -PreserveFilePermissions -{No} - -ProjectID -{0EA13B96-1BB2-4238-B248-101B4F906C15} - -ProjectVersion -{1.2.15.2} - -SaveOnlyToplevelDirs -{No} - -ScriptExt -{.bat} - -ShortAppName -{Pandora FMS} - -SkipUnusedFileGroups -{No} - -SystemLanguage -{es} - -Theme -{Modern_Wizard} - -ThemeDir -{Modern_Wizard} - -ThemeVersion -{1} - -UpgradeApplicationID -{} - -Version -<<<<<<< HEAD -{170406} -======= -{170418} ->>>>>>> develop - -ViewReadme -{Yes} - -WizardHeight -{365} - -WizardWidth -{500} - -} - -array set ::InstallJammer::InstallCommandLineOptions { -mode -{InstallMode Choice No No {Silent Standard} {Set the mode to run the installer in}} - -prefix -{InstallDir String No No {} {Set the installation directory}} - -} -array set ::InstallJammer::UninstallCommandLineOptions { -debugconsole -{ShowConsole Switch Yes No {} {run uninstaller with a debug console open}} - -mode -{UninstallMode Choice No No {Silent Standard} {set the mode to run the uninstaller in}} - -test -{Testing Switch Yes No {} {run uninstaller without uninstalling any files}} - -} -FileGroup ::946FC43B-0E32-4C38-86EF-4F9252C67E16 -setup Install -active Yes -platforms {Windows MacOS-X FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name {Program Files} -parent FileGroups -File ::7003FDCA-0EDA-4431-93E2-6FEA7E8660D6 -type dir -name ../bin/key -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::B33B08D0-C80C-49CB-9431-44C6B4E7858E -name id_dsa -parent 7003FDCA-0EDA-4431-93E2-6FEA7E8660D6 -File ::7E8B4918-C894-4FCE-98F0-1DDDBF9818F8 -name id_dsa.pub -parent 7003FDCA-0EDA-4431-93E2-6FEA7E8660D6 -File ::D2362133-1FE1-4D75-8607-083C08CFDE94 -name PUT_SSH_KEYS_HERE -parent 7003FDCA-0EDA-4431-93E2-6FEA7E8660D6 -File ::A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -type dir -name .svn -active 0 -parent 7003FDCA-0EDA-4431-93E2-6FEA7E8660D6 -File ::9AF0652D-DF48-17E1-CAC6-C7A95749BF39 -name all-wcprops -active 0 -parent A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -File ::1752E819-4309-7363-EE84-9F995878B58A -name entries -active 0 -parent A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -File ::B2A5618C-97E8-618A-F575-AF5111A86436 -name format -active 0 -parent A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -File ::EC823A02-66E1-E5D0-222D-50EC848E935D -type dir -name prop-base -active 0 -parent A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -File ::CDE9655C-0BB8-862F-BC70-81E68E4E780B -name id_dsa.pub.svn-base -active 0 -parent EC823A02-66E1-E5D0-222D-50EC848E935D -File ::0A68C64D-C7FD-BEAD-710C-15A33BF42394 -name id_dsa.svn-base -active 0 -parent EC823A02-66E1-E5D0-222D-50EC848E935D -File ::412B52E5-5FC9-6C45-AAA8-61E792250F0C -type dir -name props -active 0 -parent A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -File ::AC4C1CD4-E4E5-CED0-C4F8-8F72C3BD5C99 -type dir -name text-base -active 0 -parent A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -File ::69B9D8E8-AA25-F6BA-D556-6601B1679C11 -name id_dsa.pub.svn-base -active 0 -parent AC4C1CD4-E4E5-CED0-C4F8-8F72C3BD5C99 -File ::73569099-F7B9-CC82-A469-52F721A70B61 -name id_dsa.svn-base -active 0 -parent AC4C1CD4-E4E5-CED0-C4F8-8F72C3BD5C99 -File ::3A083CE1-9577-2E23-60B6-B4628E3AFF7A -name PUT_SSH_KEYS_HERE.svn-base -active 0 -parent AC4C1CD4-E4E5-CED0-C4F8-8F72C3BD5C99 -File ::A3D31F9A-9C90-6019-0D36-2BF7D54FBAFC -type dir -name tmp -active 0 -parent A2DBFC3C-AC45-DAE1-0F04-D279DDC1EB36 -File ::8E51353E-6421-44F0-866E-FA3A75AF303E -type dir -name prop-base -active 0 -parent A3D31F9A-9C90-6019-0D36-2BF7D54FBAFC -File ::685ECBDE-3A87-4D92-4954-BC35E4768E42 -type dir -name props -active 0 -parent A3D31F9A-9C90-6019-0D36-2BF7D54FBAFC -File ::42CF5A97-A991-05CF-E5F7-7F78D5D52CEE -type dir -name text-base -active 0 -parent A3D31F9A-9C90-6019-0D36-2BF7D54FBAFC -File ::6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -type dir -name ../bin/util -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::C410E57A-3F3E-4622-AB1B-DB6A0EBCED01 -name cut.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::9EB6D55B-F596-4486-9A5A-6A374A3E6CDA -name date.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::0F0DB1A3-D6CA-4ADF-87A3-A0ED76C60C6B -name expr.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::E9117E64-E7B3-48A3-8B57-5D9F20852EAB -name gawk.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::96EE4F8B-1EC7-46E0-869A-88D14CBD82F0 -name grep.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::CFC44D73-74F7-4D14-8FC8-62255B115551 -name head.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::44B21832-6BF6-4277-9B8C-077E49F53AD2 -name ls.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::5E41B886-FEFD-4648-B151-71195C2E04DE -name md5.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::B47EAE44-63B4-4B6F-86A0-00089DDB2437 -name puttygen.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::F792F4E1-B3E9-43AB-A17B-44E2B3013093 -name tail.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::306C9DF0-CC33-48DC-8AFC-2B99ED4E00A0 -name tr.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::1900A2B4-09F5-468A-90AD-75CBE17C727B -name wc.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::B3D9FD4E-6021-45E6-B9B8-F81CC940540E -name tentacle_client.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -type dir -name .svn -active 0 -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::A57FA3AE-443F-FC25-F777-70CAE8FB0892 -name all-wcprops -active 0 -parent AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -File ::5CAE2970-9FA4-CDA6-6156-C0FB81206C93 -name entries -active 0 -parent AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -File ::0C863D99-65DA-2CA7-9CA8-70FBB30A4F02 -name format -active 0 -parent AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -File ::F4812143-55ED-3C48-3FC3-23D8C1456058 -type dir -name prop-base -active 0 -parent AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -File ::5A577337-9685-8CD3-7666-54E6BD51D70C -name cut.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::14D86BD8-85DE-A53C-34F9-FD6EAF3AC3E6 -name date.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::B5474580-9B89-F881-AF0F-D89DFE27B74B -name expr.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::2B1C2B5B-187C-8566-8EDF-0E908A20DBEE -name gawk.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::346E0DB7-627C-DB73-C59E-B11DB7C3324A -name grep.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::2360BC3D-5346-2B9A-0707-397F033D6385 -name head.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::C1F38550-393D-79E1-6C1D-D7AEFA932F01 -name ls.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::F56EAD1E-60C0-B1F2-F01D-4887B9D0FF0B -name md5.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::BC5CBC91-43CB-BAB7-622D-A2F93E566458 -name puttygen.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::D4510D67-0DA2-F7F1-E6A1-924452FA9E74 -name tail.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::7AE3F476-020E-BA1A-626B-C631F1D6DEBC -name tr.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::BB01F71B-2DA6-A63E-C112-542974B20C30 -name wc.exe.svn-base -active 0 -parent F4812143-55ED-3C48-3FC3-23D8C1456058 -File ::1867308F-F69E-2BE3-9DF6-A5ECD58AA2CE -type dir -name props -active 0 -parent AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -File ::D7C4B924-B3CE-BE13-A62B-9EB256F73AB4 -name tentacle_client.exe.svn-work -active 0 -parent 1867308F-F69E-2BE3-9DF6-A5ECD58AA2CE -File ::13FFC58B-812B-624A-170C-B8954D13574D -type dir -name text-base -active 0 -parent AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -File ::9BD4AAF6-4D9F-0D52-21FC-388AE4C148C4 -name cut.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::CFC49473-239A-EDC9-EAC3-74282513DFAF -name date.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::9F8DF1C5-531E-EDC6-E477-F49C063F927C -name expr.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::783FD37D-8F07-6991-E37D-22A2706716CB -name gawk.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::2305CCBD-4447-BAF4-0E7F-E38133567DB4 -name grep.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::B1E1E90B-9A96-2526-9583-E31A370A15C9 -name head.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::BA9586FF-BA3E-2E73-B262-CF7AF48AB4DC -name ls.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::732C7A8A-3FC1-172E-B943-0CF1BFADA5F2 -name md5.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::8021D8AA-4F3C-0B5D-61D1-610F3616572B -name puttygen.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::139033A0-D9E6-870A-5BFF-2261D1D707D1 -name tail.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::D25CAB78-44B6-9998-7B56-1E6DE957ED78 -name tr.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::2E2CE748-D169-27FE-DC76-13933FA60A6D -name wc.exe.svn-base -active 0 -parent 13FFC58B-812B-624A-170C-B8954D13574D -File ::FC2CF695-F050-712A-EAC4-B57D19D00C77 -type dir -name tmp -active 0 -parent AD36A2E6-370D-E5CF-3A6A-56AC4137E60C -File ::17DD23ED-CFF6-4E2E-AE99-2AA03F4DC4C4 -type dir -name prop-base -active 0 -parent FC2CF695-F050-712A-EAC4-B57D19D00C77 -File ::7FFC041E-C253-BA7D-D890-3D88CDBA434C -type dir -name props -active 0 -parent FC2CF695-F050-712A-EAC4-B57D19D00C77 -File ::955A9B5D-775D-4C4B-07C6-1E457A3AEF04 -type dir -name text-base -active 0 -parent FC2CF695-F050-712A-EAC4-B57D19D00C77 -File ::57A504DC-687C-F126-8B39-6A70F43C156A -name cmp.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::B71D3B59-A60B-6C21-76D4-292FA73C1613 -name getreg.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::DB77AA43-D4B7-239C-0F48-52502E17D4DC -name sort.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::7B1652FD-0C02-13A8-BAA8-1B6F8BB257A5 -name df.vbs -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::558D0D7E-2D41-EA8A-325D-27FA08CE8B69 -name ps.vbs -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::92375EEB-039A-EAF0-C1AC-B91B00CD1DD6 -name logevent_log4x.vbs -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::0A9C1B7E-7F5C-84E0-55F9-0224A97F3CD2 -name unzip.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::8B69786B-B84F-22AC-B466-C84617B1330A -type dir -name mibs -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::10C3DFEB-75EC-B329-9CCB-F96223B326C2 -name SNMP-USER-BASED-SM-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::F7ECC5A7-160D-BA30-5C90-16128275160C -name IPV6-TCP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::CA57A40B-EAF2-C3FF-0266-4849D92307F3 -name IPV6-UDP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::A4AE302D-4B1F-1B96-D1AF-63647EE43060 -name UCD-IPFWACC-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::4894E284-5E13-99E3-1CAE-F90BF9006641 -name Makefile.mib -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::CDBCA051-ABF8-586B-EEA2-2738E8B839C7 -name RFC1155-SMI.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::8D3FC0D8-3E89-AA48-8AC1-0E2ABA206413 -name NET-SNMP-MONITOR-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::9E24308A-6C93-A14B-4054-B98C8855B3E7 -name DISMAN-TRACEROUTE-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::104C6B91-8D0A-1830-50F0-85B29FDFA7A4 -name SNMPv2-SMI.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::1CEF1B2C-F75C-9439-260A-940E0B6BDF34 -name RFC1213-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::1737EB19-488D-CC18-8B5B-1118C9868A2C -name HOST-RESOURCES-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::E3CCE554-B504-5F5F-7F74-FF9C7B31BF4D -name NETWORK-SERVICES-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::5C1CE0DF-685D-8D71-7E6E-A2DFAAAF3AB9 -name UCD-SNMP-MIB-OLD.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::E603538F-D5D1-6EDF-CE46-CB9C4DC718F1 -name AGENTX-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::471A4833-F9C7-0E6A-FF2D-159AB861F958 -name SNMP-VIEW-BASED-ACM-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::797C81CC-9E82-ACFC-8D45-A94DC430755D -name HOST-RESOURCES-TYPES.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::45BFFEA9-B757-1464-8F91-A07A03BA229C -name ianalist -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::88C873FE-F358-1FBC-608F-4273AD8391E4 -name RMON-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::0AC17338-9F54-9B51-00A1-9FB655FE5A8F -name HCNUM-TC.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::4B3D7FA9-0633-0969-0D48-86E9714EDDB7 -name UCD-DLMOD-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::71E96358-3EC9-3FF2-DE0F-24713B0BE65B -name EtherLike-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::0AC34548-4415-39F5-F75E-3E54611FBEA1 -name NET-SNMP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::F3A8B2CF-374D-D5F1-AAAD-675F04ECF107 -name LM-SENSORS-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::7EE2B7C3-913B-A889-EEFB-8FD7D5B36D3D -name IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::DFD52E2F-6DE4-5176-C430-683C42915D68 -name rfcmibs.diff -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::77DAD413-0D51-0043-DAB1-959155FA1584 -name SMUX-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::42EEFE3A-A534-4FDD-2D98-EDE92C9D56D5 -name IANA-RTPROTO-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::2DB878B1-5A00-3949-E1EB-6C5FFEE1BB6E -name README.mibs -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::EBC9F917-BDA1-5E9E-70A2-939E85145E96 -name UCD-IPFWACC-MIB.inc -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::8DA0A3E3-5D3A-493A-30B3-86A81D35C077 -name rfclist -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::414F8D04-D7F8-8E4B-8B9C-34C9CEEAE990 -name RFC-1215.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::3DECE776-AE57-4B11-1B00-C1E5D6E680F5 -name TUNNEL-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::316FEA16-1105-B2F9-1D64-0F94F07451DB -name makehtml.pl -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::98D3387E-6994-71AD-5E68-EC53C256BF89 -name Makefile.in -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::DD5BA10C-D728-E267-CC3C-6BFBDB0FD0F4 -name INET-ADDRESS-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::787BF3D9-F3D8-AEDC-C0A8-4539892510B3 -name DISMAN-EVENT-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::40A38693-383D-E70D-2D0B-97F14FC06A25 -name SNMPv2-TM.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::B172ABC4-5B10-6800-1C26-B5E4E7DCB3BE -name NET-SNMP-TC.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::029D3EFA-AA5D-FE7D-9B70-CB162B8731BC -name SNMP-MPD-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::C69A3E3F-602D-B85A-AD84-CD3FF7163906 -name SNMP-TARGET-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::8CDCB12A-2544-A5C7-A6F0-6C5A9D0C061D -name NET-SNMP-SYSTEM-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::A9026441-0B6F-D92B-1A07-ED3DD99BD501 -name smistrip -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::48CA671F-9217-EDAF-4196-9D9AF61A699B -name DISMAN-NSLOOKUP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::CB1B4307-0998-D9C3-AB12-4F0367B9BC50 -name NET-SNMP-EXAMPLES-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::37418DC6-CB58-F6D6-C221-FE20835BA5B6 -name TCP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::74E4DAD6-E267-4FBD-C7E2-FCBEF64BF132 -name DISMAN-PING-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::0A4E3D96-62B4-0244-A2C3-3E8CA564EDE0 -name NET-SNMP-AGENT-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::6620F423-865F-91B1-4C0E-93D483092228 -name NET-SNMP-EXTEND-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::8049FBBB-1C36-02C7-8690-5C24686D9CD2 -name IP-FORWARD-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::183ED813-65AD-F929-5041-715D4FD09737 -name DISMAN-SCHEDULE-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::51842E62-465C-E1B4-2DEA-871C045AF913 -name UCD-DISKIO-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::569B4E77-0B32-E95A-8540-2C97C2B2A354 -name SNMPv2-TC.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::DA1819A0-F1C0-B6BD-3C5D-FC02602ABDB2 -name SNMP-NOTIFICATION-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::C90B00DD-3DF9-5A10-80A4-F173C81E267B -name IANAifType-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::4CDDD873-7C7B-DDF1-0547-C716FA2EE6B8 -name UCD-DISKIO-MIB.inc -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::56603234-865E-B851-B55A-9A620209A198 -name SNMPv2-CONF.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::1112D09B-33C9-483A-E700-C85832FC6C69 -name IPV6-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::AF86F856-6A36-299A-5ADA-5CC9E3B14BA1 -name SNMPv2-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::605BCDB3-C411-8D49-BF90-B0D3E29288C9 -name DISMAN-EXPRESSION-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::DB106B45-CA94-21A2-F638-19EEC4BB84B6 -name IANA-LANGUAGE-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::B2FE8CE3-716F-A393-D0D3-FAAF748EFAB0 -name UCD-DEMO-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::D4295B27-BEDC-FDF3-48B1-2A58B7CF306D -name SNMP-PROXY-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::9DB499F2-F384-C5AA-E496-CA7F859FF8C8 -name IPV6-ICMP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::B8B3D274-B94B-809E-5ABC-E2B0488B51B5 -name DISMAN-SCRIPT-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::00F9ECA3-E979-9343-7F94-9D8F349EF579 -name mibfetch -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::9430EE3D-3EF2-5CE9-BA36-02A3C0680C37 -name SNMP-FRAMEWORK-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::5A093FFD-6A05-1693-6A29-F5D68054DF46 -name UDP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::73AD77A4-08F4-8A7D-D52B-6151D11FF33F -name UCD-DEMO-MIB.inc -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::C0B97EE6-9A3C-2EF0-22ED-082B40EE910F -name UCD-SNMP-MIB.inc -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::02DE3F78-ED9A-5A73-D283-0CD205B7BE58 -name TRANSPORT-ADDRESS-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::09203A02-1DA2-BDE3-175B-15043E2ACAE0 -name SNMP-USM-DH-OBJECTS-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::BEEFE984-6F00-376D-7BCE-812B945AEDBD -name SNMP-USM-AES-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::3D1E7967-95A3-E9B8-3579-6FFDF0D1E5AF -name UCD-DLMOD-MIB.inc -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::1A4D4BF6-FF57-559E-251B-F63BB6D9FA94 -name UCD-IPFILTER-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::31EC3141-C348-56FF-16E2-75C2FFA65413 -name MTA-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::17D117A5-B736-A21C-AAC1-C6B017A644D5 -name IPV6-TC.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::E1FDBB74-8D12-9843-B4D3-40385D91CDF5 -name SNMP-COMMUNITY-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::8CD8FE57-2B98-7814-258B-1D4FB03B144E -name IF-INVERTED-STACK-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::4A727B8A-ED01-A5C4-BFF3-F7E632E1F056 -name NOTIFICATION-LOG-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::074CBF5A-7246-A35C-EBD7-DAECBDFA8044 -name IF-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::69610A79-5EA4-6111-2946-D870A009B4FD -name UCD-SNMP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::2285B4E9-C139-D5EC-DCF4-F0943BBB0FE1 -name nodemap -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::CC5A58CA-2719-7E75-7DC9-178C4A7AB956 -name UCD-IPFILTER-MIB.inc -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::4AF37C51-C6F6-71AB-BA2A-759CCF9EE297 -name IP-MIB.txt -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::1D9B106C-A0A0-4989-645B-0A1AFDC44138 -name .index -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::75B2C5A2-5AA7-FD10-9FF9-65820B3199E3 -type dir -name .svn -active 0 -parent 8B69786B-B84F-22AC-B466-C84617B1330A -File ::D5FFCDEA-B30C-90E1-1B2C-49DB89A2D90F -name all-wcprops -active 0 -parent 75B2C5A2-5AA7-FD10-9FF9-65820B3199E3 -File ::55BD2C4F-212D-947D-4CE5-7A1A6463AF3A -name entries -active 0 -parent 75B2C5A2-5AA7-FD10-9FF9-65820B3199E3 -File ::7BB33BC9-F34E-ACAC-5D2E-D8CE67590378 -type dir -name prop-base -active 0 -parent 75B2C5A2-5AA7-FD10-9FF9-65820B3199E3 -File ::6A15022F-5512-B5CE-287B-9FD87C8D4D61 -type dir -name props -active 0 -parent 75B2C5A2-5AA7-FD10-9FF9-65820B3199E3 -File ::CC1D7221-8233-5190-029D-9F0AF2B73225 -type dir -name text-base -active 0 -parent 75B2C5A2-5AA7-FD10-9FF9-65820B3199E3 -File ::2D8DAE81-C0D0-DEA9-0E71-DCF7CA54127F -name .index.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::DFCFD8E2-0B13-19E0-CACA-B729EB6717B3 -name AGENTX-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::1EE676C1-0749-31CE-7BA6-3B28862BA05B -name DISMAN-EVENT-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::32A01452-C5B3-A36A-9343-2473FF0EF86B -name DISMAN-EXPRESSION-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::2B2D0A95-26A6-F27D-1129-FC227D045DD3 -name DISMAN-NSLOOKUP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::DCEFFC46-98EA-5B9D-5DBF-2A912D9998C0 -name DISMAN-PING-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::392AA770-335C-6B27-8B56-F309A8E78251 -name DISMAN-SCHEDULE-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::FFB1354A-B5E7-4A95-8755-CC5A435BE297 -name DISMAN-SCRIPT-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::C25E27F3-CE18-1B9A-D285-3D3F6A7BD2AE -name DISMAN-TRACEROUTE-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::427CB562-066F-C2E6-9264-E462AE38854E -name EtherLike-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::1B50866C-5C89-EF5A-FEE7-0EEA3C1A523D -name HCNUM-TC.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::B351A78A-038D-57FB-7CAA-FE00C2843AD6 -name HOST-RESOURCES-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::C91B3BFF-0FA4-3A20-83E9-688B9CA4A7D4 -name HOST-RESOURCES-TYPES.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::E7882D39-8A22-B573-33CF-54D2417E5AF1 -name IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::6D6BC24F-6F51-E69E-EFCF-83CD3CF8F567 -name IANA-LANGUAGE-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::EF828668-6C7B-A51B-8140-D84F9AB9760C -name IANA-RTPROTO-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::7AE6382F-49F2-4D61-5124-1E4F083CB2E4 -name IANAifType-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::2291B1C0-3660-0D31-44D9-25BE27886AC2 -name ianalist.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::ED8393C4-0988-2F37-6362-82741C8BEF18 -name IF-INVERTED-STACK-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::72FBD6F5-473A-C962-6879-35015BA8D5C9 -name IF-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::AF3EA403-49CC-511E-75F2-1365816200CA -name INET-ADDRESS-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::C2B56606-E28D-EF6A-F28D-CA81B1AB67A7 -name IP-FORWARD-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::11332249-7CE3-2A37-AA1F-48925709668F -name IP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::F9F74BD2-5DB1-52AF-E0F2-F83FBF978E48 -name IPV6-ICMP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::1F3DED36-1DCF-21F3-7AF7-60BF0B8E490D -name IPV6-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::03762ED4-7F88-4853-2E89-2FD018A9BFF4 -name IPV6-TC.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::D0BBA9CA-701B-22C1-BB15-0D7C94C40D49 -name IPV6-TCP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::9623E8DC-ABB6-3FE9-467C-977F1FC8D0C8 -name IPV6-UDP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::B18EC413-4AA0-2161-0416-1B7EAF5B8587 -name LM-SENSORS-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::4FACC844-DC8A-3778-4E4F-9A4D3FE935B7 -name Makefile.in.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::5E65F151-1031-98D3-07DD-40A01F1081D9 -name Makefile.mib.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::79B81A40-00D4-397A-B228-BB4EE6006FCD -name makehtml.pl.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::729BAE35-6BD2-7C45-498A-678218DFF994 -name mibfetch.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::CD1D4E0D-3220-D888-225C-B09A2AF69D47 -name MTA-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::A1F3C16D-E3E7-8D4B-A0FA-5EA3DDC5C3E7 -name NET-SNMP-AGENT-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::6E5845C0-2470-FD92-3388-832E9EA5E41D -name NET-SNMP-EXAMPLES-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::07B57915-D30A-9B31-0F00-B4051EA17FDF -name NET-SNMP-EXTEND-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::1B9F5B34-1BCC-14B4-649E-646E703AAC42 -name NET-SNMP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::57059FFB-1AD1-0C53-DB25-556CF56EBC55 -name NET-SNMP-MONITOR-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::9334F7D7-CAD8-756E-A495-E8A1B72C3C65 -name NET-SNMP-SYSTEM-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::979000C2-2CAA-422A-BFFA-B6E2618DF99F -name NET-SNMP-TC.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::4C34E0F6-1878-3624-E7DB-9C6B80440D24 -name NETWORK-SERVICES-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::89E5C74E-1C3F-D63C-57F8-FCB8CF2FCCC4 -name nodemap.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::B13201FB-7A83-9639-A999-9F330EA3A849 -name NOTIFICATION-LOG-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::B86561D3-9423-E3B7-4233-ADD4A4D26866 -name README.mibs.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::631AF3AA-FBAD-A007-3063-D0417A00AD25 -name RFC-1215.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::2781ED42-0D91-233F-6F51-0C14E04FCA28 -name RFC1155-SMI.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::4946D7B9-05D4-520B-C842-07CAC8C92DB2 -name RFC1213-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::A1564F0D-7F18-6256-927D-9494240F853B -name rfclist.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::D332BAD1-6058-BEF6-7CDD-3503E8DC07B6 -name rfcmibs.diff.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::41972A3C-4B83-3DC4-C18C-708B13422B13 -name RMON-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::81C1DDBE-CBDE-FE8A-83D2-13C99D113762 -name smistrip.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::BB7554E3-04DA-E5BE-D502-1001B803E565 -name SMUX-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::F27B00AA-549A-E044-EB78-369A84AF6CB8 -name SNMP-COMMUNITY-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::26E15926-97FB-CEEC-4157-B94FE7E83765 -name SNMP-FRAMEWORK-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::287047DE-53D8-D514-4E13-121FFAD31A0F -name SNMP-MPD-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::E0109AEF-812E-CF43-83C4-EB3CD4C00C8B -name SNMP-NOTIFICATION-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::B7F3BA89-6757-A82E-8DC8-CE1EA8048686 -name SNMP-PROXY-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::4D7D18CF-0E14-59C5-518F-7C0CD0B2CB4D -name SNMP-TARGET-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::FB47BE7F-2B32-CC30-2CA1-83D4CDF00215 -name SNMP-USER-BASED-SM-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::FC1443BA-24F6-9C83-630D-BB8F957BE52E -name SNMP-USM-AES-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::AC046AA3-A8D4-C3E2-C3E5-E7B68A501089 -name SNMP-USM-DH-OBJECTS-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::38691298-28A8-81F6-F1FC-00ECE21205D7 -name SNMP-VIEW-BASED-ACM-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::DFF8B0D9-907E-B263-9F23-48216BB2D058 -name SNMPv2-CONF.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::5CCFF16F-2A94-EB09-9E3E-519A3A1FE805 -name SNMPv2-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::6FFEF5BF-6508-2A40-811D-3863399E9D59 -name SNMPv2-SMI.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::97565931-8C89-F029-99A1-6DFC1979A3E8 -name SNMPv2-TC.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::3F15A49F-6BEC-F45F-DDF9-CC50CD4CC21E -name SNMPv2-TM.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::E01ACDF9-4DCE-C415-DC49-3BC213F23B10 -name TCP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::9992E720-1A2F-2198-C236-DAA92181721A -name TRANSPORT-ADDRESS-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::479EA0FB-98E3-8710-E883-BBB9C667066A -name TUNNEL-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::7D605D50-615C-B0F9-567D-6246A313851F -name UCD-DEMO-MIB.inc.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::4FDA6897-97C5-F7E6-0AFA-52E362F9E84A -name UCD-DEMO-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::AB270B18-95CB-F42F-CA15-11359EAD35B0 -name UCD-DISKIO-MIB.inc.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::AC27DF3F-F522-2A06-BDF1-4645C9F942AE -name UCD-DISKIO-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::B3E11B2E-35C4-0B97-4408-74167C185C22 -name UCD-DLMOD-MIB.inc.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::73CFF637-FBBB-7D64-B498-2FBEAD83AADA -name UCD-DLMOD-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::569CD04F-9E6E-06E4-1B1F-4B58E0EE441A -name UCD-IPFILTER-MIB.inc.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::81EA4416-1E6D-2557-FAF6-1D4E768069C0 -name UCD-IPFILTER-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::7A6CA16A-B3E1-702B-6860-5580B12030AB -name UCD-IPFWACC-MIB.inc.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::C85A4B0A-C307-8DD6-FF88-31738AEE4BEE -name UCD-IPFWACC-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::AFDF3F9B-A060-F8C6-5B4C-208AFE2176B2 -name UCD-SNMP-MIB-OLD.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::424B0ACB-B435-1C68-47EF-88A3E9546523 -name UCD-SNMP-MIB.inc.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::855032CB-FC6E-DFA1-BC63-E5D4FD29F185 -name UCD-SNMP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::94CA96D2-F700-B1A8-A825-6729707FF6A6 -name UDP-MIB.txt.svn-base -active 0 -parent CC1D7221-8233-5190-029D-9F0AF2B73225 -File ::8BED0534-84A0-E7A1-104A-7AB6FF964C31 -type dir -name tmp -active 0 -parent 75B2C5A2-5AA7-FD10-9FF9-65820B3199E3 -File ::FCD8F7DA-CA57-B939-BE6D-7582A8AC2EA5 -type dir -name prop-base -active 0 -parent 8BED0534-84A0-E7A1-104A-7AB6FF964C31 -File ::A549C9BC-62C4-F94D-5195-28EA21C4F48E -type dir -name props -active 0 -parent 8BED0534-84A0-E7A1-104A-7AB6FF964C31 -File ::A26BD65A-2404-4564-6D36-8FD8EBECA57C -type dir -name text-base -active 0 -parent 8BED0534-84A0-E7A1-104A-7AB6FF964C31 -File ::3A6A9726-7944-6766-FE7A-45E11E8324EC -name df_percent.vbs -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::DC4E6C4D-0CAC-9299-7F7E-715C90CA2655 -name getsnmp.bat -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::1DD45A3E-D828-38FB-3715-D9DA537EDCAA -name snmpget.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::F054DB92-ED3C-63C1-3907-9C1350C0EC25 -name pandora_update.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::F9A7539E-8E6F-05A5-18D4-3E366C257AE5 -name tentacle_server.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::45D372F1-229D-5318-5AF0-84BF65848E79 -name curl.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::6B032FAE-541E-EC63-8EB9-3407BE28B665 -name pandora_revent.exe -parent 6E5B73B7-8B81-48D7-BF49-59D8D92FB830 -File ::03A7EA5A-D6FC-4427-B35C-0288C07813B6 -filemethod {Never overwrite files} -name ../bin/pandora_agent.conf -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::71EFB181-1BAE-4749-B7E7-7837E378BA3D -name ../bin/PandoraAgent.exe -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::50980131-CDA1-4F32-86E0-FD53B1097F67 -name ../installer/pandora.ico -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::3267E440-2104-4BA2-BDEB-DFDA32441FC2 -name ../installer/LICENSE.txt -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::423325D1-5C33-41ED-965A-F7E1F2A2C32E -name ../installer/README.txt -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::9F4D1B79-C9AE-4F1F-AC50-876657B3361C -type dir -name ../installer/scripts -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::8C09E6D4-4B09-4AA5-B025-441389C76F70 -name start_pandora_agent.bat -parent 9F4D1B79-C9AE-4F1F-AC50-876657B3361C -File ::BA05415F-E246-45AE-A0B1-21C7AB400402 -name stop_pandora_agent.bat -parent 9F4D1B79-C9AE-4F1F-AC50-876657B3361C -File ::F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -type dir -name .svn -active 0 -parent 9F4D1B79-C9AE-4F1F-AC50-876657B3361C -File ::FCD8D912-5FEE-9260-43B9-AAC4A3D97A74 -name all-wcprops -active 0 -parent F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -File ::B52ADC0B-DDFE-19EA-217D-A9879FDB0ED0 -name entries -active 0 -parent F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -File ::F1C08FA0-FC7D-A314-A3ED-79CABF0D6691 -name format -active 0 -parent F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -File ::7C00D02E-E023-12F5-37DB-99EF5C139127 -type dir -name prop-base -active 0 -parent F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -File ::9D70EC00-D797-99F7-D436-A245939366E9 -type dir -name props -active 0 -parent F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -File ::916998A8-1F74-A5B7-EF97-4576BF4640EE -type dir -name text-base -active 0 -parent F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -File ::022AD27A-A285-F9D4-6374-56A6DCB382DA -name start_pandora_agent.bat.svn-base -active 0 -parent 916998A8-1F74-A5B7-EF97-4576BF4640EE -File ::5F1E6560-AEB6-9C49-4A34-9D0410B1BB5D -name stop_pandora_agent.bat.svn-base -active 0 -parent 916998A8-1F74-A5B7-EF97-4576BF4640EE -File ::23F0FBAE-5849-2617-4616-D50FE1FCB137 -type dir -name tmp -active 0 -parent F9332D6C-1AB8-5657-0FD3-02D1B30B6EC2 -File ::9513C1EE-B08B-2ABE-38EF-C153696EFCD6 -type dir -name prop-base -active 0 -parent 23F0FBAE-5849-2617-4616-D50FE1FCB137 -File ::2BBBE1D9-BA80-E6CA-835E-9D958A4CF3C3 -type dir -name props -active 0 -parent 23F0FBAE-5849-2617-4616-D50FE1FCB137 -File ::486CB634-5092-8E3B-7621-5B3A044ACCCC -type dir -name text-base -active 0 -parent 23F0FBAE-5849-2617-4616-D50FE1FCB137 -File ::012BFA02-7F3D-897C-072A-877021FDC7D7 -name restart_pandora_agent.bat -parent 9F4D1B79-C9AE-4F1F-AC50-876657B3361C -File ::02213E74-8E86-E4AC-58D0-B70412A05656 -name install_service_restart.bat -parent 9F4D1B79-C9AE-4F1F-AC50-876657B3361C -File ::BAF0FDDB-F0D7-1326-D3CE-7C6676636B83 -name delete_at_job.bat -parent 9F4D1B79-C9AE-4F1F-AC50-876657B3361C -File ::94EE5172-C243-4F11-80CE-C356D9055323 -type dir -name ../bin/help -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::38108568-E397-4360-9FDD-BBD7574607E0 -name how_to_keys.html -parent 94EE5172-C243-4F11-80CE-C356D9055323 -File ::096DCAC9-2E8F-4765-9EC5-E40DAFC26B36 -name how_to_keys_es.html -parent 94EE5172-C243-4F11-80CE-C356D9055323 -File ::550F286E-2409-4221-A51A-CA980C9EA9DC -type dir -name images -parent 94EE5172-C243-4F11-80CE-C356D9055323 -File ::6FDE9DD9-ADE8-455A-B864-FA7C2B903604 -name 1.jpg -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::0AFE05E1-E200-4650-8F9E-ED83C9E9ADD4 -name 2.jpg -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::46E928DC-6919-4EC1-86EA-F161C098449D -name 3.jpg -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::5EA49A68-6952-43BF-9A54-1CDF8E48C3D8 -name 4.jpg -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::0C33AC8D-503A-4A9C-801F-2FDEF9FA98C0 -name 5.jpg -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::1B81E274-2375-4287-90D7-953BE3F71FA7 -name 6.jpg -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::C2E02994-9B4E-430C-B399-E93986DD9B0F -name logo.png -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::9D2B9A51-22B6-A99C-5081-FA2019F25C7C -type dir -name .svn -active 0 -parent 550F286E-2409-4221-A51A-CA980C9EA9DC -File ::EE4C4794-AF1B-9B38-C3F3-4A0F30414237 -name all-wcprops -active 0 -parent 9D2B9A51-22B6-A99C-5081-FA2019F25C7C -File ::CDEFB24E-78EC-D33D-C03B-1BF69F9D7240 -name entries -active 0 -parent 9D2B9A51-22B6-A99C-5081-FA2019F25C7C -File ::AE60977B-1615-C577-177E-5B7D25BC1B9D -name format -active 0 -parent 9D2B9A51-22B6-A99C-5081-FA2019F25C7C -File ::2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -type dir -name prop-base -active 0 -parent 9D2B9A51-22B6-A99C-5081-FA2019F25C7C -File ::A315BDD0-BFAC-9951-DBA9-9C0069787C3C -name 1.jpg.svn-base -active 0 -parent 2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -File ::F6039348-9850-F462-2574-1E5E891BF3E6 -name 2.jpg.svn-base -active 0 -parent 2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -File ::FC2B37A3-0080-541B-9966-57C1D1C1E1D6 -name 3.jpg.svn-base -active 0 -parent 2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -File ::298ED0DB-1234-5BD8-18B8-518B5FB6D496 -name 4.jpg.svn-base -active 0 -parent 2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -File ::053EB4AF-E3D2-3585-97C5-74101DE38A5A -name 5.jpg.svn-base -active 0 -parent 2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -File ::205526D5-AB41-59CD-4E93-921AB6B2C76D -name 6.jpg.svn-base -active 0 -parent 2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -File ::14581560-7252-5709-FDFF-633B5A3E280A -name logo.png.svn-base -active 0 -parent 2FF9A303-F999-58D0-3FBA-14DBDCCDA37B -File ::6F85271E-257E-557C-FAC2-F49C1EDC2096 -type dir -name props -active 0 -parent 9D2B9A51-22B6-A99C-5081-FA2019F25C7C -File ::93B66474-8BCC-512F-7745-93C6A7363B6C -type dir -name text-base -active 0 -parent 9D2B9A51-22B6-A99C-5081-FA2019F25C7C -File ::63801B7E-91F6-27E3-6B1E-FAE252743DB2 -name 1.jpg.svn-base -active 0 -parent 93B66474-8BCC-512F-7745-93C6A7363B6C -File ::69C1BE32-1589-926A-57A7-8CF8462EE436 -name 2.jpg.svn-base -active 0 -parent 93B66474-8BCC-512F-7745-93C6A7363B6C -File ::AB5F3408-BEB6-43EB-BB36-01C2099CDA73 -name 3.jpg.svn-base -active 0 -parent 93B66474-8BCC-512F-7745-93C6A7363B6C -File ::E3C5F440-0EA5-B02E-E0CA-914C0D752579 -name 4.jpg.svn-base -active 0 -parent 93B66474-8BCC-512F-7745-93C6A7363B6C -File ::9FFDE5CB-2B86-E099-0A6D-A963C5DACFED -name 5.jpg.svn-base -active 0 -parent 93B66474-8BCC-512F-7745-93C6A7363B6C -File ::01DD93C8-FC8F-F04F-41E2-4CCE23B17446 -name 6.jpg.svn-base -active 0 -parent 93B66474-8BCC-512F-7745-93C6A7363B6C -File ::47103393-BF3D-73AA-DF55-6EC06D168B87 -name logo.png.svn-base -active 0 -parent 93B66474-8BCC-512F-7745-93C6A7363B6C -File ::AF12F531-ADF4-4FFA-AD4E-51E147AC2AB3 -type dir -name tmp -active 0 -parent 9D2B9A51-22B6-A99C-5081-FA2019F25C7C -File ::E74367AD-B33C-C7BC-29EA-1DD751790525 -type dir -name prop-base -active 0 -parent AF12F531-ADF4-4FFA-AD4E-51E147AC2AB3 -File ::03BE7202-3CE6-912B-55BD-C83BE24DE78D -type dir -name props -active 0 -parent AF12F531-ADF4-4FFA-AD4E-51E147AC2AB3 -File ::C298402E-C607-9ECB-3868-3EC497EE76E9 -type dir -name text-base -active 0 -parent AF12F531-ADF4-4FFA-AD4E-51E147AC2AB3 -File ::ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -type dir -name .svn -active 0 -parent 94EE5172-C243-4F11-80CE-C356D9055323 -File ::1F6E3F35-3360-B6DF-DE07-FC8D97EDA429 -name all-wcprops -active 0 -parent ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -File ::92DE54C3-70E3-54B0-6ACA-C4AB3ED414C5 -name entries -active 0 -parent ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -File ::09CCD851-4F46-30C3-CEDF-3CF15F2F4725 -name format -active 0 -parent ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -File ::4B269A0F-E9EF-8E24-DA33-EF312CB9366A -type dir -name prop-base -active 0 -parent ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -File ::171423D2-828C-A2F0-6460-817D86D6AEC6 -type dir -name props -active 0 -parent ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -File ::A95B27E3-0731-5350-09F6-A20ED47C3DBC -type dir -name text-base -active 0 -parent ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -File ::72957FF3-D51C-5F57-9A6A-188E7DF551A3 -name how_to_keys.html.svn-base -active 0 -parent A95B27E3-0731-5350-09F6-A20ED47C3DBC -File ::2ACB40DB-9D1D-97DD-6889-E63A89437823 -name how_to_keys_es.html.svn-base -active 0 -parent A95B27E3-0731-5350-09F6-A20ED47C3DBC -File ::33B94DB4-C180-92CA-28A9-8E748747A201 -type dir -name tmp -active 0 -parent ECEC7A07-7C36-C3CD-BFF1-53DD1B27A949 -File ::9A553712-B42A-6A8F-00B1-4E8933B83D00 -type dir -name prop-base -active 0 -parent 33B94DB4-C180-92CA-28A9-8E748747A201 -File ::9376A1BB-540D-AF99-82D1-DEEDB5621B31 -type dir -name props -active 0 -parent 33B94DB4-C180-92CA-28A9-8E748747A201 -File ::FDE18B19-66AE-E8C6-38A9-FB675E103E81 -type dir -name text-base -active 0 -parent 33B94DB4-C180-92CA-28A9-8E748747A201 -File ::8DC9C5E7-7957-7E7A-5603-F78DACBDE9C2 -type dir -name ../bin/collections -parent 946FC43B-0E32-4C38-86EF-4F9252C67E16 -File ::DC2682C5-68A1-8249-6160-9B1896DAECB9 -type dir -name .svn -active 0 -parent 8DC9C5E7-7957-7E7A-5603-F78DACBDE9C2 -File ::F253AE0D-A56D-F650-C7C7-0FC69D2EA3B8 -type dir -name props -active 0 -parent DC2682C5-68A1-8249-6160-9B1896DAECB9 -File ::A90AA2E8-3EEF-A991-CE94-75B3008A53F7 -type dir -name prop-base -active 0 -parent DC2682C5-68A1-8249-6160-9B1896DAECB9 -File ::EEA6B667-6883-7666-FFFC-E7701DCDBD81 -type dir -name tmp -active 0 -parent DC2682C5-68A1-8249-6160-9B1896DAECB9 -File ::5AF5F713-EEB1-AF49-EAFD-8AB218895F2F -type dir -name prop-base -active 0 -parent EEA6B667-6883-7666-FFFC-E7701DCDBD81 -File ::D98D0A8F-FA65-BECC-B972-AF8E0713F31B -type dir -name text-base -active 0 -parent EEA6B667-6883-7666-FFFC-E7701DCDBD81 -File ::3527B202-4B84-5ECD-EDF6-E1817D90434C -type dir -name props -active 0 -parent EEA6B667-6883-7666-FFFC-E7701DCDBD81 -File ::4D77EDB1-1EE5-72EA-9495-48A48F5F926C -type dir -name text-base -active 0 -parent DC2682C5-68A1-8249-6160-9B1896DAECB9 -File ::B7F88BC0-DD0F-510C-D701-C809345CB1BF -name all-wcprops -active 0 -parent DC2682C5-68A1-8249-6160-9B1896DAECB9 -File ::626C46DF-B711-6026-CA4C-2D0C7FAB64CD -name entries -active 0 -parent DC2682C5-68A1-8249-6160-9B1896DAECB9 -Component ::FB96078B-BA3C-498C-8C20-B01C1F28ACA9 -setup Install -active Yes -platforms {Windows FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name {Default Component} -parent Components -SetupType ::A87C1A6B-ED26-4B07-8736-750725FF34E4 -setup Install -active Yes -platforms {Windows FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name Typical -parent SetupTypes - -InstallComponent 1957048E-B498-4FFF-A8BA-F2DF640463B1 -setup Install -type pane -title {Welcome Screen} -component Welcome -active Yes -parent StandardInstall -InstallComponent DE1D4DF7-A35C-4228-8A25-07106AD77C9E -setup Install -type pane -title {License Agreement} -component License -active Yes -parent StandardInstall -InstallComponent EAB473BD-3ECC-4FDE-AF62-B80B89DCAE38 -setup Install -type action -conditions {354871D2-65BD-4414-BB04-F466798FA027 0F1370DF-FF15-4CE7-ADF6-CA74BC642334} -title {Modify Widget} -component ModifyWidget -active Yes -parent DE1D4DF7-A35C-4228-8A25-07106AD77C9E -Condition 354871D2-65BD-4414-BB04-F466798FA027 -active Yes -parent EAB473BD-3ECC-4FDE-AF62-B80B89DCAE38 -title {String Is Condition} -component StringIsCondition -TreeObject::id 354871D2-65BD-4414-BB04-F466798FA027 -Condition 0F1370DF-FF15-4CE7-ADF6-CA74BC642334 -active Yes -parent EAB473BD-3ECC-4FDE-AF62-B80B89DCAE38 -title {String Is Condition} -component StringIsCondition -TreeObject::id 0F1370DF-FF15-4CE7-ADF6-CA74BC642334 -InstallComponent B2E20690-C57D-4286-9977-F2541E04D71F -setup Install -type pane -conditions {F6A6DB43-C89D-4A19-98D3-1E24284260AE E8952A0A-82A0-4AD0-8FA8-8902870AF848} -title {Select Destination} -component SelectDestination -active Yes -parent StandardInstall -Condition F6A6DB43-C89D-4A19-98D3-1E24284260AE -active Yes -parent B2E20690-C57D-4286-9977-F2541E04D71F -title {Script Condition} -component ScriptCondition -TreeObject::id F6A6DB43-C89D-4A19-98D3-1E24284260AE -Condition E8952A0A-82A0-4AD0-8FA8-8902870AF848 -active Yes -parent B2E20690-C57D-4286-9977-F2541E04D71F -title {File Permission Condition} -component FilePermissionCondition -TreeObject::id E8952A0A-82A0-4AD0-8FA8-8902870AF848 -InstallComponent C862BDC0-8F67-4546-B658-4A9A8ADCE385 -setup Install -type pane -title {Start Copying Files} -component StartCopyingFiles -active Yes -parent StandardInstall -InstallComponent 268B55D8-DE61-421A-AB68-A5D4821D981F -setup Install -type pane -title {Copying Files} -component CopyFiles -active Yes -parent StandardInstall -InstallComponent 57BABE6F-717F-4D6A-8A66-921B404862F5 -setup Install -type action -title {Disable Buttons} -component ModifyWidget -active Yes -parent 268B55D8-DE61-421A-AB68-A5D4821D981F -InstallComponent 9F763EAB-21A4-41E7-B51B-EDC4ACF4C5C8 -setup Install -type action -title {Execute Action} -component ExecuteAction -active Yes -parent 268B55D8-DE61-421A-AB68-A5D4821D981F -InstallComponent 8A1B144A-F5F6-430F-A334-C31494182599 -setup Install -type action -title {Move Forward} -component MoveForward -active Yes -parent 268B55D8-DE61-421A-AB68-A5D4821D981F -InstallComponent 22E3617C-DE0E-D452-41DC-8278EA3F9D76 -setup Install -type pane -title {Custom Blank Pane 2} -component CustomBlankPane2 -active Yes -parent StandardInstall -InstallComponent 0464C461-3BD5-93CE-C3BA-C59CA84AD70D -setup Install -type action -title {Add Widget} -component AddWidget -active Yes -parent 22E3617C-DE0E-D452-41DC-8278EA3F9D76 -InstallComponent 2D8098DC-CDEA-32BE-83A6-A5AF95CC583E -setup Install -type action -title {Replace Text In File} -component ReplaceTextInFile -active Yes -parent 22E3617C-DE0E-D452-41DC-8278EA3F9D76 -InstallComponent 68A06F1C-625E-4BF0-AE3B-8BFBD37824C1 -setup Install -type pane -title {Custom Blank Pane 2} -component CustomBlankPane2 -active Yes -parent StandardInstall -InstallComponent 75288342-4CEB-473C-B242-450642503F74 -setup Install -type action -title {Add Widget} -component AddWidget -active Yes -parent 68A06F1C-625E-4BF0-AE3B-8BFBD37824C1 -InstallComponent 0C4A17DA-7867-40CC-81B4-0D1F170581AC -setup Install -type action -title {Replace Text In File} -component ReplaceTextInFile -active Yes -parent 68A06F1C-625E-4BF0-AE3B-8BFBD37824C1 -InstallComponent 1F7BE720-7885-4150-9550-F25FB1C69423 -setup Install -type pane -title {Setup Complete} -component SetupComplete -active Yes -parent StandardInstall -InstallComponent 10D62EB5-B108-461C-91D4-1D18A9CB5B08 -setup Install -type action -conditions {8112E00E-C24D-458F-9C19-03E63937E908 29B86DFA-93EA-4584-A9CF-DE823F4787F2} -title {Start Windows Service} -component StartWindowsService -active Yes -parent 1F7BE720-7885-4150-9550-F25FB1C69423 -Condition 8112E00E-C24D-458F-9C19-03E63937E908 -active Yes -parent 10D62EB5-B108-461C-91D4-1D18A9CB5B08 -title {Ask Yes or No} -component AskYesOrNo -TreeObject::id 8112E00E-C24D-458F-9C19-03E63937E908 -Condition 29B86DFA-93EA-4584-A9CF-DE823F4787F2 -active Yes -parent 10D62EB5-B108-461C-91D4-1D18A9CB5B08 -title {String Is Condition} -component StringIsCondition -TreeObject::id 29B86DFA-93EA-4584-A9CF-DE823F4787F2 -InstallComponent 60CAEDF4-53E9-46C5-9A0F-5873E12F2328 -setup Install -type action -conditions {D8C1E7BD-813A-43ED-95A4-4F5DA45D5886 3AEDBF26-DF24-4328-B5AE-E93AA5F0617B} -title {View Readme Checkbutton} -component AddWidget -active Yes -parent 1F7BE720-7885-4150-9550-F25FB1C69423 -Condition D8C1E7BD-813A-43ED-95A4-4F5DA45D5886 -active Yes -parent 60CAEDF4-53E9-46C5-9A0F-5873E12F2328 -title {File Exists Condition} -component FileExistsCondition -TreeObject::id D8C1E7BD-813A-43ED-95A4-4F5DA45D5886 -Condition 3AEDBF26-DF24-4328-B5AE-E93AA5F0617B -active Yes -parent 60CAEDF4-53E9-46C5-9A0F-5873E12F2328 -title {String Is Condition} -component StringIsCondition -TreeObject::id 3AEDBF26-DF24-4328-B5AE-E93AA5F0617B -InstallComponent 6059F771-3AA1-491C-8B84-788812912E73 -setup Install -type pane -title {Copying Files} -component CopyFiles -active Yes -parent DefaultInstall -InstallComponent 63A986C1-609D-430F-8119-EBEDFC8315EF -setup Install -type action -title {Disable Buttons} -component ModifyWidget -active Yes -parent 6059F771-3AA1-491C-8B84-788812912E73 -InstallComponent D05D0C20-4972-455A-885D-69F24E9AF177 -setup Install -type action -title {Execute Action} -component ExecuteAction -active Yes -parent 6059F771-3AA1-491C-8B84-788812912E73 -InstallComponent 13C83B15-ECEF-9C00-F46C-6E799ABF2157 -setup Install -type action -title {Replace Text In File} -component ReplaceTextInFile -active Yes -parent 6059F771-3AA1-491C-8B84-788812912E73 -InstallComponent 66412B02-0460-4B2B-9D89-57A6BBF1328D -setup Install -type action -title {Move Forward} -component MoveForward -active Yes -parent 6059F771-3AA1-491C-8B84-788812912E73 -InstallComponent 6B06C7C2-97A8-4642-B286-3B089943F359 -setup Install -type pane -title {Setup Complete} -component SetupComplete -active Yes -parent DefaultInstall -InstallComponent D945ADEC-CFCF-87DD-B8EC-480E6A87F4AF -setup Install -type action -title {Install Everything} -component ExecuteAction -active Yes -parent ConsoleInstall -InstallComponent 4F41161A-813F-4BE4-F776-3ED4F26B0CF3 -setup Install -type action -title {Replace Text In File} -component ReplaceTextInFile -active Yes -parent ConsoleInstall -InstallComponent B5904821-3970-1701-002C-0318B8BECA06 -setup Install -type action -title {Console Message} -component ConsoleMessage -active Yes -parent ConsoleInstall -InstallComponent 613FA629-E245-7370-9591-3648E0F25E00 -setup Install -type action -title {Start Windows Service} -component StartWindowsService -active Yes -parent ConsoleInstall -InstallComponent 4D9FB66C-1A02-271A-B6C3-7C88498D1A57 -setup Install -type action -title Exit -component Exit -active Yes -parent ConsoleInstall -InstallComponent 811B66F7-9751-FF4C-8189-5AB5F50E19FC -setup Install -type action -title {Install Everything} -component ExecuteAction -active Yes -parent SilentInstall -InstallComponent A2D703B9-395E-59F4-B03C-1655F2690FB7 -setup Install -type action -title {Replace Text In File} -component ReplaceTextInFile -active Yes -parent SilentInstall -InstallComponent 6EF6AADF-D373-CE5A-2D2C-26FB5BA9154D -setup Install -type action -title {Start Windows Service} -component StartWindowsService -active Yes -parent SilentInstall -InstallComponent 466DC16E-3453-409B-999C-CCDF853AA03D -setup Install -type action -title Exit -component Exit -active Yes -parent SilentInstall -InstallComponent D567240B-2A30-47FD-97AA-3EDA09B64E9F -setup Install -type actiongroup -title {Setup Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 61B40FBC-EADB-4F4C-A49F-81B35B3774BB -setup Install -type actiongroup -title {Startup Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 65546717-3D31-4931-B445-220199767639 -setup Install -type action -title {Create Install Panes} -component CreateInstallPanes -active Yes -parent 61B40FBC-EADB-4F4C-A49F-81B35B3774BB -InstallComponent 9C96DF15-FD21-468D-9996-76D96466D335 -setup Install -type actiongroup -title {Install Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 7FB76BFF-92E4-4210-9CFA-D6CDDB7C2288 -setup Install -type action -title {Install Selected Files} -component InstallSelectedFiles -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent F0BC8450-668B-41B2-A442-F1BE095D1BFB -setup Install -type action -title {Install Uninstaller} -component InstallUninstaller -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent B26D8DB4-B899-384A-DA80-782EDCBC98D6 -setup Install -type action -title {Create Folder} -component CreateFolder -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent BC8CE18E-2121-7ECF-9CA3-FE3E7FC329A1 -setup Install -type action -title {Add Directory To Path} -component AddDirectoryToPath -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent CAA5BD76-A403-3277-17F9-2E88C8EC540E -setup Install -type action -title {Execute External Program} -component ExecuteExternalProgram -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent 697B7934-4664-A4A2-1467-26B285C39ABC -setup Install -type action -title {Install Program Folder Shortcut} -component InstallProgramFolderShortcut -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent EC33B744-E0BD-BCCA-7695-F6D12FBE74E6 -setup Install -type action -title {Install Program Folder Shortcut} -component InstallProgramFolderShortcut -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent 81001CE5-6E0D-FAC5-A8BE-D7D06ADA70B2 -setup Install -type action -title {Install Program Folder Shortcut} -component InstallProgramFolderShortcut -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent 2C6197E2-968E-F2D8-7805-E67A43EC5BB5 -setup Install -type action -title {Install Program Folder Shortcut} -component InstallProgramFolderShortcut -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent 06959B7F-380D-DEF6-431A-1894BF9A367C -setup Install -type action -title {Install Program Folder Shortcut} -component InstallProgramFolderShortcut -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent EC0536AE-91F2-712A-DDBD-E6DF378335EA -setup Install -type action -title {Execute External Program} -component ExecuteExternalProgram -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent 75B1D869-C9BA-42C4-9C07-E1D156DA80A8 -setup Install -type action -title {Windows Uninstall Registry} -component AddWindowsUninstallEntry -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent A4155ACD-0377-4A2C-B952-2C19BF592347 -setup Install -type action -title {Uninstall Shortcut} -component InstallProgramFolderShortcut -active Yes -parent 9C96DF15-FD21-468D-9996-76D96466D335 -InstallComponent 18774B81-6D13-4BD2-B6F2-852BF95814BD -setup Install -type actiongroup -title {Finish Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 5EA75DE2-F9E1-405D-800E-B28FB96CDC61 -setup Install -type action -conditions {EDB4771C-ED91-462E-84D9-66E4AE0A9D9C 5CC9615C-1568-415A-A9BA-8D48DD155F7E 9D5D32C2-9AEC-46C1-98CA-F9A535E6ED82} -title {View Readme Window} -component TextWindow -active Yes -parent 18774B81-6D13-4BD2-B6F2-852BF95814BD -Condition EDB4771C-ED91-462E-84D9-66E4AE0A9D9C -active Yes -parent 5EA75DE2-F9E1-405D-800E-B28FB96CDC61 -title {String Is Condition} -component StringIsCondition -TreeObject::id EDB4771C-ED91-462E-84D9-66E4AE0A9D9C -Condition 5CC9615C-1568-415A-A9BA-8D48DD155F7E -active Yes -parent 5EA75DE2-F9E1-405D-800E-B28FB96CDC61 -title {String Is Condition} -component StringIsCondition -TreeObject::id 5CC9615C-1568-415A-A9BA-8D48DD155F7E -Condition 9D5D32C2-9AEC-46C1-98CA-F9A535E6ED82 -active Yes -parent 5EA75DE2-F9E1-405D-800E-B28FB96CDC61 -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 9D5D32C2-9AEC-46C1-98CA-F9A535E6ED82 -InstallComponent CFF365EA-C5AD-4E16-9D09-E20AADED45ED -setup Install -type actiongroup -title {Cancel Actions} -active Yes -parent ActionGroupsInstall -InstallComponent F037AAD5-E79E-4544-B8C0-AA98CDF5438E -setup Uninstall -type pane -title Uninstall -component Uninstall -active Yes -parent StandardUninstall -InstallComponent 1728FDEB-5E1A-48D4-9FF8-EE993A2C04AC -setup Uninstall -type action -title {Modify Widget} -component ModifyWidget -active Yes -parent F037AAD5-E79E-4544-B8C0-AA98CDF5438E -InstallComponent 60FEFCD5-D31D-4DEA-86D7-E0246ABF0DF5 -setup Uninstall -type action -title {Execute Action} -component ExecuteAction -active Yes -parent F037AAD5-E79E-4544-B8C0-AA98CDF5438E -InstallComponent 6B488B72-9080-4AF7-8690-8D823CCD86AE -setup Uninstall -type action -title {Move Forward} -component MoveForward -active Yes -parent F037AAD5-E79E-4544-B8C0-AA98CDF5438E -InstallComponent 2C06B466-789E-4F18-B711-E8411E2CD80F -setup Uninstall -type pane -conditions 628E6478-81A8-4DF9-A4FE-EACEFAEA2E93 -title {Uninstall Details} -component UninstallDetails -active Yes -parent StandardUninstall -Condition 628E6478-81A8-4DF9-A4FE-EACEFAEA2E93 -active Yes -parent 2C06B466-789E-4F18-B711-E8411E2CD80F -title {String Is Condition} -component StringIsCondition -TreeObject::id 628E6478-81A8-4DF9-A4FE-EACEFAEA2E93 -InstallComponent C0AAD722-CF3D-4708-A62F-4EE9C92F7B24 -setup Uninstall -type pane -title {Uninstall Complete} -component UninstallComplete -active Yes -parent StandardUninstall -InstallComponent C19EE9A4-6BBE-4631-8013-7B7DCA588367 -setup Uninstall -type action -title {Console Ask Yes Or No} -component ConsoleAskYesOrNo -active Yes -parent ConsoleUninstall -InstallComponent AA0A7460-2E6B-4DB1-A7EF-845A1C7B09CE -setup Uninstall -type action -conditions 96F7BA2D-A593-40DC-89C9-AE7895FD0984 -title Exit -component Exit -active Yes -parent ConsoleUninstall -Condition 96F7BA2D-A593-40DC-89C9-AE7895FD0984 -active Yes -parent AA0A7460-2E6B-4DB1-A7EF-845A1C7B09CE -title {String Is Condition} -component StringIsCondition -TreeObject::id 96F7BA2D-A593-40DC-89C9-AE7895FD0984 -InstallComponent 1D572EE2-DD93-4F13-850E-DE0EEB1DA110 -setup Uninstall -type action -title {Console Message} -component ConsoleMessage -active Yes -parent ConsoleUninstall -InstallComponent A518E166-9DC7-454F-8EFE-CD4461F093FB -setup Uninstall -type action -title {Execute Action} -component ExecuteAction -active Yes -parent ConsoleUninstall -InstallComponent 4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3 -setup Uninstall -type action -title {Console Message} -component ConsoleMessage -active Yes -parent ConsoleUninstall -InstallComponent 6ADB9508-5F82-4564-B6AC-1170A76B4CB9 -setup Uninstall -type action -title Exit -component Exit -active Yes -parent ConsoleUninstall -InstallComponent F71872ED-E931-4B96-B4F8-1F65356FE848 -setup Uninstall -type action -title {Execute Action} -component ExecuteAction -active Yes -parent SilentUninstall -InstallComponent CFEEDA4E-6870-4C25-8847-2ABB087DF90D -setup Uninstall -type action -title Exit -component Exit -active Yes -parent SilentUninstall -InstallComponent ED3D7C90-4A56-40EE-A2C5-E845C3A57C12 -setup Uninstall -type actiongroup -title {Setup Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent B923CC3C-CD18-4F8A-9648-51ADE1168D4A -setup Uninstall -type actiongroup -title {Startup Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent 716175FD-DD14-46E4-AC3E-2E6483C6FF7D -setup Uninstall -type action -conditions {103DC6E3-97DC-46AC-81C5-DED8E4E319E7 DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB} -title Exit -component Exit -active Yes -parent B923CC3C-CD18-4F8A-9648-51ADE1168D4A -Condition 103DC6E3-97DC-46AC-81C5-DED8E4E319E7 -active Yes -parent 716175FD-DD14-46E4-AC3E-2E6483C6FF7D -title {String Is Condition} -component StringIsCondition -TreeObject::id 103DC6E3-97DC-46AC-81C5-DED8E4E319E7 -Condition DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB -active Yes -parent 716175FD-DD14-46E4-AC3E-2E6483C6FF7D -title {Ask Yes or No} -component AskYesOrNo -TreeObject::id DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB -InstallComponent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -setup Uninstall -type actiongroup -title {Uninstall Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent 19131BB8-88ED-C9E4-A5CF-8873BE8F5D09 -setup Uninstall -type action -title {Execute External Program} -component ExecuteExternalProgram -active Yes -parent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -InstallComponent 3A1294BA-6D93-95C0-D81D-3435E62A69F3 -setup Uninstall -type action -title {Execute External Program} -component ExecuteExternalProgram -active Yes -parent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -InstallComponent 73C87D6F-ACBB-026B-157C-1CC1FD4C4EEC -setup Uninstall -type action -title {Execute External Program} -component ExecuteExternalProgram -active Yes -parent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -InstallComponent 0BABDE07-5132-BB2B-CDB4-AED542367076 -setup Uninstall -type action -title {Remove Directory From Path} -component RemoveDirectoryFromPath -active Yes -parent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -InstallComponent D2829903-F232-F03E-070A-386860F74F4A -setup Uninstall -type action -title {Delete File} -component DeleteFile -active Yes -parent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -InstallComponent 100C074A-1AB7-6813-12F8-585CF0B5C2D5 -setup Uninstall -type action -title {Uninstall Leftover Files} -component UninstallLeftoverFiles -active Yes -parent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -InstallComponent ACFFE9C0-C404-4FD9-AD70-8F60E822DE65 -setup Uninstall -type action -title {Uninstall Selected Files} -component UninstallSelectedFiles -active Yes -parent 73AB9FDF-9481-4EC3-8B31-C109BAA1086C -InstallComponent AA00EDED-9979-419F-A32C-DF1480E9EFF0 -setup Uninstall -type actiongroup -title {Finish Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent BC4AB013-F50F-49BF-BF98-FF7EBE16BCA4 -setup Uninstall -type actiongroup -title {Cancel Actions} -active Yes -parent ActionGroupsUninstall - -array set Properties { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Conditions -{0 conditions} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Height -{20} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,LabelSide -{left} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,LabelWidth -{28} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text,subst -{1} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Type -{entry} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Value -{Servers} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,VirtualText -{AgentGroup} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Width -{420} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,X -{20} - -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Y -{190} - -06959B7F-380D-DEF6-431A-1894BF9A367C,Conditions -{0 conditions} - -06959B7F-380D-DEF6-431A-1894BF9A367C,ShortcutName -{<%PandoraLicense%>} - -06959B7F-380D-DEF6-431A-1894BF9A367C,TargetFileName -{<%ProgramLicense%>} - -06959B7F-380D-DEF6-431A-1894BF9A367C,WorkingDirectory -{<%InstallDir%>} - -0BABDE07-5132-BB2B-CDB4-AED542367076,Conditions -{0 conditions} - -0BABDE07-5132-BB2B-CDB4-AED542367076,Directory -{<%InstallDir%>\util} - -0BABDE07-5132-BB2B-CDB4-AED542367076,Level -{system} - -0C4A17DA-7867-40CC-81B4-0D1F170581AC,Conditions -{0 conditions} - -0C4A17DA-7867-40CC-81B4-0D1F170581AC,ExecuteAction -{Before Next Pane is Displayed} - -0C4A17DA-7867-40CC-81B4-0D1F170581AC,Files -{pandora_agent.conf} - -0C4A17DA-7867-40CC-81B4-0D1F170581AC,StringMap -{$ServerIP$ <%ServerIP%> - $ServerPath$ /var/spool/pandora/data_in - $AgentTemp$ <%InstallDir%>\\temp} - -0F1370DF-FF15-4CE7-ADF6-CA74BC642334,CheckCondition -{Before Action is Executed} - -0F1370DF-FF15-4CE7-ADF6-CA74BC642334,Operator -{false} - -0F1370DF-FF15-4CE7-ADF6-CA74BC642334,String -{<%LicenseAccepted%>} - -100C074A-1AB7-6813-12F8-585CF0B5C2D5,Conditions -{0 conditions} - -103DC6E3-97DC-46AC-81C5-DED8E4E319E7,CheckCondition -{Before Action is Executed} - -103DC6E3-97DC-46AC-81C5-DED8E4E319E7,String -{<%GuiMode%>} - -10D62EB5-B108-461C-91D4-1D18A9CB5B08,Conditions -{2 conditions} - -10D62EB5-B108-461C-91D4-1D18A9CB5B08,ServiceName -{pandoraFMSagent} - -13C83B15-ECEF-9C00-F46C-6E799ABF2157,Conditions -{0 conditions} - -13C83B15-ECEF-9C00-F46C-6E799ABF2157,ExecuteAction -{Before Next Pane is Displayed} - -13C83B15-ECEF-9C00-F46C-6E799ABF2157,Files -{pandora_agent.conf} - -13C83B15-ECEF-9C00-F46C-6E799ABF2157,StringMap -{$ServerIP$ localhost - $ServerPath$ /var/spool/pandora/data_in - $AgentTemp$ <%InstallDir%>\\temp} - -1728FDEB-5E1A-48D4-9FF8-EE993A2C04AC,Conditions -{0 conditions} - -1728FDEB-5E1A-48D4-9FF8-EE993A2C04AC,State -{disabled} - -1728FDEB-5E1A-48D4-9FF8-EE993A2C04AC,Widget -{NextButton; CancelButton} - -18774B81-6D13-4BD2-B6F2-852BF95814BD,Alias -{Finish Actions} - -18774B81-6D13-4BD2-B6F2-852BF95814BD,Conditions -{0 conditions} - -19131BB8-88ED-C9E4-A5CF-8873BE8F5D09,Conditions -{0 conditions} - -19131BB8-88ED-C9E4-A5CF-8873BE8F5D09,ConsoleTitle -{<%AppName%> Deleting Pandora FMS Agent AT job} - -19131BB8-88ED-C9E4-A5CF-8873BE8F5D09,ProgramCommandLine -{delete_at_job.bat} - -19131BB8-88ED-C9E4-A5CF-8873BE8F5D09,WorkingDirectory -{<%InstallDir%>/scripts} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,BackButton,subst -{1} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,CancelButton,subst -{1} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Caption,subst -{1} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Conditions -{0 conditions} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message,subst -{1} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,NextButton,subst -{1} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Conditions -{0 conditions} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Message,subst -{1} - -1F7BE720-7885-4150-9550-F25FB1C69423,BackButton,subst -{0} - -1F7BE720-7885-4150-9550-F25FB1C69423,Buttons -{Next} - -1F7BE720-7885-4150-9550-F25FB1C69423,CancelButton,subst -{0} - -1F7BE720-7885-4150-9550-F25FB1C69423,Caption,subst -{1} - -1F7BE720-7885-4150-9550-F25FB1C69423,Conditions -{0 conditions} - -1F7BE720-7885-4150-9550-F25FB1C69423,Message,subst -{1} - -1F7BE720-7885-4150-9550-F25FB1C69423,NextButton,subst -{1} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Active -{Yes} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton,subst -{1} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Buttons -{Next} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton,subst -{1} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption,subst -{1} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Conditions -{0 conditions} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message,subst -{1} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton,subst -{1} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle,subst -{0} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,BackButton,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,Buttons -{Cancel} - -268B55D8-DE61-421A-AB68-A5D4821D981F,CancelButton,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,Caption,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,Conditions -{0 conditions} - -268B55D8-DE61-421A-AB68-A5D4821D981F,FileLabel,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,Message,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,NextButton,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,ProgressValue,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,Subtitle,subst -{1} - -268B55D8-DE61-421A-AB68-A5D4821D981F,Title,subst -{1} - -29B86DFA-93EA-4584-A9CF-DE823F4787F2,CheckCondition -{Before Action is Executed} - -29B86DFA-93EA-4584-A9CF-DE823F4787F2,FailureMessage -{Error starting Pandora FMS service} - -29B86DFA-93EA-4584-A9CF-DE823F4787F2,String -{<%Answer%>} - -2C06B466-789E-4F18-B711-E8411E2CD80F,BackButton,subst -{1} - -2C06B466-789E-4F18-B711-E8411E2CD80F,CancelButton,subst -{1} - -2C06B466-789E-4F18-B711-E8411E2CD80F,Caption,subst -{1} - -2C06B466-789E-4F18-B711-E8411E2CD80F,Conditions -{1 condition} - -2C06B466-789E-4F18-B711-E8411E2CD80F,Message,subst -{1} - -2C06B466-789E-4F18-B711-E8411E2CD80F,NextButton,subst -{1} - -2C06B466-789E-4F18-B711-E8411E2CD80F,Subtitle,subst -{1} - -2C06B466-789E-4F18-B711-E8411E2CD80F,Text,subst -{1} - -2C06B466-789E-4F18-B711-E8411E2CD80F,Title,subst -{1} - -2C6197E2-968E-F2D8-7805-E67A43EC5BB5,Conditions -{0 conditions} - -2C6197E2-968E-F2D8-7805-E67A43EC5BB5,ShortcutName -{<%EditConfiguration%>} - -2C6197E2-968E-F2D8-7805-E67A43EC5BB5,TargetFileName -{<%InstallDir%>\pandora_agent.conf} - -2C6197E2-968E-F2D8-7805-E67A43EC5BB5,WorkingDirectory -{<%InstallDir%>} - -2D8098DC-CDEA-32BE-83A6-A5AF95CC583E,Conditions -{0 conditions} - -2D8098DC-CDEA-32BE-83A6-A5AF95CC583E,ExecuteAction -{Before Next Pane is Displayed} - -2D8098DC-CDEA-32BE-83A6-A5AF95CC583E,Files -{pandora_agent.conf} - -2D8098DC-CDEA-32BE-83A6-A5AF95CC583E,StringMap -{$AgentGroup$ <%AgentGroup%>} - -354871D2-65BD-4414-BB04-F466798FA027,CheckCondition -{Before Action is Executed} - -354871D2-65BD-4414-BB04-F466798FA027,String -{<%Property <%CurrentPane%> UserMustAcceptLicense%>} - -3A1294BA-6D93-95C0-D81D-3435E62A69F3,Conditions -{0 conditions} - -3A1294BA-6D93-95C0-D81D-3435E62A69F3,ConsoleTitle -{<%AppName%> Stopping Pandora FMS agent} - -3A1294BA-6D93-95C0-D81D-3435E62A69F3,ProgramCommandLine -{stop_pandora_agent.bat} - -3A1294BA-6D93-95C0-D81D-3435E62A69F3,WorkingDirectory -{<%InstallDir%>/scripts} - -3AEDBF26-DF24-4328-B5AE-E93AA5F0617B,CheckCondition -{Before Action is Executed} - -3AEDBF26-DF24-4328-B5AE-E93AA5F0617B,Operator -{false} - -3AEDBF26-DF24-4328-B5AE-E93AA5F0617B,String -{<%InstallStopped%>} - -466DC16E-3453-409B-999C-CCDF853AA03D,Conditions -{0 conditions} - -466DC16E-3453-409B-999C-CCDF853AA03D,ExitType -{Finish} - -4D9FB66C-1A02-271A-B6C3-7C88498D1A57,Conditions -{0 conditions} - -4D9FB66C-1A02-271A-B6C3-7C88498D1A57,ExitType -{Finish} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Conditions -{0 conditions} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Message,subst -{1} - -4F41161A-813F-4BE4-F776-3ED4F26B0CF3,Conditions -{0 conditions} - -4F41161A-813F-4BE4-F776-3ED4F26B0CF3,ExecuteAction -{Before Next Pane is Displayed} - -4F41161A-813F-4BE4-F776-3ED4F26B0CF3,Files -{pandora_agent.conf} - -4F41161A-813F-4BE4-F776-3ED4F26B0CF3,StringMap -{$ServerIP$ localhost - $ServerPath$ /var/spool/pandora/data_in - $AgentTemp$ <%InstallDir%>\\temp} - -57BABE6F-717F-4D6A-8A66-921B404862F5,Conditions -{0 conditions} - -57BABE6F-717F-4D6A-8A66-921B404862F5,State -{disabled} - -57BABE6F-717F-4D6A-8A66-921B404862F5,Widget -{Back Button;Next Button} - -5CC9615C-1568-415A-A9BA-8D48DD155F7E,CheckCondition -{Before Action is Executed} - -5CC9615C-1568-415A-A9BA-8D48DD155F7E,String -{<%ViewReadme%>} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,Caption,subst -{1} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,CloseButton,subst -{1} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,Conditions -{3 conditions} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,Message,subst -{1} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,TextFile -{<%ProgramReadme%>} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,Title,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,BackButton,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,CancelButton,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,Caption,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,Conditions -{0 conditions} - -6059F771-3AA1-491C-8B84-788812912E73,FileLabel,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,Message,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,NextButton,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,ProgressValue,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,Subtitle,subst -{1} - -6059F771-3AA1-491C-8B84-788812912E73,Title,subst -{1} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,Background -{white} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,Checked -{Yes} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,Conditions -{2 conditions} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,Text,subst -{1} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,Type -{checkbutton} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,VirtualText -{ViewReadme} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,X -{185} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,Y -{250} - -60FEFCD5-D31D-4DEA-86D7-E0246ABF0DF5,Action -{Uninstall Actions} - -60FEFCD5-D31D-4DEA-86D7-E0246ABF0DF5,Conditions -{0 conditions} - -613FA629-E245-7370-9591-3648E0F25E00,Conditions -{0 conditions} - -613FA629-E245-7370-9591-3648E0F25E00,ServiceName -{pandoraFMSagent} - -61B40FBC-EADB-4F4C-A49F-81B35B3774BB,Alias -{Startup Actions} - -61B40FBC-EADB-4F4C-A49F-81B35B3774BB,Conditions -{0 conditions} - -628E6478-81A8-4DF9-A4FE-EACEFAEA2E93,String -{<%ErrorsOccurred%>} - -63A986C1-609D-430F-8119-EBEDFC8315EF,Conditions -{0 conditions} - -63A986C1-609D-430F-8119-EBEDFC8315EF,State -{disabled} - -63A986C1-609D-430F-8119-EBEDFC8315EF,Widget -{Back Button;Next Button} - -65546717-3D31-4931-B445-220199767639,Conditions -{0 conditions} - -66412B02-0460-4B2B-9D89-57A6BBF1328D,Conditions -{0 conditions} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Active -{Yes} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,BackButton,subst -{1} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Buttons -{Next} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,CancelButton,subst -{1} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption,subst -{1} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Conditions -{0 conditions} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message,subst -{1} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,NextButton,subst -{1} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle,subst -{0} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title,subst -{1} - -697B7934-4664-A4A2-1467-26B285C39ABC,Conditions -{0 conditions} - -697B7934-4664-A4A2-1467-26B285C39ABC,IconPath -{<%InstallDir%>\pandora.ico} - -697B7934-4664-A4A2-1467-26B285C39ABC,ShortcutName -{<%StopPandoraService%>} - -697B7934-4664-A4A2-1467-26B285C39ABC,TargetFileName -{<%InstallDir%>\scripts\stop_pandora_agent.bat} - -697B7934-4664-A4A2-1467-26B285C39ABC,WorkingDirectory -{<%InstallDir%>} - -6ADB9508-5F82-4564-B6AC-1170A76B4CB9,Conditions -{0 conditions} - -6ADB9508-5F82-4564-B6AC-1170A76B4CB9,ExitType -{Finish} - -6B06C7C2-97A8-4642-B286-3B089943F359,BackButton,subst -{1} - -6B06C7C2-97A8-4642-B286-3B089943F359,Buttons -{Next} - -6B06C7C2-97A8-4642-B286-3B089943F359,CancelButton,subst -{1} - -6B06C7C2-97A8-4642-B286-3B089943F359,Caption,subst -{1} - -6B06C7C2-97A8-4642-B286-3B089943F359,Conditions -{0 conditions} - -6B06C7C2-97A8-4642-B286-3B089943F359,Message,subst -{1} - -6B06C7C2-97A8-4642-B286-3B089943F359,NextButton,subst -{1} - -6B488B72-9080-4AF7-8690-8D823CCD86AE,Conditions -{0 conditions} - -6EF6AADF-D373-CE5A-2D2C-26FB5BA9154D,Conditions -{0 conditions} - -6EF6AADF-D373-CE5A-2D2C-26FB5BA9154D,ServiceName -{pandoraFMSagent} - -716175FD-DD14-46E4-AC3E-2E6483C6FF7D,Comment -{Ask the user if they want to proceed with the uninstall.} - -716175FD-DD14-46E4-AC3E-2E6483C6FF7D,Conditions -{2 conditions} - -73AB9FDF-9481-4EC3-8B31-C109BAA1086C,Alias -{Uninstall Actions} - -73AB9FDF-9481-4EC3-8B31-C109BAA1086C,Conditions -{0 conditions} - -73C87D6F-ACBB-026B-157C-1CC1FD4C4EEC,Conditions -{0 conditions} - -73C87D6F-ACBB-026B-157C-1CC1FD4C4EEC,ConsoleTitle -{<%AppName%> Deregistering Pandora FMS Agent service} - -73C87D6F-ACBB-026B-157C-1CC1FD4C4EEC,ProgramCommandLine -{PandoraAgent.exe --uninstall} - -73C87D6F-ACBB-026B-157C-1CC1FD4C4EEC,WorkingDirectory -{<%InstallDir%>} - -75288342-4CEB-473C-B242-450642503F74,Conditions -{0 conditions} - -75288342-4CEB-473C-B242-450642503F74,Height -{20} - -75288342-4CEB-473C-B242-450642503F74,LabelSide -{left} - -75288342-4CEB-473C-B242-450642503F74,LabelWidth -{28} - -75288342-4CEB-473C-B242-450642503F74,Text,subst -{1} - -75288342-4CEB-473C-B242-450642503F74,Type -{entry} - -75288342-4CEB-473C-B242-450642503F74,Value -{myserver.ipaddress.net} - -75288342-4CEB-473C-B242-450642503F74,VirtualText -{ServerIP} - -75288342-4CEB-473C-B242-450642503F74,Width -{420} - -75288342-4CEB-473C-B242-450642503F74,X -{20} - -75288342-4CEB-473C-B242-450642503F74,Y -{190} - -75B1D869-C9BA-42C4-9C07-E1D156DA80A8,Conditions -{0 conditions} - -7FB76BFF-92E4-4210-9CFA-D6CDDB7C2288,Conditions -{0 conditions} - -7FB76BFF-92E4-4210-9CFA-D6CDDB7C2288,UpdateFilePercentage -{Yes} - -7FB76BFF-92E4-4210-9CFA-D6CDDB7C2288,UpdateFileText -{Yes} - -81001CE5-6E0D-FAC5-A8BE-D7D06ADA70B2,Conditions -{0 conditions} - -81001CE5-6E0D-FAC5-A8BE-D7D06ADA70B2,ShortcutName -{<%Readme%>} - -81001CE5-6E0D-FAC5-A8BE-D7D06ADA70B2,TargetFileName -{<%ProgramReadme%>} - -81001CE5-6E0D-FAC5-A8BE-D7D06ADA70B2,WorkingDirectory -{<%InstallDir%>} - -8112E00E-C24D-458F-9C19-03E63937E908,CheckCondition -{Before Action is Executed} - -8112E00E-C24D-458F-9C19-03E63937E908,FailureMessage -{Service not initialized. Try to init Pandora Windows Agent Service manually.} - -8112E00E-C24D-458F-9C19-03E63937E908,Message,subst -{1} - -8112E00E-C24D-458F-9C19-03E63937E908,Title,subst -{1} - -811B66F7-9751-FF4C-8189-5AB5F50E19FC,Action -{Install Actions} - -811B66F7-9751-FF4C-8189-5AB5F50E19FC,Conditions -{0 conditions} - -8A1B144A-F5F6-430F-A334-C31494182599,Conditions -{0 conditions} - -946FC43B-0E32-4C38-86EF-4F9252C67E16,Destination -{<%InstallDir%>} - -946FC43B-0E32-4C38-86EF-4F9252C67E16,FileSize -{15267909} - -946FC43B-0E32-4C38-86EF-4F9252C67E16,Name -{Program Files} - -96F7BA2D-A593-40DC-89C9-AE7895FD0984,CheckCondition -{Before Action is Executed} - -96F7BA2D-A593-40DC-89C9-AE7895FD0984,Operator -{false} - -96F7BA2D-A593-40DC-89C9-AE7895FD0984,String -{<%Answer%>} - -9C96DF15-FD21-468D-9996-76D96466D335,Alias -{Install Actions} - -9C96DF15-FD21-468D-9996-76D96466D335,Conditions -{0 conditions} - -9D5D32C2-9AEC-46C1-98CA-F9A535E6ED82,CheckCondition -{Before Action is Executed} - -9D5D32C2-9AEC-46C1-98CA-F9A535E6ED82,Filename -{<%ProgramReadme%>} - -9F763EAB-21A4-41E7-B51B-EDC4ACF4C5C8,Action -{Install Actions} - -9F763EAB-21A4-41E7-B51B-EDC4ACF4C5C8,Conditions -{0 conditions} - -A2D703B9-395E-59F4-B03C-1655F2690FB7,Conditions -{0 conditions} - -A2D703B9-395E-59F4-B03C-1655F2690FB7,ExecuteAction -{Before Next Pane is Displayed} - -A2D703B9-395E-59F4-B03C-1655F2690FB7,Files -{pandora_agent.conf} - -A2D703B9-395E-59F4-B03C-1655F2690FB7,StringMap -{$ServerIP$ localhost - $ServerPath$ /var/spool/pandora/data_in - $AgentTemp$ <%InstallDir%>\\temp} - -A4155ACD-0377-4A2C-B952-2C19BF592347,Conditions -{0 conditions} - -A4155ACD-0377-4A2C-B952-2C19BF592347,FileName -{<%ShortAppName%>-uninstall} - -A4155ACD-0377-4A2C-B952-2C19BF592347,ShortcutName -{<%UninstallApplicationText%>} - -A4155ACD-0377-4A2C-B952-2C19BF592347,TargetFileName -{<%Uninstaller%>} - -A4155ACD-0377-4A2C-B952-2C19BF592347,WorkingDirectory -{<%InstallDir%>} - -A518E166-9DC7-454F-8EFE-CD4461F093FB,Action -{Uninstall Actions} - -A518E166-9DC7-454F-8EFE-CD4461F093FB,Conditions -{0 conditions} - -A87C1A6B-ED26-4B07-8736-750725FF34E4,Components -{FB96078B-BA3C-498C-8C20-B01C1F28ACA9} - -A87C1A6B-ED26-4B07-8736-750725FF34E4,Description,subst -{1} - -A87C1A6B-ED26-4B07-8736-750725FF34E4,DisplayName,subst -{1} - -A87C1A6B-ED26-4B07-8736-750725FF34E4,Name -{Typical} - -A87C1A6B-ED26-4B07-8736-750725FF34E4,ShowSetupType -{No} - -AA00EDED-9979-419F-A32C-DF1480E9EFF0,Alias -{Finish Actions} - -AA00EDED-9979-419F-A32C-DF1480E9EFF0,Conditions -{0 conditions} - -AA0A7460-2E6B-4DB1-A7EF-845A1C7B09CE,Conditions -{1 condition} - -ACFFE9C0-C404-4FD9-AD70-8F60E822DE65,Conditions -{0 conditions} - -AIX-ppc,Active -{No} - -AIX-ppc,BuildSeparateArchives -{No} - -AIX-ppc,DefaultDirectoryPermission -{0755} - -AIX-ppc,DefaultFilePermission -{0755} - -AIX-ppc,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -AIX-ppc,FallBackToConsole -{Yes} - -AIX-ppc,InstallDir -{<%Home%>/<%ShortAppName%>} - -AIX-ppc,InstallMode -{Standard} - -AIX-ppc,InstallType -{Typical} - -AIX-ppc,ProgramExecutable -{} - -AIX-ppc,ProgramFolderAllUsers -{No} - -AIX-ppc,ProgramFolderName -{<%AppName%>} - -AIX-ppc,ProgramLicense -{<%InstallDir%>/installer/LICENSE.txt} - -AIX-ppc,ProgramName -{} - -AIX-ppc,ProgramReadme -{<%InstallDir%>/installer/README.txt} - -AIX-ppc,PromptForRoot -{Yes} - -AIX-ppc,RequireRoot -{No} - -AIX-ppc,RootInstallDir -{/usr/local/<%ShortAppName%>} - -B26D8DB4-B899-384A-DA80-782EDCBC98D6,Conditions -{0 conditions} - -B26D8DB4-B899-384A-DA80-782EDCBC98D6,FolderName -{<%InstallDir%>\temp} - -B2E20690-C57D-4286-9977-F2541E04D71F,BackButton,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,BrowseButton,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,BrowseText,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,Buttons -{Next/Cancel} - -B2E20690-C57D-4286-9977-F2541E04D71F,CancelButton,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,Caption,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,Conditions -{2 conditions} - -B2E20690-C57D-4286-9977-F2541E04D71F,Destination,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,DestinationLabel,subst -{0} - -B2E20690-C57D-4286-9977-F2541E04D71F,Message,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,NextButton,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,Subtitle,subst -{1} - -B2E20690-C57D-4286-9977-F2541E04D71F,Title,subst -{1} - -B5904821-3970-1701-002C-0318B8BECA06,Conditions -{0 conditions} - -B5904821-3970-1701-002C-0318B8BECA06,Message,subst -{1} - -B923CC3C-CD18-4F8A-9648-51ADE1168D4A,Alias -{Startup Actions} - -B923CC3C-CD18-4F8A-9648-51ADE1168D4A,Conditions -{0 conditions} - -BC4AB013-F50F-49BF-BF98-FF7EBE16BCA4,Alias -{Cancel Actions} - -BC8CE18E-2121-7ECF-9CA3-FE3E7FC329A1,Conditions -{0 conditions} - -BC8CE18E-2121-7ECF-9CA3-FE3E7FC329A1,Directory -{<%InstallDir%>\util} - -BC8CE18E-2121-7ECF-9CA3-FE3E7FC329A1,Level -{system} - -C0AAD722-CF3D-4708-A62F-4EE9C92F7B24,BackButton,subst -{1} - -C0AAD722-CF3D-4708-A62F-4EE9C92F7B24,CancelButton,subst -{1} - -C0AAD722-CF3D-4708-A62F-4EE9C92F7B24,Caption,subst -{1} - -C0AAD722-CF3D-4708-A62F-4EE9C92F7B24,Conditions -{0 conditions} - -C0AAD722-CF3D-4708-A62F-4EE9C92F7B24,Message,subst -{1} - -C0AAD722-CF3D-4708-A62F-4EE9C92F7B24,NextButton,subst -{1} - -C19EE9A4-6BBE-4631-8013-7B7DCA588367,Conditions -{0 conditions} - -C19EE9A4-6BBE-4631-8013-7B7DCA588367,Default -{Yes} - -C19EE9A4-6BBE-4631-8013-7B7DCA588367,Prompt -{<%UninstallStartupText%>} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,BackButton,subst -{1} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Buttons -{Next/Cancel} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,CancelButton,subst -{1} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Caption,subst -{1} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Conditions -{0 conditions} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Message,subst -{1} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,NextButton,subst -{1} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Subtitle,subst -{1} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Text,subst -{1} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Title,subst -{1} - -CAA5BD76-A403-3277-17F9-2E88C8EC540E,Conditions -{0 conditions} - -CAA5BD76-A403-3277-17F9-2E88C8EC540E,ConsoleTitle -{<%AppName%> Installing Pandora FMS Agent as windows service} - -CAA5BD76-A403-3277-17F9-2E88C8EC540E,ProgramCommandLine -{PandoraAgent.exe --install} - -CAA5BD76-A403-3277-17F9-2E88C8EC540E,WorkingDirectory -{<%InstallDir%>} - -CFEEDA4E-6870-4C25-8847-2ABB087DF90D,ExitType -{Finish} - -CFF365EA-C5AD-4E16-9D09-E20AADED45ED,Alias -{Cancel Actions} - -D05D0C20-4972-455A-885D-69F24E9AF177,Action -{Install Actions} - -D05D0C20-4972-455A-885D-69F24E9AF177,Conditions -{0 conditions} - -D2829903-F232-F03E-070A-386860F74F4A,Conditions -{0 conditions} - -D2829903-F232-F03E-070A-386860F74F4A,Files -{<%InstallDir%>\pandora_agent.log} - -D2829903-F232-F03E-070A-386860F74F4A,IgnoreErrors -{Yes} - -D567240B-2A30-47FD-97AA-3EDA09B64E9F,Alias -{Setup Actions} - -D567240B-2A30-47FD-97AA-3EDA09B64E9F,Conditions -{0 conditions} - -D8C1E7BD-813A-43ED-95A4-4F5DA45D5886,CheckCondition -{Before Action is Executed} - -D8C1E7BD-813A-43ED-95A4-4F5DA45D5886,Filename -{<%ProgramReadme%>} - -D945ADEC-CFCF-87DD-B8EC-480E6A87F4AF,Action -{Install Actions} - -D945ADEC-CFCF-87DD-B8EC-480E6A87F4AF,Conditions -{0 conditions} - -DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB,CheckCondition -{Before Action is Executed} - -DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB,Message,subst -{1} - -DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB,Title,subst -{1} - -DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB,TrueValue -{No} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,AcceptRadiobutton,subst -{0} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Active -{Yes} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,BackButton,subst -{1} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,CancelButton,subst -{1} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Caption,subst -{1} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Conditions -{0 conditions} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,DeclineRadiobutton,subst -{0} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Message,subst -{1} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,NextButton,subst -{1} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Subtitle,subst -{1} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Text,subst -{1} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Title,subst -{1} - -E8952A0A-82A0-4AD0-8FA8-8902870AF848,CheckCondition -{Before Next Pane is Displayed} - -E8952A0A-82A0-4AD0-8FA8-8902870AF848,FailureMessage -{<%DirectoryPermissionText%>} - -E8952A0A-82A0-4AD0-8FA8-8902870AF848,Filename -{<%InstallDir%>} - -E8952A0A-82A0-4AD0-8FA8-8902870AF848,Permission -{can create} - -EAB473BD-3ECC-4FDE-AF62-B80B89DCAE38,Conditions -{2 conditions} - -EAB473BD-3ECC-4FDE-AF62-B80B89DCAE38,State -{disabled} - -EAB473BD-3ECC-4FDE-AF62-B80B89DCAE38,Widget -{NextButton} - -EC0536AE-91F2-712A-DDBD-E6DF378335EA,Conditions -{0 conditions} - -EC0536AE-91F2-712A-DDBD-E6DF378335EA,IgnoreErrors -{Yes} - -EC0536AE-91F2-712A-DDBD-E6DF378335EA,ProgramCommandLine -{install_service_restart.bat} - -EC0536AE-91F2-712A-DDBD-E6DF378335EA,WorkingDirectory -{<%InstallDir%>\scripts} - -EC33B744-E0BD-BCCA-7695-F6D12FBE74E6,Conditions -{0 conditions} - -EC33B744-E0BD-BCCA-7695-F6D12FBE74E6,IconPath -{<%InstallDir%>\pandora.ico} - -EC33B744-E0BD-BCCA-7695-F6D12FBE74E6,ShortcutName -{<%StartPandoraService%>} - -EC33B744-E0BD-BCCA-7695-F6D12FBE74E6,TargetFileName -{<%InstallDir%>\scripts\start_pandora_agent.bat} - -EC33B744-E0BD-BCCA-7695-F6D12FBE74E6,WorkingDirectory -{<%InstallDir%>} - -ED3D7C90-4A56-40EE-A2C5-E845C3A57C12,Alias -{Setup Actions} - -ED3D7C90-4A56-40EE-A2C5-E845C3A57C12,Conditions -{0 conditions} - -EDB4771C-ED91-462E-84D9-66E4AE0A9D9C,CheckCondition -{Before Action is Executed} - -EDB4771C-ED91-462E-84D9-66E4AE0A9D9C,String -{<%GuiMode%>} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,BackButton,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,CancelButton,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,Caption,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,Conditions -{0 conditions} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,FileValue,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,Message,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,NextButton,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,ProgressValue,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,Subtitle,subst -{1} - -F037AAD5-E79E-4544-B8C0-AA98CDF5438E,Title,subst -{1} - -F0BC8450-668B-41B2-A442-F1BE095D1BFB,Conditions -{0 conditions} - -F6A6DB43-C89D-4A19-98D3-1E24284260AE,Comment -{Do not display this pane if this is an upgrade install unless there is more than one installation present} - -F6A6DB43-C89D-4A19-98D3-1E24284260AE,Script -{!<%UpgradeInstall%> || <%PreviousInstallCount%> != 1} - -F71872ED-E931-4B96-B4F8-1F65356FE848,Action -{Uninstall Actions} - -F71872ED-E931-4B96-B4F8-1F65356FE848,Conditions -{0 conditions} - -FB96078B-BA3C-498C-8C20-B01C1F28ACA9,Description,subst -{1} - -FB96078B-BA3C-498C-8C20-B01C1F28ACA9,DisplayName,subst -{1} - -FB96078B-BA3C-498C-8C20-B01C1F28ACA9,FileGroups -{946FC43B-0E32-4C38-86EF-4F9252C67E16} - -FB96078B-BA3C-498C-8C20-B01C1F28ACA9,Name -{Default Component} - -FB96078B-BA3C-498C-8C20-B01C1F28ACA9,RequiredComponent -{Yes} - -FreeBSD-4-x86,Active -{No} - -FreeBSD-4-x86,BuildSeparateArchives -{No} - -FreeBSD-4-x86,DefaultDirectoryPermission -{0755} - -FreeBSD-4-x86,DefaultFilePermission -{0755} - -FreeBSD-4-x86,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -FreeBSD-4-x86,FallBackToConsole -{Yes} - -FreeBSD-4-x86,InstallDir -{<%Home%>/<%ShortAppName%>} - -FreeBSD-4-x86,InstallMode -{Standard} - -FreeBSD-4-x86,InstallType -{Typical} - -FreeBSD-4-x86,ProgramExecutable -{} - -FreeBSD-4-x86,ProgramFolderAllUsers -{No} - -FreeBSD-4-x86,ProgramFolderName -{<%AppName%>} - -FreeBSD-4-x86,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -FreeBSD-4-x86,ProgramName -{} - -FreeBSD-4-x86,ProgramReadme -{<%InstallDir%>/README.txt} - -FreeBSD-4-x86,PromptForRoot -{Yes} - -FreeBSD-4-x86,RequireRoot -{No} - -FreeBSD-4-x86,RootInstallDir -{/usr/local/<%ShortAppName%>} - -FreeBSD-5-x86,Active -{No} - -FreeBSD-5-x86,BuildSeparateArchives -{No} - -FreeBSD-5-x86,DefaultDirectoryPermission -{0755} - -FreeBSD-5-x86,DefaultFilePermission -{0755} - -FreeBSD-5-x86,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -FreeBSD-5-x86,FallBackToConsole -{Yes} - -FreeBSD-5-x86,InstallDir -{<%Home%>/<%ShortAppName%>} - -FreeBSD-5-x86,InstallMode -{Standard} - -FreeBSD-5-x86,InstallType -{Typical} - -FreeBSD-5-x86,ProgramExecutable -{} - -FreeBSD-5-x86,ProgramFolderAllUsers -{No} - -FreeBSD-5-x86,ProgramFolderName -{<%AppName%>} - -FreeBSD-5-x86,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -FreeBSD-5-x86,ProgramName -{} - -FreeBSD-5-x86,ProgramReadme -{<%InstallDir%>/README.txt} - -FreeBSD-5-x86,PromptForRoot -{Yes} - -FreeBSD-5-x86,RequireRoot -{No} - -FreeBSD-5-x86,RootInstallDir -{/usr/local/<%ShortAppName%>} - -FreeBSD-6-x86,Active -{No} - -FreeBSD-6-x86,BuildSeparateArchives -{No} - -FreeBSD-6-x86,DefaultDirectoryPermission -{0755} - -FreeBSD-6-x86,DefaultFilePermission -{0755} - -FreeBSD-6-x86,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -FreeBSD-6-x86,FallBackToConsole -{Yes} - -FreeBSD-6-x86,InstallDir -{<%Home%>/<%ShortAppName%>} - -FreeBSD-6-x86,InstallMode -{Standard} - -FreeBSD-6-x86,InstallType -{Typical} - -FreeBSD-6-x86,ProgramExecutable -{} - -FreeBSD-6-x86,ProgramFolderAllUsers -{No} - -FreeBSD-6-x86,ProgramFolderName -{<%AppName%>} - -FreeBSD-6-x86,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -FreeBSD-6-x86,ProgramName -{} - -FreeBSD-6-x86,ProgramReadme -{<%InstallDir%>/README.txt} - -FreeBSD-6-x86,PromptForRoot -{Yes} - -FreeBSD-6-x86,RequireRoot -{No} - -FreeBSD-6-x86,RootInstallDir -{/usr/local/<%ShortAppName%>} - -FreeBSD-7-x86,Active -{No} - -FreeBSD-7-x86,BuildSeparateArchives -{No} - -FreeBSD-7-x86,DefaultDirectoryPermission -{0755} - -FreeBSD-7-x86,DefaultFilePermission -{0755} - -FreeBSD-7-x86,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -FreeBSD-7-x86,FallBackToConsole -{Yes} - -FreeBSD-7-x86,InstallDir -{<%Home%>/<%ShortAppName%>} - -FreeBSD-7-x86,InstallMode -{Standard} - -FreeBSD-7-x86,InstallType -{Typical} - -FreeBSD-7-x86,ProgramExecutable -{} - -FreeBSD-7-x86,ProgramFolderAllUsers -{No} - -FreeBSD-7-x86,ProgramFolderName -{<%AppName%>} - -FreeBSD-7-x86,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -FreeBSD-7-x86,ProgramName -{} - -FreeBSD-7-x86,ProgramReadme -{<%InstallDir%>/README.txt} - -FreeBSD-7-x86,PromptForRoot -{Yes} - -FreeBSD-7-x86,RequireRoot -{No} - -FreeBSD-7-x86,RootInstallDir -{/usr/local/<%ShortAppName%>} - -HPUX-hppa,Active -{No} - -HPUX-hppa,BuildSeparateArchives -{No} - -HPUX-hppa,DefaultDirectoryPermission -{0755} - -HPUX-hppa,DefaultFilePermission -{0755} - -HPUX-hppa,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -HPUX-hppa,FallBackToConsole -{Yes} - -HPUX-hppa,InstallDir -{<%Home%>/<%ShortAppName%>} - -HPUX-hppa,InstallMode -{Standard} - -HPUX-hppa,InstallType -{Typical} - -HPUX-hppa,ProgramExecutable -{} - -HPUX-hppa,ProgramFolderAllUsers -{No} - -HPUX-hppa,ProgramFolderName -{<%AppName%>} - -HPUX-hppa,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -HPUX-hppa,ProgramName -{} - -HPUX-hppa,ProgramReadme -{<%InstallDir%>/README.txt} - -HPUX-hppa,PromptForRoot -{Yes} - -HPUX-hppa,RequireRoot -{No} - -HPUX-hppa,RootInstallDir -{/usr/local/<%ShortAppName%>} - -Linux-x86,Active -{No} - -Linux-x86,BuildSeparateArchives -{No} - -Linux-x86,DefaultDirectoryPermission -{0755} - -Linux-x86,DefaultFilePermission -{0755} - -Linux-x86,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -Linux-x86,FallBackToConsole -{Yes} - -Linux-x86,InstallDir -{<%Home%>/<%ShortAppName%>} - -Linux-x86,InstallMode -{Standard} - -Linux-x86,InstallType -{Typical} - -Linux-x86,ProgramExecutable -{<%InstallDir%>/pandora_agent} - -Linux-x86,ProgramFolderAllUsers -{No} - -Linux-x86,ProgramFolderName -{<%AppName%>} - -Linux-x86,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -Linux-x86,ProgramName -{} - -Linux-x86,ProgramReadme -{<%InstallDir%>/README.txt} - -Linux-x86,PromptForRoot -{Yes} - -Linux-x86,RequireRoot -{No} - -Linux-x86,RootInstallDir -{/usr/local/<%ShortAppName%>} - -Linux-x86_64,Active -{No} - -Linux-x86_64,BuildSeparateArchives -{No} - -Linux-x86_64,DefaultDirectoryPermission -{0755} - -Linux-x86_64,DefaultFilePermission -{0755} - -Linux-x86_64,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -Linux-x86_64,FallBackToConsole -{Yes} - -Linux-x86_64,InstallDir -{<%Home%>/<%ShortAppName%>} - -Linux-x86_64,InstallMode -{Standard} - -Linux-x86_64,InstallType -{Typical} - -Linux-x86_64,ProgramExecutable -{} - -Linux-x86_64,ProgramFolderAllUsers -{No} - -Linux-x86_64,ProgramFolderName -{<%AppName%>} - -Linux-x86_64,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -Linux-x86_64,ProgramName -{} - -Linux-x86_64,ProgramReadme -{<%InstallDir%>/README.txt} - -Linux-x86_64,PromptForRoot -{Yes} - -Linux-x86_64,RequireRoot -{No} - -Linux-x86_64,RootInstallDir -{/usr/local/<%ShortAppName%>} - -Solaris-sparc,Active -{No} - -Solaris-sparc,BuildSeparateArchives -{No} - -Solaris-sparc,DefaultDirectoryPermission -{0755} - -Solaris-sparc,DefaultFilePermission -{0755} - -Solaris-sparc,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -Solaris-sparc,FallBackToConsole -{Yes} - -Solaris-sparc,InstallDir -{<%Home%>/<%ShortAppName%>} - -Solaris-sparc,InstallMode -{Standard} - -Solaris-sparc,InstallType -{Typical} - -Solaris-sparc,ProgramExecutable -{} - -Solaris-sparc,ProgramFolderAllUsers -{No} - -Solaris-sparc,ProgramFolderName -{<%AppName%>} - -Solaris-sparc,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -Solaris-sparc,ProgramName -{} - -Solaris-sparc,ProgramReadme -{<%InstallDir%>/README.txt} - -Solaris-sparc,PromptForRoot -{Yes} - -Solaris-sparc,RequireRoot -{No} - -Solaris-sparc,RootInstallDir -{/usr/local/<%ShortAppName%>} - -Solaris-x86,Active -{No} - -Solaris-x86,BuildSeparateArchives -{No} - -Solaris-x86,DefaultDirectoryPermission -{0755} - -Solaris-x86,DefaultFilePermission -{0755} - -Solaris-x86,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -Solaris-x86,FallBackToConsole -{Yes} - -Solaris-x86,InstallDir -{<%Home%>/<%ShortAppName%>} - -Solaris-x86,InstallMode -{Standard} - -Solaris-x86,InstallType -{Typical} - -Solaris-x86,ProgramExecutable -{} - -Solaris-x86,ProgramFolderAllUsers -{No} - -Solaris-x86,ProgramFolderName -{<%AppName%>} - -Solaris-x86,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -Solaris-x86,ProgramName -{} - -Solaris-x86,ProgramReadme -{<%InstallDir%>/README.txt} - -Solaris-x86,PromptForRoot -{Yes} - -Solaris-x86,RequireRoot -{No} - -Solaris-x86,RootInstallDir -{/usr/local/<%ShortAppName%>} - -TarArchive,Active -{No} - -TarArchive,BuildSeparateArchives -{No} - -TarArchive,CompressionLevel -{6} - -TarArchive,DefaultDirectoryPermission -{0755} - -TarArchive,DefaultFilePermission -{0755} - -TarArchive,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -TarArchive,FallBackToConsole -{Yes} - -TarArchive,InstallDir -{<%Home%>/<%ShortAppName%>} - -TarArchive,InstallMode -{Standard} - -TarArchive,InstallType -{Typical} - -TarArchive,OutputFileName -{<%ShortAppName%>-<%Version%>.tar.gz} - -TarArchive,ProgramExecutable -{} - -TarArchive,ProgramFolderAllUsers -{No} - -TarArchive,ProgramFolderName -{<%AppName%>} - -TarArchive,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -TarArchive,ProgramName -{} - -TarArchive,ProgramReadme -{<%InstallDir%>/README.txt} - -TarArchive,PromptForRoot -{Yes} - -TarArchive,RequireRoot -{No} - -TarArchive,RootInstallDir -{/usr/local/<%ShortAppName%>} - -TarArchive,VirtualTextMap -{<%InstallDir%> <%ShortAppName%>} - -Windows,Active -{Yes} - -Windows,BuildSeparateArchives -{No} - -Windows,Executable -{<%AppName%>-<%Version%>-Setup<%Ext%>} - -Windows,FileDescription -{<%AppName%> <%Version%> Setup} - -Windows,IncludeTWAPI -{No} - -Windows,InstallDir -{<%PROGRAM_FILES%>/pandora_agent} - -Windows,InstallMode -{Standard} - -Windows,InstallType -{Typical} - -Windows,LastRequireAdministrator -{Yes} - -Windows,ProgramExecutable -{<%InstallDir%>/PandoraAgent.exe} - -Windows,ProgramFolderAllUsers -{No} - -Windows,ProgramFolderName -{<%AppName%>} - -Windows,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -Windows,ProgramName -{} - -Windows,ProgramReadme -{<%InstallDir%>/README.txt} - -Windows,RequireAdministrator -{Yes} - -Windows,UseUncompressedBinaries -{No} - -Windows,WindowsIcon -{pandora.ico} - -ZipArchive,Active -{No} - -ZipArchive,BuildSeparateArchives -{No} - -ZipArchive,CompressionLevel -{6} - -ZipArchive,DefaultDirectoryPermission -{0755} - -ZipArchive,DefaultFilePermission -{0755} - -ZipArchive,Executable -{<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%>} - -ZipArchive,FallBackToConsole -{Yes} - -ZipArchive,InstallDir -{<%Home%>/<%ShortAppName%>} - -ZipArchive,InstallMode -{Standard} - -ZipArchive,InstallType -{Typical} - -ZipArchive,OutputFileName -{<%ShortAppName%>-<%Version%>.zip} - -ZipArchive,ProgramExecutable -{} - -ZipArchive,ProgramFolderAllUsers -{No} - -ZipArchive,ProgramFolderName -{<%AppName%>} - -ZipArchive,ProgramLicense -{<%InstallDir%>/LICENSE.txt} - -ZipArchive,ProgramName -{} - -ZipArchive,ProgramReadme -{<%InstallDir%>/README.txt} - -ZipArchive,PromptForRoot -{Yes} - -ZipArchive,RequireRoot -{No} - -ZipArchive,RootInstallDir -{/usr/local/<%ShortAppName%>} - -ZipArchive,VirtualTextMap -{<%InstallDir%> <%ShortAppName%>} - -} - -::msgcat::mcmset ca { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{Llegenda} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{Missatge} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Subtítol} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Ròtul} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -} -::msgcat::mcmset cs { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{Titulek} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{Zpráva} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Podnadpis} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Nadpis} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -} -::msgcat::mcmset de { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Agent group name: } - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Dies wird <%AppName%> auf Ihrem Computer installieren. - -Es wird empfohlen, das Sie alle anderen Anwendungen schließen, bevor Sie fortfahren. - -Nach der Installierung sollten Sie Konfigurationsdatei editieren, um Server IP Adresse und andere Rahmen zu definieren. - -Klicken Sie auf Weiter um Fortzufahren oder auf Abbrechen, um das Setup zu beenden.} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Message -{<%UninstallingApplicationText%>} - -2073DDB6-50AB-4708-82AD-02A6C3F3EDE1,Message -{<%InstallationCompleteText%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Message -{<%UninstallCompleteText%>} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -BF861387-DA7F-4986-B5BB-F77358B58603,Message -{<%InstallingApplicationText%>} - -EditConfiguration -{Bearbeiten der Konfiguration} - -StartPandoraService -{Startet <%AppName%> Dienst} - -StopPandoraService -{Beendet <%AppName%> Dienst} - -} -::msgcat::mcmset en { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Agent group (Must exists)} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{This program will install <%AppName%> (build <%Version%>) in your computer. When you finish this installation, probably you will need to edit the agent configuration file to add aditional modules or review main setup parameters. - -Please click on Next button to continue, or Cancel to exit this setup. -} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Message -{<%UninstallingApplicationText%>} - -1F7BE720-7885-4150-9550-F25FB1C69423,Message -{The InstallJammer Wizard has successfully installed <%AppName%>. Click Finish to exit the wizard. - -NOTE: In some Windows systems, it is needed to restart the server after installing a Service and adding new directories to system path. We recommend to restart your server, but this is not always needed.} - -2073DDB6-50AB-4708-82AD-02A6C3F3EDE1,Message -{<%InstallationCompleteText%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{ - -Enter the group name for this agent. This group must exist in the Pandora FMS server at destination.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{Do you want to start Pandora FMS Agent Service?} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{Pandora FMS Windows Agent Service} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Message -{<%UninstallCompleteText%>} - -4F66C16F-6FAC-4A36-B0EA-CCA2324B27DF,Message -{<%InstallStartupText%>} - -4F66C16F-6FAC-4A36-B0EA-CCA2324B27DF,Title -{<%InstallApplicationText%>} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,Caption -{<%ApplicationReadmeText%>} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,Message -{} - -5EA75DE2-F9E1-405D-800E-B28FB96CDC61,Title -{<%ApplicationReadmeText%>} - -6057A263-437C-4EB8-93AB-DBC7055A759F,Description -{<%CustomInstallDescription%>} - -60CAEDF4-53E9-46C5-9A0F-5873E12F2328,Text -{<%ViewReadmeText%>} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{ - -Write here the IP address or FQN address to your Pandora FMS server.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -6FD08442-A7BA-4654-9ECE-3883DD747D00,Message -{Do you like to start Pandora FMS Windows Agent Service Now?} - -6FD08442-A7BA-4654-9ECE-3883DD747D00,Title -{Starting Pandora FMS service} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora FMS Server address} - -8112E00E-C24D-458F-9C19-03E63937E908,Message -{Do you want to start Pandora FMS Agent Service?} - -8112E00E-C24D-458F-9C19-03E63937E908,Title -{Pandora FMS Windows Agent Service} - -A84F44C7-9ABD-43C6-AA57-CF527E0C82A5,Caption -{Please enter Server IP} - -A84F44C7-9ABD-43C6-AA57-CF527E0C82A5,Subtitle -{Enter the IP of the server you want to connect} - -A84F44C7-9ABD-43C6-AA57-CF527E0C82A5,Title -{Server IP} - -A87C1A6B-ED26-4B07-8736-750725FF34E4,Description -{<%TypicalInstallDescription%>} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{Install finished. Don't forget to edit your pandora_agent.conf for define IP address of your Pandora FMS Server.} - -BF861387-DA7F-4986-B5BB-F77358B58603,Message -{<%InstallingApplicationText%>} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Caption -{Setup has enough information to start copying the program files. If you want to review or change any settings, click Back. If you are satisfied with the settings, click Next to begin copying files.} - -DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB,Message -{<%UninstallStartupText%>} - -DAE5A5A9-35B4-44B5-89C0-F25FDD2771FB,Title -{<%UninstallApplicationText%>} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Text -{GNU GENERAL PUBLIC LICENSE - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification follow. -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. - - c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - -3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. - -This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS} - -EditConfiguration -{Edit Configuration} - -FB96078B-BA3C-498C-8C20-B01C1F28ACA9,Description -{<%ProgramFilesDescription%>} - -HelpGeneratingSSHKeys -{Help Generating SSH Keys} - -HowTo -{how_to_keys.html} - -PandoraLicense -{Pandora FMS License} - -Readme -{Readme} - -StartPandoraService -{Start <%AppName%> Service} - -StopPandoraService -{Stop <%AppName%> Service} - -} -::msgcat::mcmset es { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Grupo del agente:} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Este programa instalará <%AppName%> (build <%Version%>) en su equipo. - -Se recomienda cerrar las demas aplicaciones antes de continuar. - -Al finalizar la instalación, debe editarse el fichero de configuración para definir la dirección IP del servidor y otros parámetros. - -Pulse Siguiente para continuar o Cancelar para salir de la instalación.} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Message -{<%UninstallingApplicationText%>} - -1F7BE720-7885-4150-9550-F25FB1C69423,Caption -{La instalación ha finalizado} - -1F7BE720-7885-4150-9550-F25FB1C69423,Message -{El instalador ha instalado <%AppName%> con éxito. Pulse Finalizar para salir de este instalador. - -NOTA: En algunos sistemas Windows es necesario reiniciar después de instalar un servicio y agregar un nuevo directorio al PATH del sistema. Recomendamos por tanto que reinicie este servidor.} - -2073DDB6-50AB-4708-82AD-02A6C3F3EDE1,Message -{<%InstallationCompleteText%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{ - - -Introduzca el nombre del grupo para este agente. El nombre del grupo debe existir en el servidor Pandora FMS de destino.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Configuración del fichero pandora_agent.conf del agente} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Configuración del agente de Pandora FMS para Windows} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{¿Quiere iniciar el servicio del agente de Pandora FMS para Windows?} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Message -{<%UninstallCompleteText%>} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{ - -Escriba a continuación la dirección IP o el nombre del servidor de Pandora FMS al que enviará datos este agente.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Configuración del agente de Pandora FMS para Windows} - -6B06C7C2-97A8-4642-B286-3B089943F359,Message -{InstallJammer ha instalado <%AppName%> con éxito. Pulse Finalizar para salir de este instalador.} - -6FD08442-A7BA-4654-9ECE-3883DD747D00,Message -{¿Quiere iniciar ahora el servicio de Pandora FMS Windows Agent?} - -6FD08442-A7BA-4654-9ECE-3883DD747D00,Title -{Inicio del servicio Pandora FMS} - -75288342-4CEB-473C-B242-450642503F74,Text -{Dirección IP del servidor Pandora:} - -8112E00E-C24D-458F-9C19-03E63937E908,Message -{¿Quiere iniciar el servicio del agente de Pandora FMS para Windows?} - -B2E20690-C57D-4286-9977-F2541E04D71F,BrowseText -{Pulse Siguiente para continuar. Si desea seleccionar una carpeta diferente, pulse Examinar.} - -B2E20690-C57D-4286-9977-F2541E04D71F,Caption -{Se instalará <%AppName%> en la siguiente carpeta. - -Para instalar en esa carpeta, pulse Siguiente. Para instalar en una carpeta diferente, pulse Examinar y seleccione otra.} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -BF861387-DA7F-4986-B5BB-F77358B58603,Message -{<%InstallingApplicationText%>} - -C862BDC0-8F67-4546-B658-4A9A8ADCE385,Caption -{Se ha recopilado la información necesaria para comenzar a copiar los archivos del programa. Si desea revisar o cambiar la configuración, pulse Atrás. Si esta conforme con la configuración, pulse Siguiente para comenzar a copiar los archivos.} - -DE1D4DF7-A35C-4228-8A25-07106AD77C9E,Subtitle -{Por favor lea atentamente el siguiente acuerdo de licencia (en inglés).} - -EditConfiguration -{Editar fichero de configuración} - -HelpGeneratingSSHKeys -{Creación de claves SSH} - -HowTo -{how_to_keys_es.html} - -InstallStartupText -{Se va a instalar <%AppName%> en su equipo. ¿Desea continuar?} - -PandoraLicense -{Licencia de Pandora FMS (inglés)} - -Readme -{Léeme (inglés)} - -SeparatorText -{Instalador de Pandora FMS} - -StartPandoraService -{Pandora FMS Service - Iniciar Servicio} - -StopPandoraService -{Pandora FMS Service - Parar Servicio} - -StopPanodoraService -{Pandora FMS Service - Parar Servicio} - -UninstallStartupText -{Se eliminará completamente <%AppName%> de su sistema. ¿Seguro que desea continuar?} - -} -::msgcat::mcmset fr { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Agent group name: } - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Ceci installera <%AppName%> sur votre ordinateur. - -Il est recommandé de fermer toutes les autres applications avant de continuer. - -Après avoir terminé l'installation, il faut éditer le fichier de configuration pour définir l'adresse IP du serveur ainsi que d'autres paramètres. - -Cliquez sur SUIVANT pour continuer ou ANNULER pour quitter l'installation.} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Message -{<%UninstallingApplicationText%>} - -2073DDB6-50AB-4708-82AD-02A6C3F3EDE1,Message -{<%InstallationCompleteText%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Message -{<%UninstallCompleteText%>} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -BF861387-DA7F-4986-B5BB-F77358B58603,Message -{<%InstallingApplicationText%>} - -EditConfiguration -{Modifier la configuration} - -StartPandoraService -{Démarre le service <%AppName%>} - -StopPandoraService -{Arrête le service <%AppName%>} - -} -::msgcat::mcmset hu { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Pandora Server IP Address:} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Ez a <%AppName%> verzióját fogja telepíteni a számítógépére. - - Javasoljuk, hogy zárjon be minden alkalmazást, mielőtt folytatná. - - Kattintson a <%Next%> gombra a folytatáshoz vagy a <%Cancel%> gombra kilépéshez.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -StartPandoraService -{Start Pandora Service} - -StopPandoraService -{Stop Pandora Service} - -} -::msgcat::mcmset it { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Pandora Server IP Address:} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Si sta per installare <%AppName%> sul computer. - -E' consigliata la chiusura di tutte le altre applicazioni prima di proseguire. - -Premere su Avanti per continuare o su Annulla per uscire dall'installazione.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -StartPandoraService -{Start Pandora Service} - -StopPandoraService -{Stop Pandora Service} - -} -::msgcat::mcmset lt { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{Pavadinimas} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{Praneðimas} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Paantraðtë} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Antraðtë} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -} -::msgcat::mcmset nl { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Pandora Server IP Address:} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Het is aan te raden alle overige applicaties te sluiten alvorens verder te gaan met deze installatie. - -Klik op <%Next%> om verder te gaan of op <%Cancel%> om deze installatie af te breken} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -StartPandoraService -{Start Pandora Service} - -StopPandoraService -{Stop Pandora Service} - -} -::msgcat::mcmset pl { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Pandora Server IP Address:} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Zainstaluje on <%AppName%> na twoim komputerze. - -Zalecane jest zamkniÄ™cie wszystkich programów przed instalacjÄ…. - -Kliknij Dalej, aby kontynuować lub Anuluj, aby opuÅ›cić instalator.} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Message -{<%UninstallingApplicationText%>} - -2073DDB6-50AB-4708-82AD-02A6C3F3EDE1,Message -{<%InstallationCompleteText%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Message -{<%UninstallCompleteText%>} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -BF861387-DA7F-4986-B5BB-F77358B58603,Message -{<%InstallingApplicationText%>} - -StartPandoraService -{} - -StopPandoraService -{Stop Pandora Service} - -} -::msgcat::mcmset pt_br { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Pandora Server IP Address:} - -1957048E-B498-4FFF-A8BA-F2DF640463B1,Message -{Será instalado <%AppName%> version <%Version%> em seu computador. - -É recomendado que você feche todos os outros programas antes de continuar. - -Depois da instalação, você deve editar o arquivo de configuração para definir o servidor endereço de IP e outros parâmetros. - -Clique em Próximo para continuar ou em Cancelar para sair da Instalação.} - -1D572EE2-DD93-4F13-850E-DE0EEB1DA110,Message -{<%UninstallingApplicationText%>} - -2073DDB6-50AB-4708-82AD-02A6C3F3EDE1,Message -{<%InstallationCompleteText%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -4E1B9A69-B88E-4DE5-A0E1-08E04C4BE6B3,Message -{<%UninstallCompleteText%>} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -BF861387-DA7F-4986-B5BB-F77358B58603,Message -{<%InstallingApplicationText%>} - -EditConfiguration -{Editar a configuração} - -StartPandoraService -{Inicia o serviço <%AppName%>} - -StopPandoraService -{Interrompe o serviço <%AppName%>} - -} -::msgcat::mcmset ru { -0464C461-3BD5-93CE-C3BA-C59CA84AD70D,Text -{Agent group name:} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,BackButton -{< <%Back%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,CancelButton -{<%Cancel%>} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Message -{ } - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,NextButton -{<%Next%> >} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -22E3617C-DE0E-D452-41DC-8278EA3F9D76,Title -{Pandora FMS Agent for Windows Configuration} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Message -{} - -4DC6C83C-511B-300F-900F-8670A81A7F9C,Title -{} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Caption -{This values will be written to the pandora_agent.conf file in the <%ProgramFolderName%> folder. Please change them to your own data.} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Message -{ } - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Subtitle -{Now it's time to configure your pandora_agent.conf file} - -68A06F1C-625E-4BF0-AE3B-8BFBD37824C1,Title -{Pandora FMS Agent for Windows Configuration} - -75288342-4CEB-473C-B242-450642503F74,Text -{Pandora Server IP Address:} - -B5904821-3970-1701-002C-0318B8BECA06,Message -{} - -StartPandoraService -{Start Pandora Service} - -StopPanodoraService -{} - -} - diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 79a1118f2e..f2947e24ba 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.716(Build 171204)") +#define PANDORA_VERSION ("7.0NG.718(Build 180131)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/pandora.cc.orig b/pandora_agents/win32/pandora.cc.orig deleted file mode 100644 index 7ea551d506..0000000000 --- a/pandora_agents/win32/pandora.cc.orig +++ /dev/null @@ -1,345 +0,0 @@ -/* Common functions to any Pandora program. - Copyright (C) 2006 Artica ST. - Written by Esteban Sanchez. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ - -#include -#include -#include -#include -#include -#include "pandora.h" -#include "pandora_strutils.h" - -using namespace std; -using namespace Pandora; -using namespace Pandora_Strutils; - -#define PATH_SIZE _MAX_PATH+1 -<<<<<<< HEAD -#define PANDORA_VERSION ("7.0NG(Build 170406)") -======= -#define PANDORA_VERSION ("7.0NG(Build 170418)") ->>>>>>> develop - -string pandora_path; -string pandora_dir; -bool pandora_debug; -bool pandora_log_disable; -string pandora_version = PANDORA_VERSION; - -/** - * Parses a string and initialize the key and the value. - * - * The string should be in the format: - * - key value - * - key "value with blankspaces" - */ -void -Key_Value::parseLine (string str) { - int pos; - list tokens; - list::iterator iter; - string trimmedstr; - - trimmedstr = trim (str); - - /* Check if the string has " */ - pos = trimmedstr.find ("\""); - if (pos == string::npos) { - stringtok (tokens, trimmedstr, " \t"); - } else { - stringtok (tokens, trimmedstr, "\""); - } - - /* Pick the first and the last value of the token list */ - iter = tokens.begin (); - key = trim (*iter); - transform (key.begin(), key.end(), key.begin(), (int(*)(int)) tolower); - iter = tokens.end (); - iter--; - /* Check if the line has only one token */ - if (iter != tokens.begin ()) { - value = trim (*iter); - } else { - value = ""; - } -} - -/** - * Parses a string by position and initialize the key and the value. - */ -void -Key_Value::parseLineByPosition (string str, int pos) { - string trimmedstr; - - trimmedstr = trim (str); - - key = trim (trimmedstr.substr (0, pos)); - value = trim (trimmedstr.substr (pos)); -} - -/** - * Get the key of the object. - * - * @return The key - */ -string -Key_Value::getKey () { - return key; -} - -/** - * Set the key of the object. - * - */ -void -Key_Value::setKey (const string key) { - this->key = key; -} - -/** - * Get the value of the object. - * - * @return The value - */ -string -Key_Value::getValue () { - return value; -} - -/** - * Set the value of the object. - * - * @return The value - */ -void -Key_Value::setValue (const string value) { - this->value = value; -} - -void -pandoraWriteLog (string filename, string line) { - string buffer; - char str_time[25]; - FILE *file; - string filepath; - SYSTEMTIME st; - - GetLocalTime(&st); - sprintf (str_time, "%d-%02d-%02d %02d:%02d:%02d ", st.wYear, st.wMonth, st.wDay, - st.wHour, st.wMinute, st.wSecond); - - buffer = (char *) str_time; - buffer += line; - - filepath = pandora_dir + filename; - - file = fopen (filepath.c_str (), "a+"); - if (file != NULL) { - fprintf (file, "%s\n", buffer.c_str ()); - fclose (file); - } -} - -/** - * Write a message in the log file. - * - * The log file is used to write the output of errors and problems of the - * agent. - * - * @param format String output format (like printf). - * @param ... Variable argument list - */ -void -Pandora::pandoraLog (const char *format, ...) { - if (!pandora_log_disable) { - va_list args; - char msg[5000]; - - va_start (args, format); - vsprintf (msg, format, args); - va_end (args); - - pandoraWriteLog ("pandora_agent.log", (char *) msg); - } - return; -} - -/** - * Write a message in the debug file. - * - * The log file is used to write the output of debugging information of the - * agent. - * - * @param format String output format. - * @param ... Variable argument list - */ -void -Pandora::pandoraDebug (const char *format, ...) { - if (pandora_debug) { - va_list args; - char msg[5000]; - - va_start (args, format); - vsprintf (msg, format, args); - va_end (args); - - pandoraWriteLog ("pandora_debug.log", (char *) msg); - } - return; -} - -/** - * Secure free of a pointer. - * - * @param pointer pointer to free. - */ -void -Pandora::pandoraFree (void * pointer) { - if (pointer != NULL) - free (pointer); - return; -} - -/** - * Set the installation directory of the application. - * - * This directory is the path to the directory which holds - * the binary file. - * - * @param dir The path to the directory. - * - * @see getPandoraInstallDir - */ -void -Pandora::setPandoraInstallDir (string dir) { - pandora_dir = dir; -} - -/** - * Get the installation directory of the application. - * - * This directory is the path to the directory which holds - * the binary file. - * - * @return The path to the directory. - * - * @see setPandoraInstallDir - */ -string -Pandora::getPandoraInstallDir () { - return pandora_dir; -} - -/** - * Set the installation path of the application. - * - * This the complete path to the binary file. - * - * @param path The path to the binary file. - * - * @see getPandoraInstallPath - */ -void -Pandora::setPandoraInstallPath (string path) { - pandora_path = path; -} - -/** - * Get the installation path of the application. - * - * This the complete path to the binary file. - * - * @return The path. - * - * @see setPandoraInstallPath - */ -string -Pandora::getPandoraInstallPath () { - return pandora_path; -} - -/** - * Set the debug flag. - * - * If the flag is true output wil be generated and XML files will not be deleted. - * - * @param dbg Turns the debug flag on/off. - * - * @see getPandoraDebug - * @see pandoraDebug - */ -void -Pandora::setPandoraDebug (bool dbg) { - pandora_debug = dbg; -} - -/** - * Get the debug flag value. - * - * If the flag is truee output wil be generated and XML files will not be deleted. - * - * @see setPandoraDebug - * @see pandoraDebug - */ -bool -Pandora::getPandoraDebug () { - return pandora_debug; -} - -/** - * Set the disable logfile flag. - * - * If the flag is true no logs will be written. - * - * @param dbg Turns the debug flag on/off. - * - */ -void -Pandora::setPandoraLogDisable (bool dbg) { - pandora_log_disable = dbg; -} - -/** - * Get the version of the agent. - * - * @return The version. - */ -string -Pandora::getPandoraAgentVersion () { - return pandora_version; -} - - -bool -Pandora::is_enabled (string value) { - static string enabled_values[] = {"enabled", "1", "on", "yes", "si", "sí", "ok", "true", ""}; - int i = 0; - - if (value == "") { - return false; - } - - while (enabled_values[i] != "") { - if (enabled_values[i] == value) { - return true; - } - i++; - } - return false; -} diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index b64307a0e2..8633fb3c68 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.716(Build 171204))" + VALUE "ProductVersion", "(7.0NG.718(Build 180131))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_agents/win32/versioninfo.rc.orig b/pandora_agents/win32/versioninfo.rc.orig deleted file mode 100644 index fe87b98faf..0000000000 --- a/pandora_agents/win32/versioninfo.rc.orig +++ /dev/null @@ -1,28 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,0,0 -PRODUCTVERSION 1,0,0,0 -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "080904E4" - BEGIN - VALUE "CompanyName", "Artica ST" - VALUE "FileDescription", "Pandora FMS Agent for Windows Platform" - VALUE "LegalCopyright", "Artica ST" - VALUE "OriginalFilename", "PandoraAgent.exe" - VALUE "ProductName", "Pandora FMS Windows Agent" -<<<<<<< HEAD - VALUE "ProductVersion", "(7.0NG(Build 170406))" -======= - VALUE "ProductVersion", "(7.0NG(Build 170418))" ->>>>>>> develop - VALUE "FileVersion", "1.0.0.0" - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x809, 1252 - END -END - diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 4867692583..0421daef3c 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.716-171204 +Version: 7.0NG.718-180131 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/control.orig b/pandora_console/DEBIAN/control.orig deleted file mode 100644 index 34fa326f6e..0000000000 --- a/pandora_console/DEBIAN/control.orig +++ /dev/null @@ -1,14 +0,0 @@ -package: pandorafms-console -<<<<<<< HEAD -Version: 7.0NG-170406 -======= -Version: 7.0NG-170418 ->>>>>>> develop -Architecture: all -Priority: optional -Section: admin -Installed-Size: 42112 -Maintainer: Artica ST -Homepage: http://pandorafms.org/ -Depends: php5, php5-snmp, php5-gd, php5-mysql, php-db, php5-xmlrpc, php-gettext, php5-curl, graphviz, dbconfig-common, php5-ldap, mysql-client | virtual-mysql-client -Description: Pandora FMS is an Open Source monitoring tool. It monitor your systems and applications, and allows you to control the status of any element of them. The web console is the graphical user interface (GUI) to manage the pool and to generate reports and graphs from the Pandora FMS monitoring process. diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 3d2284ad59..67e3e6764a 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.716-171204" +pandora_version="7.0NG.718-180131" package_pear=0 package_pandora=1 diff --git a/pandora_console/DEBIAN/make_deb_package.sh.orig b/pandora_console/DEBIAN/make_deb_package.sh.orig deleted file mode 100644 index ba3a273b73..0000000000 --- a/pandora_console/DEBIAN/make_deb_package.sh.orig +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash - -#Pandora FMS- http:#pandorafms.com -# ================================================== -# Copyright (c) 2005-2010 Artica Soluciones Tecnologicas -# Please see http:#pandorafms.org for full contribution list - -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public License -# as published by the Free Software Foundation; version 2 - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -<<<<<<< HEAD -pandora_version="7.0NG-170406" -======= -pandora_version="7.0NG-170418" ->>>>>>> develop - -package_pear=0 -package_pandora=1 - -for param in $@ -do - if [ $param = "-h" -o $param = "--help" ] - then - echo "For only make packages of pear type +pear" - echo "For not make packages of pear type -pear" - exit 0 - fi - - if [ $param = "+pear" ] - then - package_pandora=0 - fi - if [ $param = "-pear" ] - then - package_pear=0 - fi -done - -if [ $package_pandora -eq 1 ] -then - echo "Test if you have all the needed tools to make the packages." - whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null - if [ $? = 1 ] - then - echo "No found \"dpkg-deb\" aplication, please install." - exit 1 - else - echo "Found \"dpkg-debs\"." - fi -fi - -if [ $package_pear -eq 1 ] -then - whereis dh-make-pear | cut -d":" -f2 | grep dh-make-pear > /dev/null - if [ $? = 1 ] - then - echo " \"dh-make-pear\" aplication not found, please install." - exit 1 - else - echo "Found \"dh-make-pear\"." - fi - - whereis fakeroot | cut -d":" -f2 | grep fakeroot > /dev/null - if [ $? = 1 ] - then - echo " \"fakeroot\" aplication not found, please install." - exit 1 - else - echo "Found \"fakeroot\"." - fi -fi - -whereis dpkg-buildpackage | cut -d":" -f2 | grep dpkg-buildpackage > /dev/null -if [ $? = 1 ] -then - echo " \"dpkg-buildpackage\" aplication not found, please install." - exit 1 -else - echo "Found \"dpkg-buildpackage\"." -fi - -cd .. - -echo "Make a \"temp_package\" temporary dir for job." -mkdir -p temp_package -if [ $package_pandora -eq 1 ] -then - mkdir -p temp_package/var/www/pandora_console - mkdir -p temp_package/etc/logrotate.d - - echo "Make directory system tree for package." - cp -R $(ls | grep -v temp_package | grep -v DEBIAN ) temp_package/var/www/pandora_console - cp -R DEBIAN temp_package - cp -aRf pandora_console_logrotate_ubuntu temp_package/etc/logrotate.d/pandora_console - find temp_package/var/www/pandora_console -name ".svn" | xargs rm -Rf - rm -Rf temp_package/var/www/pandora_console/pandora_console.spec - chmod 755 -R temp_package/DEBIAN - touch temp_package/var/www/pandora_console/include/config.php - - - echo "Remove the SVN files and other temp files." - for item in `find temp_package` - do - echo -n "." - echo $item | grep "svn" > /dev/null - #last command success - if [ $? -eq 0 ] - then - rm -rf $item - fi - - echo $item | grep "make_deb_package.sh" > /dev/null - #last command success - if [ $? -eq 0 ] - then - rm -rf $item - fi - done - echo "END" - - echo "Calculate md5sum for md5sums package control file." - for item in `find temp_package` - do - echo -n "." - if [ ! -d $item ] - then - echo $item | grep "DEBIAN" > /dev/null - #last command success - if [ $? -eq 1 ] - then - md5=`md5sum $item | cut -d" " -f1` - - #delete "temp_package" in the path - final_path=${item#temp_package} - echo $md5" "$final_path >> temp_package/DEBIAN/md5sums - fi - fi - done - echo "END" - - echo "Make the package \"Pandorafms console\"." - dpkg-deb --build temp_package - mv temp_package.deb pandorafms.console_$pandora_version.deb -fi - -if [ $package_pear -eq 1 ] -then - echo "Make the package \"php-xml-rpc\"." - cd temp_package - dh-make-pear --maintainer "Miguel de Dios " XML_RPC - cd php-xml-rpc-* - dpkg-buildpackage -rfakeroot - cd .. - mv php-xml-rpc*.deb .. - cd .. -fi - - -echo "Delete the \"temp_package\" temporary dir for job." -rm -Rf temp_package - -echo "DONE: Package ready at: ../pandorafms.console_$pandora_version.deb" diff --git a/pandora_console/extensions/agents_modules.php b/pandora_console/extensions/agents_modules.php index 6e6cf9a92e..4da2ad8238 100644 --- a/pandora_console/extensions/agents_modules.php +++ b/pandora_console/extensions/agents_modules.php @@ -14,17 +14,16 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -include_once($config['homedir'] . "/include/functions_agents.php"); -include_once($config['homedir'] . "/include/functions_modules.php"); -include_once($config['homedir'] . '/include/functions_users.php'); $refr = get_parameter('refresh', 0); // By default 30 seconds - function mainAgentsModules() { global $config; // Load global vars require_once ("include/config.php"); require_once ("include/functions_reporting.php"); + include_once($config['homedir'] . "/include/functions_agents.php"); + include_once($config['homedir'] . "/include/functions_modules.php"); + include_once($config['homedir'] . '/include/functions_users.php'); check_login (); // ACL Check @@ -52,7 +51,6 @@ function mainAgentsModules() { } } - if ($config["realtimestats"] == 0) { $updated_info = __('Last update'). " : ". ui_print_timestamp (db_get_sql ("SELECT min(utimestamp) FROM tgroup_stat"), true); } @@ -103,7 +101,6 @@ function mainAgentsModules() { serialize_in_temp($agents_id, $config['id_user']."_agents", 1); } - if ($config["pure"] == 0) { if($modules_selected[0] && $agents_id[0]){ @@ -128,7 +125,6 @@ function mainAgentsModules() { . ""; } else { - $fullscreen['text'] = '' . html_print_image ("images/full_screen.png", true, array ("title" => __('Full screen mode'))) @@ -247,7 +243,6 @@ function mainAgentsModules() { ui_require_css_file('countdown'); } - if($config['pure'] != 1){ echo '
'; @@ -321,8 +316,7 @@ function mainAgentsModules() { foreach ($result_sql as $key => $value) { $all_modules[$value['id_agente_modulo']] = io_safe_output($name); } - } - + } } } else{ @@ -353,7 +347,6 @@ function mainAgentsModules() { $name = ''; $cont = 0; - foreach ($all_modules as $key => $module) { if ($module == $name) { $modules_by_name[$cont-1]['id'][] = $key; @@ -454,7 +447,7 @@ function mainAgentsModules() { "selection_a_m=" . $selection_a_m . "&" . "hor_offset=" . $new_hor_offset . "&". "offset=" . $offset . - "'>" . + "'>" . html_print_image( "images/arrow.png", true, array('title' => __('More modules'))) . @@ -585,7 +578,13 @@ function mainAgentsModules() { echo "
" . __("Cell turns blue when the module is in 'not initialize' status") . ""; echo ""; echo "
"; - + $pure_var = $config['pure']; + if($pure_var){ + $pure_var = 1; + } + else{ + $pure_var = 0; + } echo " + - "; + "; } extensions_add_operation_menu_option(__("Agents/Modules view"), 'estado', 'agents_modules/icon_menu.png', "v1r1","view"); @@ -629,213 +831,4 @@ extensions_add_main_function('mainAgentsModules'); $ignored_params['refresh']=''; -?> - \ No newline at end of file +?> \ No newline at end of file diff --git a/pandora_console/extensions/net_tools.php b/pandora_console/extensions/net_tools.php index f6736f366a..2f18a569d4 100644 --- a/pandora_console/extensions/net_tools.php +++ b/pandora_console/extensions/net_tools.php @@ -154,100 +154,105 @@ function main_net_tools () { $operation = get_parameter ("operation", 0); $community = get_parameter ("community", "public"); $ip = get_parameter("select_ips"); - - switch($operation) { - case 1: - $traceroute = whereis_the_command ('traceroute'); - if (empty($traceroute)) { - ui_print_error_message(__('Traceroute executable does not exist.')); - } - else { - echo "

".__("Traceroute to "). $ip. "

"; - echo "
";
-				echo system ("$traceroute $ip");
-				echo "
"; - } - break; - case 2: - $ping = whereis_the_command ('ping'); - if (empty($ping)) { - ui_print_error_message(__('Ping executable does not exist.')); - } - else { - echo "

" . __("Ping to %s", $ip) . "

"; - echo "
";
-				echo system ("$ping -c 5 $ip");
-				echo "
"; - } - break; - case 4: - $nmap = whereis_the_command ('nmap'); - if (empty($nmap)) { - ui_print_error_message(__('Nmap executable does not exist.')); - } - else { - echo "

".__("Basic TCP Scan on "). $ip. "

"; - echo "
";
-				echo system ("$nmap -F $ip");
-				echo "
"; - } - break; - case 5: - echo "

".__("Domain and IP information for "). $ip. "

"; - - $dig = whereis_the_command ('dig'); - if (empty($dig)) { - ui_print_error_message(__('Dig executable does not exist.')); - } - else { - echo "
";
-				echo system ("dig $ip");
-				echo "
"; - } - - $whois = whereis_the_command ('whois'); - if (empty($whois)) { - ui_print_error_message(__('Whois executable does not exist.')); - } - else { - echo "
";
-				echo system ("whois $ip");
-				echo "
"; - } - break; - case 3: - echo "

".__("SNMP information for "). $ip. "

"; - - $snmpget = whereis_the_command ('snmpget'); - if (empty($snmpget)) { - ui_print_error_message(__('SNMPget executable does not exist.')); - } - else { - echo "

" . __("Uptime") . "

"; - echo "
";
-				echo exec ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.3.0 ");
-				echo "
"; - echo "

" . __("Device info") . "

"; - echo "
";
-				
-				echo system ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.1.0 ");
-				echo "
"; - - echo "

Interface Information

"; - echo ""; - echo "
".__("Interface"); - echo "".__("Status"); - - $int_max = exec ("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.1.0 "); - - for ($ax=0; $ax < $int_max; $ax++) { - $interface = exec ("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.2.$ax "); - $estado = exec ("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.8.$ax "); - echo "
$interface$estado"; + + if(!validate_address($ip)){ + ui_print_error_message(__('The ip or dns name entered cannot be resolved')); + } + else{ + switch($operation) { + case 1: + $traceroute = whereis_the_command ('traceroute'); + if (empty($traceroute)) { + ui_print_error_message(__('Traceroute executable does not exist.')); } - echo "
"; - } - break; + else { + echo "

".__("Traceroute to "). $ip. "

"; + echo "
";
+					echo system ("$traceroute $ip");
+					echo "
"; + } + break; + case 2: + $ping = whereis_the_command ('ping'); + if (empty($ping)) { + ui_print_error_message(__('Ping executable does not exist.')); + } + else { + echo "

" . __("Ping to %s", $ip) . "

"; + echo "
";
+					echo system ("$ping -c 5 $ip");
+					echo "
"; + } + break; + case 4: + $nmap = whereis_the_command ('nmap'); + if (empty($nmap)) { + ui_print_error_message(__('Nmap executable does not exist.')); + } + else { + echo "

".__("Basic TCP Scan on "). $ip. "

"; + echo "
";
+					echo system ("$nmap -F $ip");
+					echo "
"; + } + break; + case 5: + echo "

".__("Domain and IP information for "). $ip. "

"; + + $dig = whereis_the_command ('dig'); + if (empty($dig)) { + ui_print_error_message(__('Dig executable does not exist.')); + } + else { + echo "
";
+					echo system ("dig $ip");
+					echo "
"; + } + + $whois = whereis_the_command ('whois'); + if (empty($whois)) { + ui_print_error_message(__('Whois executable does not exist.')); + } + else { + echo "
";
+					echo system ("whois $ip");
+					echo "
"; + } + break; + case 3: + echo "

".__("SNMP information for "). $ip. "

"; + + $snmpget = whereis_the_command ('snmpget'); + if (empty($snmpget)) { + ui_print_error_message(__('SNMPget executable does not exist.')); + } + else { + echo "

" . __("Uptime") . "

"; + echo "
";
+					echo exec ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.3.0 ");
+					echo "
"; + echo "

" . __("Device info") . "

"; + echo "
";
+					
+					echo system ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.1.0 ");
+					echo "
"; + + echo "

Interface Information

"; + echo ""; + echo "
".__("Interface"); + echo "".__("Status"); + + $int_max = exec ("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.1.0 "); + + for ($ax=0; $ax < $int_max; $ax++) { + $interface = exec ("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.2.$ax "); + $estado = exec ("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.8.$ax "); + echo "
$interface$estado"; + } + echo "
"; + } + break; + } } echo "
"; diff --git a/pandora_console/extensions/realtime_graphs/realtime_graphs.js b/pandora_console/extensions/realtime_graphs/realtime_graphs.js index 8a8b686bb9..538a68f144 100644 --- a/pandora_console/extensions/realtime_graphs/realtime_graphs.js +++ b/pandora_console/extensions/realtime_graphs/realtime_graphs.js @@ -140,14 +140,19 @@ function snmpBrowserWindow () { opacity: 0.5, background: "black" }, - width: 780, - height: 430 + width: 920, + height: 500 }); } // Set the form OID to the value selected in the SNMP browser function setOID () { - $('#text-snmp_oid').val($('#snmp_selected_oid').text()); + + if($('#snmp_browser_version').val() == '3'){ + $('#text-snmp_oid').val($('#table1-0-1').text()); + } else { + $('#text-snmp_oid').val($('#snmp_selected_oid').text()); + } // Close the SNMP browser $('.ui-dialog-titlebar-close').trigger('click'); diff --git a/pandora_console/extras/mr/10.sql b/pandora_console/extras/mr/10.sql index 2b58ce08c4..53c7c7bcc6 100644 --- a/pandora_console/extras/mr/10.sql +++ b/pandora_console/extras/mr/10.sql @@ -2,6 +2,11 @@ START TRANSACTION; ALTER TABLE tsnmp_filter ADD unified_filters_id int(10) NOT NULL DEFAULT 0; ALTER TABLE treport_content_template ADD COLUMN hide_no_data tinyint(1) DEFAULT 0; -ALTER TABLE tgraph_source ADD COLUMN `order` int(10) NOT NULL default 0; +ALTER TABLE tgraph_source ADD COLUMN `field_order` int(10) NOT NULL default 0; +UPDATE tgraph_source c, (SELECT @n := 0) m SET c.field_order = @n := @n + 1; + +ALTER TABLE tgraph ADD COLUMN `summatory_series` tinyint(1) UNSIGNED NOT NULL default '0'; +ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0'; +ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0'; COMMIT; \ No newline at end of file diff --git a/pandora_console/extras/mr/11.sql b/pandora_console/extras/mr/11.sql new file mode 100644 index 0000000000..95ea1459fa --- /dev/null +++ b/pandora_console/extras/mr/11.sql @@ -0,0 +1,18 @@ +START TRANSACTION; + +ALTER TABLE `tlayout` ADD `is_favourite` int(1) NOT NULL DEFAULT 0; + +UPDATE tlayout SET is_favourite = 1 WHERE name REGEXP '^(' OR name REGEXP '^\\['; + +SELECT max(unified_filters_id) INTO @max FROM tsnmp_filter; +UPDATE tsnmp_filter tsf,(SELECT @max:= @max) m SET tsf.unified_filters_id = @max:= @max + 1 where tsf.unified_filters_id=0; + +ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '0'; + +ALTER TABLE tcontainer_item ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '0'; + +ALTER TABLE treport_content ADD COLUMN hide_no_data tinyint(1) DEFAULT 0; + +ALTER TABLE tagente_estado ADD COLUMN last_unknown_update bigint(20) NOT NULL default 0; + +COMMIT; diff --git a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql index 14a1285b5f..ec97615a55 100644 --- a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql +++ b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql @@ -1110,6 +1110,7 @@ ALTER TABLE tserver ADD COLUMN `server_keepalive` int(11) DEFAULT 0; ALTER TABLE tagente_estado MODIFY `status_changes` tinyint(4) unsigned default 0; ALTER TABLE tagente_estado CHANGE `last_known_status` `known_status` tinyint(4) default 0; ALTER TABLE tagente_estado ADD COLUMN `last_known_status` tinyint(4) default 0; +ALTER TABLE tagente_estado ADD COLUMN last_unknown_update bigint(20) NOT NULL default 0; -- --------------------------------------------------------------------- -- Table `talert_actions` @@ -1158,10 +1159,10 @@ ALTER TABLE titem MODIFY `source_data` int(10) unsigned; INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100'); INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000'); INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30'); -INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 9); +INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 11); UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager'; DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise'; -INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '716'); +INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '718'); -- --------------------------------------------------------------------- -- Table `tplanned_downtime_agents` @@ -1234,6 +1235,9 @@ UPDATE tagente SET tagente.alias = tagente.nombre; -- Table `tlayout` -- --------------------------------------------------------------------- ALTER TABLE tlayout ADD `background_color` varchar(50) NOT NULL default '#FFF'; +ALTER TABLE tlayout ADD `is_favourite` int(1) NOT NULL DEFAULT 0; + +UPDATE tlayout SET is_favourite = 1 WHERE name REGEXP '^(' OR name REGEXP '^\\['; -- --------------------------------------------------------------------- -- Table `tlayout_data` @@ -1263,6 +1267,8 @@ UPDATE tagente_modulo SET cron_interval = '' WHERE cron_interval LIKE '% %'; ALTER TABLE tgraph ADD COLUMN `percentil` int(4) unsigned default '0'; ALTER TABLE tgraph ADD COLUMN `summatory_series` tinyint(1) UNSIGNED NOT NULL default '0'; ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0'; +ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0'; +ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '0'; -- --------------------------------------------------------------------- -- Table `tnetflow_filter` @@ -1287,6 +1293,7 @@ ALTER TABLE treport_content ADD COLUMN `historical_db` tinyint(1) NOT NULL DEFAU ALTER TABLE treport_content ADD COLUMN `lapse_calc` tinyint(1) default '0'; ALTER TABLE treport_content ADD COLUMN `lapse` int(11) default '300'; ALTER TABLE treport_content ADD COLUMN `visual_format` tinyint(1) default '0'; +ALTER TABLE treport_content ADD COLUMN `hide_no_data` tinyint(1) default '0'; -- --------------------------------------------------------------------- -- Table `tmodule_relationship` @@ -1404,6 +1411,7 @@ CREATE TABLE IF NOT EXISTS `tcontainer_item` ( `agent` varchar(100) NOT NULL default '', `module` varchar(100) NOT NULL default '', `id_tag` integer(10) unsigned NOT NULL DEFAULT 0, + `fullscale` tinyint(1) UNSIGNED NOT NULL default 0, PRIMARY KEY(`id_ci`), FOREIGN KEY (`id_container`) REFERENCES tcontainer(`id_container`) ON DELETE CASCADE @@ -1434,7 +1442,7 @@ ALTER TABLE tserver_export MODIFY `name` varchar(600) BINARY NOT NULL default '' -- --------------------------------------------------------------------- ALTER TABLE tgraph_source ADD COLUMN id_server int(11) UNSIGNED NOT NULL default 0; -ALTER TABLE tgraph_source ADD COLUMN `order` int(10) NOT NULL default 0; +ALTER TABLE tgraph_source ADD COLUMN `field_order` int(10) NOT NULL default 0; -- --------------------------------------------------------------------- -- Table `tserver_export_data` @@ -1468,3 +1476,9 @@ INSERT INTO ttipo_modulo VALUES (25,'web_analysis', 8, 'Web analysis data', 'mod -- Table `tdashboard` -- --------------------------------------------------------------------- ALTER TABLE `tdashboard` ADD COLUMN `cells_slideshow` TINYINT(1) NOT NULL default 0; + +-- --------------------------------------------------------------------- +-- Table `tsnmp_filter` +-- --------------------------------------------------------------------- +SELECT max(unified_filters_id) INTO @max FROM tsnmp_filter; +UPDATE tsnmp_filter tsf,(SELECT @max:= @max) m SET tsf.unified_filters_id = @max:= @max + 1 where tsf.unified_filters_id=0; diff --git a/pandora_console/general/alert_enterprise.php b/pandora_console/general/alert_enterprise.php index d5be19eebd..66d6e36b09 100644 --- a/pandora_console/general/alert_enterprise.php +++ b/pandora_console/general/alert_enterprise.php @@ -94,7 +94,7 @@ switch ($tipo) { case "helpmodal": echo __("This is the online help for Pandora FMS console. This help is -in best cases- just a brief contextual help, not intented to teach you how to use Pandora FMS. Official documentation of Pandora FMS is about 900 pages, and you probably don't need to read it entirely, but sure, you should download it and take a look.

-
Download the official documentation"); + Download the official documentation"); break; diff --git a/pandora_console/general/login_page.php b/pandora_console/general/login_page.php index 5e9278a854..9c2629c183 100755 --- a/pandora_console/general/login_page.php +++ b/pandora_console/general/login_page.php @@ -25,6 +25,24 @@ include_once($homedir . 'include/functions_ui.php'); include_once($homedir . 'include/functions.php'); include_once($homedir . 'include/functions_html.php'); + +if($config['visual_animation']){ + echo + ''; +} + + if (!isset($login_screen)) { $login_screen = 'login'; } @@ -236,7 +254,7 @@ echo '