In sid guess module SERVICE_NAME instead of SID is used in DSN.
It is correct to use SID for it:
link += "(CONNECT_DATA=(SID=%s)))"
By the way the is special function for create DSN in cx_Oracle called cx_Oracle.makedsn (see patch below).
Not full data recieved in response of TNS command.
For example, when sid command is executed inguma didn't get all necessary data from Oracle server
Bug is in modules/gather/CTnsCmd.py.
Watch patch below for details:
--- ./CTnsCmd.py.old 2009-05-22 18:27:45.000000000 +0400
+++ ./CTnsCmd.py 2009-05-22 17:55:54.000000000 +0400
@@ -163,8 +163,11 @@
for i in range(1...