configureDCRulesNetworkDeployer

 

### configureDCRulesNetworkDeployer.py

import java.util as util
import java.io as javaio
import sys, java, traceback

global AdminConfig

def doIt(wodmHome, scriptDir, propertiesFile, clusterNodeName):

    cellName = java.lang.System.getProperty('local.cell')

    localizedMessages.printMessageWithParams('GBRPT0028I', [scriptDir])
    wasFullVersion = AdminTask.getNodeBaseProductVersion('[-nodeName '+clusterNodeName+']')

    dcLayoutDir = ""
    moduleSuffix = ""

    if wasFullVersion.find('8.0') != -1:
        print "WebSphere 8.0 detected ("+wasFullVersion+")"
        dcLayoutDir = "/teamserver/applicationservers/WebSphere8"
        moduleSuffix = "WAS8"
    if wasFullVersion.find('8.5') != -1:
        print "WebSphere 8.5 detected ("+wasFullVersion+")"
        dcLayoutDir = "/teamserver/applicationservers/WebSphere85"
        moduleSuffix = "WAS85"


    dcHome = wodmHome + dcLayoutDir

    props = util.Properties()
    localizedMessages.printMessageWithParams('GBRPT0026I', [propertiesFile])
    inside = props.load(javaio.FileInputStream(propertiesFile))

    # get the value from properties file
    clusterName = checkAndGetProperyValue(props, "wodm.dcrules.clusterName")

    dbType = checkAndGetProperyValue(props, "wodm.dcrules.db.type")
    jdbcDriverPath = checkAndGetProperyValue(props, "wodm.dcrules.db.jdbcDriverPath")
    dbName = checkAndGetProperyValue(props, "wodm.dcrules.db.name")
    dbHostname = checkAndGetProperyValue(props, "wodm.dcrules.db.hostname")
    dbPort = checkAndGetProperyValue(props, "wodm.dcrules.db.port")
    dbUser = checkAndGetProperyValue(props, "wodm.dcrules.db.user")
    dbPassword = checkAndGetProperyValue(props, "wodm.dcrules.db.password")

    datasourceName = "DecisionCenter - Datasource"
    jndiName = "jdbc/ilogDataSource"

    if dbType != "DB2" and dbType != "Oracle" and dbType != "MSSQL":
        raise RuntimeError, localizedMessages.getMessageWithParam('GBRPT0027E', [dbType])

    deployClusterTools.createCluster(cellName, clusterName, clusterNodeName, clusterNodeName + "-DCServer")
    deployClusterTools.updateVirtualHost(cellName, clusterNodeName, "")

    if dbType == "DB2":
        providerName = "DecisionCenter - DB2 Universal JDBC Driver Provider"
        jdbcProvider = datasource_utils.createDB2UniversalProvider(clusterNodeName, providerName, jdbcDriverPath, 0)
        if not len(AdminConfig.getid("/Node:" + clusterNodeName + "/JDBCProvider:" + providerName + "/DataSource:" + datasourceName)):
            datasource_utils.createDB2UniversalDatasource(jdbcProvider, datasourceName, jndiName, dbName, dbHostname, dbPort, dbUser, dbPassword)
        else:
            localizedMessages.printMessageWithParams('GBRPT0012W', [datasourceName])
    if dbType == "Oracle":
        providerName = "DecisionCenter - Oracle JDBC Driver Provider"
        jdbcProvider = datasource_utils.createOracleProvider(clusterNodeName, providerName, jdbcDriverPath, 0)
        if not len(AdminConfig.getid("/Node:" + clusterNodeName + "/JDBCProvider:" + providerName + "/DataSource:" + datasourceName)):
            datasource_utils.createOracleDatasource(jdbcProvider, datasourceName, jndiName, dbName, dbHostname, dbPort, dbUser, dbPassword)
        else:
            localizedMessages.printMessageWithParams('GBRPT0012W', [datasourceName])
    if dbType == "MSSQL":
        providerName = "DecisionCenter - MSSQL JDBC Driver Provider"
        jdbcProvider = datasource_utils.createMSSQLProvider(clusterNodeName, providerName, jdbcDriverPath, 0)
        if not len(AdminConfig.getid("/Node:" + clusterNodeName + "/JDBCProvider:" + providerName + "/DataSource:" + datasourceName)):
            datasource_utils.createMSSQLDatasource(jdbcProvider, datasourceName, jndiName, dbName, dbHostname, dbPort, dbUser, dbPassword)
        else:
            localizedMessages.printMessageWithParams('GBRPT0012W', [datasourceName])


    deployClusterTools.startAll(clusterName, clusterNodeName)

    # DEPLOY Teamserver EAR
    rtsDeployTools.installRTSOnCluster(dcHome, moduleSuffix, clusterName)
    rtsDeployTools.startRTS(clusterName)

    AdminConfig.save()
    localizedMessages.printMessage('GBRPC0028I')

#EndDef

def checkAndGetProperyValue(props, key):
    try:
        if not len(props.getProperty(key)):
            raise RuntimeError, localizedMessages.getMessageWithParam('GBRPC0027E', [key])
    except:
        raise RuntimeError, localizedMessages.getMessageWithParam('GBRPC0029E', [key])

    return props.getProperty(key)
#EndDef

#-------------------------------------------------------------------------------
# Main
#-------------------------------------------------------------------------------

if len(sys.argv) != 4:
    print __name__ , "Bad number of argument (must be 4)"
    print __name__ , "You can call doIt(wodmHome, scriptDir, propertiesFile, clusterNodeName)"
else:
    sys.path.insert(0, sys.argv[1])
    import datasource_utils, configureDCUsersAndGroups, deployClusterTools, rtsDeployTools, localizedMessages
    doIt(sys.argv[0], sys.argv[1], sys.argv[2], sys.argv[3])
#EndElse