# $Id$ provide hardware require hwdetection require mysql run_hardware_detect() { local serial="$1" local cmd local netcard_driver local networking local hostname local domain local graphic_driver local monitor_info local monitor_resolution local keymap local hwdetected local auth local i if [[ -z ${serial} ]] then decho "No serial given" return 1 fi # first check if hardware detect was already done hwdetected=$(mysqldo "select hwdetected from client_serials where serial=${serial};") if [[ ${hwdetected} = 1 ]] then decho "hardware detection already run, aborting" return 0 else decho "running hardware detection" fi nsslsay_queue_init nsslsay_queue_add "nocolors" nsslsay_queue_add "get hardware.detect driver netcard" netcard_driver=$(control_client "${serial}" run-queue) if [[ -n ${netcard_driver} ]] then decho "netcard_driver='${netcard_driver}'" import_resource cfg_network "${serial}" module "${netcard_driver}" else decho "no netcard_driver found" fi networking=$(mysqldo "select networking from cfg_network where serial=${serial};") if [[ -z ${networking} ]] || [[ ${networking} = NULL ]] then # set network to dhcp decho "networking='dhcp'" import_resource cfg_network "${serial}" networking "dhcp" fi hostname=$(mysqldo "select hostname from cfg_network where serial=${serial};") if [[ -z ${hostname} ]] || [[ ${hostname} = NULL ]] then # set hostname to MCORE_DEFAULT_HOSTNAME decho "hostname='${MCORE_DEFAULT_HOSTNAME}'" import_resource cfg_network "${serial}" hostname "${MCORE_DEFAULT_HOSTNAME}" fi domain=$(mysqldo "select domain from cfg_network where serial=${serial};") if [[ -z ${domain} ]] || [[ ${domain} = NULL ]] then # set domain to MCORE_DEFAULT_DOMAIN decho "hostname='${MCORE_DEFAULT_DOMAIN}'" import_resource cfg_network "${serial}" domain "${MCORE_DEFAULT_DOMAIN}" fi nsslsay_queue_init nsslsay_queue_add "nocolors" nsslsay_queue_add "get hardware.detect driver graphic" graphic_driver=$(control_client "${serial}" run-queue) if [[ -n ${graphic_driver} ]] then decho "graphic_driver='${graphic_driver}'" import_resource cfg_graphic "${serial}" module "${graphic_driver}" else decho "no graphic_driver found" fi nsslsay_queue_init nsslsay_queue_add "nocolors" nsslsay_queue_add "get hardware.detect info monitor" monitor_info=$(control_client "${serial}" run-queue) monitor_resolution="${monitor_info##*;}" if [[ -n ${monitor_resolution} ]] then decho "monitor_resolution='${monitor_resolution}'" import_resource cfg_graphic "${serial}" resolution "${monitor_resolution}" else decho "no monitor_resolution found" fi keymap=$(mysqldo "select keymap from cfg_input where serial=${serial};") if [[ -z ${keymap} ]] || [[ ${keymap} = NULL ]] then # set keymap to MCORE_DEFAULT_KEYMAP decho "keymap='${MCORE_DEFAULT_KEYMAP}'" import_resource cfg_input "${serial}" keymap "${MCORE_DEFAULT_KEYMAP}" fi # now setup some empty database entries if the does not exist for i in user root vnc do auth=$(mysqldo "select ${i} from client_auth where serial=${serial};") if [[ -z ${auth} ]] || [[ ${auth} = NULL ]] then decho "set empty ${i} pass" import_resource client_auth "${serial}" "${i}" "" fi done # update the hwdetected flags import_resource client_serials "${serial}" hwdetected 1 } set_hardware_detect() { local serial="${CLASS_ARGV[0]}" local cmd local netcard_driver local networking local hostname local domain local graphic_driver local monitor_info local monitor_resolution local hwdetected if [[ -z ${serial} ]] then eecho "No serial given" return 1 fi run_hardware_detect "${serial}" }