biemond/biemond-orawls

View on GitHub
files/providers/wls_jms_topic/create_modify.py.erb

Summary

Maintainability
Test Coverage
# check the domain else we need to skip this (done in wls_access.rb)
real_domain='<%= domain %>'

wlst_action = '<%= wlst_action %>'

name                     = '<%= topic_name %>'
jmsmodule                = '<%= jmsmodule %>'
distributed              = '<%= distributed %>'
jndiname                 = '<%= jndiname %>'
subdeployment            = '<%= subdeployment %>'
balancingpolicy          = '<%= balancingpolicy %>'
quota                    = '<%= quota %>'
defaulttargeting         = '<%= defaulttargeting %>'
redeliverylimit          = '<%= redeliverylimit %>'
expirationpolicy         = '<%= expirationpolicy %>'
errordestinationtype     = '<%= errordestinationtype %>'
errordestination         = '<%= errordestination %>'
expirationloggingpolicy  = '<%= expirationloggingpolicy %>'
timetolive               = '<%= timetolive %>'
timetodeliver            = '<%= timetodeliver %>'
deliverymode             = '<%= deliverymode %>'
redeliverydelay          = '<%= redeliverydelay %>'
messagelogging           = '<%= messagelogging %>'
forwardingpolicy         = '<%= forwardingpolicy %>'
destination_keys         = '<%= destination_keys %>'
consumption_paused       = '<%= consumptionpaused %>'
insertion_paused         = '<%= insertionpaused %>'
production_paused        = '<%= productionpaused %>'

edit()
startEdit()

try:
    cd('/')
    cd('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule)

    if distributed == "1":
        if wlst_action == 'create':
            cmo.createUniformDistributedTopic(name)
        jmsWlsType = '/UniformDistributedTopics/'
    else:
        if wlst_action == 'create':
            cmo.createTopic(name)
        jmsWlsType = '/Topics/'

    cd('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+jmsWlsType+name)
    set_attribute_value('JNDIName', jndiname, use_default_value_when_empty)

    set_attribute_value('ConsumptionPausedAtStartup', consumption_paused, use_default_value_when_empty)
    set_attribute_value('InsertionPausedAtStartup'  , insertion_paused, use_default_value_when_empty)
    set_attribute_value('ProductionPausedAtStartup' , production_paused, use_default_value_when_empty)

    if destination_keys:
      print "jms destinationkeys: " + destination_keys
      key_entries = destination_keys.split(',')
      set('DestinationKeys',jarray.array(key_entries, String))

    if subdeployment and defaulttargeting == "0":
      set_attribute_value('SubDeploymentName', subdeployment, use_default_value_when_empty)
    elif not subdeployment and defaulttargeting == "1":
      set_attribute_value('DefaultTargetingEnabled', true, use_default_value_when_empty)
    elif subdeployment and defaulttargeting == "1":
      raise ValueError('Defaulttargeting and Subdeployment are both set, only one can be active for JMS components')
    else:
      raise ValueError('Either defaulttargeting or a subdeployment needs to be selected for JMS components')

    print "distributed: ",distributed
    if distributed == "1":
      print "distributed"
      if balancingpolicy != '':
        set_attribute_value('LoadBalancingPolicy', balancingpolicy, use_default_value_when_empty)
      elif balancingpolicy == '':
        set_attribute_value('LoadBalancingPolicy', 'Round-Robin', use_default_value_when_empty)

      if forwardingpolicy != '':
        set_attribute_value('ForwardingPolicy', forwardingpolicy, use_default_value_when_empty)
      elif forwardingpolicy == '':
        set_attribute_value('ForwardingPolicy', 'Replicated', use_default_value_when_empty)

    cd('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+jmsWlsType+name+'/DeliveryFailureParams/'+name)
    set_attribute_value('ExpirationPolicy', expirationpolicy, use_default_value_when_empty)
    set_attribute_value('RedeliveryLimit' , redeliverylimit, use_default_value_when_empty)

    if errordestinationtype:
      jmsErrType = errordestinationtype
    else:
      if distributed == "1":
        jmsErrType = 'UniformDistributedQueues'
      else:
        jmsErrType = 'Queues'

    print "errorbean "+'/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+'/'+jmsErrType+'/'+errordestination
    if errordestination:
      cmo.setErrorDestination(getMBean('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+'/'+jmsErrType+'/'+errordestination))
    else:
      cmo.setErrorDestination(None)

    set_attribute_value('ExpirationLoggingPolicy', expirationloggingpolicy)

    cd('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+jmsWlsType+name+'/DeliveryParamsOverrides/'+name)
    set_attribute_value('TimeToLive'     , timetolive, use_default_value_when_empty)
    set_attribute_value('TimeToDeliver'  , timetodeliver, use_default_value_when_empty)
    set_attribute_value('DeliveryMode'   , deliverymode, use_default_value_when_empty)
    set_attribute_value('RedeliveryDelay', redeliverydelay, use_default_value_when_empty)

    cd('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+jmsWlsType+name)
    if quota:
      cmo.setQuota(getMBean('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+'/Quotas/'+quota ))
    else:
      cmo.setQuota(None)

    cd('/JMSSystemResources/'+jmsmodule+'/JMSResource/'+jmsmodule+jmsWlsType+name+'/MessageLoggingParams/'+name)
    set_attribute_value('MessageLoggingEnabled', messagelogging, use_default_value_when_empty)

    save()
    activate()
    report_back_success()

except:
    report_back_error()