''' Licensed Materials - Property of IBM 5725-B69 5655-Y17 5655-Y31 Copyright IBM Corp. 1987, 2013. All Rights Reserved. Note to U.S. Government Users Restricted Rights: Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ''' import java.util as util import java.io as javaio import sys, java, traceback, localizedMessages global AdminConfig def doIt(wodmHome, scriptDir, propertiesFile, clusterNodeName): cellName = java.lang.System.getProperty('local.cell') localizedMessages.printMessageWithParams('GBRPT0028I', [scriptDir]) wasFullVersion = AdminTask.getNodeBaseProductVersion('[-nodeName '+clusterNodeName+']') dsLayoutDir = "" moduleSuffix = "" if wasFullVersion.find('8.0') != -1: print "WebSphere 8.0 detected ("+wasFullVersion+")" dsLayoutDir = "/executionserver/applicationservers/WebSphere8" moduleSuffix = "WAS8" if wasFullVersion.find('8.5') != -1: print "WebSphere 8.5 detected ("+wasFullVersion+")" dsLayoutDir = "/executionserver/applicationservers/WebSphere85" moduleSuffix = "WAS85" dsHome = wodmHome + dsLayoutDir props = util.Properties() localizedMessages.printMessageWithParams('GBRPT0026I', [propertiesFile]) inside = props.load(javaio.FileInputStream(propertiesFile)) # get the value from properties file clusterName = checkAndGetProperyValue(props, "wodm.dsrules.clusterName") dbType = checkAndGetProperyValue(props, "wodm.dsrules.db.type") jdbcDriverPath = checkAndGetProperyValue(props, "wodm.dsrules.db.jdbcDriverPath") dbName = checkAndGetProperyValue(props, "wodm.dsrules.db.name") dbHostname = checkAndGetProperyValue(props, "wodm.dsrules.db.hostname") dbPort = checkAndGetProperyValue(props, "wodm.dsrules.db.port") dbUser = checkAndGetProperyValue(props, "wodm.dsrules.db.user") dbPassword = checkAndGetProperyValue(props, "wodm.dsrules.db.password") datasourceName = "DecisionServer - Datasource" jndiName = "jdbc/resdatasource" if dbType != "DB2" and dbType != "Oracle" and dbType != "MSSQL": raise RuntimeError, localizedMessages.getMessageWithParam('GBRPT0027E', [dbType]) deployXU.installXu(cellName, clusterNodeName, dsHome, moduleSuffix) if dbType == "DB2": providerName = "DecisionServer - DB2 Universal JDBC Driver Provider (XA)" jdbcProvider = datasource_utils.createDB2UniversalProvider(clusterNodeName, providerName, jdbcDriverPath, 1) 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 = "DecisionServer - Oracle JDBC Driver Provider (XA)" jdbcProvider = datasource_utils.createOracleProvider(clusterNodeName, providerName, jdbcDriverPath, 1) 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 = "DecisionServer - MSSQL JDBC Driver Provider (XA)" jdbcProvider = datasource_utils.createMSSQLProvider(clusterNodeName, providerName, jdbcDriverPath, 1) 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.createMemberOnNewNode(clusterName, clusterNodeName, "odmDSClone4"); clusterNode = AdminConfig.getid('/Node:'+clusterNodeName+'/') hostname = AdminConfig.showAttribute(clusterNode, 'hostName') deployClusterTools.updateVirtualHost(cellName, clusterNodeName, hostname) AdminConfig.save() #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 deployXU, configureDSUsersAndGroups, resConsoleDeployTools, decisionAppsDeployTools, deployClusterTools, localizedMessages, datasource_utils doIt(sys.argv[0], sys.argv[1], sys.argv[2], sys.argv[3]) #EndElse