first commit

This commit is contained in:
2026-04-09 13:05:27 +02:00
commit 3bbd7d6413
3084 changed files with 84284 additions and 0 deletions

View File

@@ -0,0 +1,157 @@
let hostname = context.panel.elements.find(e => e.id === "hostname")?.value;
let group = context.panel.elements.find(e => e.id === "group")?.value;
let interface = context.panel.elements.find(e => e.id === "interface")?.value;
let ipa = context.panel.elements.find(e => e.id === "ip")?.value;
let dns_name = context.panel.elements.find(e => e.id === "dns")?.value;
let template = context.panel.elements.find(e => e.id === "template")?.value;
if (dns_name == "undefined") {
dns_name = "";
}
if (ipa == "undefined") {
ipa = "";
}
async function ejecutarPeticion() {
async function getToken() {
let token = null;
let res = await fetch("http://localhost:8080/api_jsonrpc.php", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0",
method: "user.login",
params: {
username: "Admin",
password: "zabbix"
},
id: 1
})
});
const data = await res.json();
token = data.result;
return token;
}
let token = await getToken();
if (interface == "ZBX") {
return fetch("http://localhost:8080/api_jsonrpc.php", {
method: "POST",
headers: {
"Content-Type": "application/json-rpc",
"Authorization": "Bearer " + token
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "host.create",
params: {
host: hostname,
interfaces: [
{
type: 1,
main: 1,
useip: 1,
ip: ipa,
dns: dns_name,
port: "10050"
}
],
groups: group.map(g => ({
groupid: parseInt(g)
})),
templates: template.map(g => ({
templateid: parseInt(g)
})),
},
id: 1
})
});
}
else if (interface == "snmp_v3") {
let snmp_sec = context.panel.elements.find(e => e.id === "snmp_sec")?.value;
let snmp_context = context.panel.elements.find(e => e.id === "snmp_context")?.value;
return fetch("http://localhost:8080/api_jsonrpc.php", {
method: "POST",
headers: {
"Content-Type": "application/json-rpc",
"Authorization": "Bearer " + token
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "host.create",
params: {
host: hostname,
interfaces: [
{
type: 2,
main: 1,
useip: 1,
ip: ipa,
dns: dns_name,
port: "161",
details: {
version: 3,
bulk: 0,
securityname: snmp_sec,
contextname: "" + snmp_context,
securitylevel: 1
}
}
],
groups: group.map(g => ({
groupid: parseInt(g)
})),
templates: template.map(g => ({
templateid: parseInt(g)
})),
},
id: 1
})
});
}
else if (interface == "snmp_v2") {
let snmp_com = context.panel.elements.find(e => e.id === "snmp_com")?.value;
return fetch("http://localhost:8080/api_jsonrpc.php", {
method: "POST",
headers: {
"Content-Type": "application/json-rpc",
"Authorization": "Bearer " + token
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "host.create",
params: {
host: hostname,
interfaces: [
{
type: 2,
main: 1,
useip: 1,
ip: ipa,
dns: dns_name,
port: "161",
details: {
version: 2,
bulk: 0,
community: snmp_com
}
}
],
groups: group.map(g => ({
groupid: parseInt(g)
})),
templates: template.map(g => ({
templateid: parseInt(g)
})),
},
id: 1
})
});
}
}
return ejecutarPeticion();