예제 #1
0
def main():

  print ' Copyright 2012 Oracle Corporation. '
  print ' All Rights Reserved. '
  print ''
  print ' Provided on an ''as is'' basis, without warranties or conditions of any kind, '
  print ' either express or implied, including, without limitation, any warranties or '
  print ' conditions of title, non-infringement, merchantability, or fitness for a '
  print ' particular purpose. You are solely responsible for determining the '
  print ' appropriateness of using and assume any risks. You may not redistribute.'
  print ''
  print ' Please refer to http://redstack.wordpress.com/continous-integration for details.'
  print ''
  print ' This WLST script can be used as part of a continuous integration build process'
  print ' before deploying a SCA composite, to create any necessary JMS queues'
  print ' on the WebLogic Server.'
  print ''
  print ' In addition to creating the queue, this script will also update the '
  print ' resource adapter and redeploy it.'
  print ''
  print ' !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!'
  print ''
  print ' This script will make changes to your WebLogic domain.  Make sure you know '
  print ' what you are doing.  There is no support for this script.  If something bad '
  print ' happens, you are on your own!  You have been warned.'

  #
  # generate a unique string to use in the names
  # 

  uniqueString = str(int(time.time()))

  #
  # Create a JDBC Data Source.
  # 

  try:
    print('--> about to connect to weblogic')
    wl.connect(username, password, url)  
    print('--> about to create a queue ' + qName)
    wl.edit()
    wl.startEdit()
    wl.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule)
    wl.cmo.createQueue(qName)
    wl.cd('/JMSSystemResources/' + jmsModule + '/JMSResource/' + jmsModule + '/Queues/' + qName)
    wl.set('JNDIName', jndiName)
    wl.set('SubDeploymentName', jmsSubDeployment)
    wl.save()
    print('--> activating changes')
    wl.activate()
    print('--> done')

#
# update the deployment plan
#
    print('--> about to update the deployment plan for the DbAdapter')
    wl.startEdit()
    planPath = wl.get('/AppDeployments/JmsAdapter/PlanPath')
    appPath = wl.get('/AppDeployments/JmsAdapter/SourcePath')
    print('--> Using plan ' + planPath)
    plan = wl.loadApplication(appPath, planPath)
    print('--> adding variables to plan')

    makeDeploymentPlanVariable(plan, 'ConnectionInstance_eis/wls/' + qName + '_JNDIName_' + uniqueString, eisName, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="' + eisName + '"]/jndi-name')
    makeDeploymentPlanVariable(plan, 'ConfigProperty_ConnectionFactoryLocation' + uniqueString, eisName, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="' + eisName + '"]/connection-properties/properties/property/[name="ConnectionFactoryLocation"]/value')
    print('--> saving plan')
    makeDeploymentPlanVariableplan.save();
    makeDeploymentPlanVariablesave();
    print('--> activating changes')
    activate(block='true');
    wl.cd('/AppDeployments/JmsAdapter/Targets');
    print('--> redeploying the JmsAdapter')
    print(appName, planPath)
    wl.redeploy(appName, planPath, targets=cmo.getTargets())
    print('--> done')
  
  except Exception, inst :
	print('--> something went wrong, bailing out')
	print type(inst)     # the exception instance
	print inst.args      # arguments stored in .args
	print inst           # __str__ allows args to be printed directly
	# x, y = inst.args
	# print 'x =', x
	# print 'y =', y    
	stopEdit('y')
	raise SystemExit
    print "Creating Queues..."
    queueList = queues.split(",")
    for q in queueList:
        createQueue(theJMSResource, q, jms_module_path)

    print "Creating Topics..."
    topicList = topics.split(",")
    for t in topicList:
        createTopic(theJMSResource, t, jms_module_path)


print "Python version = " + sys.version
print "Connecting to the server ..."
wl.connect("weblogic", "welcome1", "t3://localhost:7021")
wl.edit()
wl.startEdit()
# set('CompatibilityMBeanServerEnabled', 'true')
print "Show command line arguments"
print "Argument List:", str(sys.argv)
checkParams()

servermb = wl.getMBean("Servers/" + adminServer)
if servermb is None:
    print "servermb Value is Null"

else:
    createJMS()

try:
    # wl.serverRuntime()
    wl.save()