<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<h2>Changes 1.2.3 -> 1.3.4-rc2</h2>
<h1> </h1>
<h3><b>Setuphelpers :</b></h3>
<b> </b>Additional functions :<br>
<ul>
<li>local_drives : return list of local drives, with capacity and
available space </li>
<li> all_files : list all files of a directory, including files of
subdirectories (but not the directories themselves)</li>
<li> create_onetime_task : create a task in windows scheduler
which is run only one time (so is deleted after scheduled time)</li>
<li> installed_windows_updates : return list of installed updates,
indepently from WUA agent</li>
<li> <a
href="http://dev.tranquil.it/sphinxdocs/source/setuphelpers.html#setuphelpers.install_exe_if_needed">install_exe_if_needed</a>
: install conditionally an exe setup, checking minimum version,
uninstall key and force flag (<br>
</li>
<li> <a
href="http://dev.tranquil.it/sphinxdocs/source/setuphelpers.html#setuphelpers.install_msi_if_needed">install_msi_if_needed</a>
: install conditionally an msi, detect uninstall key and add it
to uninstallkey list of package</li>
<li> ensure_list : given a list or a string, always return a list,
or None if allowed. String is considered as a csv list. </li>
<li> registry_deletekey : Delete the key under specified registry
path and all its values</li>
<li> uninstall_key_exists : Return True if supplied uninstall key
exists eithe rin win32 or win64 part of uninstall registry.</li>
<li> reg_enum_subkeys : list the sub keys (= sub directories) of
an opened key</li>
<li> reg_enum_values : list the value names associated with a
registry key (opened with reg_openkey_noredir for example)</li>
<li> win_startup_info : return list of commands launched at
windows startup in run registry key and common startup folder.</li>
</ul>
Changes :<br>
<ul>
<li> ensure_unicode : failover with replace for all types of data</li>
<li> wgets and wget : can optionnaly verify certificates. and use
wapt user agent http headers, with no-cache pragma. raise
exception earlier</li>
</ul>
<h3><b>Core</b></h3>
<ul>
<li>FIX: incorrect uninstallkey if nested call WAPT.install
inside surrounding setup.install. <a
class="moz-txt-link-freetext"
href="https://roundup.tranquil.it/wapt/issue605"><a class="moz-txt-link-freetext" href="https://roundup.tranquil.it/wapt/issue605">https://roundup.tranquil.it/wapt/issue605</a></a><br>
</li>
<li>better tolerance to encoding issues.<br>
</li>
<li>fix waptserver discovery with SRV dns record </li>
<li>add optional dnsdomain in wapt-get.ini. <br>
</li>
<li>add optional verify_cert option (default to False) for
waptserver access in wapt-get.ini</li>
<li>forget old host package if computer FQDN is changed</li>
<li>fix : check that there are no additional files in package
content not checksummed in manifest.sha1 when unzipping</li>
<li>check systematically that declared uninstallkeys are found in
registry after package install</li>
<li>allow session_setup to return a value different than None or
zero to indicate a RETRY at next session logon</li>
<li>optionally includes packages with status ERROR for
Wapt.is_installed(), WaptDB.installed_search,
WaptDB.installed_matching. CBB : installed_search included
errors by default in previous behaviour.</li>
</ul>
<h3><b>Waptconsole</b></h3>
<ul>
<li>optionally filter newest only package (latest version) in
waptconsole private repository or when importing from external</li>
<li> optionally filter newer than local packages in waptconsole
when importing from external</li>
<li> display size of packages in repository grids</li>
<li> reorganize settings dialog to focus on most important
parameters</li>
<li> allow several hosts and packages to be selected when cherry
picking install, remove or forget packages in waptconsole
inventory (cbb, user interface should be improved)</li>
<li> add wakeonlan feature for hosts running on same network as
main waptserver</li>
<li> check md5 when downloading packages with waptconsole to avoid
keeping incomplete or corrupted cached files</li>
<li> fix redirect from http to https not working in waptconsole</li>
<li> fix waptserver discovery with SRV dns record not working
properly in waptconsole</li>
</ul>
<br>
<h3><b>Waptservice</b></h3>
<ul>
<li>recheck waptserver authorized IP in waptservice if call failed
with restricted access (so that next call succeeds)</li>
<li>use create_onetime_task windows scheduler instead of AT
command to trigger a waptservice restart</li>
<li> better handling when computer often disconnect (sleep) or
change from one network to another network</li>
</ul>
<br>
<h3><b>Waptupgrade</b></h3>
<ul>
<li>authenticate systematically the waptagent.exe file with a
sha256 hash inside waptupgrade package or when using waptdeploy
downloader (requires change in the GPO if gpo is used to deploy
wapt automatically)</li>
<li>include waptagent.exe in waptupgrade package per default and
trigger a full waptagent.exe install (through a windows
scheduled task which uses waptdeploy) if upgrading from wapt
< 1.3.0.</li>
<li>waptdeploy requires now --hash= option. --wait enable
waptdeploy to wait for pending waptservice tasks to terminate
before upgrading wapt.<br>
</li>
</ul>
<h3><b>Wapt-get</b></h3>
<ul>
<li> handles waptservice local authentication for wapt-get to
allow install / remove as a non admin user.</li>
<li> add option to wapt-get --service to force use of http
webservice. default --direct for user members of computer
administrators group</li>
<li> can pass waptserver user and password to wapt-get command
line for automate package uploading tasks</li>
<li> guess package rootdir based on path of control in addition to
setup.py files for development wapt-get tasks like install,
remove, build-upload etc..</li>
<li> Fix command line parameters handling in wapt-get.exe</li>
</ul>
<br>
<h3><b>Waptserver</b></h3>
RPM package for waptserver on centos <br>
use huey task pool in waptserver instead of uwsgi for portability <br>
Fix waptserverpostconf not able to restart local waptservice
properly<br>
<br>
<h3><b>Global</b></h3>
python upgraded to 2.7.10<br>
many libraries upgraded (openssl, m2crypto, flask, psutils, etc...)<br>
<h2>Upgrade from 1.2.3<br>
</h2>
<b>Linux server upgrade</b><br>
With a server on Linux : <br>
ssh on waptserver<br>
<tt>cd</tt><tt><br>
</tt><tt>wget <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptrepo-1.3.4.deb">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptrepo-1.3.4.deb</a></tt><tt><br>
</tt><tt>wget <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptserver-1.3.4.deb">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptserver-1.3.4.deb</a></tt><tt><br>
</tt><tt>wget <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptsetup-1.3.4.deb">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptsetup-1.3.4.deb</a></tt><tt><br>
</tt><tt>dpkg -i </tt><tt>tis-wapt*.deb</tt><tt><br>
</tt><tt>apt-get -f install</tt><tt><br>
</tt><tt>wapt-serverpostconf</tt><tt><br>
</tt>-> default answer to all questions. <br>
<h3>Windows server upgrade</h3>
Download <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/waptserversetup.exe">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/waptserversetup.exe</a><br>
Install with admin rights.<br>
Launch server postconfiguration (obviously, don't recreate a new new
private key...)<br>
Don't create waptagent from waptserverpostconf but use waptconsole
option which provide waptagent and waptupgrade package.
waptserverpostconf creates only the waptagent.<br>
<h3>Wapt management host upgrade</h3>
on the wapt manage workstation (where the private key is defined)<br>
download <a class="moz-txt-link-freetext"
href="http://wapt/wapt/waptsetup-tis.exe">http://wapt/wapt/waptsetup-tis.exe</a>
from waptserver<br>
install with default options<br>
<h4> Build clients upgrade package</h4>
<b> </b>launch c:\wapt\waptconsole <br>
tools/Build waptagent<br>
-> build the waptagent.exe and xxx-waptupgrade.wapt package and
uplaod them to wapt server.<br>
<br>
include the built xxx-waptupgrade package in your base group package
or as a dependency of all host packages<br>
trigger upgrade on hosts<br>
<h4> <b>GPO update</b></h4>
<b> </b>copy waptdeploy.exe to the gp<br>
modify your waptdeploy GPO to include --hash= with the hash defined
in c:\wapt\waptupgrade\waptagent.sha256 and a --wait=15 for example.<br>
\\srvads\netlogon\waptdeploy.exe
--hash=5b5988012033e534b5352050bff7dece4840456225787b39dc1d00dfb9e75cd8<br>
(you can get this on linux too with the command "<tt>sha256sum
/var/www/wapt/waptagent.exe</tt>" )<br>
<h3>Pyscripter development / debug<br>
</h3>
The tis-python27 package no longer includes all the libraries of
Wapt.<br>
So you need to add a site-package dir to python init of Pyscripter
to be able to debug using Pyscripter.<br>
(see<a
href="http://dev.tranquil.it/wiki/WAPT_-_Mise_en_place_de_l%27environnement_de_d%C3%A9veloppement">
<a class="moz-txt-link-freetext" href="http://dev.tranquil.it/wiki/WAPT_-_Mise_en_place_de_l%27environnement_de_d%C3%A9veloppement">http://dev.tranquil.it/wiki/WAPT_-_Mise_en_place_de_l%27environnement_de_d%C3%A9veloppement</a></a>)<br>
<p style="box-sizing: border-box; margin: 0px 0px 10px; color:
rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial,
sans-serif; font-size: 14px; font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing: normal; line-height:
20px; orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: 1;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(255, 255, 255);">In PyScripter, Option Tools
/ Edit startup scripts, update file<span
class="Apple-converted-space"> </span><b style="box-sizing:
border-box; font-weight: bold;">python_init.py</b> with lines :<br>
</p>
<pre style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(245, 245, 245);">import site
site.addsitedir('c:/wapt/lib/site-packages')
</pre>
<br class="Apple-interchange-newline">
<br>
<br>
<br>
</body>
</html>