Howdy,
Prior to 2.5, to get try/except/finally behavior you need to nest two try
blocks - one of the so-called 'python warts'. Here is a patch to client.py that
ought to let it work with earlier pythons.
Dan M.
Index: client.py
===================================================================
--- client.py (revision 732752)
+++ client.py (working copy)
@@ -162,21 +162,22 @@
sys.exit(-1)
args = map(lambda x: eval(x), sys.argv[1:])
try:
- res = f(*args)
- if (os.getenv("USE_HTML_TABLES")):
- try:
- makeHTMLTable(res)
- except:
+ try:
+ res = f(*args)
+ if (os.getenv("USE_HTML_TABLES")):
+ try:
+ makeHTMLTable(res)
+ except:
+ pprint(res)
+ else:
pprint(res)
- else:
- pprint(res)
- except TashiException, e:
- print e.msg
- exitCode = e.errno
- except TypeError, e:
- print e
- print "\t" + getFunctionInfo(function)
- exitCode = -1
+ except TashiException, e:
+ print e.msg
+ exitCode = e.errno
+ except TypeError, e:
+ print e
+ print "\t" + getFunctionInfo(function)
+ exitCode = -1
finally:
client._transport.close()
sys.exit(exitCode)
On 1/8/09 7:34 AM, "Ryan, Michael P" <[email protected]> wrote:
I did a little more reading on the finally clause and it appears that it only
started working in it's current form on python2.5.
I installed CentOS 5.2 and I was able to get the same error message with python
2.4.3, but once I installed 2.5.4, the messages went away.
Can you try running the following and report the version numbers?
$ /usr/bin/env python
$ /usr/bin/python
If either reports 2.4.3, I think you only need to change the #! at the top of
the file (client.py) to point to python2.5
- Michael
________________________________
From: Ryan, Michael P [mailto:[email protected]]
Sent: Wednesday, January 07, 2009 5:54 PM
To: [email protected]
Cc: KunWang
Subject: RE: [question] getting tashi run smoothly
Those with_statement imports are unneccessary. I just committed a fix that
removes them. Just for reference, I am using Python 2.5.2.
Please try using trunk instead of the imported code (tashi/trunk instead of
tashi/import/tashi-intel-r399).
I'm not sure why "finally" would be considered a syntax error. I'm assuming
you didn't modify the code once you checked it out.
I'm currently downloading and installing CentOS 5 to test on and I will let you
know if I am able to reproduce the error.
The only other things I can think of checking are to revert to the older
version of python now that the with imports are removed and to make sure you
have identical files:
$ md5sum ./trunk/src/tashi/client/client.py
./import/tashi-intel-r399/src/tashi/client/client.py
de302c54d3236e468ba7c2e82d6ceafe ./trunk/src/tashi/client/client.py
7e9eabb435e989272a7a4d620f53f6ba
./import/tashi-intel-r399/src/tashi/client/client.py
- Michael
________________________________
From: KunWang [mailto:[email protected]]
Sent: Tuesday, January 06, 2009 7:37 PM
To: Ryan, Michael P
Cc: [email protected]
Subject: RE: [question] getting tashi run smoothly
Hello,
Thanks for your help.
I am using Xen on CentOS 5.0 .
The default version of python is 2.4.3.
Following is the log when I was trying to do "make" under tashi-intel-r399
directory.
[r...@mvm tashi-intel-r399]# make
Building tashi.services...
File "./build.py", line 3
from __future__ import with_statement
SyntaxError: future feature with_statement is not defined
make: *** [src/tashi/services] Error 1
Then I installed newer version of Python(Python 2.5.4)
The error happened in different place.
[root@ mvm tashi-intel-r399]# make
Building tashi.services...
Generating Python code for 'services.thrift'...
Copying generated code to 'tashi.services' package...
Generatign Python code for 'messagingthrift'...
Copying generated code to 'tashi.messaging.messagingthrift' package...
Generating client symlinks...
File "../src/tashi/client/client.py", line 163
finally:
^
SyntaxError: invalid syntax
make: *** [bin/getInstances] Error 1
Does tashi require particular version of Python?
By the way, thrift is available on my machine.
Thanks again,
Kun
From: Ryan, Michael P [mailto:[email protected]]
Sent: Monday, January 05, 2009 11:28 AM
To: KunWang
Cc: [email protected]
Subject: RE: [question] get tashi run smoothly
Using migration in Tashi is dependent on using the migration provided by the
VMM underneath it. Are you using Qemu/KVM or Xen? If you are using Qemu/KVM,
you need to be aware of some of the limitations inherent in that VMM's
implementation of live migration (the disk image has to be served from the same
file server, etc.).
The Makefile exists to reorganize the source tree to be usable -- as you
stated, python is not a compiled language. It also uses thrift to dynamically
create some python code. I suspect you would see many errors if you didn't
have thrift installed. Thrift is another Apache Incubator project
(http://incubator.apache.org/thrift/).
I'm glad to see you're trying to use Tashi and I'm glad to help you however I
can. If you need more specific directions, we're working on some, but in the
mean time, please send any error messages you are getting so that I can respond
to those individually. The only request I have is that you send questions like
this to [email protected], which is CC'd on this message. Thanks.
- Michael
________________________________
From: KunWang [mailto:[email protected]]
Sent: Friday, January 02, 2009 11:29 AM
To: Ryan, Michael P
Subject: [question] get tashi run smoothly
Dear Michael,
I watched your talk on
http://blogs.intel.com/research/2008/10/cloud_computing_in_pittsburgh.php.
>From your talk, I find you are already using tashi for migration. However, I
>encountered some problem
when I was trying to use tashi to establish cloud computing environment in my
lab.
I checked out my source code from
http://incubator.apache.org/tashi/source_code.html
I followed this tutorial to use tashi
http://opencirrus.intel-research.net/index.php/Using_Tashi
I found there are several Makefiles in the source tree. Except for the
utilities, many error happened when
I was trying to use GNU make to "compile" the source code.
Since Python is an interpretive language, I found the Makefile didn't do too
much concrete job. I can't find
enough documents on that website on installing tashi.
I am very interested in tashi. Could you please give me some advice to get
tashi run smoothly like you?
Thanks in advance.
Regards,
Kun