Je d=E9bute en programmation objet et je souhaite utiliser le module
cmd.
Lors de l'ex=E9cution ma fonction do_remote auquel je passe pourtant 2
arguments, j'ai une lev=E9 d'exception.
J'ai bien l'impression que c'est une erreur toute b=EAte mais je tourne
en rond pour la r=E9soudre.
#------ code
import cmd
class CLI(cmd.Cmd):
def do_remote(self, user, node):
print "connexion ssh user %s sur noeud %s" % user, node
cli =3D CLI()
cli.cmdloop()
#----- fin code
--- execution du script
$ python shelladmin.py
(Cmd) remote root node8
Traceback (most recent call last):
File "shelladmin.py", line 19, in <module>
cli.cmdloop()
File "/usr/lib/python2.5/cmd.py", line 142, in cmdloop
stop =3D self.onecmd(line)
File "/usr/lib/python2.5/cmd.py", line 219, in onecmd
return func(arg)
TypeError: do_remote() takes exactly 3 arguments (2 given)
C'est pourtant clair : La méthode do-remote demande 3 argument lors de son appel. Or une tentative d'appel avec seulement 2 argument a été faite. C'est mal. Change ton code comme ceci :
import cmd
class CLI(cmd.Cmd): def do_remote(self, param): print param #print "connexion ssh user %s sur noeud %s" % user, node
C'est pourtant clair : La méthode do-remote demande 3 argument lors de son appel. Or une tentative d'appel avec seulement 2 argument a été faite. C'est mal.
Change ton code comme ceci :
import cmd
class CLI(cmd.Cmd):
def do_remote(self, param):
print param
#print "connexion ssh user %s sur noeud %s" % user, node
C'est pourtant clair : La méthode do-remote demande 3 argument lors de son appel. Or une tentative d'appel avec seulement 2 argument a été faite. C'est mal. Change ton code comme ceci :
import cmd
class CLI(cmd.Cmd): def do_remote(self, param): print param #print "connexion ssh user %s sur noeud %s" % user, node