array(), NOERR => array()); if (empty($names)) { return array(); } foreach($names as $name) { // Add query to wmi_command switch ($wizard_mode) { case 'services': $wmi_query = 'SELECT state FROM Win32_Service WHERE Name="' . io_safe_output($name) . '"'; break; case 'processes': $wmi_query = 'SELECT Name FROM Win32_Process WHERE Name="' . io_safe_output($name) . '"'; break; case 'disks': $wmi_query = 'SELECT Freespace FROM Win32_LogicalDisk WHERE DeviceID ="' . io_safe_output($name) . '"'; break; } // Add the query to values $values['snmp_oid'] = io_safe_input($wmi_query); if($id_police != 0){ $new_module_configuration_data = "module_begin\nmodule_name " . $name . "\nmodule_type generic_data_string\nmodule_wmi " . $values['ip_target'] . "\nmodule_wmiquery " . $wmi_query . "\nmodule_wmiauth " . $values['plugin_user'] . "%" . $values['plugin_pass'] . "\nmodule_end"; $values['configuration_data'] = $new_module_configuration_data; $return = policies_create_module ($name, $id_police, $module_id, $values); } else{ $return = modules_create_agent_module ($id_agent, $name, $values); } if($return < 0) { $results[ERR_GENERIC][] = $name; } else { if ($id_police == 0) { if ($server_to_exec != 0) { $sql = sprintf("SELECT server_type FROM tserver WHERE id_server = %d", $server_to_exec); $row = db_get_row_sql ($sql); if ($row['server_type'] == 13) { $new_module_configuration_data = "module_begin\nmodule_name " . $name . "\nmodule_type generic_data_string\nmodule_wmi " . $values['ip_target'] . "\nmodule_wmiquery " . $wmi_query . "\nmodule_wmiauth " . $values['plugin_user'] . "%" . $values['plugin_pass'] . "\nmodule_end"; config_agents_add_module_in_conf($id_agent, $new_module_configuration_data); } } } $results[NOERR][] = $name; } } return $results; } function wmi_create_module_from_components($components, $values, $id_police=0, $module_id=0, $server_to_exec = 0) { $results = array(ERR_GENERIC => array(), NOERR => array(), ERR_EXIST => array()); if (empty($components)) { return array(); } foreach ($components as $component_id) { $nc = db_get_row ("tnetwork_component", "id_nc", $component_id); // Compatibilize the fields between components and modules table if($id_police == 0){ $nc['descripcion'] = $nc['description']; unset($nc['description']); $nc['nombre'] = $nc['name']; unset($nc['name']); } $nc['id_tipo_modulo'] = $nc['type']; unset($nc['type']); unset($nc['id_nc']); unset($nc['id_group']); if($id_police != 0){ unset($nc['id_modulo']); unset($nc['wizard_level']); } // Store the passed values with the component values foreach ($values as $k => $v) { $nc[$k] = $v; } // Put tags in array if the component has to add them later if(!empty($nc['tags'])) { $tags = explode(',', $nc['tags']); } else { $tags = array(); } unset($nc['tags']); // Check if this module exists in the agent if($nc['id_agente'] != ""){ $module_name_check = db_get_value_filter('id_agente_modulo', 'tagente_modulo', array('delete_pending' => 0, 'nombre' => $nc['nombre'], 'id_agente' => $nc['id_agente'])); } else{ $module_name_check = false; } if ($module_name_check !== false) { $results[ERR_EXIST][] = $nc["nombre"]; } else { if($id_police == 0){ $id_agente_modulo = modules_create_agent_module($nc["id_agente"], $nc["nombre"], $nc); } else{ $new_module_configuration_data = "module_begin\nmodule_name " . $nc['nombre'] . "\nmodule_type generic_data_string\nmodule_wmi " . $values['ip_target'] . "\nmodule_wmiquery " . io_safe_output($nc['snmp_oid']) . "\nmodule_wmiauth " . $values['plugin_user'] . "%" . $values['plugin_pass'] . "\nmodule_end"; $nc['configuration_data'] = $new_module_configuration_data; $id_agente_modulo = policies_create_module ($nc["name"], $id_police, $module_id, $nc); } if ($id_agente_modulo === false) { $results[ERR_GENERIC][] = $nc["nombre"]; } else { if ($id_police == 0) { if ($server_to_exec != 0) { $sql = sprintf("SELECT server_type FROM tserver WHERE id_server = %d", $server_to_exec); $row = db_get_row_sql ($sql); if ($row['server_type'] == 13) { $new_module_configuration_data = "module_begin\nmodule_name " . $nc['nombre'] . "\nmodule_type generic_data_string\nmodule_wmi " . $values['ip_target'] . "\nmodule_wmiquery " . $nc['snmp_oid'] . "\nmodule_wmiauth " . $values['plugin_user'] . "%" . $values['plugin_pass'] . "\nmodule_end"; config_agents_add_module_in_conf($nc["id_agente"], $new_module_configuration_data); } } } if(!empty($tags)) { // Creating tags $tag_ids = array(); foreach ($tags as $tag_name) { $tag_id = tags_get_id($tag_name); //If tag exists in the system we store to create it $tag_ids[] = $tag_id; } tags_insert_module_tag ($id_agente_modulo, $tag_ids); } $results[NOERR][] = $nc["nombre"]; } } } return $results; } ?>