def createConnectionFactory(connectionFactoryName, jmsModule, targets, subDeploymentName): print 'Creating connection factory : ' + connectionFactoryName + '...' print ' NOTE: the factory name and its JNDI name are BOTH taken from the factory name' cmo = wlst.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule) cmo.createConnectionFactory(connectionFactoryName) cmo = wlst.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule + '/ConnectionFactories/' + connectionFactoryName) cmo.setJNDIName(connectionFactoryName) cmo = wlst.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule + '/ConnectionFactories/' + connectionFactoryName + '/SecurityParams/' + connectionFactoryName) cmo.setAttachJMSXUserId(False) if (subDeploymentName != ''): cmo = wlst.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule + '/ConnectionFactories/' + connectionFactoryName) cmo.setSubDeploymentName(subDeploymentName) if (targets != ''): cmo = wlst.cd('/SystemResources/' + jmsModule + '/SubDeployments/' + subDeploymentName) wlst.set('Targets', targets) else: if (targets != ''): wlst.set('Targets', targets) print 'Creating connection factory : ' + connectionFactoryName + '...end.'
def createDistributedQueue(queueName, jmsModule, targets, subDeploymentName, loadBalancingPolicy): print 'Creating Uniform Distributed Queue : ' + queueName + '...' print ' NOTE: the factory name and its JNDI name are BOTH taken from the factory name' cmo = wlst.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule) cmo.createUniformDistributedQueue(queueName) cmo = wlst.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule + '/UniformDistributedQueues/' + queueName) cmo.setJNDIName(queueName) cmo.setLoadBalancingPolicy(loadBalancingPolicy) if (subDeploymentName != ''): cmo = wlst.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule + '/UniformDistributedQueues/' + queueName) cmo.setSubDeploymentName(subDeploymentName) if (targets != ''): cmo = wlst.cd('/SystemResources/' + jmsModule + '/SubDeployments/' + subDeploymentName) wlst.set('Targets', targets) else: # this code path needs to change to target in the absense of a subDeployment if (targets != ''): cmo = wlst.cd('/SystemResources/' + jmsModule + '/SubDeployments/' + subDeploymentName) wlst.set('Targets', targets) print 'Creating Uniform Distributed Queue : ' + queueName + '...end.'
def targetJMSServer(jmsServerName, targets): print 'Targetting JMS Server: ' + jmsServerName + ' to : ' + str( targets) + '...' cmo = wlst.cd('/Deployments/' + jmsServerName) wlst.set('Targets', targets) print 'Targetting JMS Server: ' + jmsServerName + ' to : ' + str( targets) + '...end.'
def configureDevelopmentJTATransactionTimeout(serverName, timeout): print 'Setting JTS timeout' wlst.cd('/') wlst.create('JTA', 'JTA') wlst.cd('/JTA/JTA') wlst.set('TimeoutSeconds', timeout) print("Done")
def targetOracleThinJDBCdataSource(dsName, datasourceTargets): print 'targetting: ' + dsName + ' to: ' + str(datasourceTargets) + '...' if (datasourceTargets != ''): cmo = wlst.cd('/SystemResources/' + dsName) wlst.set('Targets', datasourceTargets) print 'targetting: ' + dsName + ' to: ' + str( datasourceTargets) + '...end.'
def configureNodeManagerProperties(nmPort): print("Configuring NodeManager") wlst.cd('/') wlst.cd('NMProperties') wlst.set('ListenPort', nmPort) wlst.set('SecureListener', 'false') print("Done")
def create_bridge_remote_destination(connection_factory_jndi, destination_jndi, connection_url, username = None, password = None, bridge_destination_name = None): if (bridge_destination_name == None): bridge_destination_name = 'Remote_' + destination_jndi wl.cd('/') wl.cmo.createJMSBridgeDestination(bridge_destination_name) wl.cd('/JMSBridgeDestinations/' + bridge_destination_name) wl.set('ConnectionURL', connection_url) if username != None: wl.set('UserName', username) if password != None: if password.startswith('enc:'): splits = password.replace('enc:', '').split(',') # password = wl.encrypt(splits[0], splits[1]) password = splits[0] # wl.set('UserPassword', password) # TODO(ichsan): Fix this because it failed to run wl.set('AdapterJNDIName', 'eis.jms.WLSConnectionFactoryJNDIXA') wl.set('ConnectionFactoryJNDIName', connection_factory_jndi) wl.set('DestinationJNDIName', destination_jndi) return bridge_destination_name
def fixBasicAuth(domainName): print("Fixing BasicAuth intercept") if (wlst.ls().find('SecurityConfiguration') == -1 or wlst.ls('SecurityConfiguration').find(domainName) == -1): wlst.create(domainName, 'SecurityConfiguration') wlst.cd('/SecurityConfiguration/' + domainName) wlst.set('EnforceValidBasicAuthCredentials', 'false') print("Done")
def configureMaxRequestParameter(serverName, maxRequestParameter): print("Configuring MaxRequestParameter") wlst.cd('/Server/' + serverName) wlst.create(serverName, 'WebServer') wlst.cd('WebServer/' + serverName) wlst.set('MaxRequestParameterCount', maxRequestParameter) print("Done")
def createMailSession(msName, msJndiName, properties, target): print("Creating mail session") wlst.cd('/') wlst.create(msName, 'MailSession') wlst.cd('/MailSession/(' + msName + ')') wlst.set('JNDIName', msJndiName) wlst.set('Properties', properties) wlst.assign('MailSession', msName, 'Target', target) print("Done")
def createFilestore(filestoreName, targets): # create file store cmo = wlst.cd('/') cmo.createFileStore(filestoreName) cmo = wlst.cd('/FileStores/' + filestoreName) wlst.set('Targets', targets) cmo.setDirectory(filestoreName) cmo.setSynchronousWritePolicy('Direct-Write')
def createOracleThinJDBCdataSource(dsName, dsURL, dsDriverName, dsJNDINames, dsUserName, dsPassword, dsDatabaseName, dsTestQuery, datasourceTarget): print 'creating a OracleThin datasource...' print 'datasource name: ' + dsName cmo = wlst.cd('/') cmo.createJDBCSystemResource(dsName) cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName) cmo.setName(dsName) cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDataSourceParams/' + dsName) wlst.set('JNDINames', jarray.array(dsJNDINames, String)) cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName) cmo.setUrl(dsURL) cmo.setDriverName(dsDriverName) cmo.setPassword(dsPassword) cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCConnectionPoolParams/' + dsName) cmo.setTestTableName(dsTestQuery) cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName + '/Properties/' + dsName) cmo.createProperty('user') cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName + '/Properties/' + dsName + '/Properties/user') cmo.setValue(dsUserName) if (dsDatabaseName != ''): cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName + '/Properties/' + dsName) cmo.createProperty('databaseName') cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName + '/Properties/' + dsName + '/Properties/databaseName') cmo.setValue(dsDatabaseName) cmo = wlst.cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDataSourceParams/' + dsName) cmo.setGlobalTransactionsProtocol('OnePhaseCommit') if (datasourceTarget != ''): cmo = wlst.cd('/SystemResources/' + dsName) wlst.set('Targets', datasourceTarget) print 'creating a OracleThin datasource...end.'
def createJMSModule(moduleName, targets): print 'Creating a JMS System module named : ' + moduleName + ' targetted to : ' + str( targets) + '...' cmo = wlst.cd('/') cmo.createJMSSystemResource(moduleName) cmo = wlst.cd('/SystemResources/' + moduleName) wlst.set('Targets', targets) print 'Creating a JMS System module named : ' + moduleName + ' targetted to : ' + str( targets) + '...end.'
def createWlsAdminUser(username, password): print("Creating admin user") wlst.cd('/Security/base_domain/User') wlst.delete('weblogic', 'User') wlst.create(username, 'User') wlst.cd(username) wlst.set('Password', password) wlst.set('IsDefaultAdmin', '1') wlst.assign('User', username, 'Group', 'Deployers') print("Done")
def createJMSSubDeployment(jmsModule, subDeploymentName, targets): print 'Creating SubDeployment: ' + subDeploymentName + ', with targets: ' + str( targets) + '...' cmo = wlst.cd('/SystemResources/' + jmsModule) cmo.createSubDeployment(subDeploymentName) cmo = wlst.cd('/SystemResources/' + jmsModule + '/SubDeployments/' + subDeploymentName) wlst.set('Targets', targets) print 'Creating SubDeployment: ' + subDeploymentName + ', with targets: ' + str( targets) + '...end.'
def create_queue(jms_queue_name, jms_queue_jndi, jms_module_name = DEFAULT_MODULE_NAME, jms_subdeployment = None): if (jms_subdeployment == None): jms_subdeployment = jms_module_name print "Entering module", jms_module_name wl.cd('/JMSSystemResources/' + jms_module_name) wl.cd('/JMSSystemResources/' + jms_module_name + '/JMSResource/' + jms_module_name) wl.cmo.createQueue(jms_queue_name) wl.cd('/JMSSystemResources/' + jms_module_name + '/JMSResource/' + jms_module_name + '/Queues/' + jms_queue_name) wl.set('JNDIName', jms_queue_jndi) wl.set('SubDeploymentName', jms_subdeployment)
def set(attribute, value): """ Set the configuration for the indicated attribute to the provided value. :param attribute: attribute name at the current location :param value: to configure the attribute :raises: PyWLSTException: if a WLST error occurs """ _method_name = 'set' _logger.finest('WLSDPLY-00007', attribute, value, class_name=_class_name, method_name=_method_name) try: wlst.set(attribute, value) except (wlst.WLSTException, offlineWLSTException), e: pwe = exception_helper.create_pywlst_exception('WLSDPLY-00008', attribute, value, _get_exception_mode(e), _format_exception(e), error=e) _logger.throwing(class_name=_class_name, method_name=_method_name, error=pwe) raise pwe
def createManagedServer(serverName, serverAddress, serverPort, serverMachine, cluster, serverArguments=None): print("Creating managed server") wlst.cd('/') wlst.create(serverName, 'Server') createServer(serverName, serverAddress, serverPort, serverMachine, serverArguments) wlst.cd('/Server/' + serverName) wlst.set('ClientCertProxyEnabled', 'true') wlst.set('WeblogicPluginEnabled', 'true') if cluster: wlst.assign('Server', serverName, 'Cluster', cluster) print("Done")
def createServer(serverName, serverAddress, serverPort, serverMachine, serverArguments): if not serverAddress: serverAddress = socket.gethostbyname(socket.gethostname()) if not serverMachine: serverMachine = socket.gethostbyname(socket.gethostname()) wlst.cd('/Server/' + serverName) wlst.set('Name', serverName) wlst.set('ListenAddress', serverAddress) wlst.set('ListenPort', serverPort) wlst.set('Machine', serverMachine) if serverArguments: configureServerStart(serverName, serverArguments)
def create_bridge(source_bridge_destination, target_bridge_destination, server_instance_name, bridge_name = None): if bridge_name == None: bridge_name = next_simple_bridge_name() wl.cd('/') wl.cmo.createMessagingBridge(bridge_name) wl.cd('/Deployments/' + bridge_name) wl.cmo.addTarget(lookup_server_instance(server_instance_name)) wl.cmo.setSourceDestination(lookup_bridge_destination(source_bridge_destination)) wl.cmo.setTargetDestination(lookup_bridge_destination(target_bridge_destination)) # wl.set('Selector', '') # wl.set('QualityOfService', 'Exactly-once') # wl.set('QOSDegradationAllowed', 'true') # wl.set('IdleTimeMaximum', '60') # wl.set('AsyncEnabled', 'true') # wl.set('DurabilityEnabled', 'true') # wl.set('PreserveMsgProperty', 'false') wl.set('Started', 'true') return bridge_name
def configureWebServer(serverName): print("Configuring webserver parameters") wlst.cd('/Server/' + serverName) wlst.cd('WebServer/' + serverName) wlst.set('KeepAliveSecs', 5) wlst.set('MaxRequestParameterCount', 125000) wlst.set('MaxRequestParamterCount', 125000) print("Done")
def create_bridge_local_destination(connection_factory_jndi, destination_jndi, connection_url = 't3://localhost:6001', bridge_destination_name = None): if (bridge_destination_name == None): bridge_destination_name = 'Local_' + destination_jndi wl.cd('/') wl.cmo.createJMSBridgeDestination(bridge_destination_name) wl.cd('/JMSBridgeDestinations/' + bridge_destination_name) wl.set('ConnectionURL', connection_url) wl.set('AdapterJNDIName', 'eis.jms.WLSConnectionFactoryJNDIXA') wl.set('ConnectionFactoryJNDIName', connection_factory_jndi) wl.set('DestinationJNDIName', destination_jndi) return bridge_destination_name
def createJms(jmsServerName, jmsModuleName, cfName, cfJndiName, queueNames, queueJndiNames, jmsSubName, target): print("Creating Jms") wlst.cd('/') if (wlst.ls().find('JMSServer') == -1 or wlst.ls('JMSServer').find(jmsServerName) == -1): wlst.create(jmsServerName, 'JMSServer') wlst.cd('/') if (wlst.ls().find('JMSSystemResource') == -1 or wlst.ls('JMSSystemResource').find(jmsModuleName) == -1): wlst.create(jmsModuleName, 'JMSSystemResource') wlst.cd('/JMSSystemResource/' + jmsModuleName) if (wlst.ls().find('SubDeployment') == -1 or wlst.ls('SubDeployment').find(jmsSubName) == -1): wlst.create(jmsSubName, 'SubDeployment') wlst.cd('/') wlst.assign('JMSServer', jmsServerName, 'Target', target) wlst.assign('JMSSystemResource', jmsModuleName, 'Target', target) wlst.assign('JMSSystemResource.SubDeployment', jmsSubName, 'Target', jmsServerName) wlst.cd('/JMSSystemResource/' + jmsModuleName + '/JmsResource/NO_NAME_0') wlst.create(cfName, 'ConnectionFactory') wlst.cd('ConnectionFactory/' + cfName) wlst.set('JNDIName', cfJndiName) wlst.set('SubDeploymentName', jmsSubName) for i in range(len(queueNames)): queueName = queueNames[i] queueJndiName = queueJndiNames[i] wlst.cd('/JMSSystemResource/' + jmsModuleName + '/JmsResource/NO_NAME_0') wlst.create(queueName, 'Queue') wlst.cd('Queue/' + queueName) wlst.set('JNDIName', queueJndiName) wlst.set('SubDeploymentName', jmsSubName) print("Done")
def set(name, value): wlst.set(name, value)
def configureServerStart(serverName, serverArguments): wlst.cd('/Server/' + serverName) wlst.create(serverName, 'ServerStart') wlst.cd('ServerStart/' + serverName) wlst.set('Arguments', serverArguments)
def configureCompleteWriteTimeout(serverName, timeout): print("Creating CompleteWriteTimeout") wlst.cd('/') wlst.cd('Server/' + serverName) wlst.set('CompleteWriteTimeout', timeout) print("Done")
def createMachine(machineAddress, nodeManagerAddress=None, nodeManagerPort=0, nodeManagerType=None): if not machineAddress: machineAddress = socket.gethostbyname(socket.gethostname()) print("Creating machine") wlst.cd('/') wlst.create(machineAddress, 'UnixMachine') wlst.cd('/Machines/' + machineAddress) wlst.set('PostBindGID', 'nobody') wlst.set('PostBindGIDEnabled', 'false') wlst.set('PostBindUID', 'nobody') wlst.set('PostBindUIDEnabled', 'false') wlst.create(machineAddress, 'NodeManager') wlst.cd('NodeManager/' + machineAddress) wlst.set('Name', machineAddress) if (not nodeManagerType is None): wlst.cd('Machines/' + machineAddress + '/NodeManager/' + machineAddress) wlst.set('NMType', nodeManagerType) wlst.set('ListenPort', nodeManagerPort) configureNodeManagerProperties(nodeManagerPort) print("Done")
def createSecurity(serverName, identityFileName, identityPassword, trustFileName, trustPassword, keyAlias, keyPassword): print("Creating Security (Keystores)") wlst.cd('/') wlst.cd('Server/' + serverName) wlst.set('KeyStores', 'CustomIdentityAndCustomTrust') wlst.set('CustomIdentityKeyStoreFileName', identityFileName) wlst.set('CustomIdentityKeyStorePassPhraseEncrypted', identityPassword) wlst.set('CustomIdentityKeyStoreType', 'JKS') wlst.set('CustomTrustKeyStoreFileName', trustFileName) wlst.set('CustomTrustKeyStorePassPhraseEncrypted', trustPassword) wlst.set('CustomTrustKeyStoreType', 'JKS') wlst.create(serverName, 'SSL') wlst.cd('SSL/' + serverName) wlst.set('ServerPrivateKeyAlias', keyAlias) wlst.set('ServerPrivateKeyPassPhraseEncrypted', keyPassword) wlst.set('ClientCertAlias', keyAlias) wlst.set('ClientCertPrivateKeyPassPhraseEncrypted', keyPassword) wlst.set('UseClientCertForOutbound', 'true') wlst.set('UseServerCerts', 'true') print("Done")
def createDatasource(dsName, dsJndiName, driver, url, username, password, test, target): print("Creating data source: " + dsName) wlst.cd('/') wlst.create(dsName, 'JDBCSystemResource') wlst.cd('JDBCSystemResource/' + dsName + '/JdbcResource/' + dsName) wlst.create(dsName + 'DataSourceParams', 'JDBCDataSourceParams') wlst.cd('JDBCDataSourceParams/NO_NAME_0') wlst.set('JNDIName', dsJndiName) wlst.set('GlobalTransactionsProtocol', 'EmulateTwoPhaseCommit') wlst.cd('/JDBCSystemResource/' + dsName + '/JdbcResource/' + dsName) wlst.create(dsName + 'JDBCDriverParams', 'JDBCDriverParams') wlst.cd('JDBCDriverParams/NO_NAME_0') wlst.set('DriverName', driver) wlst.set('URL', url) wlst.set('PasswordEncrypted', password) wlst.create('myProps', 'Properties') wlst.cd('Properties/NO_NAME_0') wlst.create('user', 'Property') wlst.cd('Property/user') wlst.set('Value', username) wlst.cd('/JDBCSystemResource/' + dsName + '/JdbcResource/' + dsName) wlst.create(dsName + 'PoolParams', 'JDBCConnectionPoolParams') wlst.cd('JDBCConnectionPoolParams/NO_NAME_0') wlst.set('TestTableName', test) wlst.set('CapacityIncrement', 1) wlst.set('InitialCapacity', 0) wlst.set('MinCapacity', 0) wlst.set('MaxCapacity', 20) wlst.set('LoginDelaySeconds', 0) wlst.set('TestConnectionsOnReserve', 'true') wlst.set('FatalErrorCodes', '-4470,-4498,-4499,-99999') wlst.cd('/') wlst.assign('JDBCSystemResource', dsName, 'Target', target) print("Done")
def configureServerLogging(domainName, serverName, domainLogRoot='/var/SP/applogs/weblogic'): print("Configuring server logging") wlst.cd('/') wlst.create(domainName + 'Log', 'Log') wlst.cd('Log/' + domainName + 'Log') wlst.set( 'Filename', domainLogRoot + '/' + domainName + '/domain/' + domainName + '.log') wlst.set('RotationType', 'byTime') wlst.cd('/Server/' + serverName) wlst.create(serverName, 'Log') wlst.cd('Log/' + serverName) wlst.set('RotationType', 'byTime') wlst.set('FileCount', 1) wlst.set( 'FileName', domainLogRoot + '/' + domainName + '/' + serverName + '/' + serverName + '.log') wlst.set('MemoryBufferSeverity', 'Debug') wlst.set('NumberOfFilesLimited', 'false') wlst.set('RedirectStderrToServerLogEnabled', 'true') wlst.set('RedirectStdoutToServerLogEnabled', 'true') wlst.set('RotateLogOnStartup', 'false') wlst.set('RotationTime', '23:59') # wlst.set('DateFormatPattern', 'dd.MM.yyyy HH:mm:ss') # wlst.set('FileMinSize', 100000) # wlst.set('LogFileSeverity', 'Debug') # wlst.set('StdoutSeverity', 'Debug') # wlst.set('StacktraceDepth', -1) # wlst.set('DomainLogBroadcastSeverity', 'Debug') # wlst.set('MemoryBufferSeverity', 'Debug') # wlst.set('RedirectStdoutToServerLogEnabled', 'true') # wlst.set('RedirectStderrToServerLogEnabled', 'true') wlst.cd('/Server/' + serverName) wlst.create(serverName, 'WebServer') wlst.cd('WebServer/' + serverName) wlst.create(serverName, 'WebServerLog') wlst.cd('WebServerLog/' + serverName) wlst.set('RotationType', 'byTime') wlst.set('FileCount', 1) wlst.set( 'FileName', domainLogRoot + '/' + domainName + '/' + serverName + '/access.log') wlst.set('FileTimeSpan', 1) wlst.set('LogFileRotationDir', domainLogRoot + '/' + domainName + '/' + serverName + '/archive') wlst.set('NumberOfFilesLimited', 'false') wlst.set('RotateLogOnStartup', 'false') print("Done")