Thursday, 26 January 2017

Scripts to Compare baseline configurations among different environments

I have tried to write few scripts to capture the configurations of different environments , which may helpful to compare it later to find out any changes done ..

I have started with BPEL propeties , B2B Properties , SOA Administration configuration and general WLS server level configurations. you may add more based on your requirements.

I have copied my scripts below.

Script 1:

from java.io import FileInputStream
from java.lang import *
from java.util import Date
from java.util import HashMap
from java.lang import Runtime
from java.util import Arrays
from java.lang import System


#passWord=sys.argv[1]
env=sys.argv[1]

propInputStream = FileInputStream(env + ".properties")

configProps = Properties()
configProps.load(propInputStream)
hostName=configProps.get("domain.adminHost")
portNo=configProps.get("domain.adminPort")
adminUserName=configProps.get("domain.adminUserName")
adminURL="t3://" + hostName + ":" + portNo

connect(userConfigFile='/u01/weblogic/etc/admin_config.secure', userKeyFile='/u01/weblogic/etc/admin_key.secure', url='t3://AdminServerURL:7001')

#JTA Time-out , Completion Timeout, Maximum Resource Requests on a Server , Front-End hostname, Front-End port, LDAP, Enable Exalogic Optimizations, Enable Administration Port, Production Mode, Archive Configuration Count, Configuration Archive Enabled


#############################################################################
def JTAConfigurations():

try:
print 'Soa weblogic domain configurations:';
cd('/JTA/soa_domain');
print 'JTA Time-out', cmo.getTimeoutSeconds();
print 'Completion Timeout', cmo.getCompletionTimeoutSeconds();
print 'Maximum Resource Requests on a Server', cmo.getMaxResourceRequestsOnServer();
except:

       print 'Exception while setting B2B properties !';

#############################################################################

def GeneralConfigurations():

try:
print 'General configurations of weblogic ';
cd('/Clusters/soa_cluster')
print 'Front-End hostname : ', cmo.getFrontendHost()
       print 'Front-End port : ', cmo.getFrontendHTTPPort()
cd('/')
                print 'Archive Configuration Count :', cmo.getArchiveConfigurationCount();
print 'Enable Exalogic Optimizations :', cmo.getExalogicOptimizationsEnabled();
                print 'Enable Administration Port :', cmo.getAdministrationPortEnabled();
print 'Production Mode :', cmo.getProductionModeEnabled();

except:
print 'Exception while retriving GeneralConfigurations !';


###################################################################

def B2Bproperties():

    try:

        print 'Setting B2B properties...';

domainRuntime()
B2BConfigobj = ObjectName('oracle.as.soainfra.config:Location=wls_soa11,name=b2b,type=B2BConfig,Application=soa-infra')
print 'Common Properties for soa_server1'
B2Bproperties = mbs.getAttribute(B2BConfigobj,'Properties')
        for element in B2Bproperties:
                print element.get('name'),"=",element.get('value')
    except:

        print 'Exception while setting B2B properties !';

        dumpStack();


#################################################################

def soaSuiteConfigurations():

try:

domainRuntime()
SOAcommonPropertiesObj = ObjectName('oracle.as.soainfra.config:Location=wls_soa11,name=soa-infra,type=SoaInfraConfig,Application=soa-infra')
                SOAcommonproperties = mbs.getAttribute(SOAcommonPropertiesObj,'GlobalTxMaxRetry')
print 'Audit level',"=", mbs.getAttribute(SOAcommonPropertiesObj,'AuditLevel')
print 'ServerURL',"=", mbs.getAttribute(SOAcommonPropertiesObj,'ServerURL')
print 'OracleWebserviceChunkSize',"=", mbs.getAttribute(SOAcommonPropertiesObj,'OracleWebserviceChunkSize')
print 'OracleWebservicesDoNotChunk',"=", mbs.getAttribute(SOAcommonPropertiesObj,'OracleWebservicesDoNotChunk')
print 'HttpServerURL',"=",  mbs.getAttribute(SOAcommonPropertiesObj,'HttpServerURL')
print 'HttpsServerURL',"=", mbs.getAttribute(SOAcommonPropertiesObj,'HttpsServerURL')
print 'EdnJmsMode',"=", mbs.getAttribute(SOAcommonPropertiesObj,'EdnJmsMode')

except:
print 'Exception while retriving SOA COMMON Properties !';



#################################################################

def bpelConfiguration():
try:

domainRuntime()
bpelConfigurationObj = ObjectName('oracle.as.soainfra.config:Location=wls_soa11,name=bpel,type=BPELConfig,Application=soa-infra')
print 'Disable BPEL Monitors and Sensors',"=",  mbs.getAttribute(bpelConfigurationObj,'DisableSensors')
print 'Audit level',"=", mbs.getAttribute(bpelConfigurationObj,'AuditLevel')
print 'Dispatcher System Threads',"=", mbs.getAttribute(bpelConfigurationObj,'DispatcherSystemThreads')
print 'Dispatcher Invoke Threads',"=", mbs.getAttribute(bpelConfigurationObj,'DispatcherInvokeThreads')
print 'Dispatcher Engine Threads',"=", mbs.getAttribute(bpelConfigurationObj,'DispatcherEngineThreads')
print 'AsyncAuditBatchSize (Exalogic only)',"=", mbs.getAttribute(bpelConfigurationObj,'AsyncAuditBatchSize')
print 'AsyncAuditPersisterThreads',"=", mbs.getAttribute(bpelConfigurationObj,'AsyncAuditPersisterThreads')
print 'AsyncAuditQueueSize',"=", mbs.getAttribute(bpelConfigurationObj,'AsyncAuditQueueSize')
print 'AuditStorePolicy',"=", mbs.getAttribute(bpelConfigurationObj,'AuditStorePolicy')
print 'MaximumNumberOfInvokeMessagesInCache',"=", mbs.getAttribute(bpelConfigurationObj,'MaximumNumberOfInvokeMessagesInCache')
print 'RecurringMaxMessageRaiseSize',"=", mbs.getAttribute(bpelConfigurationObj,'RecurringMaxMessageRaiseSize')
print 'StartupMaxMessageRaiseSize',"=", mbs.getAttribute(bpelConfigurationObj,'StartupMaxMessageRaiseSize')
       RecoverConfigProperties = mbs.getAttribute(bpelConfigurationObj,'RecoveryConfig')
for element in RecoverConfigProperties:
print element.get('itemName')





except:
print 'Exception while retriving BPEL Properties !';


#################################################################

def SOA_weblogic_Servers_configurations():
try:
domainConfig()
managedServers=cmo.getServers()
for server in managedServers:
ServerName = server.getName();
        cd("/Servers/" + ServerName )
print 'Server Name : ', "=", ServerName;
print '  Complete Message Timeout',"=", cmo.getCompleteMessageTimeout();
print '  Maximum Message Size',"=", cmo.getMaxMessageSize();
print '  Idle Connection Timeout',"=", cmo.getIdleConnectionTimeout();
print '  MaxHTTPMessageSize',"=", cmo.getMaxHTTPMessageSize();
## print '  Weblogic Plug-In Enabled',"=", cmo.getWeblogicPluginEnabled();
print '  Maximum Open Sockets',"=", cmo.getMaxOpenSockCount();
print '  Stuck Thread Max Time',"=", cmo.getStuckThreadMaxTime();
print '  AcceptBacklog',"=", cmo.getAcceptBacklog();
print '  Login Timeout',"=", cmo.getLoginTimeoutMillis();
print '  MuxerClass',"=", cmo.getMuxerClass();





except:
print 'Exception while retriving soa weblogic configurations :';

###################################################################


print 'JTA Configuration:'
print '------------------'
JTAConfigurations()
print 'General Configurations:'
print '-----------------------'
GeneralConfigurations()
print 'B2Bproperties:'
print '--------------'
B2Bproperties()
print 'Soa Suite Configurations:'
print '-------------------------'
soaSuiteConfigurations()
print 'BPEL Configurations:'
print '--------------------'
bpelConfiguration()
print 'Weblogic Server configurations:'
print '------------------------------:'
SOA_weblogic_Servers_configurations()


Script 2: File all JMS details.

from java.io import FileInputStream
from java.lang import *
from java.util import Date
from java.util import HashMap
from java.lang import Runtime
from java.util import Arrays
from java.lang import System

env=sys.argv[1]

propInputStream = FileInputStream(env+".properties")

configProps = Properties()
configProps.load(propInputStream)
hostName=configProps.get("domain.adminHost")
portNo=configProps.get("domain.adminPort")
jdbcDatasources=configProps.get("jdbc.datasources")
listOfDatasources = jdbcDatasources.split(',')
listofposiaConnFactories = configProps.get("jms.posia.connection.factories")
POSIAJMSModule=configProps.get("jms.posia.module")
HL7Module=configProps.get("jms.hl7.module")
listOfConnectionFactory = listofposiaConnFactories.split(',')
adminUserName=configProps.get("domain.adminUserName")
adminURL="t3://" + hostName + ":" + portNo
connect(userConfigFile='/u01/weblogic/etc/admin_config.secure', userKeyFile='/u01/weblogic/etc/admin_key.secure', url='t3://AdminServerURL:7001')

cd('/')
for jmsConnFactory in listOfConnectionFactory:

print '--------------------------------------'
print "JMS Name : " + jmsConnFactory
print '--------------------------------------'
cd('/JMSSystemResources/' + MyJMSModule + '/JMSResource/' + MyJMSModule + '/ConnectionFactories/' + jmsConnFactory)
print " "
print "1) JNDI Name : " + cmo.getJNDIName()
print "  "
print "2) JMS Connection factory client params : "
cd('ClientParams/' + jmsConnFactory)
ls()
print "3) JMS Connection factory Transaction param : "
cd('../../TransactionParams/' + jmsConnFactory)
ls()

3) script 3 - Data source details. 

from java.io import FileInputStream
from java.lang import *
from java.util import Date
from java.util import HashMap
from java.lang import Runtime
from java.util import Arrays
from java.lang import System


env=sys.argv[1]

propInputStream = FileInputStream(env+".properties")

configProps = Properties()
configProps.load(propInputStream)
hostName=configProps.get("domain.adminHost")
portNo=configProps.get("domain.adminPort")
jdbcDatasources=configProps.get("jdbc.datasources")
listOfDatasources = jdbcDatasources.split(',')
adminUserName=configProps.get("domain.adminUserName")
adminURL="t3://" + hostName + ":" + portNo

connect(userConfigFile='/u01/weblogic/etc/admin_config.secure', userKeyFile='/u01/weblogic/etc/admin_key.secure', url='t3://AdminServerURL:7001')

cd('/')
for dsName in listOfDatasources:
print '--------------------------------------'
print "DataSource Name : " + dsName
print '--------------------------------------'
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCConnectionPoolParams/' + dsName)
ls()


No comments:

Post a Comment