Changelog 2.6.0.16881 -> 2.6.0.16937 ==================================== [UPD] waptconsole build waptagent: option to merge all parameters from "default" json configuration * allow to embed all potential configuration parameters in addition to those currently editable in the form. * add a popupmenu action to show the json config which will be stuffed with waptsetup * add use_downloader param to dynamic config form * this can be a dangerous option, as user does not immediatly see the content of json. So json is opened right after build for checking, and the popup menu Ctrl+Maj+J allow to see the merged config [IMP] improve wapt-get command line feedback * update tsynlog loglevel with --loglevel switch. [IMP] wapt-get: add local-login to get a local token for tests * take in account a WAPTSERVICE_TOKEN environment variable * add a --waptservice-token option * don't require server auth for server-request unless server requires it with a 401 * improves login prompts, print them in StdErr * updates to wapt-get search and list text templates * waptserver: OTP hint in authenticate realm [FIX] local db param: be sure to escape '"' in param db json value [UPD] waptwua: additional registry settings to prevent internet access in wsus mode * add wu_server key in WUAServerStatus report * add last_scan_service * add scan_service and wsus_server dynamic config * add Error Code column for windows updates install history * try to keep error msg and code for each update installation [FIX] waptwua: don't apply settings to registry if waptwua.enabled is None (= don't change) * apply registry and service settings to waptwua if reload_config * create registry keys SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate and SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU * set FillEmptyContentUrls=1 [FIX] waptself: regression on empty categories combo [IMP] waptwua: add intranet WSUS scan mode with direct_download using UpdateDownloader instead of CopyToCache * new "wsus_server" parameter to specifiy WSUS server when "scan_service=WSUS" in [waptwua] wapt-get.ini section * waptwua: improve errors logging * pywaptwua: disable debug log for callbacks [IMP] removed use of cpu_info python module which starts a secondary python process for #10087 * add waptlicences cpu_infos_text and system_infos_summary [FIX] waptconsole trying to launch explorer in a strange user directory windows subdirectory * use GetEnvironmentVariableUTF8('WINDIR') for GetWindowsFolder instead of GetSpecialFolderLocation(CSIDL_WINDOWS) [FIX] waptconsole: violation access in reporting queries in some cases [FIX] waptagent write_audit_data insert: handle conflicts on id key * if several _different_ processes write audit data in the same second, id calculation is handled by db * improve max_count and expiration_date handling * use a time based id for audit_data * handle properly audit_data if host is reformated after registration on server * send max audit value_date as iso date in the hashes the same way other hashes are handled * added a higher resolution now_isodate_utc() function * added a hack to prevent now_isodate_utc returning 2 times the same value in case of high frequency calls [FIX] waptserver hostauditdata: unique index for the .on_conflict('update' to handle conflicts on (host_id,value_id) and avoid duplicating rows * on_conflict update instead of ignore * force send audit_data if previous server hash of audit_data did not not look like a date (for backward compat) [FIX] regression on faked host_organizational_unit_dn * host_dn must be calculated from CN=<computer_name>,<host_organizational_unit_dn> in this case * waptwua: reworked install_callback [UPD] don't zero fill password in waptlicences "wapt_local_json_get" and wapt_local_login" helpers * python str was zero filled too ... [NEW] python waptlicences wapt_local_json_get imporved and new 'wapt_local_login" helper [UPD] add loglevel_waptwua to dynamic configuration form [FIX] missing proxy in _waptwua_on_get_repo_url callback result * bad force argument for download_updates() [FIX] breaking change: don't use wincomputername() api for windows host computer_name inventory. * use get_computer_name() instead. [FIX] waptwua regression : waptwua repo url calc... * fix registry keys with faulty ending spaces * pywaptwua: code cleanup * UpdateServerStatus proxy callback: ensure we have the GIL before calling the python code * restore threads in installed_windows_updates() and update_history() long running queries. * waptwua: registry settings cleanup * pywapwua GIL management tweaking [NEW] waptwua : load an optional download_urls override map from pf32\wapt\waptwua\download_urls_patches.json * {"c0fef64e-5cc8-468a-bab8-2e70ceecc203_100": ["https://catalog.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/db0d5972-d5ac-4706-ae45-d2fb38680308/public/windows11.0-kb5050021-x64_d1c06c1c0d32a7ff8879f1e2a386d26df113a227.msu"]} * add a "scan_service" parameter to scan using WU or MU [NEW] waptwua : add a callback in waptwua to override the download_urls associated with an IUpdate instance * to hard code in python some MSU urls for win11 23H2 for example [IMP] peercache: enhanced logged content in verbose mode * peercache: avoid mdSeq false positive error [IMP] waptserver register endpoint: optionaly returns configurations on register * should allow to apply configurations right after registration [IMP] Remove sudo in postconf