En Tue, 16 Dec 2008 17:21:35 -0200, Andrew <andrew.replo...@gmail.com> escribió:
On Dec 16, 12:50 pm, Christian Heimes <li...@cheimes.de> wrote:
Andrew schrieb:

> I'm running into a strange situation with getting incorrect
> returncodes / exit status from python subprocess.call. I'm using a
> python script (runtime 2.6.1 on windows) to automate the deploy of
> java applications to glassfish application server. Below is an example

I've removed shell=True, unfortunately, if I structure the call like:

call(["c:/glassfish/bin/asadmin.bat", "list-system-properties", "--
host
mydomain", "--port 4848", "--user admin", "server-01"])

It doesn't seem to recognize any arguments after list-system-
properties.

Should be:

call(["c:/glassfish/bin/asadmin.bat", "list-system-properties", "--host",
"mydomain", "--port", "4848", "--user", "admin", "server-01"])

*Every* argument should be an item in the list (your way, "--port 4848" becomes a single argument, not two: option plus value)
(This is independent of your other issue)

If I structure it like:

call("c:/glassfish/bin/asadmin.bat "+"list-system-properties --host
mydomain --port 4848 --user admin server-01")

Then it executes correctly but still gives invalid returncode of 0
when it fails instead of 1.

A similar example works fine for me:

C:\temp>type ret.c
#include <stdlib.h>

int main(int argc, char* argv[])
{
  return atoi(argv[1]);
}

C:\temp>ret 5

C:\temp>echo %errorlevel%
5

C:\temp>type testret.bat
ret %1

C:\temp>testret 3

C:\temp>ret 3

C:\temp>echo %errorlevel%
3

C:\temp>type testret.py
from subprocess import call
ret = call(["testret.bat", "42"])
print "testret.bat exit code =", ret

C:\temp>python testret.py

C:\temp>ret 42
testret.bat exit code = 42

C:\temp>python -V
Python 2.6

C:\temp>ver

Microsoft Windows XP [Versión 5.1.2600]

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to