Merge remote-tracking branch 'origin/develop' into ent-7621-autenticacion-local-usuarios-solo-api
3
.gitignore
vendored
@ -9,5 +9,6 @@ MYMETA.yml
|
||||
**/PandoraFMS-Enterprise/pm_to_blib
|
||||
**/pandora_console/attachment/cache
|
||||
**/pandora_console/attachment/agents
|
||||
**/pandora_console/attachment/merge_backups
|
||||
pandora_console/.DS_Store
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
|
@ -1,6 +1,25 @@
|
||||
variables:
|
||||
GIT_STRATEGY: clone
|
||||
REBRANDING: pandora
|
||||
|
||||
test:
|
||||
script:
|
||||
- docker run --rm -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base /tmp/pandorafms/tests/test.sh
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_server/bin/${REBRANDING}_server ]; then cp $CI_PROJECT_DIR/pandora_server/bin/pandora_server $CI_PROJECT_DIR/pandora_server/bin/${REBRANDING}_server ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_server/util/${REBRANDING}_ha.pl ]; then cp $CI_PROJECT_DIR/pandora_server/util/pandora_ha.pl $CI_PROJECT_DIR/pandora_server/util/${REBRANDING}_ha.pl ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_agent $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent ; fi
|
||||
- sed -i "s/pandora/$REBRANDING/g" $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_exec ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_agent_exec $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_exec ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_revent ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_revent $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_revent ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_logrotate ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_agent_logrotate $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_logrotate ; fi
|
||||
- sed -i "s/_PRODUCT_/$REBRANDING/g" $CI_PROJECT_DIR/pandora_server/Makefile.PL
|
||||
- sed -i "s/TENTACLE_USER=\"pandora\"/TENTACLE_USER=\"$REBRANDING\"/g" $CI_PROJECT_DIR/pandora_server/util/tentacle_serverd
|
||||
- docker pull pandorafms/pandorafms-base:rocky8.5
|
||||
- docker run --ulimit nofile=262144:262144 --rm -e REBRANDING="$REBRANDING" -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base:rocky8.5 /tmp/pandorafms/tests/test.sh
|
||||
|
||||
test_php_legacy:
|
||||
stage: test
|
||||
before_script:
|
||||
- df -h | grep instaladores | awk '{print $NF}' |xargs umount >/dev/null 2>&1 || true
|
||||
script:
|
||||
- docker pull pandorafms/pandorafms-base:centos7
|
||||
- docker run --ulimit nofile=262144:262144 --rm -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base:centos7 /tmp/pandorafms/tests/test_legacy.sh
|
||||
|
10
README.md
@ -1,12 +1,16 @@
|
||||
[](https://travis-ci.org/pandorafms/pandorafms)
|
||||
|
||||
[](http://pandorafms.org)
|
||||

|
||||
|
||||
Pandora FMS is a monitoring software for IT infrastructure management which includes network equipment, Windows and Unix servers, virtual infrastructure and all different kind of applications. It has a large amount of features, making it a new generation software which discovers all the monitoring issues that an organization may need.
|
||||
With more than 50,000 customer installations across the five continents, Pandora FMS is an out-of-the-box monitoring solution: profitable and scalable, covering most infrastructure deployment options.
|
||||
|
||||
Pandora FMS gives you the agility to find and solve problems quickly, scaling them so they can be derived from any source, on-premise, multi cloud or both of them mixed. Now you have that capability across your entire IT stack and analytics to find any problem, even the ones that are hard to find.
|
||||
|
||||
Thanks to more than 500 plugins available, you can control and manage any application and technology, from SAP, Oracle, Lotus, Citrix or Jboss to VMware, AWS, SQL Server, Redhat, Websphere, etc.
|
||||
|
||||
### Support
|
||||
|
||||
For community support you can visit our forums at http://forums.pandorafms.org. Visit our community page at http://pandorafms.org and if you need commercial information or/and professional support visit http://pandorafms.com.
|
||||
For community support you can visit our forums at https://pandorafms.com/community/ and if you need commercial information or/and professional support visit https://pandorafms.com
|
||||
|
||||
### How to install Pandora FMS
|
||||
|
||||
|
@ -88,7 +88,7 @@ public class PandoraWebView extends Activity {
|
||||
//Check the first load the page for to hide a toast with the
|
||||
//connection message
|
||||
|
||||
//Close the CustomToast (I love this hack, fuck javalovers and yours patterns.).
|
||||
//Close the CustomToast.
|
||||
if (ConnectionCustomToast.activity != null)
|
||||
ConnectionCustomToast.activity.finish();
|
||||
}
|
||||
|
893
extras/cats.html
@ -1,428 +1,479 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>gatete</title>
|
||||
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
|
||||
<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
<head>
|
||||
<title>gatete</title>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="http://code.jquery.com/jquery-2.2.0.min.js"
|
||||
></script>
|
||||
<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
var svg = d3.select("#test svg");
|
||||
</script>
|
||||
|
||||
var svg = d3.select("#test svg");
|
||||
</script>
|
||||
|
||||
<div id="test">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="1000px" style="background: black;">
|
||||
<image id="cat_piano" x="400" y="-100" width="50%" height="50%" xlink:href="https://media.giphy.com/media/ymckEpq27dQ9W/giphy.gif" />
|
||||
<g id="zoom" transform="translate(-10 20) scale (1)">
|
||||
|
||||
<g
|
||||
transform="translate(100, 300) scale(0.50)"
|
||||
id="cat1">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
|
||||
<g
|
||||
transform="translate(700, 500) scale(0.25)"
|
||||
id="cat2">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<div id="test">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="1000px"
|
||||
height="1000px"
|
||||
style="background: black;"
|
||||
>
|
||||
<image
|
||||
id="cat_piano"
|
||||
x="400"
|
||||
y="-100"
|
||||
width="50%"
|
||||
height="50%"
|
||||
xlink:href="https://media.giphy.com/media/ymckEpq27dQ9W/giphy.gif"
|
||||
/>
|
||||
<g id="zoom" transform="translate(-10 20) scale (1)">
|
||||
<g transform="translate(100, 300) scale(0.50)" id="cat1">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
/>
|
||||
</g>
|
||||
|
||||
<g
|
||||
transform="translate(200, 0) scale(0.25)"
|
||||
id="cat3">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<g transform="translate(700, 500) scale(0.25)" id="cat2">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
/>
|
||||
</g>
|
||||
|
||||
<g
|
||||
transform="translate(600, 0) scale(0.25)"
|
||||
id="cat4">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var svg = d3.select("svg #zoom");
|
||||
|
||||
|
||||
|
||||
svg.append("g")
|
||||
.attr("id", "circulo")
|
||||
.attr("transform",
|
||||
function(d) {
|
||||
return "translate(" + get_center_element("#cat1")[0] + " " + get_center_element("#cat1")[1] + ")";})
|
||||
.append("circle")
|
||||
.attr("style", "fill: rgb(0, 255, 0);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", 20);
|
||||
|
||||
svg.append("g")
|
||||
.attr("transform",
|
||||
function(d) { return "translate(" + get_pos_element("#cat1")[0] + " " + get_pos_element("#cat1")[1] + ") scale(" + get_scale_element("#cat1") + ")";})
|
||||
.append("rect")
|
||||
.attr("style", "fill:none; stroke:#ffff00;stroke-width:5")
|
||||
.attr("width", function(d) { return get_size_element("#cat1")[0];})
|
||||
.attr("height", function(d) { return get_size_element("#cat1")[1];});
|
||||
|
||||
svg.append("g")
|
||||
.attr("transform",
|
||||
function(d) {
|
||||
return "translate(" + get_center_element("#cat1")[0] + " " + get_center_element("#cat1")[1] + ") scale(" + get_scale_element("#cat1") + ")";})
|
||||
.append("circle")
|
||||
.attr("style", "fill: none; stroke-width: 5; stroke: rgb(0, 0, 255);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", get_radius_element("#cat1"));
|
||||
|
||||
svg.append("g")
|
||||
.attr("id", "circulo")
|
||||
.attr("transform",
|
||||
function(d) {
|
||||
return "translate(" + get_center_element("#cat3")[0] + " " + get_center_element("#cat3")[1] + ")";})
|
||||
.append("circle")
|
||||
.attr("style", "fill: rgb(0, 255, 0);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", 20);
|
||||
<g transform="translate(200, 0) scale(0.25)" id="cat3">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
/>
|
||||
</g>
|
||||
|
||||
svg.append("g")
|
||||
.attr("transform",
|
||||
function(d) { return "translate(" + get_pos_element("#cat3")[0] + " " + get_pos_element("#cat3")[1] + ") scale(" + get_scale_element("#cat3") + ")";})
|
||||
.append("rect")
|
||||
.attr("style", "fill:none; stroke:#ffff00;stroke-width:5")
|
||||
.attr("width", function(d) { return get_size_element("#cat3")[0];})
|
||||
.attr("height", function(d) { return get_size_element("#cat3")[1];});
|
||||
|
||||
svg.append("g")
|
||||
.attr("transform",
|
||||
function(d) {
|
||||
return "translate(" + get_center_element("#cat3")[0] + " " + get_center_element("#cat3")[1] + ") scale(" + get_scale_element("#cat3") + ")";})
|
||||
.append("circle")
|
||||
.attr("style", "fill: none; stroke-width: 5; stroke: rgb(0, 0, 255);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", get_radius_element("#cat3"));
|
||||
|
||||
|
||||
|
||||
|
||||
arrow_by_pieces2("gatete_flecha", "cat1", "cat2");
|
||||
arrow_by_pieces2("gatete_flecha2", "cat1", "cat4");
|
||||
arrow_by_pieces2("gatete_flecha3", "cat3", "cat4");
|
||||
|
||||
|
||||
|
||||
//~ arrow_by_pieces("gatete_flecha", "cat1", "cat2");
|
||||
//~ arrow_by_pieces("gatete_flecha", "cat3", "cat4");
|
||||
|
||||
/**
|
||||
* Function get_radius_element
|
||||
* Return float
|
||||
* This method get the element radius
|
||||
*/
|
||||
function get_radius_element(element) {
|
||||
var size = get_size_element(element);
|
||||
|
||||
return Math.sqrt(
|
||||
Math.pow(size[0] / 2, 2) + Math.pow(size[1] / 2, 2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_scale_element
|
||||
* Return float
|
||||
* This method get the element escale
|
||||
*/
|
||||
function get_scale_element(element) {
|
||||
var element_t = d3.transform(d3.select(element).attr("transform"));
|
||||
var element_t_scale = parseFloat(element_t['scale']);
|
||||
|
||||
return element_t_scale;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_size_element
|
||||
* Return array[2]
|
||||
* This method get the element size [width, height]
|
||||
*/
|
||||
function get_size_element(element) {
|
||||
var element_b = d3.select(element).node().getBBox();
|
||||
|
||||
return [element_b['width'], element_b['height']];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_pos_element
|
||||
* Return array[2]
|
||||
* This method get the element position [x, y]
|
||||
*/
|
||||
function get_pos_element(element) {
|
||||
var element_t = d3.transform(d3.select(element).attr("transform"));
|
||||
var element_t_scale = parseFloat(element_t['scale']);
|
||||
var element_b = d3.select(element).node().getBBox();
|
||||
|
||||
var box_x = parseFloat(element_t.translate[0]) +
|
||||
parseFloat(element_b['x']) * element_t_scale;
|
||||
var box_y = parseFloat(element_t.translate[1]) +
|
||||
parseFloat(element_b['y']) * element_t_scale;
|
||||
|
||||
return [box_x, box_y];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_center_element
|
||||
* Return array[2]
|
||||
* This method ge2t the element center point [x, y]
|
||||
*/
|
||||
function get_center_element(element) {
|
||||
var element_t = d3.transform(d3.select(element).attr("transform"));
|
||||
var element_t_scale = parseFloat(element_t['scale']);
|
||||
var element_b = d3.select(element).node().getBBox();
|
||||
|
||||
var box_x = parseFloat(element_t.translate[0]) +
|
||||
parseFloat(element_b['x']) * element_t_scale;
|
||||
var box_y = parseFloat(element_t.translate[1]) +
|
||||
parseFloat(element_b['y']) * element_t_scale;
|
||||
|
||||
var width = (element_t_scale * element_b['width']);
|
||||
var height = (element_t_scale * element_b['height']);
|
||||
|
||||
var c_x = box_x + (width / 2);
|
||||
var c_y = box_y + (height / 2);
|
||||
|
||||
return [c_x, c_y];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_distance_between_point
|
||||
* Return float
|
||||
* This method get the distance betweeen two points
|
||||
*/
|
||||
function get_distance_between_point(point1, point2) {
|
||||
delta_x = Math.abs(point1[0] - point2[0]);
|
||||
delta_y = Math.abs(point1[1] - point1[1]);
|
||||
|
||||
return Math.sqrt(
|
||||
Math.pow(delta_x, 2) + Math.pow(delta_y, 2));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function get_angle_of_line
|
||||
* Return float
|
||||
* This method get the angle of line and x axe
|
||||
*/
|
||||
function get_angle_of_line(point1, point2) {
|
||||
return Math.atan2(point2[1] - point1[1], point2[0] - point1[0]) * 180 / Math.PI;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~ function wait_for_preload_symbol(symbol) {
|
||||
//~ preload_symbol(symbol);
|
||||
//~
|
||||
//~ while (!is_preload_symbol(symbol)) {
|
||||
//~ sleep(1000);
|
||||
//~ }
|
||||
//~ }
|
||||
//~
|
||||
//~ function arrow_by_pieces(id_arrow, element1, element2, step) {
|
||||
//~
|
||||
//~ wait_for_preload_symbol('pedo');
|
||||
//~ wait_for_preload_symbol('caca');
|
||||
//~ ...
|
||||
//~ }
|
||||
|
||||
|
||||
|
||||
function arrow_by_pieces2(id_arrow, element1, element2, step) {
|
||||
if (typeof(step) === "undefined")
|
||||
step = 0;
|
||||
|
||||
step++;
|
||||
|
||||
switch (step) {
|
||||
case 1:
|
||||
wait_for_preload_symbols(
|
||||
["body_arrow.svg#body_arrow",
|
||||
"head_arrow.svg#head_arrow"],
|
||||
function() {
|
||||
arrow_by_pieces2(id_arrow, element1, element2, step)
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
|
||||
var arrow = svg.append("g")
|
||||
.attr("id", id_arrow)
|
||||
.attr("style", "opacity: 0");
|
||||
|
||||
arrow.append("g")
|
||||
.attr("id", "body")
|
||||
.append("use")
|
||||
.attr("xlink:href", "body_arrow.svg#body_arrow");
|
||||
|
||||
arrow.append("g")
|
||||
.attr("id", "head")
|
||||
.append("use")
|
||||
.attr("xlink:href", "head_arrow.svg#head_arrow");
|
||||
|
||||
|
||||
var c_elem1 = get_center_element("#" + element1);
|
||||
var c_elem2 = get_center_element("#" + element2);
|
||||
var distance = get_distance_between_point(c_elem1, c_elem2);
|
||||
|
||||
var transform = d3.transform();
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*--- Position of layer arrow (body + head) ---*/
|
||||
/*---------------------------------------------*/
|
||||
var arrow = d3.select("#" + id_arrow);
|
||||
|
||||
var arrow_body = d3.select("#" + id_arrow + " #body");
|
||||
var arrow_body_b = arrow_body.node().getBBox();
|
||||
|
||||
transform.translate[0] = c_elem1[0];
|
||||
transform.translate[1] = c_elem1[1] - arrow_body_b['height'] / 2;
|
||||
transform.rotate = get_angle_of_line(c_elem1, c_elem2);
|
||||
|
||||
arrow.attr("transform", transform.toString());
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*-------- Resize the body arrow width --------*/
|
||||
/*---------------------------------------------*/
|
||||
var arrow_body = d3.select("#" + id_arrow + " #body");
|
||||
var arrow_body_b = arrow_body.node().getBBox();
|
||||
var arrow_head = d3.select("#" + id_arrow + " #head");
|
||||
var arrow_head_b = arrow_head.node().getBBox();
|
||||
|
||||
var body_width = distance - arrow_head_b['width'];
|
||||
|
||||
transform = d3.transform();
|
||||
transform.scale[0] = body_width / arrow_body_b['width'];
|
||||
arrow_body.attr("transform", transform.toString());
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*---------- Position of head arrow -----------*/
|
||||
/*---------------------------------------------*/
|
||||
transform = d3.transform();
|
||||
|
||||
var arrow_body_t = d3.transform(arrow_body.attr("transform"));
|
||||
|
||||
var scale = arrow_body_t.scale[0];
|
||||
var x = 0 + arrow_body_b['width'] * scale;
|
||||
var y = 0 + (arrow_body_b['height'] / 2 - arrow_head_b['height'] / 2);
|
||||
|
||||
transform.translate[0] = x;
|
||||
transform.translate[1] = y;
|
||||
|
||||
arrow_head.attr("transform", transform.toString());
|
||||
<g transform="translate(600, 0) scale(0.25)" id="cat4">
|
||||
<path
|
||||
id="path8068"
|
||||
d="m 80,286.64792 28.57143,-31.42857 94.28571,60 5.71429,122.85714 L 200,472.3622 l 82.85714,-54.28571 194.28572,8.57143 191.42857,31.42857 48.57143,40 -11.42857,-65.71429 -48.57143,-94.28571 31.42857,-51.42857 14.28571,-88.57143 62.85715,74.28571 65.71428,0 31.42857,-82.85714 42.85715,94.28572 L 920,340.93363 897.14286,423.79078 868.57143,515.21935 800,663.79078 814.28571,795.21935 760,855.21935 734.28571,649.50506 691.42857,672.3622 714.28571,883.79078 640,895.21935 l -8.57143,-208.57143 -85.71428,71.42857 -160,-14.28571 L 317.14286,695.21935 360,838.07649 l -22.85714,65.71429 -74.28572,-200 -11.42857,162.85714 -74.28571,-17.14286 40,-217.14286 -42.85715,-17.14285 5.71429,-85.71429 -5.71429,-54.28571 -2.85714,-108.57143 -20,-42.85714 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke: red; fill: white; stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var svg = d3.select("svg #zoom");
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*------- Show the result in one time ---------*/
|
||||
/*---------------------------------------------*/
|
||||
arrow.attr("style", "opacity: 1");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function wait_for_preload_symbols(symbols, callback) {
|
||||
var count_symbols = symbols.length;
|
||||
|
||||
function wait(symbol, callback) {
|
||||
switch (is_preload_symbol(symbol)) {
|
||||
case -1:
|
||||
preload_symbol(symbol);
|
||||
|
||||
setTimeout(function() {
|
||||
wait(symbol,
|
||||
callback);
|
||||
}, 100);
|
||||
break;
|
||||
case 0:
|
||||
// Wait
|
||||
setTimeout(function() {
|
||||
wait(symbol,
|
||||
callback);
|
||||
}, 100);
|
||||
break;
|
||||
case 1:
|
||||
count_symbols--;
|
||||
break;
|
||||
}
|
||||
|
||||
if (count_symbols == 0) {
|
||||
//~ setTimeout(function() {
|
||||
//~ callback();
|
||||
//~ }, 1000);
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
for (var i in symbols) {
|
||||
wait(symbols[i], callback);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function preload_symbol(symbol, param_step) {
|
||||
var step;
|
||||
|
||||
|
||||
if (typeof(param_step) == "undefined") {
|
||||
step = 1;
|
||||
param_step = 1;
|
||||
}
|
||||
else {
|
||||
step = param_step;
|
||||
}
|
||||
|
||||
|
||||
step++;
|
||||
|
||||
var base64symbol = btoa(symbol).replace(/=/g, "");
|
||||
|
||||
var callback = function (e) {
|
||||
preload_symbol(symbol, step);
|
||||
}
|
||||
|
||||
switch (param_step) {
|
||||
case 1:
|
||||
d3.select("svg").append("g")
|
||||
.attr("id", base64symbol)
|
||||
.attr("data-loaded", 0)
|
||||
.style("opacity", 0)
|
||||
.append("use")
|
||||
.attr("xlink:href", symbol)
|
||||
.on("load", callback);
|
||||
break;
|
||||
case 2:
|
||||
d3.select("#" + base64symbol).attr("data-loaded", 1);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function is_preload_symbol(symbol) {
|
||||
var base64symbol = btoa(symbol).replace(/=/g, "");
|
||||
|
||||
if (d3.select("#" + base64symbol).node() === null)
|
||||
return -1;
|
||||
|
||||
return parseInt(d3.select("#" + base64symbol).attr("data-loaded"));
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
svg
|
||||
.append("g")
|
||||
.attr("id", "circulo")
|
||||
.attr("transform", function(d) {
|
||||
return (
|
||||
"translate(" +
|
||||
get_center_element("#cat1")[0] +
|
||||
" " +
|
||||
get_center_element("#cat1")[1] +
|
||||
")"
|
||||
);
|
||||
})
|
||||
.append("circle")
|
||||
.attr("style", "fill: rgb(0, 255, 0);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", 20);
|
||||
|
||||
svg
|
||||
.append("g")
|
||||
.attr("transform", function(d) {
|
||||
return (
|
||||
"translate(" +
|
||||
get_pos_element("#cat1")[0] +
|
||||
" " +
|
||||
get_pos_element("#cat1")[1] +
|
||||
") scale(" +
|
||||
get_scale_element("#cat1") +
|
||||
")"
|
||||
);
|
||||
})
|
||||
.append("rect")
|
||||
.attr("style", "fill:none; stroke:#ffff00;stroke-width:5")
|
||||
.attr("width", function(d) {
|
||||
return get_size_element("#cat1")[0];
|
||||
})
|
||||
.attr("height", function(d) {
|
||||
return get_size_element("#cat1")[1];
|
||||
});
|
||||
|
||||
svg
|
||||
.append("g")
|
||||
.attr("transform", function(d) {
|
||||
return (
|
||||
"translate(" +
|
||||
get_center_element("#cat1")[0] +
|
||||
" " +
|
||||
get_center_element("#cat1")[1] +
|
||||
") scale(" +
|
||||
get_scale_element("#cat1") +
|
||||
")"
|
||||
);
|
||||
})
|
||||
.append("circle")
|
||||
.attr("style", "fill: none; stroke-width: 5; stroke: rgb(0, 0, 255);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", get_radius_element("#cat1"));
|
||||
|
||||
svg
|
||||
.append("g")
|
||||
.attr("id", "circulo")
|
||||
.attr("transform", function(d) {
|
||||
return (
|
||||
"translate(" +
|
||||
get_center_element("#cat3")[0] +
|
||||
" " +
|
||||
get_center_element("#cat3")[1] +
|
||||
")"
|
||||
);
|
||||
})
|
||||
.append("circle")
|
||||
.attr("style", "fill: rgb(0, 255, 0);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", 20);
|
||||
|
||||
svg
|
||||
.append("g")
|
||||
.attr("transform", function(d) {
|
||||
return (
|
||||
"translate(" +
|
||||
get_pos_element("#cat3")[0] +
|
||||
" " +
|
||||
get_pos_element("#cat3")[1] +
|
||||
") scale(" +
|
||||
get_scale_element("#cat3") +
|
||||
")"
|
||||
);
|
||||
})
|
||||
.append("rect")
|
||||
.attr("style", "fill:none; stroke:#ffff00;stroke-width:5")
|
||||
.attr("width", function(d) {
|
||||
return get_size_element("#cat3")[0];
|
||||
})
|
||||
.attr("height", function(d) {
|
||||
return get_size_element("#cat3")[1];
|
||||
});
|
||||
|
||||
svg
|
||||
.append("g")
|
||||
.attr("transform", function(d) {
|
||||
return (
|
||||
"translate(" +
|
||||
get_center_element("#cat3")[0] +
|
||||
" " +
|
||||
get_center_element("#cat3")[1] +
|
||||
") scale(" +
|
||||
get_scale_element("#cat3") +
|
||||
")"
|
||||
);
|
||||
})
|
||||
.append("circle")
|
||||
.attr("style", "fill: none; stroke-width: 5; stroke: rgb(0, 0, 255);")
|
||||
.attr("cx", 0)
|
||||
.attr("cy", 0)
|
||||
.attr("r", get_radius_element("#cat3"));
|
||||
|
||||
arrow_by_pieces2("gatete_flecha", "cat1", "cat2");
|
||||
arrow_by_pieces2("gatete_flecha2", "cat1", "cat4");
|
||||
arrow_by_pieces2("gatete_flecha3", "cat3", "cat4");
|
||||
|
||||
//~ arrow_by_pieces("gatete_flecha", "cat1", "cat2");
|
||||
//~ arrow_by_pieces("gatete_flecha", "cat3", "cat4");
|
||||
|
||||
/**
|
||||
* Function get_radius_element
|
||||
* Return float
|
||||
* This method get the element radius
|
||||
*/
|
||||
function get_radius_element(element) {
|
||||
var size = get_size_element(element);
|
||||
|
||||
return Math.sqrt(Math.pow(size[0] / 2, 2) + Math.pow(size[1] / 2, 2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_scale_element
|
||||
* Return float
|
||||
* This method get the element escale
|
||||
*/
|
||||
function get_scale_element(element) {
|
||||
var element_t = d3.transform(d3.select(element).attr("transform"));
|
||||
var element_t_scale = parseFloat(element_t["scale"]);
|
||||
|
||||
return element_t_scale;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_size_element
|
||||
* Return array[2]
|
||||
* This method get the element size [width, height]
|
||||
*/
|
||||
function get_size_element(element) {
|
||||
var element_b = d3
|
||||
.select(element)
|
||||
.node()
|
||||
.getBBox();
|
||||
|
||||
return [element_b["width"], element_b["height"]];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_pos_element
|
||||
* Return array[2]
|
||||
* This method get the element position [x, y]
|
||||
*/
|
||||
function get_pos_element(element) {
|
||||
var element_t = d3.transform(d3.select(element).attr("transform"));
|
||||
var element_t_scale = parseFloat(element_t["scale"]);
|
||||
var element_b = d3
|
||||
.select(element)
|
||||
.node()
|
||||
.getBBox();
|
||||
|
||||
var box_x =
|
||||
parseFloat(element_t.translate[0]) +
|
||||
parseFloat(element_b["x"]) * element_t_scale;
|
||||
var box_y =
|
||||
parseFloat(element_t.translate[1]) +
|
||||
parseFloat(element_b["y"]) * element_t_scale;
|
||||
|
||||
return [box_x, box_y];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_center_element
|
||||
* Return array[2]
|
||||
* This method ge2t the element center point [x, y]
|
||||
*/
|
||||
function get_center_element(element) {
|
||||
var element_t = d3.transform(d3.select(element).attr("transform"));
|
||||
var element_t_scale = parseFloat(element_t["scale"]);
|
||||
var element_b = d3
|
||||
.select(element)
|
||||
.node()
|
||||
.getBBox();
|
||||
|
||||
var box_x =
|
||||
parseFloat(element_t.translate[0]) +
|
||||
parseFloat(element_b["x"]) * element_t_scale;
|
||||
var box_y =
|
||||
parseFloat(element_t.translate[1]) +
|
||||
parseFloat(element_b["y"]) * element_t_scale;
|
||||
|
||||
var width = element_t_scale * element_b["width"];
|
||||
var height = element_t_scale * element_b["height"];
|
||||
|
||||
var c_x = box_x + width / 2;
|
||||
var c_y = box_y + height / 2;
|
||||
|
||||
return [c_x, c_y];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_distance_between_point
|
||||
* Return float
|
||||
* This method get the distance betweeen two points
|
||||
*/
|
||||
function get_distance_between_point(point1, point2) {
|
||||
delta_x = Math.abs(point1[0] - point2[0]);
|
||||
delta_y = Math.abs(point1[1] - point1[1]);
|
||||
|
||||
return Math.sqrt(Math.pow(delta_x, 2) + Math.pow(delta_y, 2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Function get_angle_of_line
|
||||
* Return float
|
||||
* This method get the angle of line and x axe
|
||||
*/
|
||||
function get_angle_of_line(point1, point2) {
|
||||
return (
|
||||
(Math.atan2(point2[1] - point1[1], point2[0] - point1[0]) * 180) /
|
||||
Math.PI
|
||||
);
|
||||
}
|
||||
|
||||
function arrow_by_pieces2(id_arrow, element1, element2, step) {
|
||||
if (typeof step === "undefined") step = 0;
|
||||
|
||||
step++;
|
||||
|
||||
switch (step) {
|
||||
case 1:
|
||||
wait_for_preload_symbols(
|
||||
["body_arrow.svg#body_arrow", "head_arrow.svg#head_arrow"],
|
||||
function() {
|
||||
arrow_by_pieces2(id_arrow, element1, element2, step);
|
||||
}
|
||||
);
|
||||
break;
|
||||
case 2:
|
||||
var arrow = svg
|
||||
.append("g")
|
||||
.attr("id", id_arrow)
|
||||
.attr("style", "opacity: 0");
|
||||
|
||||
arrow
|
||||
.append("g")
|
||||
.attr("id", "body")
|
||||
.append("use")
|
||||
.attr("xlink:href", "body_arrow.svg#body_arrow");
|
||||
|
||||
arrow
|
||||
.append("g")
|
||||
.attr("id", "head")
|
||||
.append("use")
|
||||
.attr("xlink:href", "head_arrow.svg#head_arrow");
|
||||
|
||||
var c_elem1 = get_center_element("#" + element1);
|
||||
var c_elem2 = get_center_element("#" + element2);
|
||||
var distance = get_distance_between_point(c_elem1, c_elem2);
|
||||
|
||||
var transform = d3.transform();
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*--- Position of layer arrow (body + head) ---*/
|
||||
/*---------------------------------------------*/
|
||||
var arrow = d3.select("#" + id_arrow);
|
||||
|
||||
var arrow_body = d3.select("#" + id_arrow + " #body");
|
||||
var arrow_body_b = arrow_body.node().getBBox();
|
||||
|
||||
transform.translate[0] = c_elem1[0];
|
||||
transform.translate[1] = c_elem1[1] - arrow_body_b["height"] / 2;
|
||||
transform.rotate = get_angle_of_line(c_elem1, c_elem2);
|
||||
|
||||
arrow.attr("transform", transform.toString());
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*-------- Resize the body arrow width --------*/
|
||||
/*---------------------------------------------*/
|
||||
var arrow_body = d3.select("#" + id_arrow + " #body");
|
||||
var arrow_body_b = arrow_body.node().getBBox();
|
||||
var arrow_head = d3.select("#" + id_arrow + " #head");
|
||||
var arrow_head_b = arrow_head.node().getBBox();
|
||||
|
||||
var body_width = distance - arrow_head_b["width"];
|
||||
|
||||
transform = d3.transform();
|
||||
transform.scale[0] = body_width / arrow_body_b["width"];
|
||||
arrow_body.attr("transform", transform.toString());
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*---------- Position of head arrow -----------*/
|
||||
/*---------------------------------------------*/
|
||||
transform = d3.transform();
|
||||
|
||||
var arrow_body_t = d3.transform(arrow_body.attr("transform"));
|
||||
|
||||
var scale = arrow_body_t.scale[0];
|
||||
var x = 0 + arrow_body_b["width"] * scale;
|
||||
var y =
|
||||
0 + (arrow_body_b["height"] / 2 - arrow_head_b["height"] / 2);
|
||||
|
||||
transform.translate[0] = x;
|
||||
transform.translate[1] = y;
|
||||
|
||||
arrow_head.attr("transform", transform.toString());
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*------- Show the result in one time ---------*/
|
||||
/*---------------------------------------------*/
|
||||
arrow.attr("style", "opacity: 1");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function wait_for_preload_symbols(symbols, callback) {
|
||||
var count_symbols = symbols.length;
|
||||
|
||||
function wait(symbol, callback) {
|
||||
switch (is_preload_symbol(symbol)) {
|
||||
case -1:
|
||||
preload_symbol(symbol);
|
||||
|
||||
setTimeout(function() {
|
||||
wait(symbol, callback);
|
||||
}, 100);
|
||||
break;
|
||||
case 0:
|
||||
// Wait
|
||||
setTimeout(function() {
|
||||
wait(symbol, callback);
|
||||
}, 100);
|
||||
break;
|
||||
case 1:
|
||||
count_symbols--;
|
||||
break;
|
||||
}
|
||||
|
||||
if (count_symbols == 0) {
|
||||
//~ setTimeout(function() {
|
||||
//~ callback();
|
||||
//~ }, 1000);
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
for (var i in symbols) {
|
||||
wait(symbols[i], callback);
|
||||
}
|
||||
}
|
||||
|
||||
function preload_symbol(symbol, param_step) {
|
||||
var step;
|
||||
|
||||
if (typeof param_step == "undefined") {
|
||||
step = 1;
|
||||
param_step = 1;
|
||||
} else {
|
||||
step = param_step;
|
||||
}
|
||||
|
||||
step++;
|
||||
|
||||
var base64symbol = btoa(symbol).replace(/=/g, "");
|
||||
|
||||
var callback = function(e) {
|
||||
preload_symbol(symbol, step);
|
||||
};
|
||||
|
||||
switch (param_step) {
|
||||
case 1:
|
||||
d3.select("svg")
|
||||
.append("g")
|
||||
.attr("id", base64symbol)
|
||||
.attr("data-loaded", 0)
|
||||
.style("opacity", 0)
|
||||
.append("use")
|
||||
.attr("xlink:href", symbol)
|
||||
.on("load", callback);
|
||||
break;
|
||||
case 2:
|
||||
d3.select("#" + base64symbol).attr("data-loaded", 1);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function is_preload_symbol(symbol) {
|
||||
var base64symbol = btoa(symbol).replace(/=/g, "");
|
||||
|
||||
if (d3.select("#" + base64symbol).node() === null) return -1;
|
||||
|
||||
return parseInt(d3.select("#" + base64symbol).attr("data-loaded"));
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -82,10 +82,10 @@ execute_cmd "[ $PANDORA_SERVER_IP ]" 'Check Server IP Address' 'Please define e
|
||||
# Check OS.
|
||||
OS=$([[ $(grep '^ID_LIKE=' /etc/os-release) ]] && grep ^ID_LIKE= /etc/os-release | cut -d '=' -f2 | tr -d '"' || grep ^ID= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
|
||||
[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
|
||||
[[ $OS == 'fedora' ]] && OS_RELEASE=$OS
|
||||
[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
|
||||
[[ $OS == 'debian' ]] && OS_RELEASE=$OS
|
||||
[[ $OS =~ 'rhel' ]] && OS_RELEASE=$OS
|
||||
[[ $OS =~ 'debian' ]] && OS_RELEASE=$OS
|
||||
#[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
|
||||
#[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
|
||||
|
||||
# initialice logfile
|
||||
execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE"
|
||||
@ -113,7 +113,7 @@ execute_cmd "cd $HOME/pandora_deploy_tmp" "Moving to workspace: $HOME/pandora_d
|
||||
|
||||
# Downloading and installing packages
|
||||
|
||||
if [[ $OS_RELEASE == 'rhel fedora' ]] || [[ $OS_RELEASE == 'centos rhel fedora' ]]; then
|
||||
if [[ $OS_RELEASE =~ 'rhel' ]]; then
|
||||
yum install -y perl wget curl perl-Sys-Syslog unzip &>> $LOGFILE
|
||||
echo -e "${cyan}Instaling agent dependencies...${reset}" ${green}OK${reset}
|
||||
|
||||
|
@ -1,20 +1,33 @@
|
||||
#!/bin/bash
|
||||
#######################################################
|
||||
# PandoraFMS Community online installation script
|
||||
#######################################################
|
||||
## Tested versions ##
|
||||
# Centos 7.9
|
||||
|
||||
# define variables
|
||||
#Constants
|
||||
PANDORA_CONSOLE=/var/www/html/pandora_console
|
||||
CONSOLE_PATH=/var/www/html/pandora_console
|
||||
PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
||||
PANDORA_SERVER_BIN=/usr/bin/pandora_server
|
||||
PANDORA_HA_BIN=/usr/bin/pandora_ha
|
||||
PANDORA_TABLES_MIN=160
|
||||
DBHOST=127.0.0.1
|
||||
DBNAME=pandora
|
||||
DBUSER=pandora
|
||||
DBPASS=pandora
|
||||
DBPORT=3306
|
||||
S_VERSION='2021012801'
|
||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2022020801'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
[ "$TZ" ] || TZ="Europe/Madrid"
|
||||
[ "$DBHOST" ] || DBHOST=127.0.0.1
|
||||
[ "$DBNAME" ] || DBNAME=pandora
|
||||
[ "$DBUSER" ] || DBUSER=pandora
|
||||
[ "$DBPASS" ] || DBPASS=pandora
|
||||
[ "$DBPORT" ] || DBPORT=3306
|
||||
[ "$DBROOTPASS" ] || DBROOTPASS=pandora
|
||||
[ "$SKIP_PRECHECK" ] || SKIP_PRECHECK=0
|
||||
[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0
|
||||
[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0
|
||||
[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
[ "$PANDORA_BETA" ] || PANDORA_BETA=0
|
||||
|
||||
# Ansi color code variables
|
||||
red="\e[0;91m"
|
||||
green="\e[0;92m"
|
||||
@ -60,7 +73,7 @@ check_pre_pandora () {
|
||||
|
||||
echo -en "${cyan}Checking environment ... ${reset}"
|
||||
rpm -qa | grep pandora &>> /dev/null && local fail=true
|
||||
[ -d "$CONSOLE_PATH" ] && local fail=true
|
||||
[ -d "$PANDORA_CONSOLE" ] && local fail=true
|
||||
[ -f /usr/bin/pandora_server ] && local fail=true
|
||||
echo "use $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true
|
||||
|
||||
@ -98,6 +111,10 @@ fi
|
||||
|
||||
execute_cmd "grep -i centos /etc/redhat-release" "Checking Centos" 'Error This is not a Centos Base system'
|
||||
|
||||
#Detect OS
|
||||
os_name=$(grep ^PRETTY_NAME= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
execute_cmd "echo $os_name" "OS detected: ${os_name}"
|
||||
|
||||
echo -en "${cyan}Check Centos Version...${reset}"
|
||||
[ $(sed -nr 's/VERSION_ID+=\s*"([0-9])"$/\1/p' /etc/os-release) -eq '7' ]
|
||||
check_cmd_status 'Error OS version, Centos 7 is expected'
|
||||
@ -111,7 +128,10 @@ echo "Community installer version: $S_VERSION" >> $LOGFILE
|
||||
check_root_permissions
|
||||
|
||||
# Pre installed pandora
|
||||
check_pre_pandora
|
||||
[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora
|
||||
|
||||
#advicing BETA PROGRAM
|
||||
[ "$PANDORA_BETA" -ne '0' ] && echo -e "${red}BETA version enable using nightly PandoraFMS packages${reset}"
|
||||
|
||||
# Connectivity
|
||||
check_repo_connection
|
||||
@ -125,6 +145,9 @@ execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]"
|
||||
# Check disk size at least 10 Gb free space
|
||||
execute_cmd "[ $(df -BM / | tail -1 | awk '{print $4}' | tr -d M) -gt 10000 ]" 'Checking Disk (required: 10 GB free min)'
|
||||
|
||||
# Setting timezone
|
||||
execute_cmd "timedatectl set-timezone $TZ" "Setting Timezone $TZ"
|
||||
|
||||
# Execute tools check
|
||||
execute_cmd "awk --version" 'Checking needed tools: awk'
|
||||
execute_cmd "grep --version" 'Checking needed tools: grep'
|
||||
@ -148,10 +171,10 @@ http://rpms.remirepo.net/enterprise/remi-release-7.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "yum install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "yum-config-manager --enable remi-php73" "Configuring PHP"
|
||||
execute_cmd "yum-config-manager --enable remi-php74" "Configuring PHP"
|
||||
|
||||
# Install percona Database
|
||||
[ -f /etc/my.cnf ] && rm -rf /etc/my.cnf
|
||||
#[ -f /etc/my.cnf ] && rm -rf /etc/my.cnf
|
||||
execute_cmd "yum install -y Percona-Server-server-57" "Installing Percona Server"
|
||||
|
||||
# Console dependencies
|
||||
@ -256,6 +279,7 @@ server_dependencies=" \
|
||||
perl(XML::Twig) \
|
||||
expect \
|
||||
openssh-clients \
|
||||
java \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm"
|
||||
execute_cmd "yum install -y $server_dependencies" "Installing Pandora FMS Server dependencies"
|
||||
@ -275,32 +299,61 @@ execute_cmd "yum install -y $vmware_dependencies" "Installing SDK VMware perl de
|
||||
oracle_dependencies=" \
|
||||
https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm \
|
||||
https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm"
|
||||
execute_cmd "yum install -y $oracle_dependencies" "Installing Oracle Instant client"
|
||||
execute_cmd "yum install -y $oracle_dependencies || yum reinstall -y $oracle_dependencies" "Installing Oracle Instant client"
|
||||
|
||||
#ipam dependencies
|
||||
ipam_dependencies=" \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
perl(NetAddr::IP) \
|
||||
perl(Sys::Syslog) \
|
||||
perl(DBI) \
|
||||
perl(XML::Simple) \
|
||||
perl(Geo::IP) \
|
||||
perl(IO::Socket::INET6) \
|
||||
perl(XML::Twig)"
|
||||
execute_cmd "yum install -y $ipam_dependencies" "Installing IPAM Instant client"
|
||||
|
||||
# MSSQL dependencies el7
|
||||
execute_cmd "curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/mssql-release.repo" "Configuring Microsoft repositories"
|
||||
execute_cmd "yum remove unixODBC-utf16 unixODBC-utf16-devel" "Removing default unixODBC packages"
|
||||
execute_cmd "env ACCEPT_EULA=Y yum install -y msodbcsql17" "Installing ODBC Driver for Microsoft(R) SQL Server(R)"
|
||||
MS_ID=$(head -1 /etc/odbcinst.ini | tr -d '[]') &>> "$LOGFILE"
|
||||
#yum config-manager --set-disable packages-microsoft-com-prod
|
||||
|
||||
# Disabling SELINUX and firewalld
|
||||
setenforce 0
|
||||
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
|
||||
systemctl disable firewalld --now &>> $LOGFILE
|
||||
|
||||
# Adding standar cnf for initial setup.
|
||||
cat > /etc/my.cnf << EO_CONFIG_TMP
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
symbolic-links=0
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
EO_CONFIG_TMP
|
||||
|
||||
#Configuring Database
|
||||
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
||||
execute_cmd "systemctl start mysqld" "Starting database engine"
|
||||
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
|
||||
echo """
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!');
|
||||
UNINSTALL PLUGIN validate_password;
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pandora');
|
||||
""" | mysql --connect-expired-password -uroot
|
||||
|
||||
export MYSQL_PWD=$DBPASS
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS');
|
||||
""" | mysql --connect-expired-password -uroot &>> "$LOGFILE"
|
||||
fi
|
||||
export MYSQL_PWD=$DBROOTPASS
|
||||
echo -en "${cyan}Creating Pandora FMS database...${reset}"
|
||||
echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
check_cmd_status 'Error creating database pandora, is this an empty node? if you have a previus installation please contact with support.'
|
||||
check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support."
|
||||
|
||||
echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%' identified by \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
export MYSQL_PWD=$DBPASS
|
||||
|
||||
#Generating my.cnf
|
||||
POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
cat > /etc/my.cnf << EO_CONFIG_F
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
@ -347,10 +400,21 @@ EO_CONFIG_F
|
||||
|
||||
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
||||
|
||||
#Define packages
|
||||
if [ "$PANDORA_BETA" -eq '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
elif [ "$PANDORA_BETA" -ne '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://pandorafms.com/community/community-console-rpm-beta/"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "wget http://firefly.artica.es/centos7/pandorafms_agent_unix-7.0NG.751_x86_64.rpm" "Downloading Pandora FMS Agent community"
|
||||
execute_cmd "curl -LSs --output pandorafms_server-7.0NG.noarch.rpm ${PANDORA_SERVER_PACKAGE}" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "curl -LSs --output pandorafms_console-7.0NG.noarch.rpm ${PANDORA_CONSOLE_PACKAGE}" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA_AGENT_PACKAGE}" "Downloading Pandora FMS Agent community"
|
||||
|
||||
# Install Pandora
|
||||
execute_cmd "yum install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages"
|
||||
@ -374,13 +438,13 @@ mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb_data.sq
|
||||
check_cmd_status 'Error Loading database schema data'
|
||||
|
||||
# Configure console
|
||||
cat > $CONSOLE_PATH/include/config.php << EO_CONFIG_F
|
||||
cat > $PANDORA_CONSOLE/include/config.php << EO_CONFIG_F
|
||||
<?php
|
||||
\$config["dbtype"] = "mysql";
|
||||
\$config["dbname"]="$DBNAME";
|
||||
\$config["dbuser"]="$DBUSER";
|
||||
\$config["dbpass"]="$DBPASS";
|
||||
\$config["dbhost"]="localhost";
|
||||
\$config["dbhost"]="$DBHOST";
|
||||
\$config["homedir"]="$PANDORA_CONSOLE";
|
||||
\$config["homeurl"]="/pandora_console";
|
||||
error_reporting(0);
|
||||
@ -420,9 +484,9 @@ sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
||||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
||||
|
||||
# Fixing console permissions
|
||||
chmod 600 $CONSOLE_PATH/include/config.php
|
||||
chown apache. $CONSOLE_PATH/include/config.php
|
||||
mv $CONSOLE_PATH/install.php $CONSOLE_PATH/install.done
|
||||
chmod 600 $PANDORA_CONSOLE/include/config.php
|
||||
chown apache. $PANDORA_CONSOLE/include/config.php
|
||||
mv $PANDORA_CONSOLE/install.php $PANDORA_CONSOLE/install.done
|
||||
|
||||
# Prepare php.ini
|
||||
sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
|
||||
@ -449,6 +513,10 @@ sed -i -e "s/^dbname.*/dbname $DBNAME/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^dbuser.*/dbuser $DBUSER/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s|^dbpass.*|dbpass $DBPASS|g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^dbport.*/dbport $DBPORT/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^#.mssql_driver.*/mssql_driver $MS_ID/g" $PANDORA_SERVER_CONF
|
||||
|
||||
# Enable agent remote config
|
||||
sed -i "s/^remote_config.*$/remote_config 1/g" $PANDORA_AGENT_CONF
|
||||
|
||||
# Set Oracle environment for pandora_server
|
||||
cat > /etc/pandora/pandora_server.env << 'EOF_ENV'
|
||||
@ -459,7 +527,7 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/$VERSION/client64/lib
|
||||
export ORACLE_HOME=/usr/lib/oracle/$VERSION/client64
|
||||
EOF_ENV
|
||||
|
||||
# Kernel optimization
|
||||
if [ "$SKIP_KERNEL_OPTIMIZATIONS" -eq '0' ] ; then
|
||||
cat >> /etc/sysctl.conf <<EO_KO
|
||||
# Pandora FMS Optimization
|
||||
|
||||
@ -487,6 +555,7 @@ net.core.optmem_max = 81920
|
||||
EO_KO
|
||||
|
||||
[ -d /dev/lxd/ ] || execute_cmd "sysctl --system" "Applying Kernel optimization"
|
||||
fi
|
||||
|
||||
# Fix pandora_server.{log,error} permissions to allow Console check them
|
||||
chown pandora:apache /var/log/pandora
|
||||
@ -563,7 +632,7 @@ execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate http://12
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
## Enabling agent
|
||||
systemctl enable pandora_agent_daemon &>> $LOGFILE
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "starting Pandora FMS Agent"
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent"
|
||||
|
||||
#SSH banner
|
||||
[ "$(curl -s ifconfig.me)" ] && ipplublic=$(curl -s ifconfig.me)
|
||||
@ -593,4 +662,4 @@ execute_cmd "rm -rf $HOME/pandora_deploy_tmp" "Removing temporary files"
|
||||
GREEN='\033[01;32m'
|
||||
NONE='\033[0m'
|
||||
printf " -> Go to Public ${green}http://"$ipplublic"/pandora_console${reset} to manage this server"
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use this credentials to login in the console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use these credentials to log in Pandora Console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
@ -1,17 +1,36 @@
|
||||
#!/bin/bash
|
||||
#######################################################
|
||||
# PandoraFMS Community online installation script
|
||||
#######################################################
|
||||
## Tested versions ##
|
||||
# Centos 8.4, 8.5
|
||||
# Rocky 8.4, 8.5
|
||||
# Almalinuz 8.4, 8.5
|
||||
# RedHat 8.5
|
||||
|
||||
# define variables
|
||||
#Constants
|
||||
PANDORA_CONSOLE=/var/www/html/pandora_console
|
||||
CONSOLE_PATH=/var/www/html/pandora_console
|
||||
PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
||||
DBHOST=127.0.0.1
|
||||
DBNAME=pandora
|
||||
DBUSER=pandora
|
||||
DBPASS=pandora
|
||||
DBPORT=3306
|
||||
S_VERSION='2021070101'
|
||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2022020801'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
[ "$TZ" ] || TZ="Europe/Madrid"
|
||||
[ "$DBHOST" ] || DBHOST=127.0.0.1
|
||||
[ "$DBNAME" ] || DBNAME=pandora
|
||||
[ "$DBUSER" ] || DBUSER=pandora
|
||||
[ "$DBPASS" ] || DBPASS=pandora
|
||||
[ "$DBPORT" ] || DBPORT=3306
|
||||
[ "$DBROOTPASS" ] || DBROOTPASS=pandora
|
||||
[ "$SKIP_PRECHECK" ] || SKIP_PRECHECK=0
|
||||
[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0
|
||||
[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0
|
||||
[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
[ "$PANDORA_BETA" ] || PANDORA_BETA=0
|
||||
|
||||
# Ansi color code variables
|
||||
red="\e[0;91m"
|
||||
green="\e[0;92m"
|
||||
@ -56,7 +75,7 @@ check_pre_pandora () {
|
||||
|
||||
echo -en "${cyan}Checking environment ... ${reset}"
|
||||
rpm -qa | grep pandora &>> /dev/null && local fail=true
|
||||
[ -d "$CONSOLE_PATH" ] && local fail=true
|
||||
[ -d "$PANDORA_CONSOLE" ] && local fail=true
|
||||
[ -f /usr/bin/pandora_server ] && local fail=true
|
||||
echo "use $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true
|
||||
|
||||
@ -74,7 +93,7 @@ check_root_permissions () {
|
||||
echo -en "${cyan}Checking root account... ${reset}"
|
||||
if [ "$(whoami)" != "root" ]; then
|
||||
echo -e "${red}Fail${reset}"
|
||||
echo "Please use a root account or sudo for installing PandoraFMS"
|
||||
echo "Please use a root account or sudo for installing Pandora FMS"
|
||||
echo "Error installing Pandora FMS for detailed error please check log: $LOGFILE"
|
||||
exit 1
|
||||
|
||||
@ -87,15 +106,19 @@ check_root_permissions () {
|
||||
echo "Starting PandoraFMS Community deployment EL8 ver. $S_VERSION"
|
||||
|
||||
# Centos Version
|
||||
if [ ! "$(grep -Ei 'centos|rocky' /etc/redhat-release)" ]; then
|
||||
printf "\n ${red}Error this is not a Centos/Rocky Base system, this installer is compatible with Centos/Rocky systems only${reset}\n"
|
||||
if [ ! "$(grep -Ei 'centos|rocky|Almalinux|Red Hat Enterprise' /etc/redhat-release)" ]; then
|
||||
printf "\n ${red}Error this is not a Centos/Rocky/Almalinux Base system, this installer is compatible with RHEL/Almalinux/Centos/Rockylinux systems only${reset}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
echo -en "${cyan}Check Centos Version...${reset}"
|
||||
[ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '8' ]
|
||||
check_cmd_status 'Error OS version, Centos/Rocky 8+ is expected'
|
||||
check_cmd_status 'Error OS version, RHEL/Almalinux/Centos/Rockylinux 8+ is expected'
|
||||
|
||||
#Detect OS
|
||||
os_name=$(grep ^PRETTY_NAME= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
execute_cmd "echo $os_name" "OS detected: ${os_name}"
|
||||
|
||||
# initialice logfile
|
||||
execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE"
|
||||
@ -106,7 +129,10 @@ echo "Community installer version: $S_VERSION" >> "$LOGFILE"
|
||||
check_root_permissions
|
||||
|
||||
# Pre installed pandora
|
||||
check_pre_pandora
|
||||
[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora
|
||||
|
||||
#advicing BETA PROGRAM
|
||||
[ "$PANDORA_BETA" -ne '0' ] && echo -e "${red}BETA version enable using nightly PandoraFMS packages${reset}"
|
||||
|
||||
# Connectivity
|
||||
check_repo_connection
|
||||
@ -120,6 +146,10 @@ execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]"
|
||||
# Check disk size at least 10 Gb free space
|
||||
execute_cmd "[ $(df -BM / | tail -1 | awk '{print $4}' | tr -d M) -gt 10000 ]" 'Checking Disk (required: 10 GB free min)'
|
||||
|
||||
# Setting timezone
|
||||
rm -rf /etc/localtime &>> "$LOGFILE"
|
||||
execute_cmd "timedatectl set-timezone $TZ" "Setting Timezone $TZ"
|
||||
|
||||
# Execute tools check
|
||||
execute_cmd "awk --version" 'Checking needed tools: awk'
|
||||
execute_cmd "grep --version" 'Checking needed tools: grep'
|
||||
@ -131,25 +161,57 @@ rm -rf "$HOME"/pandora_deploy_tmp/*.rpm* &>> "$LOGFILE"
|
||||
mkdir "$HOME"/pandora_deploy_tmp &>> "$LOGFILE"
|
||||
execute_cmd "cd $HOME/pandora_deploy_tmp" "Moving to workspace: $HOME/pandora_deploy_tmp"
|
||||
|
||||
## Extra steps on redhat envs
|
||||
if [ "$(grep -Ei 'Red Hat Enterprise' /etc/redhat-release)" ]; then
|
||||
## In case REDHAT
|
||||
# Check susbscription manager status:
|
||||
echo -en "${cyan}Checking Red Hat Enterprise subscription... ${reset}"
|
||||
subscription-manager status &>> "$LOGFILE"
|
||||
subscription-manager list &>> "$LOGFILE"
|
||||
subscription-manager list | grep 'Status:' | grep Subscribed &>> "$LOGFILE"
|
||||
check_cmd_status 'Error checking subscription status, make sure your server is activated and suscribed to Red Hat Enterprise repositories'
|
||||
|
||||
# Ckeck repolist
|
||||
dnf repolist &>> "$LOGFILE"
|
||||
echo -en "${cyan}Checking Red Hat Enterprise repolist... ${reset}"
|
||||
dnf repolist | grep 'rhel-8-for-x86_64-baseos-rpms' &>> "$LOGFILE"
|
||||
check_cmd_status 'Error checking repositories status, could try a subscription-manager attach command or contact sysadmin'
|
||||
|
||||
#install extra repos
|
||||
extra_repos=" \
|
||||
tar \
|
||||
dnf-utils \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms" "Enabling subscription to codeready-builder"
|
||||
else
|
||||
# For alma/rocky/centos
|
||||
extra_repos=" \
|
||||
tar \
|
||||
dnf-utils \
|
||||
epel-release \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "dnf config-manager --set-enabled powertools" "Configuring Powertools"
|
||||
fi
|
||||
|
||||
|
||||
#Installing wget
|
||||
execute_cmd "dnf install -y wget" "Installing wget"
|
||||
|
||||
#Installing extra repositiries
|
||||
extra_repos=" \
|
||||
tar \
|
||||
dnf-utils \
|
||||
epel-release \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "dnf config-manager --set-enabled powertools" "Configuring Powertools"
|
||||
execute_cmd "dnf module reset -y php " "Disabling standard PHP module"
|
||||
execute_cmd "dnf module install -y php:remi-7.3" "Configuring PHP"
|
||||
execute_cmd "dnf module install -y php:remi-7.4" "Configuring PHP"
|
||||
|
||||
# Install percona Database
|
||||
execute_cmd "dnf module disable -y mysql" "Disabiling mysql module"
|
||||
rm -rf /etc/my.cnf
|
||||
#rm -rf /etc/my.cnf
|
||||
execute_cmd "dnf install -y Percona-Server-server-57" "Installing Percona Server"
|
||||
|
||||
# Console dependencies
|
||||
@ -231,6 +293,7 @@ console_dependencies=" \
|
||||
xorg-x11-fonts-misc \
|
||||
poppler-data \
|
||||
php-yaml \
|
||||
mod_ssl \
|
||||
http://firefly.artica.es/centos8/perl-Net-Telnet-3.04-1.el8.noarch.rpm \
|
||||
http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm \
|
||||
http://firefly.artica.es/centos8/phantomjs-2.1.1-1.el7.x86_64.rpm"
|
||||
@ -255,7 +318,8 @@ server_dependencies=" \
|
||||
perl(IO::Socket::INET6) \
|
||||
perl(XML::Twig) \
|
||||
expect \
|
||||
openssh-clients \
|
||||
openssh-clients \
|
||||
java \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm"
|
||||
execute_cmd "dnf install -y $server_dependencies" "Installing Pandora FMS Server dependencies"
|
||||
@ -281,6 +345,7 @@ oracle_dependencies=" \
|
||||
https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm"
|
||||
execute_cmd "dnf install -y $oracle_dependencies" "Installing Oracle Instant client"
|
||||
|
||||
#ipam dependencies
|
||||
ipam_dependencies=" \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
perl(NetAddr::IP) \
|
||||
@ -290,32 +355,49 @@ ipam_dependencies=" \
|
||||
perl(Geo::IP) \
|
||||
perl(IO::Socket::INET6) \
|
||||
perl(XML::Twig)"
|
||||
execute_cmd "dnf install -y $ipam_dependencies" "Installing Oracle Instant client"
|
||||
execute_cmd "dnf install -y $ipam_dependencies" "Installing IPAM Instant client"
|
||||
|
||||
# MSSQL dependencies el8
|
||||
execute_cmd "curl https://packages.microsoft.com/config/rhel/8/prod.repo -o /etc/yum.repos.d/mssql-release.repo" "Configuring Microsoft repositories"
|
||||
execute_cmd "dnf remove unixODBC-utf16 unixODBC-utf16-devel" "Removing default unixODBC packages"
|
||||
execute_cmd "env ACCEPT_EULA=Y dnf install -y msodbcsql17" "Installing ODBC Driver for Microsoft(R) SQL Server(R)"
|
||||
MS_ID=$(head -1 /etc/odbcinst.ini | tr -d '[]') &>> "$LOGFILE"
|
||||
#dnf config-manager --set-disable packages-microsoft-com-prod
|
||||
|
||||
# Disabling SELINUX and firewalld
|
||||
setenforce 0 &>> "$LOGFILE"
|
||||
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config &>> "$LOGFILE"
|
||||
systemctl disable firewalld --now &>> "$LOGFILE"
|
||||
|
||||
# Adding standar cnf for initial setup.
|
||||
cat > /etc/my.cnf << EO_CONFIG_TMP
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
symbolic-links=0
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
EO_CONFIG_TMP
|
||||
|
||||
#Configuring Database
|
||||
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
||||
execute_cmd "systemctl start mysqld" "Starting database engine"
|
||||
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
|
||||
echo """
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!');
|
||||
UNINSTALL PLUGIN validate_password;
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pandora');
|
||||
""" | mysql --connect-expired-password -uroot
|
||||
|
||||
export MYSQL_PWD=$DBPASS
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS');
|
||||
""" | mysql --connect-expired-password -uroot &>> "$LOGFILE"
|
||||
fi
|
||||
export MYSQL_PWD=$DBROOTPASS
|
||||
echo -en "${cyan}Creating Pandora FMS database...${reset}"
|
||||
echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
check_cmd_status 'Error creating database pandora, is this an empty node? if you have a previus installation please contact with support.'
|
||||
check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support."
|
||||
|
||||
echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%' identified by \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
export MYSQL_PWD=$DBPASS
|
||||
|
||||
#Generating my.cnf
|
||||
POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
cat > /etc/my.cnf << EO_CONFIG_F
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
@ -362,13 +444,25 @@ EO_CONFIG_F
|
||||
|
||||
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
||||
|
||||
|
||||
#Define packages
|
||||
if [ "$PANDORA_BETA" -eq '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
elif [ "$PANDORA_BETA" -ne '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://pandorafms.com/community/community-console-rpm-beta/"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "wget http://firefly.artica.es/centos7/pandorafms_agent_unix-7.0NG.751_x86_64.rpm" "Downloading Pandora FMS Agent community"
|
||||
execute_cmd "curl -LSs --output pandorafms_server-7.0NG.noarch.rpm ${PANDORA_SERVER_PACKAGE}" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "curl -LSs --output pandorafms_console-7.0NG.noarch.rpm ${PANDORA_CONSOLE_PACKAGE}" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA_AGENT_PACKAGE}" "Downloading Pandora FMS Agent community"
|
||||
|
||||
# Install Pandora
|
||||
execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages"
|
||||
execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "Installing Pandora FMS packages"
|
||||
|
||||
# Copy gotty utility
|
||||
execute_cmd "wget https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz" 'Dowloading gotty util'
|
||||
@ -391,13 +485,13 @@ mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb_data.sq
|
||||
check_cmd_status 'Error Loading database schema data'
|
||||
|
||||
# Configure console
|
||||
cat > $CONSOLE_PATH/include/config.php << EO_CONFIG_F
|
||||
cat > $PANDORA_CONSOLE/include/config.php << EO_CONFIG_F
|
||||
<?php
|
||||
\$config["dbtype"] = "mysql";
|
||||
\$config["dbname"]="$DBNAME";
|
||||
\$config["dbuser"]="$DBUSER";
|
||||
\$config["dbpass"]="$DBPASS";
|
||||
\$config["dbhost"]="localhost";
|
||||
\$config["dbhost"]="$DBHOST";
|
||||
\$config["homedir"]="$PANDORA_CONSOLE";
|
||||
\$config["homeurl"]="/pandora_console";
|
||||
error_reporting(0);
|
||||
@ -437,9 +531,9 @@ sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
||||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
||||
|
||||
# Fixing console permissions
|
||||
chmod 600 $CONSOLE_PATH/include/config.php
|
||||
chown apache. $CONSOLE_PATH/include/config.php
|
||||
mv $CONSOLE_PATH/install.php $CONSOLE_PATH/install.done
|
||||
chmod 600 $PANDORA_CONSOLE/include/config.php
|
||||
chown apache. $PANDORA_CONSOLE/include/config.php
|
||||
mv $PANDORA_CONSOLE/install.php $PANDORA_CONSOLE/install.done &>> "$LOGFILE"
|
||||
|
||||
# Prepare php.ini
|
||||
sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
|
||||
@ -466,6 +560,10 @@ sed -i -e "s/^dbname.*/dbname $DBNAME/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^dbuser.*/dbuser $DBUSER/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s|^dbpass.*|dbpass $DBPASS|g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^dbport.*/dbport $DBPORT/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^#.mssql_driver.*/mssql_driver $MS_ID/g" $PANDORA_SERVER_CONF
|
||||
|
||||
# Enable agent remote config
|
||||
sed -i "s/^remote_config.*$/remote_config 1/g" $PANDORA_AGENT_CONF
|
||||
|
||||
# Set Oracle environment for pandora_server
|
||||
cat > /etc/pandora/pandora_server.env << 'EOF_ENV'
|
||||
@ -477,6 +575,8 @@ export ORACLE_HOME=/usr/lib/oracle/$VERSION/client64
|
||||
EOF_ENV
|
||||
|
||||
# Kernel optimization
|
||||
|
||||
if [ "$SKIP_KERNEL_OPTIMIZATIONS" -eq '0' ] ; then
|
||||
cat >> /etc/sysctl.conf <<EO_KO
|
||||
# Pandora FMS Optimization
|
||||
|
||||
@ -504,6 +604,7 @@ net.core.optmem_max = 81920
|
||||
EO_KO
|
||||
|
||||
[ -d /dev/lxd/ ] || execute_cmd "sysctl --system" "Applying Kernel optimization"
|
||||
fi
|
||||
|
||||
# Fix pandora_server.{log,error} permissions to allow Console check them
|
||||
chown pandora:apache /var/log/pandora
|
||||
@ -558,7 +659,7 @@ chmod 0644 /etc/logrotate.d/pandora_server
|
||||
chmod 0644 /etc/logrotate.d/pandora_agent
|
||||
|
||||
# Add websocket engine start script.
|
||||
mv /var/www/html/pandora_console/pandora_websocket_engine /etc/init.d/
|
||||
mv /var/www/html/pandora_console/pandora_websocket_engine /etc/init.d/ &>> "$LOGFILE"
|
||||
chmod +x /etc/init.d/pandora_websocket_engine
|
||||
|
||||
# Start Websocket engine
|
||||
@ -569,7 +670,7 @@ systemctl enable pandora_websocket_engine &>> "$LOGFILE"
|
||||
|
||||
# Enable pandora ha service
|
||||
systemctl enable pandora_server --now &>> "$LOGFILE"
|
||||
execute_cmd "systemctl start pandora_server" "Starting Pandora FMS Server"
|
||||
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
|
||||
|
||||
# starting tentacle server
|
||||
systemctl enable tentacle_serverd &>> "$LOGFILE"
|
||||
@ -580,7 +681,7 @@ execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate http://12
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
## Enabling agent
|
||||
systemctl enable pandora_agent_daemon &>> "$LOGFILE"
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "starting Pandora FMS Agent"
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent"
|
||||
|
||||
#SSH banner
|
||||
[ "$(curl -s ifconfig.me)" ] && ipplublic=$(curl -s ifconfig.me)
|
||||
@ -610,4 +711,4 @@ execute_cmd "rm -rf $HOME/pandora_deploy_tmp" "Removing temporary files"
|
||||
GREEN='\033[01;32m'
|
||||
NONE='\033[0m'
|
||||
printf " -> Go to Public ${green}http://"$ipplublic"/pandora_console${reset} to manage this server"
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use this credentials to login in the console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use these credentials to log in Pandora Console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
@ -1,11 +1,12 @@
|
||||
FROM pandorafms/pandorafms-base
|
||||
FROM pandorafms/pandorafms-base:centos7
|
||||
|
||||
# Build variables.
|
||||
ARG BRANCH=develop
|
||||
ARG DB_PASS=pandora
|
||||
|
||||
# Clone the Pandora FMS repo.
|
||||
RUN git clone --depth 1 -b "$BRANCH" https://github.com/pandorafms/pandorafms.git /tmp/pandorafms
|
||||
RUN git clone --depth 1 -b "$BRANCH" https://github.com/pandorafms/pandorafms.git /tmp/pandorafms || \
|
||||
git clone --depth 1 -b develop https://github.com/pandorafms/pandorafms.git /tmp/pandorafms
|
||||
|
||||
# Install the Pandora FMS Server.
|
||||
RUN cd /tmp/pandorafms/pandora_server && \
|
||||
@ -21,21 +22,27 @@ RUN cd /tmp/pandorafms/pandora_agents/unix && \
|
||||
RUN sed -i "s/#ServerName.*/ServerName localhost:80/" /etc/httpd/conf/httpd.conf
|
||||
|
||||
# Install the Pandora FMS Console.
|
||||
RUN service mysqld start && \
|
||||
/usr/bin/mysqladmin -u root password "$DB_PASS" && \
|
||||
service httpd start && \
|
||||
cp -r /tmp/pandorafms/pandora_console /var/www/html && \
|
||||
chown -R apache.apache /var/www/html/pandora_console/ && \
|
||||
python /tmp/pandorafms/tests/install_console.py
|
||||
RUN rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql && \
|
||||
mkdir -p /var/log/mysql/ && chown mysql. /var/log/mysql && \
|
||||
chown mysql. -R /var/lib/mysql && \
|
||||
sudo -u mysql mysqld --initialize --explicit_defaults_for_timestamp && \
|
||||
sudo -u mysql mysqld --daemonize & \
|
||||
sleep 50 && \
|
||||
mysql_default_pass=$(cat /var/log/mysqld.log | grep "temporary password" | awk '{print $NF}') && \
|
||||
mysqladmin -u root -p"$mysql_default_pass" --user=root password 'pandora' && \
|
||||
httpd -k start && \
|
||||
cp -r /tmp/pandorafms/pandora_console /var/www/html && \
|
||||
chown -R apache.apache /var/www/html/pandora_console/ && \
|
||||
python /tmp/pandorafms/tests/install_console.py
|
||||
|
||||
# Redirect HTTP requests to / to the Pandora FMS Console.
|
||||
RUN echo '<meta http-equiv="refresh" content="0;url=/pandora_console">' > /var/www/html/index.html
|
||||
|
||||
# Create the entrypoint script.
|
||||
RUN echo -e '#/bin/bash\n \
|
||||
service mysqld start &&\n \
|
||||
service httpd start &&\n \
|
||||
service crond start &&\n \
|
||||
sudo -u mysql mysqld --daemonize &&\n \
|
||||
httpd -k start &&\n \
|
||||
/usr/sbin/crond &&\n \
|
||||
/etc/init.d/pandora_agent_daemon start && \
|
||||
/etc/init.d/pandora_server start && \
|
||||
tail -f /var/log/pandora/pandora_server.log' \
|
||||
|
@ -1,14 +1,14 @@
|
||||
#docker build -t pandorafms/pandorafms-open-base-el8 -f $HOME/code/pandorafms/extras/docker/centos8/base/Dockerfile $HOME/code/pandorafms/extras/docker/centos8/base/
|
||||
#docker push pandorafms/pandorafms-open-base-el8
|
||||
|
||||
FROM centos:8
|
||||
FROM rockylinux:8
|
||||
|
||||
RUN dnf install -y --setopt=tsflags=nodocs \
|
||||
epel-release \
|
||||
dnf-utils \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm
|
||||
|
||||
RUN dnf module reset -y php && dnf module install -y php:remi-7.3
|
||||
RUN dnf module reset -y php && dnf module install -y php:remi-7.4
|
||||
RUN dnf config-manager --set-enabled powertools
|
||||
|
||||
# Install console dependencies
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, AIX version
|
||||
# Version 7.0NG.761, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, FreeBSD Version
|
||||
# Version 7.0NG.761, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, HP-UX Version
|
||||
# Version 7.0NG.761, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, GNU/Linux
|
||||
# Version 7.0NG.761, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, GNU/Linux
|
||||
# Version 7.0NG.761, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, Solaris Version
|
||||
# Version 7.0NG.761, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 14 KiB |
@ -1,6 +1,6 @@
|
||||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.757
|
||||
# Version 7.0NG.761
|
||||
# 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
|
||||
# Foundation; either version 2 of the Licence or any later version
|
||||
|
@ -1141,7 +1141,7 @@ sub guess_os_version {
|
||||
|
||||
# Linux
|
||||
if ($os eq 'linux') {
|
||||
$os_version = `lsb_release -sd 2>$DevNull`;
|
||||
$os_version = `cat /etc/*ease|grep PRETTY| cut -f 2 -d= | tr -d '"' 2>$DevNull`;
|
||||
# AIX
|
||||
} elsif ($os eq 'aix') {
|
||||
$os_version = "$2.$1" if (`uname -rv` =~ /\s*(\d)\s+(\d)\s*/);
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.757, AIX version
|
||||
# Version 7.0NG.761, AIX version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.757
|
||||
# Version 7.0NG.761
|
||||
# FreeBSD/IPSO version
|
||||
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.757, HPUX Version
|
||||
# Version 7.0NG.761, HPUX Version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757
|
||||
# Version 7.0NG.761
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757
|
||||
# Version 7.0NG.761
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757
|
||||
# Version 7.0NG.761
|
||||
# Licensed under GPL license v2,
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.757, Solaris version
|
||||
# Version 7.0NG.761, Solaris version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, AIX version
|
||||
# Version 7.0NG.761, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.757-211019
|
||||
Version: 7.0NG.761-220418
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
@ -14,7 +14,7 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.757-211019"
|
||||
pandora_version="7.0NG.761-220418"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
@ -31,7 +31,7 @@ fi
|
||||
if [ "$#" -ge 2 ]; then
|
||||
VERSION="$2"
|
||||
else
|
||||
VERSION="7.0NG.757"
|
||||
VERSION="7.0NG.761"
|
||||
fi
|
||||
|
||||
# Path for the generated DMG file
|
||||
|
@ -19,11 +19,11 @@
|
||||
<choice id="com.pandorafms.pandorafms_src" visible="false">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.757" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.761" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||
<choice id="com.pandorafms.pandorafms_uninstall" visible="true" customLocation="/Applications">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.757" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.761" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||
<!-- <installation-check script="check()" />
|
||||
<script>
|
||||
<![CDATA[
|
||||
|
@ -5,9 +5,9 @@
|
||||
<key>CFBundleIconFile</key> <string>pandorafms.icns</string>
|
||||
<key>CFBundleIdentifier</key> <string>com.pandorafms.pandorafms_uninstall</string>
|
||||
|
||||
<key>CFBundleVersion</key> <string>7.0NG.757</string>
|
||||
<key>CFBundleGetInfoString</key> <string>7.0NG.757 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||
<key>CFBundleShortVersionString</key> <string>7.0NG.757</string>
|
||||
<key>CFBundleVersion</key> <string>7.0NG.761</string>
|
||||
<key>CFBundleGetInfoString</key> <string>7.0NG.761 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||
<key>CFBundleShortVersionString</key> <string>7.0NG.761</string>
|
||||
|
||||
<key>NSPrincipalClass</key><string>NSApplication</string>
|
||||
<key>NSMainNibFile</key><string>MainMenu</string>
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, GNU/Linux
|
||||
# Version 7.0NG.761, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, FreeBSD Version
|
||||
# Version 7.0NG.761, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, HP-UX Version
|
||||
# Version 7.0NG.761, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, GNU/Linux
|
||||
# Version 7.0NG.761, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, GNU/Linux
|
||||
# Version 7.0NG.761, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, NetBSD Version
|
||||
# Version 7.0NG.761, NetBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -47,4 +47,3 @@ License
|
||||
|
||||
The project is distributed under the GPL License v2 or later.
|
||||
Copyright (C) 2004-2011 Pandora FMS development team
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.757, Solaris Version
|
||||
# Version 7.0NG.761, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -39,7 +39,7 @@ BEGIN {
|
||||
|
||||
use File::Copy;
|
||||
use Scalar::Util qw(looks_like_number);
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
|
||||
################################################################################
|
||||
# Erase blank spaces before and after the string
|
||||
@ -312,7 +312,7 @@ BEGIN {
|
||||
$YAML = 1;
|
||||
}
|
||||
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
|
||||
our @ISA = ("Exporter");
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw( ) ] );
|
||||
@ -1003,7 +1003,7 @@ use IO::Socket;
|
||||
use Sys::Syslog;
|
||||
use Time::Local;
|
||||
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
|
||||
# Agent XML data
|
||||
my $Xml;
|
||||
@ -1014,8 +1014,8 @@ my $Sem = undef;
|
||||
# Semaphore used to control the number of threads
|
||||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.757';
|
||||
use constant AGENT_BUILD => '211019';
|
||||
use constant AGENT_VERSION => '7.0NG.761';
|
||||
use constant AGENT_BUILD => '220418';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
@ -2736,7 +2736,7 @@ sub guess_os_version ($) {
|
||||
|
||||
# Linux
|
||||
if ($os eq 'linux') {
|
||||
$os_version = `lsb_release -sd 2>$DevNull`;
|
||||
$os_version = `cat /etc/*ease|grep PRETTY| cut -f 2 -d= | tr -d '"' 2>$DevNull`;
|
||||
# AIX
|
||||
} elsif ($os eq 'aix') {
|
||||
$os_version = "$2.$1" if (`uname -rv` =~ /\s*(\d)\s+(\d)\s*/);
|
||||
|
@ -2,8 +2,8 @@
|
||||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.757
|
||||
%define release 211019
|
||||
%define version 7.0NG.761
|
||||
%define release 220418
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
@ -24,7 +24,7 @@ Requires(preun): chkconfig /bin/rm /usr/sbin/userdel
|
||||
Requires: coreutils unzip
|
||||
Requires: util-linux procps grep
|
||||
Requires: /sbin/ip /bin/awk
|
||||
Requires: perl perl(Sys::Syslog) perl(IO::Compress::Zip)
|
||||
Requires: perl(Sys::Syslog) perl(IO::Compress::Zip)
|
||||
# Required by plugins
|
||||
#Requires: sh-utils sed passwd net-tools rpm
|
||||
AutoReq: 0
|
||||
|
@ -2,8 +2,8 @@
|
||||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.757
|
||||
%define release 211019
|
||||
%define version 7.0NG.761
|
||||
%define release 220418
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
@ -42,6 +42,8 @@ pidof_pandora () {
|
||||
elif [ "$OS_NAME" = "SunOS" ]
|
||||
then
|
||||
ZONENAME_CMD="/bin/zonename"
|
||||
# Has to be run from sources. The binary version inserts blanks between
|
||||
# $DAEMON and $PANDORA_PATH.
|
||||
TRUNCATED_DAEMON=`echo "$DAEMON $PANDORA_PATH" | cut -c1-20`
|
||||
if [ -x $ZONENAME_CMD ]
|
||||
then
|
||||
@ -59,7 +61,7 @@ pidof_pandora () {
|
||||
then
|
||||
# Virtuozzo/OpenVZ
|
||||
local _pid _ctid _pids
|
||||
_pids=`ps -Af | grep "$DAEMON $PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
_pids=`ps -Af | grep "$DAEMON" | grep "$PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
[ "$_pids" ] && for _pid in $_pids
|
||||
do
|
||||
_ctid=`/usr/sbin/vzpid $_pid | awk '$1 == '$_pid' { print $2 }'`
|
||||
@ -71,9 +73,9 @@ pidof_pandora () {
|
||||
done
|
||||
elif [ "$OS_NAME" = "AIX" ]; then
|
||||
# AIX
|
||||
PANDORA_PID=`ps -ef | grep "$DAEMON $PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
PANDORA_PID=`ps -ef | grep "$DAEMON" | grep "$PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
else
|
||||
PANDORA_PID=`ps -Afw | grep "$DAEMON $PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
PANDORA_PID=`ps -Afw | grep "$DAEMON" | grep "$PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
fi
|
||||
|
||||
echo $PANDORA_PID
|
||||
|
@ -9,8 +9,8 @@
|
||||
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.757"
|
||||
PI_BUILD="211019"
|
||||
PI_VERSION="7.0NG.761"
|
||||
PI_BUILD="220418"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
@ -14,7 +14,7 @@ use strict;
|
||||
use LWP::Simple;
|
||||
use LWP::UserAgent;
|
||||
use MIME::Base64;
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
use PandoraFMS::Tools;
|
||||
|
||||
# Init
|
||||
|
@ -1,59 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Fandora FMS - Generate SSH keys step-by-step</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="resource-type" content="document" />
|
||||
<meta name="distribution" content="global" />
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos and others" />
|
||||
<meta
|
||||
name="copyright"
|
||||
content="This is GPL software. Created by Sancho Lerena and others"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="" />
|
||||
</center>
|
||||
|
||||
<h2>Step-by-step generating SSH keys</h2>
|
||||
|
||||
From
|
||||
<a
|
||||
href="https://pandorafms.com/docs/index.php?title=Pandora:FAQ#How_to_generate_a_pair_of_SSH_keys_for_Pandora_Windows_agent.3F_.28SSH_Transfer_only.29"
|
||||
>Pandora FMS FAQ</a
|
||||
>.
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Go to <code>.\util</code> of your Pandora FMS agent for Windows and run
|
||||
<code>puttygen.exe</code>.<br />
|
||||
Generate keys, SSH-2_DSA, 1024:<br /><br />
|
||||
<img src="images/1.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Press Generate<br />
|
||||
Export key to OpenSSH key (Cygwin uses a port of OpenSSH)<br /><br />
|
||||
<img src="images/2.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
We have no chosen password, so press YES:<br /><br />
|
||||
<img src="images/3.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Save it as <code>c:\pandora\keys\id_dsa:</code><br /><br />
|
||||
<img src="images/4.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Now let's copy the public key to clipboard:<br /><br />
|
||||
<img src="images/5.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
and paste it as <code>c:\pandora_agent\keys\id_dsa.pub</code>, and also
|
||||
to the <code>/home/pandora/.ssh/authorized_keys</code> file.
|
||||
<br /><br />
|
||||
<img src="images/6.jpg" /><br /><br />
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
@ -1,62 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
Pandora FMS - Generación de claves SSH en Windows paso por paso
|
||||
</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="resource-type" content="document" />
|
||||
<meta name="distribution" content="global" />
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos y otros" />
|
||||
<meta
|
||||
name="copyright"
|
||||
content="This is GPL software. Created by Sancho Lerena and others"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="" />
|
||||
</center>
|
||||
<h2 class="print">Generación de claves SSH en Windows paso por paso</h2>
|
||||
|
||||
Extraído de las
|
||||
<a
|
||||
href="https://pandorafms.com/docs/index.php?title=Pandora:FAQ_ES#.C2.BFC.C3.B3mo_puedo_generar_un_par_de_claves_SHH_para_el_agente_para_Windows_.28SSH_Transfer.29_.3F"
|
||||
>
|
||||
FAQ</a
|
||||
>.
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Desde el directorio <code>.\util</code> del agente Pandora FMS para
|
||||
windows ejecutamos <code>puttygen.exe</code>.<br />
|
||||
Generamos claves SSH-2_DSA, 1024:<br /><br />
|
||||
<img src="images/1.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Pulsamos «Generate» para generar la clave.<br />
|
||||
Exportamos la clave a formato OpenSSH<br /><br />
|
||||
<img src="images/2.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
No elegimos contraseña, con lo cual pulsamos «Sí»:<br /><br />
|
||||
<img src="images/3.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Guardamos la clave como <code>C:\pandora\keys\id_dsa:</code><br /><br />
|
||||
<img src="images/4.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Ahora copiamos la clave pública al portapapeles:<br /><br />
|
||||
<img src="images/5.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Pegamos la clave en un nuevo fichero
|
||||
<code>C:\pandora_agent\keys\id_dsa.pub</code>, y debemos también
|
||||
añadirla al fichero <code>/home/pandora/.ssh/authorized_keys</code>.
|
||||
<br /><br />
|
||||
<img src="images/6.jpg" /><br /><br />
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 14 KiB |
@ -1,6 +1,6 @@
|
||||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.757
|
||||
# Version 7.0NG.761
|
||||
# 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
|
||||
# Foundation; either version 2 of the Licence or any later version
|
||||
|
@ -3,7 +3,7 @@ AllowLanguageSelection
|
||||
{Yes}
|
||||
|
||||
AppName
|
||||
{Pandora FMS Windows Agent v7.0NG.757}
|
||||
{Pandora FMS Windows Agent v7.0NG.761}
|
||||
|
||||
ApplicationID
|
||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||
@ -186,7 +186,7 @@ UpgradeApplicationID
|
||||
{}
|
||||
|
||||
Version
|
||||
{211019}
|
||||
{220418}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
@ -11,7 +11,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Basename;
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
use PandoraFMS::PluginTools;
|
||||
use PandoraFMS::Omnishell;
|
||||
|
||||
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
||||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.757 Build 211019")
|
||||
#define PANDORA_VERSION ("7.0NG.761 Build 220418")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
@ -11,7 +11,7 @@ BEGIN
|
||||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.757(Build 211019))"
|
||||
VALUE "ProductVersion", "(7.0NG.761(Build 220418))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
@ -1,6 +1,9 @@
|
||||
# pandora disable listing
|
||||
Options -Indexes
|
||||
|
||||
# Avoid clickjacking
|
||||
Header always append X-Frame-Options SAMEORIGIN
|
||||
|
||||
<Files ~ "\.log$">
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-console
|
||||
Version: 7.0NG.757-211019
|
||||
Version: 7.0NG.761-220418
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
@ -14,7 +14,7 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.757-211019"
|
||||
pandora_version="7.0NG.761-220418"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
@ -89,7 +89,11 @@ if (isset($_GET['loginhash']) === true) {
|
||||
$config['id_user'] = $loginhash_user;
|
||||
} else {
|
||||
include_once 'general/login_page.php';
|
||||
db_pandora_audit('Logon Failed (loginhash', '', 'system');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_REGISTRATION,
|
||||
'Loginhash failed',
|
||||
'system'
|
||||
);
|
||||
while (ob_get_length() > 0) {
|
||||
ob_end_flush();
|
||||
}
|
||||
@ -103,24 +107,33 @@ $auth_class = io_safe_output(
|
||||
get_parameter('auth_class', 'PandoraFMS\User')
|
||||
);
|
||||
|
||||
$page = (string) get_parameter('page');
|
||||
$page = safe_url_extraclean($page);
|
||||
$page .= '.php';
|
||||
$public_hash = get_parameter('auth_hash', false);
|
||||
$public_login = false;
|
||||
// Check user.
|
||||
if (class_exists($auth_class) === false || $public_hash === false) {
|
||||
check_login();
|
||||
} else {
|
||||
if ($auth_class::validatePublicHash($public_hash) === false) {
|
||||
db_pandora_audit(
|
||||
'Invalid public hash',
|
||||
'Trying to access public dashboard'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
// OK. Simulated user log in. If you want to use your own auth_class
|
||||
// remember to set $config['force_instant_logout'] to true to avoid
|
||||
// persistent user login.
|
||||
|
||||
if (false === ((bool) get_parameter('doLogin', false) === true
|
||||
&& $page === 'include/rest-api/index.php')
|
||||
) {
|
||||
// Check user.
|
||||
if (class_exists($auth_class) === false || $public_hash === false) {
|
||||
check_login();
|
||||
} else {
|
||||
if ($auth_class::validatePublicHash($public_hash) === false) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_REGISTRATION,
|
||||
'Trying to access public dashboard (Invalid public hash)'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
// OK. Simulated user log in. If you want to use your own auth_class
|
||||
// remember to set $config['force_instant_logout'] to true to avoid
|
||||
// persistent user login.
|
||||
}
|
||||
}
|
||||
|
||||
ob_start();
|
||||
@ -132,9 +145,6 @@ if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php') === true) {
|
||||
|
||||
$config['remote_addr'] = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
$page = (string) get_parameter('page');
|
||||
$page = safe_url_extraclean($page);
|
||||
$page .= '.php';
|
||||
$config['id_user'] = $_SESSION['id_usuario'];
|
||||
$isFunctionSkins = enterprise_include_once('include/functions_skins.php');
|
||||
if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
||||
|
@ -7,8 +7,13 @@
|
||||
"email": "info@artica.es"
|
||||
}
|
||||
],
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.2.0"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"mpdf/mpdf": "^7.1",
|
||||
"mpdf/mpdf": "^8.0.15",
|
||||
"swiftmailer/swiftmailer": "^6.0"
|
||||
},
|
||||
"autoload": {
|
||||
@ -16,7 +21,8 @@
|
||||
"Models\\": "include/rest-api/models",
|
||||
"Enterprise\\Models\\": "enterprise/include/rest-api/models",
|
||||
"PandoraFMS\\": "include/lib",
|
||||
"PandoraFMS\\Enterprise\\": "enterprise/include/lib"
|
||||
"PandoraFMS\\Enterprise\\": "enterprise/include/lib",
|
||||
"UpdateManager\\": "update_manager_client/lib/UpdateManager"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
715
pandora_console/composer.lock
generated
@ -4,34 +4,35 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "18364e5cd8c79657279985942190b4a7",
|
||||
"content-hash": "1ca1e8936d9ffb13f23a5b5cefbf02ad",
|
||||
"packages": [
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "v1.0.1",
|
||||
"version": "1.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
|
||||
"reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
|
||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c",
|
||||
"reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9.0",
|
||||
"phpstan/phpstan": "1.3",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"vimeo/psalm": "^4.11"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/"
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@ -39,49 +40,71 @@
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"docblock",
|
||||
"lexer",
|
||||
"parser"
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2014-09-09T13:34:57+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/lexer/issues",
|
||||
"source": "https://github.com/doctrine/lexer/tree/1.2.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://www.patreon.com/phpdoctrine",
|
||||
"type": "patreon"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-12T08:27:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "egulias/email-validator",
|
||||
"version": "2.1.6",
|
||||
"version": "3.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/egulias/EmailValidator.git",
|
||||
"reference": "0578b32b30b22de3e8664f797cf846fc9246f786"
|
||||
"reference": "ee0db30118f661fb166bcffbf5d82032df484697"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0578b32b30b22de3e8664f797cf846fc9246f786",
|
||||
"reference": "0578b32b30b22de3e8664f797cf846fc9246f786",
|
||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697",
|
||||
"reference": "ee0db30118f661fb166bcffbf5d82032df484697",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/lexer": "^1.0.1",
|
||||
"php": ">= 5.5"
|
||||
"doctrine/lexer": "^1.2",
|
||||
"php": ">=7.2",
|
||||
"symfony/polyfill-intl-idn": "^1.15"
|
||||
},
|
||||
"require-dev": {
|
||||
"dominicsayers/isemail": "dev-master",
|
||||
"phpunit/phpunit": "^4.8.35||^5.7||^6.0",
|
||||
"satooshi/php-coveralls": "^1.0.1"
|
||||
"php-coveralls/php-coveralls": "^2.2",
|
||||
"phpunit/phpunit": "^8.5.8|^9.3.3",
|
||||
"vimeo/psalm": "^4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
|
||||
@ -89,12 +112,12 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
"dev-master": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Egulias\\EmailValidator\\": "EmailValidator"
|
||||
"Egulias\\EmailValidator\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@ -115,36 +138,47 @@
|
||||
"validation",
|
||||
"validator"
|
||||
],
|
||||
"time": "2018-09-25T20:47:26+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/egulias/EmailValidator/issues",
|
||||
"source": "https://github.com/egulias/EmailValidator/tree/3.1.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/egulias",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-11T09:18:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mpdf/mpdf",
|
||||
"version": "v7.1.5",
|
||||
"version": "v8.0.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mpdf/mpdf.git",
|
||||
"reference": "2ed29c3a59fa23e77052e9d7fa7e31c707fb7502"
|
||||
"reference": "d8a5294a6cc2e814c4157aecc8d7ac25014b18ed"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mpdf/mpdf/zipball/2ed29c3a59fa23e77052e9d7fa7e31c707fb7502",
|
||||
"reference": "2ed29c3a59fa23e77052e9d7fa7e31c707fb7502",
|
||||
"url": "https://api.github.com/repos/mpdf/mpdf/zipball/d8a5294a6cc2e814c4157aecc8d7ac25014b18ed",
|
||||
"reference": "d8a5294a6cc2e814c4157aecc8d7ac25014b18ed",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-gd": "*",
|
||||
"ext-mbstring": "*",
|
||||
"myclabs/deep-copy": "^1.7",
|
||||
"paragonie/random_compat": "^1.4|^2.0|9.99.99",
|
||||
"php": "^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0",
|
||||
"psr/log": "^1.0",
|
||||
"setasign/fpdi": "1.6.*"
|
||||
"paragonie/random_compat": "^1.4|^2.0|^9.99.99",
|
||||
"php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0",
|
||||
"psr/log": "^1.0 || ^2.0",
|
||||
"setasign/fpdi": "^2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^0.9.5",
|
||||
"phpunit/phpunit": "^5.0",
|
||||
"squizlabs/php_codesniffer": "^2.7.0",
|
||||
"tracy/tracy": "^2.4"
|
||||
"mockery/mockery": "^1.3.0",
|
||||
"mpdf/qrcode": "^1.1.0",
|
||||
"squizlabs/php_codesniffer": "^3.5.0",
|
||||
"tracy/tracy": "^2.4",
|
||||
"yoast/phpunit-polyfills": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-bcmath": "Needed for generation of some types of barcodes",
|
||||
@ -152,11 +186,6 @@
|
||||
"ext-zlib": "Needed for compression of embedded resources, such as fonts"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-development": "7.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Mpdf\\": "src/"
|
||||
@ -176,36 +205,47 @@
|
||||
"role": "Developer (retired)"
|
||||
}
|
||||
],
|
||||
"description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support",
|
||||
"description": "PHP library generating PDF files from UTF-8 encoded HTML",
|
||||
"homepage": "https://mpdf.github.io",
|
||||
"keywords": [
|
||||
"pdf",
|
||||
"php",
|
||||
"utf-8"
|
||||
],
|
||||
"time": "2018-09-19T09:58:39+00:00"
|
||||
"support": {
|
||||
"docs": "http://mpdf.github.io",
|
||||
"issues": "https://github.com/mpdf/mpdf/issues",
|
||||
"source": "https://github.com/mpdf/mpdf"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.paypal.me/mpdf",
|
||||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-10T08:15:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "myclabs/deep-copy",
|
||||
"version": "1.7.0",
|
||||
"version": "1.10.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
|
||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
|
||||
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/collections": "^1.0",
|
||||
"doctrine/common": "^2.6",
|
||||
"phpunit/phpunit": "^4.1"
|
||||
"phpunit/phpunit": "^7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -228,24 +268,34 @@
|
||||
"object",
|
||||
"object graph"
|
||||
],
|
||||
"time": "2017-10-19T19:58:43+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-11-13T09:40:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
"version": "v9.99.99",
|
||||
"version": "v9.99.100",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/random_compat.git",
|
||||
"reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
|
||||
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
|
||||
"reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
||||
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7"
|
||||
"php": ">= 7"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*|5.*",
|
||||
@ -273,20 +323,25 @@
|
||||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"time": "2018-07-02T15:55:56+00:00"
|
||||
"support": {
|
||||
"email": "info@paragonie.com",
|
||||
"issues": "https://github.com/paragonie/random_compat/issues",
|
||||
"source": "https://github.com/paragonie/random_compat"
|
||||
},
|
||||
"time": "2020-10-15T08:29:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "1.0.2",
|
||||
"version": "1.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -295,7 +350,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
"dev-master": "1.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -310,7 +365,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for logging libraries",
|
||||
@ -320,36 +375,47 @@
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2016-10-10T12:19:37+00:00"
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/log/tree/1.1.4"
|
||||
},
|
||||
"time": "2021-05-03T11:20:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "setasign/fpdi",
|
||||
"version": "1.6.2",
|
||||
"version": "v2.3.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Setasign/FPDI.git",
|
||||
"reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea"
|
||||
"reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
|
||||
"reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
|
||||
"url": "https://api.github.com/repos/Setasign/FPDI/zipball/6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
|
||||
"reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-zlib": "*",
|
||||
"php": "^5.6 || ^7.0 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"setasign/tfpdf": "<1.31"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~5.7",
|
||||
"setasign/fpdf": "~1.8",
|
||||
"setasign/tfpdf": "1.31",
|
||||
"squizlabs/php_codesniffer": "^3.5",
|
||||
"tecnickcom/tcpdf": "~6.2"
|
||||
},
|
||||
"suggest": {
|
||||
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
|
||||
"setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
|
||||
"setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
|
||||
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"filters/",
|
||||
"fpdi.php",
|
||||
"fpdf_tpl.php",
|
||||
"fpdi_pdf_parser.php",
|
||||
"pdf_context.php"
|
||||
]
|
||||
"psr-4": {
|
||||
"setasign\\Fpdi\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@ -360,6 +426,11 @@
|
||||
"name": "Jan Slabon",
|
||||
"email": "jan.slabon@setasign.com",
|
||||
"homepage": "https://www.setasign.com"
|
||||
},
|
||||
{
|
||||
"name": "Maximilian Kresse",
|
||||
"email": "maximilian.kresse@setasign.com",
|
||||
"homepage": "https://www.setasign.com"
|
||||
}
|
||||
],
|
||||
"description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
|
||||
@ -369,38 +440,50 @@
|
||||
"fpdi",
|
||||
"pdf"
|
||||
],
|
||||
"time": "2017-05-11T14:25:49+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/Setasign/FPDI/issues",
|
||||
"source": "https://github.com/Setasign/FPDI/tree/v2.3.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/setasign/fpdi",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-11T11:37:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
"version": "v6.1.3",
|
||||
"version": "v6.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/swiftmailer/swiftmailer.git",
|
||||
"reference": "8ddcb66ac10c392d3beb54829eef8ac1438595f4"
|
||||
"reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8ddcb66ac10c392d3beb54829eef8ac1438595f4",
|
||||
"reference": "8ddcb66ac10c392d3beb54829eef8ac1438595f4",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
|
||||
"reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"egulias/email-validator": "~2.0",
|
||||
"php": ">=7.0.0"
|
||||
"egulias/email-validator": "^2.0|^3.1",
|
||||
"php": ">=7.0.0",
|
||||
"symfony/polyfill-iconv": "^1.0",
|
||||
"symfony/polyfill-intl-idn": "^1.10",
|
||||
"symfony/polyfill-mbstring": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~0.9.1",
|
||||
"symfony/phpunit-bridge": "~3.3@dev"
|
||||
"mockery/mockery": "^1.0",
|
||||
"symfony/phpunit-bridge": "^4.4|^5.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "Needed to support internationalized email addresses",
|
||||
"true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed"
|
||||
"ext-intl": "Needed to support internationalized email addresses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.1-dev"
|
||||
"dev-master": "6.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -428,7 +511,435 @@
|
||||
"mail",
|
||||
"mailer"
|
||||
],
|
||||
"time": "2018-09-11T07:12:52+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/swiftmailer/swiftmailer/issues",
|
||||
"source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"abandoned": "symfony/mailer",
|
||||
"time": "2021-10-18T15:26:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-iconv",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-iconv.git",
|
||||
"reference": "f1aed619e28cb077fc83fac8c4c0383578356e40"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40",
|
||||
"reference": "f1aed619e28cb077fc83fac8c4c0383578356e40",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"provide": {
|
||||
"ext-iconv": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Iconv\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Iconv extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"iconv",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-04T09:04:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Laurent Bassin",
|
||||
"email": "laurent@bassin.info"
|
||||
},
|
||||
{
|
||||
"name": "Trevor Rowbotham",
|
||||
"email": "trevor.rowbotham@pm.me"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"idn",
|
||||
"intl",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-14T14:02:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's Normalizer class and related functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"intl",
|
||||
"normalizer",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-19T12:13:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"provide": {
|
||||
"ext-mbstring": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-30T18:21:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php72\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-05-27T09:17:38+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
@ -438,5 +949,9 @@
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": []
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
"php": "7.2.0"
|
||||
},
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
@ -0,0 +1,515 @@
|
||||
[
|
||||
[{ "1613": 0, "1616": 1, "1621": 2 }],
|
||||
[
|
||||
{
|
||||
"1557": 0,
|
||||
"1611": 1,
|
||||
"1612": 2,
|
||||
"1614": 3,
|
||||
"1615": 4,
|
||||
"1617": 5,
|
||||
"1618": 6,
|
||||
"1619": 7,
|
||||
"1620": 8,
|
||||
"1623": 9,
|
||||
"1626": 10,
|
||||
"1648": 11,
|
||||
"57990": 12,
|
||||
"57991": 13,
|
||||
"57992": 14,
|
||||
"57993": 15,
|
||||
"57994": 16,
|
||||
"57995": 17,
|
||||
"57996": 18,
|
||||
"57997": 19
|
||||
}
|
||||
],
|
||||
[{ "3768": 0, "3769": 1 }],
|
||||
[{ "3784": 0, "3785": 1, "3786": 2, "3787": 3, "3788": 4, "3789": 5 }],
|
||||
[
|
||||
{
|
||||
"790": 0,
|
||||
"791": 1,
|
||||
"792": 2,
|
||||
"793": 3,
|
||||
"796": 4,
|
||||
"797": 5,
|
||||
"798": 6,
|
||||
"799": 7,
|
||||
"800": 8,
|
||||
"803": 9,
|
||||
"804": 10,
|
||||
"805": 11,
|
||||
"806": 12,
|
||||
"809": 13,
|
||||
"810": 14,
|
||||
"811": 15,
|
||||
"812": 16,
|
||||
"813": 17,
|
||||
"814": 18,
|
||||
"815": 19,
|
||||
"816": 20,
|
||||
"817": 21,
|
||||
"825": 22,
|
||||
"826": 23,
|
||||
"827": 24,
|
||||
"828": 25,
|
||||
"839": 26,
|
||||
"840": 27,
|
||||
"841": 28,
|
||||
"845": 29,
|
||||
"846": 30,
|
||||
"851": 31,
|
||||
"858": 32
|
||||
},
|
||||
{
|
||||
"768": 0,
|
||||
"769": 1,
|
||||
"770": 2,
|
||||
"771": 3,
|
||||
"772": 4,
|
||||
"773": 5,
|
||||
"774": 6,
|
||||
"775": 7,
|
||||
"776": 8,
|
||||
"777": 9,
|
||||
"778": 10,
|
||||
"779": 11,
|
||||
"780": 12,
|
||||
"781": 13,
|
||||
"782": 14,
|
||||
"783": 15,
|
||||
"784": 16,
|
||||
"785": 17,
|
||||
"829": 18,
|
||||
"831": 19,
|
||||
"832": 20,
|
||||
"833": 21,
|
||||
"834": 22,
|
||||
"836": 23,
|
||||
"838": 24,
|
||||
"842": 25,
|
||||
"843": 26,
|
||||
"844": 27,
|
||||
"849": 28,
|
||||
"850": 29,
|
||||
"855": 30,
|
||||
"7620": 31,
|
||||
"7621": 32,
|
||||
"7622": 33,
|
||||
"7623": 34,
|
||||
"7624": 35,
|
||||
"7625": 36,
|
||||
"8400": 37,
|
||||
"8401": 38,
|
||||
"8406": 39,
|
||||
"8407": 40,
|
||||
"8411": 41,
|
||||
"8412": 42,
|
||||
"8417": 43,
|
||||
"57895": 44,
|
||||
"57896": 45,
|
||||
"57897": 46,
|
||||
"57898": 47,
|
||||
"57899": 48,
|
||||
"57900": 49,
|
||||
"57901": 50,
|
||||
"57902": 51,
|
||||
"57903": 52,
|
||||
"57904": 53,
|
||||
"57905": 54,
|
||||
"58088": 55
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1456": 0,
|
||||
"1457": 1,
|
||||
"1458": 2,
|
||||
"1459": 3,
|
||||
"1460": 4,
|
||||
"1461": 5,
|
||||
"1462": 6,
|
||||
"1463": 7,
|
||||
"1464": 8,
|
||||
"1467": 9,
|
||||
"1469": 10,
|
||||
"1479": 11,
|
||||
"1613": 12,
|
||||
"1616": 13,
|
||||
"1621": 14
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1456": 0,
|
||||
"1457": 1,
|
||||
"1458": 2,
|
||||
"1459": 3,
|
||||
"1460": 4,
|
||||
"1461": 5,
|
||||
"1462": 6,
|
||||
"1463": 7,
|
||||
"1464": 8,
|
||||
"1467": 9,
|
||||
"1469": 10,
|
||||
"1479": 11,
|
||||
"1613": 12,
|
||||
"1616": 13,
|
||||
"1621": 14,
|
||||
"2034": 15
|
||||
}
|
||||
],
|
||||
[{ "1468": 0 }],
|
||||
[
|
||||
{
|
||||
"1471": 0,
|
||||
"1557": 1,
|
||||
"1611": 2,
|
||||
"1612": 3,
|
||||
"1614": 4,
|
||||
"1615": 5,
|
||||
"1617": 6,
|
||||
"1618": 7,
|
||||
"1619": 8,
|
||||
"1620": 9,
|
||||
"1623": 10,
|
||||
"1626": 11,
|
||||
"1648": 12,
|
||||
"64286": 13,
|
||||
"57990": 14,
|
||||
"57991": 15,
|
||||
"57992": 16,
|
||||
"57993": 17,
|
||||
"57994": 18,
|
||||
"57995": 19,
|
||||
"57996": 20,
|
||||
"57997": 21
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1471": 0,
|
||||
"1557": 1,
|
||||
"1611": 2,
|
||||
"1612": 3,
|
||||
"1614": 4,
|
||||
"1615": 5,
|
||||
"1617": 6,
|
||||
"1618": 7,
|
||||
"1619": 8,
|
||||
"1620": 9,
|
||||
"1623": 10,
|
||||
"1626": 11,
|
||||
"1648": 12,
|
||||
"2027": 13,
|
||||
"2028": 14,
|
||||
"2029": 15,
|
||||
"2030": 16,
|
||||
"2031": 17,
|
||||
"2032": 18,
|
||||
"2033": 19,
|
||||
"2035": 20,
|
||||
"64286": 21,
|
||||
"57990": 22,
|
||||
"57991": 23,
|
||||
"57992": 24,
|
||||
"57993": 25,
|
||||
"57994": 26,
|
||||
"57995": 27,
|
||||
"57996": 28,
|
||||
"57997": 29
|
||||
}
|
||||
],
|
||||
[{ "3768": 0, "3769": 1, "3772": 2 }],
|
||||
[
|
||||
{
|
||||
"3761": 0,
|
||||
"3764": 1,
|
||||
"3765": 2,
|
||||
"3766": 3,
|
||||
"3767": 4,
|
||||
"3771": 5,
|
||||
"3784": 6,
|
||||
"3785": 7,
|
||||
"3786": 8,
|
||||
"3787": 9,
|
||||
"3788": 10,
|
||||
"3789": 11
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"790": 0,
|
||||
"791": 1,
|
||||
"792": 2,
|
||||
"793": 3,
|
||||
"796": 4,
|
||||
"797": 5,
|
||||
"798": 6,
|
||||
"799": 7,
|
||||
"800": 8,
|
||||
"803": 9,
|
||||
"804": 10,
|
||||
"805": 11,
|
||||
"806": 12,
|
||||
"809": 13,
|
||||
"810": 14,
|
||||
"811": 15,
|
||||
"812": 16,
|
||||
"813": 17,
|
||||
"814": 18,
|
||||
"815": 19,
|
||||
"816": 20,
|
||||
"817": 21,
|
||||
"818": 22,
|
||||
"819": 23,
|
||||
"825": 24,
|
||||
"826": 25,
|
||||
"827": 26,
|
||||
"828": 27,
|
||||
"839": 28,
|
||||
"840": 29,
|
||||
"841": 30,
|
||||
"845": 31,
|
||||
"846": 32,
|
||||
"851": 33,
|
||||
"858": 34
|
||||
}
|
||||
],
|
||||
[
|
||||
{ "65057": 0, "65059": 1 },
|
||||
{ "768": 0, "769": 1 },
|
||||
{ "807": 0 },
|
||||
{
|
||||
"790": 0,
|
||||
"791": 1,
|
||||
"792": 2,
|
||||
"793": 3,
|
||||
"796": 4,
|
||||
"797": 5,
|
||||
"798": 6,
|
||||
"799": 7,
|
||||
"800": 8,
|
||||
"803": 9,
|
||||
"804": 10,
|
||||
"805": 11,
|
||||
"806": 12,
|
||||
"809": 13,
|
||||
"810": 14,
|
||||
"811": 15,
|
||||
"812": 16,
|
||||
"813": 17,
|
||||
"814": 18,
|
||||
"815": 19,
|
||||
"816": 20,
|
||||
"817": 21,
|
||||
"818": 22,
|
||||
"819": 23,
|
||||
"825": 24,
|
||||
"826": 25,
|
||||
"827": 26,
|
||||
"828": 27,
|
||||
"839": 28,
|
||||
"840": 29,
|
||||
"841": 30,
|
||||
"845": 31,
|
||||
"846": 32,
|
||||
"851": 33,
|
||||
"858": 34
|
||||
},
|
||||
{
|
||||
"768": 0,
|
||||
"769": 1,
|
||||
"770": 2,
|
||||
"771": 3,
|
||||
"772": 4,
|
||||
"773": 5,
|
||||
"774": 6,
|
||||
"775": 7,
|
||||
"776": 8,
|
||||
"777": 9,
|
||||
"778": 10,
|
||||
"779": 11,
|
||||
"780": 12,
|
||||
"781": 13,
|
||||
"782": 14,
|
||||
"783": 15,
|
||||
"784": 16,
|
||||
"785": 17,
|
||||
"786": 18,
|
||||
"787": 19,
|
||||
"788": 20,
|
||||
"829": 21,
|
||||
"830": 22,
|
||||
"831": 23,
|
||||
"832": 24,
|
||||
"833": 25,
|
||||
"834": 26,
|
||||
"836": 27,
|
||||
"838": 28,
|
||||
"842": 29,
|
||||
"843": 30,
|
||||
"844": 31,
|
||||
"849": 32,
|
||||
"850": 33,
|
||||
"855": 34,
|
||||
"1155": 35,
|
||||
"1156": 36,
|
||||
"1157": 37,
|
||||
"1158": 38,
|
||||
"1159": 39,
|
||||
"7620": 40,
|
||||
"7621": 41,
|
||||
"7622": 42,
|
||||
"7623": 43,
|
||||
"7624": 44,
|
||||
"7625": 45,
|
||||
"8400": 46,
|
||||
"8401": 47,
|
||||
"8406": 48,
|
||||
"8407": 49,
|
||||
"8411": 50,
|
||||
"8412": 51,
|
||||
"8417": 52,
|
||||
"57895": 53,
|
||||
"57896": 54,
|
||||
"57897": 55,
|
||||
"57898": 56,
|
||||
"57899": 57,
|
||||
"57900": 58,
|
||||
"57901": 59,
|
||||
"57902": 60,
|
||||
"57903": 61,
|
||||
"57904": 62,
|
||||
"57905": 63,
|
||||
"58088": 64
|
||||
},
|
||||
{ "808": 0 }
|
||||
],
|
||||
[
|
||||
{
|
||||
"45": 0,
|
||||
"65": 1,
|
||||
"66": 2,
|
||||
"67": 3,
|
||||
"68": 4,
|
||||
"70": 5,
|
||||
"71": 6,
|
||||
"72": 7,
|
||||
"74": 8,
|
||||
"75": 9,
|
||||
"76": 10,
|
||||
"79": 11,
|
||||
"80": 12,
|
||||
"81": 13,
|
||||
"82": 14,
|
||||
"83": 15,
|
||||
"84": 16,
|
||||
"85": 17,
|
||||
"86": 18,
|
||||
"87": 19,
|
||||
"88": 20,
|
||||
"89": 21,
|
||||
"90": 22,
|
||||
"101": 23,
|
||||
"102": 24,
|
||||
"107": 25,
|
||||
"110": 26,
|
||||
"111": 27,
|
||||
"114": 28,
|
||||
"118": 29,
|
||||
"119": 30,
|
||||
"120": 31,
|
||||
"121": 32,
|
||||
"171": 33,
|
||||
"187": 34,
|
||||
"192": 35,
|
||||
"193": 36,
|
||||
"194": 37,
|
||||
"195": 38,
|
||||
"196": 39,
|
||||
"198": 40,
|
||||
"199": 41,
|
||||
"208": 42,
|
||||
"210": 43,
|
||||
"211": 44,
|
||||
"212": 45,
|
||||
"213": 46,
|
||||
"214": 47,
|
||||
"217": 48,
|
||||
"218": 49,
|
||||
"219": 50,
|
||||
"220": 51,
|
||||
"221": 52,
|
||||
"222": 53,
|
||||
"223": 54,
|
||||
"232": 55,
|
||||
"233": 56,
|
||||
"234": 57,
|
||||
"235": 58,
|
||||
"240": 59,
|
||||
"241": 60,
|
||||
"242": 61,
|
||||
"243": 62,
|
||||
"244": 63,
|
||||
"245": 64,
|
||||
"246": 65,
|
||||
"253": 66,
|
||||
"255": 67,
|
||||
"256": 68,
|
||||
"258": 69,
|
||||
"260": 70,
|
||||
"262": 71,
|
||||
"268": 72,
|
||||
"270": 73,
|
||||
"272": 74,
|
||||
"283": 75,
|
||||
"286": 76,
|
||||
"313": 77,
|
||||
"317": 78,
|
||||
"320": 79,
|
||||
"328": 80,
|
||||
"340": 81,
|
||||
"341": 82,
|
||||
"344": 83,
|
||||
"345": 84,
|
||||
"350": 85,
|
||||
"352": 86,
|
||||
"356": 87,
|
||||
"366": 88,
|
||||
"376": 89,
|
||||
"381": 90,
|
||||
"8208": 91,
|
||||
"8220": 92,
|
||||
"8222": 93,
|
||||
"42788": 94,
|
||||
"42816": 95,
|
||||
"42817": 96
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"61185": 0,
|
||||
"61186": 1,
|
||||
"61187": 2,
|
||||
"61188": 3,
|
||||
"61189": 4,
|
||||
"61191": 5,
|
||||
"61192": 6,
|
||||
"61193": 7,
|
||||
"61194": 8,
|
||||
"61195": 9,
|
||||
"61197": 10,
|
||||
"61198": 11,
|
||||
"61199": 12,
|
||||
"61200": 13,
|
||||
"61201": 14,
|
||||
"61203": 15,
|
||||
"61204": 16,
|
||||
"61205": 17,
|
||||
"61206": 18,
|
||||
"61207": 19
|
||||
}
|
||||
]
|
||||
]
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"007CA": { "1": "0E28E", "3": "0E28F", "2": "0E290" },
|
||||
"007CB": { "1": "0E291", "3": "0E292", "2": "0E293" },
|
||||
"007CC": { "1": "0E294", "3": "0E295", "2": "0E296" },
|
||||
"007CD": { "1": "0E297", "3": "0E298", "2": "0E299" },
|
||||
"007CE": { "1": "0E29A", "3": "0E29B", "2": "0E29C" },
|
||||
"007CF": { "1": "0E29D", "3": "0E29E", "2": "0E29F" },
|
||||
"007D0": { "1": "0E2A0", "3": "0E2A1", "2": "0E2A2" },
|
||||
"007D1": { "1": "0E2A3", "3": "0E2A4", "2": "0E2A5" },
|
||||
"007D2": { "1": "0E2A6", "3": "0E2A7", "2": "0E2A8" },
|
||||
"007D3": { "1": "0E2A9", "3": "0E2AA", "2": "0E2AB" },
|
||||
"007D4": { "1": "0E2AC", "3": "0E2AD", "2": "0E2AE" },
|
||||
"007D5": { "1": "0E2AF", "3": "0E2B0", "2": "0E2B1" },
|
||||
"007D6": { "1": "0E2B2", "3": "0E2B3", "2": "0E2B4" },
|
||||
"007D7": { "1": "0E2B5", "3": "0E2B6", "2": "0E2B7" },
|
||||
"007D8": { "1": "0E2B8", "3": "0E2B9", "2": "0E2BA" },
|
||||
"007D9": { "1": "0E2BB", "3": "0E2BC", "2": "0E2BD" },
|
||||
"007DA": { "1": "0E2BE", "3": "0E2BF", "2": "0E2C0" },
|
||||
"007DB": { "1": "0E2C1", "3": "0E2C2", "2": "0E2C3" },
|
||||
"007DC": { "1": "0E2C4", "3": "0E2C5", "2": "0E2C6" },
|
||||
"007DD": { "1": "0E2C7", "3": "0E2C8", "2": "0E2C9" },
|
||||
"007DE": { "1": "0E2CA", "3": "0E2CB", "2": "0E2CC" },
|
||||
"007DF": { "1": "0E2CD", "3": "0E2CE", "2": "0E2CF" },
|
||||
"007E0": { "1": "0E2D0", "3": "0E2D1", "2": "0E2D2" },
|
||||
"007E1": { "1": "0E2D3", "3": "0E2D4", "2": "0E2D5" },
|
||||
"007E2": { "1": "0E2D6", "3": "0E2D7", "2": "0E2D8" },
|
||||
"007E3": { "1": "0E2D9", "3": "0E2DA", "2": "0E2DB" },
|
||||
"007E4": { "1": "0E2DC", "3": "0E2DD", "2": "0E2DE" },
|
||||
"007E5": { "1": "0E2DF", "3": "0E2E0", "2": "0E2E1" },
|
||||
"007E6": { "1": "0E2E2", "3": "0E2E3", "2": "0E2E4" },
|
||||
"007E7": { "1": "0E2E5", "3": "0E2E6", "2": "0E2E7" }
|
||||
},
|
||||
"finals": "0E28E 0E291 0E294 0E297 0E29A 0E29D 0E2A0 0E2A3 0E2A6 0E2A9 0E2AC 0E2AF 0E2B2 0E2B5 0E2B8 0E2BB 0E2BE 0E2C1 0E2C4 0E2C7 0E2CA 0E2CD 0E2D0 0E2D3 0E2D6 0E2D9 0E2DC 0E2DF 0E2E2 0E2E5 ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,656 @@
|
||||
[
|
||||
[{ "161": 0, "191": 1, "11800": 2 }],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29,
|
||||
"2042": 30,
|
||||
"8205": 31,
|
||||
"57998": 32,
|
||||
"57999": 33,
|
||||
"58000": 34,
|
||||
"58001": 35,
|
||||
"58002": 36,
|
||||
"58003": 37,
|
||||
"58004": 38,
|
||||
"58005": 39,
|
||||
"58006": 40,
|
||||
"58007": 41,
|
||||
"58008": 42,
|
||||
"58009": 43,
|
||||
"58010": 44,
|
||||
"58011": 45,
|
||||
"58012": 46,
|
||||
"58013": 47,
|
||||
"58014": 48,
|
||||
"58015": 49,
|
||||
"58016": 50,
|
||||
"58017": 51,
|
||||
"58018": 52,
|
||||
"58019": 53,
|
||||
"58020": 54,
|
||||
"58021": 55,
|
||||
"58022": 56,
|
||||
"58023": 57,
|
||||
"58024": 58,
|
||||
"58025": 59,
|
||||
"58026": 60,
|
||||
"58027": 61,
|
||||
"58028": 62,
|
||||
"58029": 63,
|
||||
"58030": 64,
|
||||
"58031": 65,
|
||||
"58032": 66,
|
||||
"58033": 67,
|
||||
"58034": 68,
|
||||
"58035": 69,
|
||||
"58036": 70,
|
||||
"58037": 71,
|
||||
"58038": 72,
|
||||
"58039": 73,
|
||||
"58040": 74,
|
||||
"58041": 75,
|
||||
"58042": 76,
|
||||
"58043": 77,
|
||||
"58044": 78,
|
||||
"58045": 79,
|
||||
"58046": 80,
|
||||
"58047": 81,
|
||||
"58048": 82,
|
||||
"58049": 83,
|
||||
"58050": 84,
|
||||
"58051": 85,
|
||||
"58052": 86,
|
||||
"58053": 87,
|
||||
"58054": 88,
|
||||
"58055": 89,
|
||||
"58056": 90,
|
||||
"58057": 91,
|
||||
"58058": 92,
|
||||
"58059": 93,
|
||||
"58060": 94,
|
||||
"58061": 95,
|
||||
"58062": 96,
|
||||
"58063": 97,
|
||||
"58064": 98,
|
||||
"58065": 99,
|
||||
"58066": 100,
|
||||
"58067": 101,
|
||||
"58068": 102,
|
||||
"58069": 103,
|
||||
"58070": 104,
|
||||
"58071": 105,
|
||||
"58072": 106,
|
||||
"58073": 107,
|
||||
"58074": 108,
|
||||
"58075": 109,
|
||||
"58076": 110,
|
||||
"58077": 111,
|
||||
"58078": 112,
|
||||
"58079": 113,
|
||||
"58080": 114,
|
||||
"58081": 115,
|
||||
"58082": 116,
|
||||
"58083": 117,
|
||||
"58084": 118,
|
||||
"58085": 119,
|
||||
"58086": 120,
|
||||
"58087": 121
|
||||
}
|
||||
],
|
||||
[{ "1506": 0 }],
|
||||
[
|
||||
{
|
||||
"105": 0,
|
||||
"106": 1,
|
||||
"303": 2,
|
||||
"585": 3,
|
||||
"616": 4,
|
||||
"669": 5,
|
||||
"768": 6,
|
||||
"769": 7,
|
||||
"770": 8,
|
||||
"771": 9,
|
||||
"772": 10,
|
||||
"773": 11,
|
||||
"774": 12,
|
||||
"775": 13,
|
||||
"776": 14,
|
||||
"777": 15,
|
||||
"778": 16,
|
||||
"779": 17,
|
||||
"780": 18,
|
||||
"781": 19,
|
||||
"782": 20,
|
||||
"783": 21,
|
||||
"784": 22,
|
||||
"785": 23,
|
||||
"786": 24,
|
||||
"787": 25,
|
||||
"788": 26,
|
||||
"829": 27,
|
||||
"830": 28,
|
||||
"831": 29,
|
||||
"832": 30,
|
||||
"833": 31,
|
||||
"834": 32,
|
||||
"835": 33,
|
||||
"836": 34,
|
||||
"838": 35,
|
||||
"842": 36,
|
||||
"843": 37,
|
||||
"844": 38,
|
||||
"849": 39,
|
||||
"850": 40,
|
||||
"855": 41,
|
||||
"1011": 42,
|
||||
"1110": 43,
|
||||
"1112": 44,
|
||||
"1155": 45,
|
||||
"1156": 46,
|
||||
"1157": 47,
|
||||
"1158": 48,
|
||||
"7725": 49,
|
||||
"7883": 50,
|
||||
"8400": 51,
|
||||
"8401": 52,
|
||||
"8406": 53,
|
||||
"8407": 54,
|
||||
"8520": 55,
|
||||
"8521": 56
|
||||
}
|
||||
],
|
||||
[
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0 },
|
||||
{ "742": 0 },
|
||||
{ "743": 0 },
|
||||
{ "744": 0 },
|
||||
{ "745": 0 }
|
||||
],
|
||||
[{ "1497": 0, "1522": 1 }],
|
||||
[{ "1073": 0 }],
|
||||
[{ "330": 0 }],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1570": 0,
|
||||
"1571": 1,
|
||||
"1572": 2,
|
||||
"1573": 3,
|
||||
"1574": 4,
|
||||
"1575": 5,
|
||||
"1576": 6,
|
||||
"1577": 7,
|
||||
"1578": 8,
|
||||
"1579": 9,
|
||||
"1580": 10,
|
||||
"1581": 11,
|
||||
"1582": 12,
|
||||
"1583": 13,
|
||||
"1584": 14,
|
||||
"1585": 15,
|
||||
"1586": 16,
|
||||
"1587": 17,
|
||||
"1588": 18,
|
||||
"1589": 19,
|
||||
"1590": 20,
|
||||
"1591": 21,
|
||||
"1592": 22,
|
||||
"1593": 23,
|
||||
"1594": 24,
|
||||
"1601": 25,
|
||||
"1602": 26,
|
||||
"1603": 27,
|
||||
"1604": 28,
|
||||
"1605": 29,
|
||||
"1606": 30,
|
||||
"1607": 31,
|
||||
"1608": 32,
|
||||
"1609": 33,
|
||||
"1610": 34,
|
||||
"1646": 35,
|
||||
"1647": 36,
|
||||
"1657": 37,
|
||||
"1658": 38,
|
||||
"1659": 39,
|
||||
"1660": 40,
|
||||
"1661": 41,
|
||||
"1662": 42,
|
||||
"1663": 43,
|
||||
"1664": 44,
|
||||
"1665": 45,
|
||||
"1666": 46,
|
||||
"1667": 47,
|
||||
"1668": 48,
|
||||
"1669": 49,
|
||||
"1670": 50,
|
||||
"1671": 51,
|
||||
"1672": 52,
|
||||
"1673": 53,
|
||||
"1674": 54,
|
||||
"1675": 55,
|
||||
"1676": 56,
|
||||
"1677": 57,
|
||||
"1678": 58,
|
||||
"1679": 59,
|
||||
"1680": 60,
|
||||
"1681": 61,
|
||||
"1682": 62,
|
||||
"1683": 63,
|
||||
"1684": 64,
|
||||
"1685": 65,
|
||||
"1686": 66,
|
||||
"1687": 67,
|
||||
"1688": 68,
|
||||
"1689": 69,
|
||||
"1690": 70,
|
||||
"1691": 71,
|
||||
"1692": 72,
|
||||
"1693": 73,
|
||||
"1694": 74,
|
||||
"1695": 75,
|
||||
"1696": 76,
|
||||
"1697": 77,
|
||||
"1698": 78,
|
||||
"1699": 79,
|
||||
"1700": 80,
|
||||
"1701": 81,
|
||||
"1702": 82,
|
||||
"1703": 83,
|
||||
"1704": 84,
|
||||
"1705": 85,
|
||||
"1706": 86,
|
||||
"1707": 87,
|
||||
"1708": 88,
|
||||
"1709": 89,
|
||||
"1710": 90,
|
||||
"1711": 91,
|
||||
"1712": 92,
|
||||
"1713": 93,
|
||||
"1714": 94,
|
||||
"1715": 95,
|
||||
"1716": 96,
|
||||
"1717": 97,
|
||||
"1718": 98,
|
||||
"1719": 99,
|
||||
"1720": 100,
|
||||
"1721": 101,
|
||||
"1722": 102,
|
||||
"1723": 103,
|
||||
"1724": 104,
|
||||
"1725": 105,
|
||||
"1726": 106,
|
||||
"1727": 107,
|
||||
"1734": 108,
|
||||
"1735": 109,
|
||||
"1736": 110,
|
||||
"1739": 111,
|
||||
"1740": 112,
|
||||
"1742": 113,
|
||||
"1744": 114,
|
||||
"1749": 115
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1574": 0,
|
||||
"1576": 1,
|
||||
"1578": 2,
|
||||
"1579": 3,
|
||||
"1580": 4,
|
||||
"1581": 5,
|
||||
"1582": 6,
|
||||
"1587": 7,
|
||||
"1588": 8,
|
||||
"1589": 9,
|
||||
"1590": 10,
|
||||
"1591": 11,
|
||||
"1592": 12,
|
||||
"1593": 13,
|
||||
"1594": 14,
|
||||
"1601": 15,
|
||||
"1602": 16,
|
||||
"1603": 17,
|
||||
"1604": 18,
|
||||
"1605": 19,
|
||||
"1606": 20,
|
||||
"1607": 21,
|
||||
"1609": 22,
|
||||
"1610": 23,
|
||||
"1646": 24,
|
||||
"1647": 25,
|
||||
"1657": 26,
|
||||
"1658": 27,
|
||||
"1659": 28,
|
||||
"1660": 29,
|
||||
"1661": 30,
|
||||
"1662": 31,
|
||||
"1663": 32,
|
||||
"1664": 33,
|
||||
"1665": 34,
|
||||
"1666": 35,
|
||||
"1667": 36,
|
||||
"1668": 37,
|
||||
"1669": 38,
|
||||
"1670": 39,
|
||||
"1671": 40,
|
||||
"1690": 41,
|
||||
"1691": 42,
|
||||
"1692": 43,
|
||||
"1693": 44,
|
||||
"1694": 45,
|
||||
"1695": 46,
|
||||
"1696": 47,
|
||||
"1697": 48,
|
||||
"1698": 49,
|
||||
"1699": 50,
|
||||
"1700": 51,
|
||||
"1701": 52,
|
||||
"1702": 53,
|
||||
"1703": 54,
|
||||
"1704": 55,
|
||||
"1705": 56,
|
||||
"1706": 57,
|
||||
"1707": 58,
|
||||
"1708": 59,
|
||||
"1709": 60,
|
||||
"1710": 61,
|
||||
"1711": 62,
|
||||
"1712": 63,
|
||||
"1713": 64,
|
||||
"1714": 65,
|
||||
"1715": 66,
|
||||
"1716": 67,
|
||||
"1717": 68,
|
||||
"1718": 69,
|
||||
"1719": 70,
|
||||
"1720": 71,
|
||||
"1721": 72,
|
||||
"1722": 73,
|
||||
"1723": 74,
|
||||
"1724": 75,
|
||||
"1725": 76,
|
||||
"1726": 77,
|
||||
"1727": 78,
|
||||
"1740": 79,
|
||||
"1742": 80,
|
||||
"1744": 81
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1574": 0,
|
||||
"1576": 1,
|
||||
"1578": 2,
|
||||
"1579": 3,
|
||||
"1580": 4,
|
||||
"1581": 5,
|
||||
"1582": 6,
|
||||
"1587": 7,
|
||||
"1588": 8,
|
||||
"1589": 9,
|
||||
"1590": 10,
|
||||
"1591": 11,
|
||||
"1592": 12,
|
||||
"1593": 13,
|
||||
"1594": 14,
|
||||
"1601": 15,
|
||||
"1602": 16,
|
||||
"1603": 17,
|
||||
"1604": 18,
|
||||
"1605": 19,
|
||||
"1606": 20,
|
||||
"1607": 21,
|
||||
"1609": 22,
|
||||
"1610": 23,
|
||||
"1646": 24,
|
||||
"1647": 25,
|
||||
"1657": 26,
|
||||
"1658": 27,
|
||||
"1659": 28,
|
||||
"1660": 29,
|
||||
"1661": 30,
|
||||
"1662": 31,
|
||||
"1663": 32,
|
||||
"1664": 33,
|
||||
"1665": 34,
|
||||
"1666": 35,
|
||||
"1667": 36,
|
||||
"1668": 37,
|
||||
"1669": 38,
|
||||
"1670": 39,
|
||||
"1671": 40,
|
||||
"1690": 41,
|
||||
"1691": 42,
|
||||
"1692": 43,
|
||||
"1693": 44,
|
||||
"1694": 45,
|
||||
"1695": 46,
|
||||
"1696": 47,
|
||||
"1697": 48,
|
||||
"1698": 49,
|
||||
"1699": 50,
|
||||
"1700": 51,
|
||||
"1701": 52,
|
||||
"1702": 53,
|
||||
"1703": 54,
|
||||
"1704": 55,
|
||||
"1705": 56,
|
||||
"1706": 57,
|
||||
"1707": 58,
|
||||
"1708": 59,
|
||||
"1709": 60,
|
||||
"1710": 61,
|
||||
"1711": 62,
|
||||
"1712": 63,
|
||||
"1713": 64,
|
||||
"1714": 65,
|
||||
"1715": 66,
|
||||
"1716": 67,
|
||||
"1717": 68,
|
||||
"1718": 69,
|
||||
"1719": 70,
|
||||
"1720": 71,
|
||||
"1721": 72,
|
||||
"1722": 73,
|
||||
"1723": 74,
|
||||
"1724": 75,
|
||||
"1725": 76,
|
||||
"1726": 77,
|
||||
"1727": 78,
|
||||
"1740": 79,
|
||||
"1742": 80,
|
||||
"1744": 81
|
||||
}
|
||||
],
|
||||
[{ "1613": 0, "1616": 1, "1617": 2 }],
|
||||
[{ "1611": 0, "1612": 1, "1614": 2, "1615": 3, "1617": 4, "1620": 5 }],
|
||||
[{ "65247": 0, "65248": 1 }],
|
||||
[{ "65247": 0, "65248": 1 }],
|
||||
[{ "102": 0 }],
|
||||
[{ "32": 0, "1575": 1, "1600": 2, "1608": 3, "1610": 4 }],
|
||||
[{ "1488": 0 }],
|
||||
[{ "1381": 0, "1396": 1, "1406": 2 }],
|
||||
[{ "115": 0 }],
|
||||
[{ "383": 0 }],
|
||||
[{ "33": 0, "63": 1, "70": 2, "82": 3, "83": 4, "84": 5, "97": 6, "99": 7 }],
|
||||
[{ "1471": 0 }],
|
||||
[{ "1471": 0 }],
|
||||
[{ "910": 0, "933": 1, "939": 2, "946": 3, "952": 4, "960": 5, "966": 6 }],
|
||||
[{ "910": 0, "933": 1, "939": 2, "946": 3, "952": 4, "960": 5, "966": 6 }],
|
||||
[{ "73": 0, "74": 1, "97": 2, "108": 3, "330": 4 }],
|
||||
[{ "73": 0, "74": 1, "97": 2, "108": 3, "121": 4, "330": 5 }],
|
||||
[{ "1506": 0 }],
|
||||
[
|
||||
{
|
||||
"768": 0,
|
||||
"769": 1,
|
||||
"770": 2,
|
||||
"771": 3,
|
||||
"774": 4,
|
||||
"775": 5,
|
||||
"776": 6,
|
||||
"779": 7,
|
||||
"780": 8,
|
||||
"783": 9,
|
||||
"785": 10
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"105": 0,
|
||||
"106": 1,
|
||||
"303": 2,
|
||||
"585": 3,
|
||||
"616": 4,
|
||||
"669": 5,
|
||||
"1011": 6,
|
||||
"1110": 7,
|
||||
"1112": 8,
|
||||
"7725": 9,
|
||||
"7883": 10,
|
||||
"8520": 11,
|
||||
"8521": 12
|
||||
}
|
||||
],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }]
|
||||
]
|
@ -31,7 +31,7 @@ global $config;
|
||||
// Require needed class.
|
||||
require_once $config['homedir'].'/include/class/AgentsAlerts.class.php';
|
||||
// Get the parameter.
|
||||
$sec2 = get_parameter_get('sec2');
|
||||
$sec2 = get_parameter_get('sec2');
|
||||
// Add operation menu option.
|
||||
extensions_add_operation_menu_option(
|
||||
__('Agents/Alerts view'),
|
||||
|
@ -89,14 +89,13 @@ function agents_modules_load_js()
|
||||
|
||||
var controls = document.getElementById('vc-controls');
|
||||
autoHideElement(controls, 1000);
|
||||
|
||||
|
||||
$('select#refresh').change(function (event) {
|
||||
refr = Number.parseInt(event.target.value, 10);
|
||||
startCountDown(refr, false);
|
||||
});
|
||||
}
|
||||
else {
|
||||
|
||||
var agentes_id = $("#id_agents2").val();
|
||||
var id_agentes = getQueryParam("full_agents_id");
|
||||
if (agentes_id === null && id_agentes !== null) {
|
||||
@ -104,15 +103,15 @@ function agents_modules_load_js()
|
||||
id_agentes.forEach(function(element) {
|
||||
$("#id_agents2 option[value="+ element +"]").attr("selected",true);
|
||||
});
|
||||
|
||||
|
||||
selection_agent_module();
|
||||
}
|
||||
|
||||
|
||||
$('#refresh').change(function () {
|
||||
$('#hidden-vc_refr').val($('#refresh option:selected').val());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$("#group_id").change (function () {
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "operation/agentes/ver_agente",
|
||||
@ -128,7 +127,6 @@ function agents_modules_load_js()
|
||||
jQuery.each (data, function (id, value) {
|
||||
// Remove keys_prefix from the index
|
||||
id = id.substring(1);
|
||||
|
||||
option = $("<option></option>")
|
||||
.attr ("value", value["id_agente"])
|
||||
.html (value["alias"]);
|
||||
@ -139,7 +137,7 @@ function agents_modules_load_js()
|
||||
"json"
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
$("#checkbox-recursion").change (function () {
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "operation/agentes/ver_agente",
|
||||
@ -155,7 +153,6 @@ function agents_modules_load_js()
|
||||
jQuery.each (data, function (id, value) {
|
||||
// Remove keys_prefix from the index
|
||||
id = id.substring(1);
|
||||
|
||||
option = $("<option></option>")
|
||||
.attr ("value", value["id_agente"])
|
||||
.html (value["alias"]);
|
||||
@ -166,7 +163,7 @@ function agents_modules_load_js()
|
||||
"json"
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
$("#modulegroup").change (function () {
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "operation/agentes/ver_agente",
|
||||
@ -180,8 +177,8 @@ function agents_modules_load_js()
|
||||
if(data){
|
||||
jQuery.each (data, function (id, value) {
|
||||
option = $("<option></option>")
|
||||
.attr ("value", value["id_agente_modulo"])
|
||||
.html (value["nombre"]);
|
||||
.attr ("value", id)
|
||||
.html (value);
|
||||
$("#module").append (option);
|
||||
});
|
||||
}
|
||||
@ -207,8 +204,8 @@ function agents_modules_load_js()
|
||||
if(data){
|
||||
jQuery.each (data, function (id, value) {
|
||||
option = $("<option></option>")
|
||||
.attr ("value", value["id_agente_modulo"])
|
||||
.html (value["nombre"]);
|
||||
.attr ("value", id)
|
||||
.html (value);
|
||||
$("#module").append (option);
|
||||
});
|
||||
}
|
||||
@ -231,11 +228,11 @@ function agents_modules_load_js()
|
||||
if(data){
|
||||
jQuery.each (data, function (id, value) {
|
||||
option = $("<option></option>")
|
||||
.attr ("value", value["id_agente_modulo"])
|
||||
.html (value["nombre"]);
|
||||
.attr ("value", id)
|
||||
.html (value);
|
||||
$("#module").append (option);
|
||||
});
|
||||
|
||||
|
||||
var id_modules = getQueryParam("full_modules_selected");
|
||||
if(id_modules !== null) {
|
||||
id_modules = id_modules.split(";");
|
||||
@ -249,20 +246,19 @@ function agents_modules_load_js()
|
||||
);
|
||||
}
|
||||
|
||||
function getQueryParam (key) {
|
||||
key = key.replace(/[[]/, '[');
|
||||
key = key.replace(/[]]/, ']');
|
||||
var pattern = "[?&]" + key + "=([^&#]*)";
|
||||
function getQueryParam (key) {
|
||||
key = key.replace(/[[]/, '[');
|
||||
key = key.replace(/[]]/, ']');
|
||||
var pattern = "[?&]" + key + "=([^&#]*)";
|
||||
var regex = new RegExp(pattern);
|
||||
var url = unescape(window.location.href);
|
||||
var results = regex.exec(url);
|
||||
if (results === null) {
|
||||
return null;
|
||||
} else {
|
||||
return results[1];
|
||||
}
|
||||
if (results === null) {
|
||||
return null;
|
||||
} else {
|
||||
return results[1];
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
@ -288,7 +284,7 @@ function mainAgentsModules()
|
||||
// ACL Check.
|
||||
if (! check_acl($config['id_user'], 0, 'AR')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Agent view (Grouped)'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
@ -308,7 +304,10 @@ function mainAgentsModules()
|
||||
|
||||
db_process_sql_update('tagente_modulo', ['flag' => 1], $where);
|
||||
} else {
|
||||
db_pandora_audit('ACL Violation', 'Trying to set flag for groups');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to set flag for groups'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
@ -345,6 +344,7 @@ function mainAgentsModules()
|
||||
$save_serialize = (int) get_parameter('save_serialize', 0);
|
||||
$full_modules_selected = explode(';', get_parameter('full_modules_selected', 0));
|
||||
$full_agents_id = explode(';', get_parameter('full_agents_id', 0));
|
||||
$show_type = (int) get_parameter('show_type', 0);
|
||||
|
||||
// In full screen there is no pagination neither filters.
|
||||
if (( ($config['pure'] == 0 && $save_serialize) && $update_item == '' ) || ( ($config['pure'] == 1 && $save_serialize == 0) && $update_item == '' )) {
|
||||
@ -362,11 +362,11 @@ function mainAgentsModules()
|
||||
unserialize_in_temp($config['id_user'].'_agents', true, 1);
|
||||
}
|
||||
|
||||
if ($modules_selected[0]) {
|
||||
if (isset($modules_selected[0]) === true && $modules_selected[0]) {
|
||||
serialize_in_temp($modules_selected, $config['id_user'].'_agent_module', 1);
|
||||
}
|
||||
|
||||
if ($agents_id[0] != -1) {
|
||||
if (isset($agents_id[0]) === true && $agents_id[0] != -1) {
|
||||
serialize_in_temp($agents_id, $config['id_user'].'_agents', 1);
|
||||
}
|
||||
|
||||
@ -376,21 +376,30 @@ function mainAgentsModules()
|
||||
$full_agents = urlencode(implode(';', $agents_id));
|
||||
|
||||
$fullscreen['text'] = '<a href="index.php?extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&pure=1&
|
||||
offset='.$offset.'&group_id='.$group_id.'&modulegroup='.$modulegroup.'&refresh='.$refr.'&full_modules_selected='.$full_modules.'
|
||||
offset='.$offset.'&group_id='.$group_id.'&modulegroup='.$modulegroup.'&refresh='.$refr.'&full_modules_selected='.$full_modules.'&show_type='.$show_type.'
|
||||
&full_agents_id='.$full_agents.'&selection_agent_module='.$selection_a_m.'">'.html_print_image('images/full_screen.png', true, ['title' => __('Full screen mode'), 'class' => 'invert_filter']).'</a>';
|
||||
} else if ($full_modules_selected[0] && $full_agents_id[0]) {
|
||||
$full_modules = urlencode(implode(';', $full_modules_selected));
|
||||
$full_agents = urlencode(implode(';', $full_agents_id));
|
||||
|
||||
$fullscreen['text'] = '<a href="index.php?extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&pure=1&
|
||||
offset='.$offset.'&group_id='.$group_id.'&modulegroup='.$modulegroup.'&refresh='.$refr.'&full_modules_selected='.$full_modules.'
|
||||
offset='.$offset.'&group_id='.$group_id.'&modulegroup='.$modulegroup.'&refresh='.$refr.'&full_modules_selected='.$full_modules.'&show_type='.$show_type.'
|
||||
&full_agents_id='.$full_agents.'&selection_agent_module='.$selection_a_m.'">'.html_print_image('images/full_screen.png', true, ['title' => __('Full screen mode'), 'class' => 'invert_filter']).'</a>';
|
||||
} else {
|
||||
$fullscreen['text'] = '<a href="index.php?extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&pure=1&
|
||||
offset='.$offset.'&group_id='.$group_id.'&modulegroup='.$modulegroup.'&refresh='.$refr.'">'.html_print_image('images/full_screen.png', true, ['title' => __('Full screen mode'), 'class' => 'invert_filter']).'</a>';
|
||||
offset='.$offset.'&group_id='.$group_id.'&modulegroup='.$modulegroup.'&refresh='.$refr.'&show_type='.$show_type.'">'.html_print_image('images/full_screen.png', true, ['title' => __('Full screen mode'), 'class' => 'invert_filter']).'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
// Type show.
|
||||
$show_select = [
|
||||
0 => __('Show module status'),
|
||||
1 => __('Show module data'),
|
||||
];
|
||||
|
||||
$filter_type_label = '<b>'.__('Information to be shown').'</b>';
|
||||
$filter_type = html_print_select($show_select, 'show_type', $show_type, '', '', 0, true, false, false, '', false, 'min-width: 180px;');
|
||||
|
||||
// Groups.
|
||||
$filter_groups_label = '<b>'.__('Group').'</b>';
|
||||
$filter_groups = html_print_select_groups(false, 'AR', true, 'group_id', $group_id, '', '', '', true, false, true, '', false, 'width: auto;');
|
||||
@ -481,11 +490,29 @@ function mainAgentsModules()
|
||||
$full_modules = urlencode(implode(';', $full_modules_selected));
|
||||
$full_agents = urlencode(implode(';', $full_agents_id));
|
||||
|
||||
$url = 'index.php?sec=view&sec2=extensions/agents_modules&pure=0&offset=$offset
|
||||
&group_id=$group_id&modulegroup=$modulegroup&refresh=$refr&full_modules_selected=$full_modules
|
||||
&full_agents_id=$full_agents&selection_agent_module=$selection_a_m';
|
||||
$url = sprintf(
|
||||
'index.php?sec=view&sec2=extensions/agents_modules&pure=0&offset=%s
|
||||
&group_id=%s&modulegroup=%s&refresh=%s&full_modules_selected=%s
|
||||
&full_agents_id=%s&selection_agent_module=%s&show_type=%s',
|
||||
$offset,
|
||||
$group_id,
|
||||
$modulegroup,
|
||||
$refr,
|
||||
$full_modules,
|
||||
$full_agents,
|
||||
$selection_a_m,
|
||||
$show_type
|
||||
);
|
||||
} else {
|
||||
$url = 'index.php?sec=view&sec2=extensions/agents_modules&pure=0&offset=$offset&group_id=$group_id&modulegroup=$modulegroup&refresh=$refr';
|
||||
$url = sprintf(
|
||||
'index.php?sec=view&sec2=extensions/agents_modules&pure=0&offset=%s&group_id=%s
|
||||
&modulegroup=%s&refresh=%s&show_type=%s',
|
||||
$offset,
|
||||
$group_id,
|
||||
$modulegroup,
|
||||
$refr,
|
||||
$show_type
|
||||
);
|
||||
}
|
||||
|
||||
// Floating menu - Start.
|
||||
@ -547,7 +574,11 @@ function mainAgentsModules()
|
||||
|
||||
if ($config['pure'] != 1) {
|
||||
$show_filters = '<form method="post" action="'.ui_get_url_refresh(['offset' => $offset, 'hor_offset' => $offset, 'group_id' => $group_id, 'modulegroup' => $modulegroup]).'" class="w100p">';
|
||||
$show_filters .= '<table class="w100p no-border" cellpadding="0" cellspacing="0" border="0">';
|
||||
$show_filters .= '<table class="w100p no-border" cellpadding="15" cellspacing="0" border="0">';
|
||||
$show_filters .= '<tr>';
|
||||
$show_filters .= '<td>'.$filter_type_label.'</td>';
|
||||
$show_filters .= '<td>'.$filter_type.'</td>';
|
||||
$show_filters .= '</tr>';
|
||||
$show_filters .= '<tr>';
|
||||
$show_filters .= '<td>'.$filter_groups_label.'</td>';
|
||||
$show_filters .= '<td>'.$filter_groups.' '.$filter_recursion_label.$filter_recursion.'</td>';
|
||||
@ -575,10 +606,10 @@ function mainAgentsModules()
|
||||
);
|
||||
}
|
||||
|
||||
if ($agents_id[0] != -1) {
|
||||
if (isset($agents_id[0]) === true && $agents_id[0] != -1) {
|
||||
$agents = $agents_id;
|
||||
} else {
|
||||
if ($full_agents_id[0]) {
|
||||
if (isset($full_agents_id[0]) === true && $full_agents_id[0]) {
|
||||
$agents = $full_agents_id;
|
||||
} else {
|
||||
$agents = '';
|
||||
@ -611,24 +642,34 @@ function mainAgentsModules()
|
||||
}
|
||||
|
||||
$total_pagination = count($agents);
|
||||
if ($agents_id[0] != -1) {
|
||||
$all_modules = [];
|
||||
foreach ($modules_selected as $key => $value) {
|
||||
$name = modules_get_agentmodule_name($value);
|
||||
$sql = "SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE nombre = '".$name."';";
|
||||
if (isset($agents_id[0]) === true && $agents_id[0] != -1) {
|
||||
if (isset($modules_selected[0]) === true && $modules_selected[0]) {
|
||||
$all_modules = [];
|
||||
foreach ($modules_selected as $key => $value) {
|
||||
$name = modules_get_agentmodule_name($value);
|
||||
$sql = "SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE nombre = '".$name."';";
|
||||
|
||||
$result_sql = db_get_all_rows_sql($sql);
|
||||
$result_sql = db_get_all_rows_sql($sql);
|
||||
|
||||
if (is_array($result_sql)) {
|
||||
foreach ($result_sql as $key => $value) {
|
||||
$all_modules[$value['id_agente_modulo']] = io_safe_output($name);
|
||||
if (is_array($result_sql)) {
|
||||
foreach ($result_sql as $key => $value) {
|
||||
$all_modules[$value['id_agente_modulo']] = io_safe_output($name);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$all_modules = agents_get_modules(
|
||||
$agents,
|
||||
false,
|
||||
$filter_module_group,
|
||||
true,
|
||||
true
|
||||
);
|
||||
}
|
||||
} else {
|
||||
if ($full_modules_selected[0]) {
|
||||
if (isset($full_modules_selected[0]) === true && $full_modules_selected[0]) {
|
||||
foreach ($full_modules_selected as $key => $value) {
|
||||
$name = modules_get_agentmodule_name($value);
|
||||
$sql = "SELECT id_agente_modulo
|
||||
@ -664,7 +705,7 @@ function mainAgentsModules()
|
||||
$name = $module;
|
||||
$modules_by_name[$cont]['name'] = $name;
|
||||
$modules_by_name[$cont]['id'][] = $key;
|
||||
$cont ++;
|
||||
$cont++;
|
||||
}
|
||||
}
|
||||
|
||||
@ -718,7 +759,7 @@ function mainAgentsModules()
|
||||
|
||||
if ($hor_offset > 0) {
|
||||
$new_hor_offset = ($hor_offset - $block);
|
||||
echo "<th width='20px' class='vertical_middle center' rowspan='".($nagents + 1)."'><a href='index.php?".'extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&refr=0&save_serialize=1&selection_a_m='.$selection_a_m.'&hor_offset='.$new_hor_offset.'&offset='.$offset."'>".html_print_image(
|
||||
echo "<th width='20px' class='vertical_middle center' rowspan='".($nagents + 1)."'><a href='index.php?".'extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&refr=0&save_serialize=1&show_type='.$show_type.'&selection_a_m='.$selection_a_m.'&hor_offset='.$new_hor_offset.'&offset='.$offset."'>".html_print_image(
|
||||
'images/arrow_left_green.png',
|
||||
true,
|
||||
['title' => __('Previous modules')]
|
||||
@ -744,7 +785,7 @@ function mainAgentsModules()
|
||||
|
||||
if (($hor_offset + $block) < $nmodules) {
|
||||
$new_hor_offset = ($hor_offset + $block);
|
||||
echo "<th width='20px' class='vertical_middle center' rowspan='".($nagents + 1)."'><a href='index.php?".'extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&save_serialize=1&selection_a_m='.$selection_a_m.'&hor_offset='.$new_hor_offset.'&offset='.$offset."'>".html_print_image(
|
||||
echo "<th width='20px' class='vertical_middle center' rowspan='".($nagents + 1)."'><a href='index.php?".'extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&save_serialize=1&show_type='.$show_type.'&selection_a_m='.$selection_a_m.'&hor_offset='.$new_hor_offset.'&offset='.$offset."'>".html_print_image(
|
||||
'images/arrow_right_green.png',
|
||||
true,
|
||||
['title' => __('More modules')]
|
||||
@ -821,7 +862,6 @@ function mainAgentsModules()
|
||||
|
||||
foreach ($module['id'] as $module_id) {
|
||||
if (!$match && array_key_exists($module_id, $agent_modules)) {
|
||||
$status = modules_get_agentmodule_status($module_id);
|
||||
echo "<td class='center'>";
|
||||
$win_handle = dechex(crc32($module_id.$module['name']));
|
||||
$graph_type = return_graphtype(modules_get_agentmodule_type($module_id));
|
||||
@ -834,32 +874,42 @@ function mainAgentsModules()
|
||||
$module_last_value = htmlspecialchars($module_last_value);
|
||||
}
|
||||
|
||||
switch ($status) {
|
||||
case AGENT_MODULE_STATUS_NORMAL:
|
||||
ui_print_status_image('module_ok.png', $module_last_value, false);
|
||||
break;
|
||||
if ($show_type === 0) {
|
||||
$status = modules_get_agentmodule_status($module_id);
|
||||
switch ($status) {
|
||||
case AGENT_MODULE_STATUS_NORMAL:
|
||||
ui_print_status_image('module_ok.png', $module_last_value, false);
|
||||
break;
|
||||
|
||||
case AGENT_MODULE_STATUS_CRITICAL_BAD:
|
||||
ui_print_status_image('module_critical.png', $module_last_value, false);
|
||||
break;
|
||||
case AGENT_MODULE_STATUS_CRITICAL_BAD:
|
||||
ui_print_status_image('module_critical.png', $module_last_value, false);
|
||||
break;
|
||||
|
||||
case AGENT_MODULE_STATUS_WARNING:
|
||||
ui_print_status_image('module_warning.png', $module_last_value, false);
|
||||
break;
|
||||
case AGENT_MODULE_STATUS_WARNING:
|
||||
ui_print_status_image('module_warning.png', $module_last_value, false);
|
||||
break;
|
||||
|
||||
case AGENT_MODULE_STATUS_UNKNOWN:
|
||||
ui_print_status_image('module_unknown.png', $module_last_value, false);
|
||||
break;
|
||||
case AGENT_MODULE_STATUS_UNKNOWN:
|
||||
ui_print_status_image('module_unknown.png', $module_last_value, false);
|
||||
break;
|
||||
|
||||
case AGENT_MODULE_STATUS_NORMAL_ALERT:
|
||||
case AGENT_MODULE_STATUS_WARNING_ALERT:
|
||||
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
|
||||
ui_print_status_image('module_alertsfired.png', $module_last_value, false);
|
||||
break;
|
||||
case AGENT_MODULE_STATUS_NORMAL_ALERT:
|
||||
case AGENT_MODULE_STATUS_WARNING_ALERT:
|
||||
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
|
||||
ui_print_status_image('module_alertsfired.png', $module_last_value, false);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
ui_print_status_image('module_no_data.png', $module_last_value, false);
|
||||
break;
|
||||
case 4:
|
||||
ui_print_status_image('module_no_data.png', $module_last_value, false);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$module = modules_get_agentmodule($module_id);
|
||||
$module['datos'] = $module_last_value;
|
||||
|
||||
$module_last_value = modules_get_agentmodule_data_for_humans($module);
|
||||
|
||||
echo $module_last_value;
|
||||
}
|
||||
|
||||
echo '</a>';
|
||||
@ -878,22 +928,24 @@ function mainAgentsModules()
|
||||
|
||||
echo '</table>';
|
||||
|
||||
$show_legend = "<div class='legend_white'>";
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_ALERTFIRED.";'></div></div>".__('Orange cell when the module has fired alerts').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_CRITICAL.";'></div></div>".__('Red cell when the module has a critical status').'
|
||||
</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_WARNING.";'></div></div>".__('Yellow cell when the module has a warning status').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_NORMAL.";'></div></div>".__('Green cell when the module has a normal status').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_UNKNOWN.";'></div></div>".__('Grey cell when the module has an unknown status').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_NOTINIT.";'></div></div>".__("Cell turns blue when the module is in 'not initialize' status").'</div>';
|
||||
$show_legend .= '</div>';
|
||||
ui_toggle($show_legend, __('Legend'));
|
||||
if ($show_type === 0) {
|
||||
$show_legend = "<div class='legend_white'>";
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_ALERTFIRED.";'></div></div>".__('Orange cell when the module has fired alerts').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_CRITICAL.";'></div></div>".__('Red cell when the module has a critical status').'
|
||||
</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_WARNING.";'></div></div>".__('Yellow cell when the module has a warning status').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_NORMAL.";'></div></div>".__('Green cell when the module has a normal status').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_UNKNOWN.";'></div></div>".__('Grey cell when the module has an unknown status').'</div>';
|
||||
$show_legend .= "<div class='center flex'>
|
||||
<div class='legend_square_simple'><div style='background-color: ".COL_NOTINIT.";'></div></div>".__("Cell turns blue when the module is in 'not initialize' status").'</div>';
|
||||
$show_legend .= '</div>';
|
||||
ui_toggle($show_legend, __('Legend'));
|
||||
}
|
||||
|
||||
$pure_var = $config['pure'];
|
||||
if ($pure_var) {
|
||||
|
@ -63,7 +63,7 @@ function extension_api_checker()
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Profile Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
@ -116,7 +116,7 @@ function extension_api_checker()
|
||||
''
|
||||
);
|
||||
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
$table->data = [];
|
||||
|
||||
$row = [];
|
||||
@ -144,7 +144,7 @@ function extension_api_checker()
|
||||
$row[] = html_print_input_password('password', $password, '', 50, 255, true);
|
||||
$table->data[] = $row;
|
||||
|
||||
$table2 = null;
|
||||
$table2 = new stdClass();
|
||||
$table2->data = [];
|
||||
|
||||
$row = [];
|
||||
@ -182,7 +182,7 @@ function extension_api_checker()
|
||||
$row[] = html_print_input_text('other_mode', $other_mode, '', 50, 255, true);
|
||||
$table2->data[] = $row;
|
||||
|
||||
$table3 = null;
|
||||
$table3 = new stdClass();
|
||||
$table3->data = [];
|
||||
|
||||
$row = [];
|
||||
@ -202,9 +202,7 @@ function extension_api_checker()
|
||||
echo '</fieldset>';
|
||||
echo "<div class='right'>";
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
|
||||
echo "<form method='post'>";
|
||||
echo '<fieldset>';
|
||||
echo '<legend>'.__('Custom URL').'</legend>';
|
||||
html_print_table($table3);
|
||||
|
@ -32,7 +32,7 @@ function extension_db_status()
|
||||
|
||||
if (!is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access db status'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -11,6 +11,9 @@
|
||||
// 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.
|
||||
use PandoraFMS\Enterprise\Metaconsole\Node;
|
||||
|
||||
|
||||
function dbmanager_query($sql, &$error, $dbconnection)
|
||||
{
|
||||
global $config;
|
||||
@ -88,18 +91,73 @@ function dbmgr_extension_main()
|
||||
|
||||
global $config;
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
open_meta_frame();
|
||||
}
|
||||
|
||||
if (!is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Setup Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
$sql = (string) get_parameter('sql');
|
||||
$node_id = (int) get_parameter('node_id', -1);
|
||||
|
||||
ui_print_page_header(__('Database interface'), 'images/gm_db.png', false, false, true);
|
||||
|
||||
echo '<div class="notify">';
|
||||
echo __(
|
||||
if (is_metaconsole() === true) {
|
||||
$img = '../../images/warning_modern.png';
|
||||
} else {
|
||||
$img = 'images/warning_modern.png';
|
||||
}
|
||||
|
||||
$msg = '<div id="err_msg_centralised">'.html_print_image(
|
||||
$img,
|
||||
true
|
||||
);
|
||||
$msg .= '<div>'.__(
|
||||
'Warning, you are accessing the database directly. You can leave the system inoperative if you run an inappropriate SQL statement'
|
||||
).'</div></div>';
|
||||
|
||||
$warning_message = '<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
infoMessage({
|
||||
title: \''.__('Warning').'\',
|
||||
text: \''.$msg.'\' ,
|
||||
simple: true,
|
||||
})
|
||||
})
|
||||
</script>';
|
||||
|
||||
if (empty($sql) === true) {
|
||||
echo $warning_message;
|
||||
}
|
||||
|
||||
echo "<form method='post' action=''>";
|
||||
|
||||
$table = new stdClass();
|
||||
$table->id = 'db_interface';
|
||||
$table->class = 'databox';
|
||||
$table->width = '100%';
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
$table->colspan = [];
|
||||
$table->rowstyle = [];
|
||||
|
||||
$table->colspan[0][0] = 2;
|
||||
$table->colspan[1][0] = 2;
|
||||
$table->rowspan[2][0] = 3;
|
||||
|
||||
$table->rowclass[0] = 'notify';
|
||||
$table->rowclass[3] = 'pdd_5px';
|
||||
$table->rowclass[3] = 'flex-content-right';
|
||||
$table->rowclass[4] = 'flex-content-right';
|
||||
|
||||
$data[0][0] = __(
|
||||
"This is an advanced extension to interface with %s database directly from WEB console
|
||||
using native SQL sentences. Please note that <b>you can damage</b> your %s installation
|
||||
if you don't know </b>exactly</b> what are you are doing,
|
||||
@ -110,19 +168,59 @@ function dbmgr_extension_main()
|
||||
get_product_name(),
|
||||
get_product_name()
|
||||
);
|
||||
echo '</div>';
|
||||
|
||||
echo '<br />';
|
||||
echo "Some samples of usage: <blockquote><em>SHOW STATUS;<br />DESCRIBE tagente<br />SELECT * FROM tserver<br />UPDATE tagente SET id_grupo = 15 WHERE nombre LIKE '%194.179%'</em></blockquote>";
|
||||
$data[1][0] = "Some samples of usage: <blockquote><em>SHOW STATUS;<br />DESCRIBE tagente<br />SELECT * FROM tserver<br />UPDATE tagente SET id_grupo = 15 WHERE nombre LIKE '%194.179%'</em></blockquote>";
|
||||
|
||||
echo '<br /><br />';
|
||||
echo "<form method='post' action=''>";
|
||||
html_print_textarea('sql', 5, 50, html_entity_decode($sql, ENT_QUOTES));
|
||||
echo '<br />';
|
||||
echo '<div class="action-buttons w100p">';
|
||||
echo '<br />';
|
||||
html_print_submit_button(__('Execute SQL'), '', false, 'class="sub next"');
|
||||
echo '</div>';
|
||||
\enterprise_include_once('include/functions_metaconsole.php');
|
||||
$servers = \metaconsole_get_servers();
|
||||
if (is_array($servers) === true) {
|
||||
$servers = array_reduce(
|
||||
$servers,
|
||||
function ($carry, $item) {
|
||||
$carry[$item['id']] = $item['server_name'];
|
||||
return $carry;
|
||||
}
|
||||
);
|
||||
} else {
|
||||
$servers = [];
|
||||
}
|
||||
|
||||
$data[2][0] = html_print_textarea(
|
||||
'sql',
|
||||
5,
|
||||
50,
|
||||
html_entity_decode($sql, ENT_QUOTES),
|
||||
'',
|
||||
true
|
||||
);
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
$data[3][2] = html_print_input(
|
||||
[
|
||||
'name' => 'node_id',
|
||||
'type' => 'select',
|
||||
'fields' => $servers,
|
||||
'selected' => $node_id,
|
||||
'nothing' => __('This metaconsole'),
|
||||
'nothing_value' => -1,
|
||||
'return' => true,
|
||||
'label' => _('Select query target'),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$data[4][2] = '<div class="action-buttons w100p">';
|
||||
$data[4][2] .= html_print_submit_button(
|
||||
__('Execute SQL'),
|
||||
'',
|
||||
false,
|
||||
'class="sub next"',
|
||||
true
|
||||
);
|
||||
$data[4][2] .= '</div>';
|
||||
|
||||
$table->data = $data;
|
||||
html_print_table($table);
|
||||
echo '</form>';
|
||||
|
||||
// Processing SQL Code
|
||||
@ -134,16 +232,41 @@ function dbmgr_extension_main()
|
||||
echo '<hr />';
|
||||
echo '<br />';
|
||||
|
||||
$dbconnection = $config['dbconnection'];
|
||||
$error = '';
|
||||
|
||||
$result = dbmanager_query($sql, $error, $dbconnection);
|
||||
try {
|
||||
if (\is_metaconsole() === true && $node_id !== -1) {
|
||||
$node = new Node($node_id);
|
||||
$dbconnection = @get_dbconnection(
|
||||
[
|
||||
'dbhost' => $node->dbhost(),
|
||||
'dbport' => $node->dbport(),
|
||||
'dbname' => $node->dbname(),
|
||||
'dbuser' => $node->dbuser(),
|
||||
'dbpass' => $node->dbpass(),
|
||||
]
|
||||
);
|
||||
$error = '';
|
||||
$result = dbmanager_query($sql, $error, $dbconnection);
|
||||
} else {
|
||||
$dbconnection = $config['dbconnection'];
|
||||
$error = '';
|
||||
$result = dbmanager_query($sql, $error, $dbconnection);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$error = __('Error querying database node');
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if ($result === false) {
|
||||
echo '<strong>An error has occured when querying the database.</strong><br />';
|
||||
echo $error;
|
||||
|
||||
db_pandora_audit('DB Interface Extension', 'Error in SQL', false, false, $sql);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_SYSTEM,
|
||||
'DB Interface Extension. Error in SQL',
|
||||
false,
|
||||
false,
|
||||
$sql
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -151,7 +274,13 @@ function dbmgr_extension_main()
|
||||
if (! is_array($result)) {
|
||||
echo '<strong>Output: <strong>'.$result;
|
||||
|
||||
db_pandora_audit('DB Interface Extension', 'SQL', false, false, $sql);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_SYSTEM,
|
||||
'DB Interface Extension. SQL',
|
||||
false,
|
||||
false,
|
||||
$sql
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -166,9 +295,29 @@ function dbmgr_extension_main()
|
||||
|
||||
html_print_table($table);
|
||||
echo '</div>';
|
||||
|
||||
if (is_metaconsole()) {
|
||||
close_meta_frame();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
// This adds a option in the operation menu.
|
||||
extensions_add_meta_menu_option(
|
||||
'DB interface',
|
||||
'PM',
|
||||
'gextensions',
|
||||
'database.png',
|
||||
'v1r1',
|
||||
'gdbman'
|
||||
);
|
||||
|
||||
extensions_add_meta_function('dbmgr_extension_main');
|
||||
} else {
|
||||
}
|
||||
|
||||
// This adds a option in the operation menu
|
||||
extensions_add_godmode_menu_option(__('DB interface'), 'PM', 'gextensions', 'dbmanager/icon.png', 'v1r1', 'gdbman');
|
||||
|
||||
|
@ -16,7 +16,10 @@ function load_matrix_console()
|
||||
global $config;
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'ER')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access event viewer');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access event viewer'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ function extension_uploader_extensions()
|
||||
|
||||
if (!check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
@ -61,7 +61,10 @@ function extension_uploader_extensions()
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Extension manager', 'Upload extension '.$_FILES['extension']['name']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_EXTENSION_MANAGER,
|
||||
'Upload extension '.$_FILES['extension']['name']
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
@ -71,7 +74,7 @@ function extension_uploader_extensions()
|
||||
);
|
||||
}
|
||||
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
|
@ -106,7 +106,10 @@ function pandora_files_repo_godmode()
|
||||
// ACL Check
|
||||
check_login();
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access to Files repository');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access to Files repository'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
@ -142,7 +145,7 @@ function pandora_files_repo_godmode()
|
||||
// Check for an anoying error that causes the $_POST and $_FILES arrays.
|
||||
// were empty if the file is larger than the post_max_size.
|
||||
if (intval($server_content_length) > 0 && empty($_POST)) {
|
||||
ui_print_error_message(__('The file exceeds the maximum size'));
|
||||
ui_print_error_message(__('Problem uploading. Please check this PHP runtime variable values: <pre> post_max_size (currently '.ini_get('post_max_size').')</pre>'));
|
||||
}
|
||||
|
||||
// GET and POST parameters.
|
||||
|
@ -77,7 +77,7 @@ if (!empty($files)) {
|
||||
$file_name = explode('/', $file['location']);
|
||||
$file_decoded = $file_name[(count($file_name) - 1)];
|
||||
$file_path = base64_encode($file_decoded);
|
||||
$hash = md5($file_path.$config['dbpass']);
|
||||
$hash = md5($file_path.$config['server_unique_identifier']);
|
||||
$url = ui_get_full_url(
|
||||
'include/get_file.php?file='.urlencode($file_path).'&hash='.$hash
|
||||
);
|
||||
@ -131,7 +131,7 @@ if (!empty($files)) {
|
||||
$config_url = ui_get_full_url(
|
||||
'index.php?sec=godmode/extensions&sec2=extensions/files_repo&file_id='.$file_id
|
||||
);
|
||||
$data[4] .= '<a href=\"$config_url\">';
|
||||
$data[4] .= "<a href=\"$config_url\">";
|
||||
$data[4] .= html_print_image(
|
||||
'images/config.png',
|
||||
true,
|
||||
|