Page 1 sur 1
need_install() got an unexpected keyword argument 'force'
Posté : 17 mai 2016 - 16:32
par Floflobel
Bonjour,
J'ai modifié tout mes paquets pour les améliorer et je me retrouve avec cette erreur sur pas mal de poste :
J'avais vue sur un autre topic qu'un patch était proposé sur le git. Mais je n'avoue pas avoir compris comment le patcher.
J'ai bien remplacé les bonnes lignes. Mais il faut recompiler le projet? Et envoyer le fichier sur tous les postes?
En vous remerciant,
Re: need_install() got an unexpected keyword argument 'force'
Posté : 17 mai 2016 - 23:09
par sfonteneau
Je ne pense pas que le patch corrige cela a première vu.
Peut t’ont voir la structure du paquet pour comprendre le problème ?
Avoir la version du client wapt ?
Si c'est un problème avec les nouvelle fonction install_exe_if_needed et install_msi_if_needed
Cela signifierais si j'ai bien compris que l'argument force fournis a la commande need_install est mal compris :
https://github.com/tranquilit/WAPT/blob ... s.py#L3407
Simon
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 10:24
par Floflobel
Bonjour,
Les différents clients qui ont ce problème sont en version 1.3.5.0. Si ce n'est pas le cas je force la mise à jour.
Voici un des package en erreur :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
import urllib
from setuphelpers import *
uninstallkey = []
# Name of the software
namesoftware='soft'
# Uninstall register key
# For OS 64bits and Software 32bits version : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
# For OS 32 bits or 64bits (and Software 64bits version) : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
ukey='{00000000000000}'
# Version of software
version='3.19'
# Unzip folder define in Winrar
foldertmp='C:\Temp'
# Name of execute file
execfile='soft.exe'
# Insert the silent parameters
silentparameters='/install /silent /norestart'
# Link to download the software
downloadlink='http://repo/exe/soft.exe'
# Name of installation files
downloadfilename='soft.exe'
def install():
print(foldertmp + '\\' + execfile)
if need_install(ukey,min_version=version,force=False):
if isfile(foldertmp + '\\' + execfile):
print('Installation files are already present - Installing ' + namesoftware)
install_exe_if_needed(foldertmp + '\\' + execfile, silentflags=silentparameters, key=ukey, min_version=version, accept_returncodes=[0], timeout=600)
#remove_tree(foldertmp)
else:
print('Download and unzip ' + namesoftware)
os.mkdir(foldertmp)
urllib.urlretrieve (downloadlink, foldertmp + '\\' + execfile)
#wget(downloadlink,downloadfilename)
#run(downloadfilename)
print('Installing ' + namesoftware)
install_exe_if_needed(foldertmp + '\\' + execfile, silentflags=silentparameters, key=ukey, min_version=version, accept_returncodes=[0], timeout=600)
#remove_tree(foldertmp)
else:
print('The software is already installed in this version or newer version')
Erreur : TypeError: need_install() got an unexpected keyword argument 'force'
J'ai remplacé le nom et la ukey car c'est un logiciel privé. Mais l'erreur revient sur plusieurs packages.
J'utilise bien install_exe_if_needed & install_msi_if_needed.
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 11:12
par sfonteneau
Je sais pas si ça va résoudre ton soucis mais déjà je ferais plus comme ça:
Code : Tout sélectionner
import inspect
caller_globals = inspect.stack()[1][0].f_globals
WAPT = caller_globals.get('WAPT',None)
force = WAPT and WAPT.options.force
if need_install(ukey,min_version=version,force=force):
Ça permet que l'option --force fonctionne pour ton paquet (je reprend l'exemple du setuphelper) ici:
https://github.com/tranquilit/WAPT/blob ... s.py#L3351
Simon
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 11:44
par Floflobel
Code : Tout sélectionner
install_exe_if_needed(foldertmp + '\\' + execfile, silentflags=silentparameters, key=ukey, min_version=version, accept_returncodes=[0], timeout=600, force=force)
J'ajoute donc force=force ? Et je ne change rien d'autre ?
Ou dois-je utiliser le need_install ?
Cordialement,
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 12:03
par sfonteneau
Plus comme ca :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
import urllib
from setuphelpers import *
uninstallkey = []
# Name of the software
namesoftware='soft'
# Uninstall register key
# For OS 64bits and Software 32bits version : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
# For OS 32 bits or 64bits (and Software 64bits version) : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
ukey='{00000000000000}'
# Version of software
version='3.19'
# Unzip folder define in Winrar
foldertmp='C:\Temp'
# Name of execute file
execfile='soft.exe'
# Insert the silent parameters
silentparameters='/install /silent /norestart'
# Link to download the software
downloadlink='http://repo/exe/soft.exe'
# Name of installation files
downloadfilename='soft.exe'
def install():
print(foldertmp + '\\' + execfile)
import inspect
caller_globals = inspect.stack()[1][0].f_globals
WAPT = caller_globals.get('WAPT',None)
force = WAPT and WAPT.options.force
if need_install(ukey,min_version=version,force=force):
if isfile(foldertmp + '\\' + execfile):
print('Installation files are already present - Installing ' + namesoftware)
install_exe_if_needed(foldertmp + '\\' + execfile, silentflags=silentparameters, key=ukey, min_version=version, accept_returncodes=[0], timeout=600)
#remove_tree(foldertmp)
else:
print('Download and unzip ' + namesoftware)
os.mkdir(foldertmp)
urllib.urlretrieve (downloadlink, foldertmp + '\\' + execfile)
#wget(downloadlink,downloadfilename)
#run(downloadfilename)
print('Installing ' + namesoftware)
install_exe_if_needed(foldertmp + '\\' + execfile, silentflags=silentparameters, key=ukey, min_version=version, accept_returncodes=[0], timeout=600)
#remove_tree(foldertmp)
else:
print('The software is already installed in this version or newer version')
J'ai des gros doute sur le fait que ce soit ça mais bon ...
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 12:26
par Floflobel
Je viens d'effectuer le test rien ne bouge avec ces quelques lignes en plus.
J'ai bien peur qu'il va falloir attendre le retour de quelqu'un de l'équipe de dev.
En tous cas merci pour ton aide.
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 13:14
par sfonteneau
Hum oui désolé je ne voie pas le soucis
Ça le fait sur tous ?
Installation par le service ou ligne de commande ?
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 16:13
par Floflobel
Cela arrive de manière aléatoire .. Sur des paquets de la même structure.
Tous les postes ne sont pas impacté mais celà risque d'arriver petit à petit..
Installation via WAPT-EXIT donc grâce à l'agent.
Serais-tu comment je peux contacter un développeur ?
Re: need_install() got an unexpected keyword argument 'force'
Posté : 18 mai 2016 - 17:07
par sfonteneau
Ils passent normalement ici régulièrement ou sur la mailing liste.
Sinon tu peux prendre directement un ticket chez eux.
Je crois avoir compris ton problème.
Le message d'erreur dit que la fonction need_install ne comprend pas pourquoi tu lui passe le paramètre force
Je suis presque persuadée que ton client est en version 1.2.3.3 (ou moins)
Voici la fonction need_install dans la version 1.2.3.3:
https://github.com/tranquilit/WAPT/blob ... s.py#L3002
Et dans la dernière version :
https://github.com/tranquilit/WAPT/blob ... s.py#L3116
Il faudrait vérifier sur le wapt client (sur la machine qui ne fonctionne pas) si dans le setuphelper la fonction need_install ressemble bien a ce que je t'ai envoyée au dessus
Parfois les mise a jour des client wapt fonctionne mal, le paquet apparaît comme installer mais le client wapt n'est pas dans la dernière version dispo.
Dit moi mais je suis presque persuadée que c'est ça.
Simon