[], NOERR => [], ]; if (empty($names)) { return []; } 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 = [ ERR_GENERIC => [], NOERR => [], ERR_EXIST => [], ]; if (empty($components)) { return []; } 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 = []; } 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', ['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 = []; 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; }