#!/usr/bin/python
# $ORACLE_HOME and other os variables need to be set prior.
import os
import re
import sys
import subprocess as sub
from subprocess import Popen, PIPE, call
l_os_env=os.environ.copy()
def TupleToString(tup):
str =''.join(tup)
return str
def tns_test(tnsentry):
try:
l_list1 =[]
l_test_runstr='tnsping ' + tnsentry
l_test_tns=sub.Popen(l_test_runstr, env=l_os_env, shell=True, stdout=sub.PIPE, stderr=sub.PIPE)
l_tns_out = l_test_tns.communicate()
l_out = tnsentry + ' ' + TupleToString(l_tns_out).split('\n')[11]
except KeyboardInterrupt:
exit(1)
except:
l_out = tnsentry + ' something went wrong'
return l_out
os.chdir('full_path_of_tns_admin_directory')
tns = open('tnsnames.ora', 'r') # open file
sList = tns.read() # read file into string
sList = re.sub("#.*\n","",sList) # strip all comments
sList = re.sub("\(.*\n","",sList) # remove "(" to end of line
sList = re.sub("\)","",sList) # clean up ")"
sList = re.sub(" ","",sList) # remove spaces
sList = re.sub("\n","",sList) # remove carriage returns
sList = re.sub("=$","",sList) # remove last "="
sList = sList.split("=") # create list
tns.close()
#print '\n'.join(sList)
#print(sList)
#print sList[4]
for i in sList:
print(tns_test(i))