Después de ver ya la función de obtención de datos, es lógico que veamos cómo crear los datos, así que vamos con CHost::create. Como su propio nombre nos hace presagiar, es la función de crear nuevo hosts. Ésta recibe un mayor número de parámetros de entrada, no sólo el nombre del host como la get. Toda la información que nos devolvió la anterior se le puede pasar a create para que la devuelva. Lo único que tenemos que tener en cuenta a la hora de pasarle la información es cómo hay que estructurarla. Es el único truco que tiene esta función. Así que vamos a verlo,
- Información habitual, que es un array con todos los datos
hostid, proxy_hostid, host, dns, useip, ip, port, status, disable_until, error, available, errors_from, lastaccess, inbytes, outbytes, useipmi, ipmi_port, ipmi_authtype, ipmi_privilege, ipmi_username, ipmi_password, ipmi_disable_until, ipmi_available, snmp_disable_until, snmp_available, maintenanceid, maintenance_status, maintenance_type, maintenance_from, ipmi_ip, ipmi_errors_from, snmp_errors_from, ipmi_error, snmp_error
- Templates, es un array con el id de las plantillas a linkar
templateid
- Grupos, lo mismo que templates, pero con el id correspondiente al grupo
groupid
- profile, un array con los datos que interese
hostid, devicetype, name, os, serialno, tag, macaddress, hardware, software, contact, location, notes
- profile_ext, otro array
hostid, device_alias, device_type, device_chassis, device_os, device_os_short, device_hw_arch, device_serial, device_model, device_tag, device_vendor, device_contract, device_who, device_status, device_app_01, device_app_02, device_app_03, device_app_04, device_app_05, device_url_1, device_url_2, device_url_3, device_networks, device_notes, device_hardware, device_software, ip_subnet_mask, ip_router, ip_macaddress, oob_ip, oob_subnet_mask, oob_router, date_hw_buy, date_hw_install, date_hw_expiry, date_hw_decomm, site_street_1, site_street_2, site_street_3, site_city, site_state, site_country, site_zip, site_rack, site_notes, poc_1_name, poc_1_email, poc_1_phone_1, poc_1_phone_2, poc_1_cell, poc_1_screen, poc_1_notes, poc_2_name, poc_2_email, poc_2_phone_1, poc_2_phone_2, poc_2_cell, poc_2_screen, poc_2_notes
- maintenances, el último array
maintenanceid
Una vez que sabemos qué información es la necesaria a pasar, podemos hacer un ejemplo sencillo.
$t = array(array("templateid" => 15),array("templateid" => 2)); $g = array(array("groupid" => 12),array("groupid" => 22)); $h = array( 'host' => 'Equipo de prueba', 'useip' => 0, 'port' => 10050, 'dns' => 'host.domain.com', 'ip' => '0.0.0.0', 'groups' => $g, 'templates' => $t ); $r = CHost::create($h); if($r) { echo "Host insertado"; } else { echo "Host NO insertado"; }
Como se puede observar el código es sencillo y únicamente hay que declarar aquellos valores que nos interese tener para el equipo. Como dato destacado sobresaltar el valor de la variable useip, que si vale cero indica que el host se monitorizará por dns y si vale 1 que será por IP. Luego también ver que los grupos y las templates se pasan por su id y que la función CHost::create cuando inserta el equipo comprueba internamente dichos valores. Si uno de los dos no existe, el equipo no se podrá crear.
En caso de que nos interese, por ejemplo meter algún valor en el campo profile, simplemente abría que añadir un nuevo.
En caso de que nos interese, por ejemplo meter algún valor en el campo profile, simplemente abría que añadir un nuevo.
... $p = array("devicetype" => 05, "tag" => 'ibm'); $h = array( 'host' => $d["name"], 'useip' => 0, 'port' => 10050, 'dns' => $d["dns"], 'ip' => '0.0.0.0', 'groups' => $g, 'templates' => $t, 'profile' => $p ); $r = CHost::create($); ...
No hay comentarios :
Publicar un comentario