OBIEE RPD Deployment Automation using WLST

OBIEE RPD Deployment Automation using WLST


Deploying OBIEE RPD using FMW Enterprise Manager is quite slower and time consuming if RPD deployments are frequent. OBIEE RPD deployment can be automated using OBIEE provided WLST (Weblogic Scripting tool ) and custom python scripts.

The python script (deployer.py ) calls WLST to performs below tasks:

  1. Connects to WLST
  2. Locks the System
  3. Uploads the RPD
  4. Commits Changes
  5. Restarts BI Services
deployer.py script:

#
# This scripts expects the following arguments:
#
# 1. wls.host (localhost)
# 2. wls.port (7001)
# 3. wls.user  (user1)
# 4. wls.password  (password1)
# 5. repository filename and location
# 6. repository password
# ===================================================================
 
import sys
import os
 
# Check that the arguments to this script are as expected.
# argv[0] is script name, [1]-[6] are the user parameters

argLen = len(sys.argv)
if argLen -1 != 6:
    print "ERROR: got ", argLen -1, " args."
    print "USAGE: wlst.cmd RPDUpload.py WLS_HOST WLS_PORT WLS_USER WLS_PASSWORD repository_location repository_password"
    print "   eg: wlst.cmd RPDUpload.py localhost 7001 weblogic welcome1 c:\SampleAppLite.rpd Admin123" 
    exit()
 
WLS_HOST = sys.argv[1]
WLS_PORT = sys.argv[2]
WLS_USER = sys.argv[3]
WLS_PW = sys.argv[4]
rpdlocation = sys.argv[5]
rpdpassword = sys.argv[6]

# Connect to the WLS Admin Server, so that the script then runs “online”
 
print 'Connecting to '+ WLS_HOST+ ':' + WLS_PORT + ' as user: ' + WLS_USER + ' ...'
 
connect(WLS_USER, WLS_PW, WLS_HOST+ ':' + WLS_PORT);

# Connect to the BIDomainMBean that controls the BI domain
# We will use this MBean to lock and then commit our config changes

print 'Connecting to Domain ...'
domainCustom()

cd ('oracle.biee.admin')

cd ('oracle.biee.admin:type=BIDomain,group=Service')

# define the MBean parameters and data types as arrays  
 
objs = jarray.array([],java.lang.Object)
strs = jarray.array([],java.lang.String)

# Invoke the lock operation from the BIDomainMBean
# (equivalent to the Lock and Edit Configuration button in 
# Enterprise Manager

print 'Locking the domain ...'

invoke('lock',objs,strs)

# Read the name of the first instance from first entry 
# in the BIInstances property within the BIDomainMBean
# (initially returned as an array, first value selected)

biinstances = get('BIInstances')
biinstance = biinstances[0]

# Connect to the corresponding BIInstanceMBean

print ('Connecting to BIInstance MBean')

cd ('..')
cd (biinstance.toString())

# Retrieve the name of the MBean for managing the 
# BI Server configuration

biserver = get('ServerConfiguration')

# Connect to the ServerConfigurationMBean for this BI Server

cd ('..')
cd (biserver.toString())

# Now prepare for the RPD upload
# Prepare arrays for parameters and datatypes
# Load the parameters with the RPD name and password
# Then invoke the uploadRepository within the ServerConfigurationMBean

print ('Uploading repository ...')

argtypes = jarray.array(['java.lang.String','java.lang.String'],java.lang.String)
argvalues = jarray.array([rpdlocation,rpdpassword],java.lang.Object)

invoke('uploadRepository',argvalues,argtypes)

# Now go back to the BIDomainMBean and commit the change
# (equivalent to the Activate Changes button in Enterprise Manager)

print ('Committing the update ...')

cd('..')
cd('oracle.biee.admin:type=BIDomain,group=Service')
objs = jarray.array([],java.lang.Object)
strs = jarray.array([],java.lang.String)

invoke('commit',objs,strs)

print ('Now restarting the instance, to pick up the new RPD file')

print 'Connecting to BIInstance MBean ...'
cd ('..')
cd (biinstance.toString())

# The BIInstanceMBean controls the overall status of
# the Oracle instance, and if directed to stop or start
# will stop/start all components together

print 'Getting instance status ...'

# ServiceStatus property in BIInstanceMBean returns
# the current status of the instance

servicestatus=get('ServiceStatus')
print 'BIInstance MBean; ServiceStatus: ' + servicestatus

# Stop action, if invoked, will stop entire instance

print 'Calling stop ...'
objs = jarray.array([], java.lang.Object)
strs = jarray.array([], java.lang.String)
invoke('stop', objs, strs)
servicestatus=get('ServiceStatus')

print 'BIInstance MBean; ServiceStatus: ' + servicestatus

# Start action will start the instance, and pick up
# the configuration change (the new RPD file path)

print 'Calling start ...'
objs = jarray.array([], java.lang.Object)
strs = jarray.array([], java.lang.String)
invoke('start', objs, strs)
servicestatus=get('ServiceStatus')

print 'BIInstance MBean; ServiceStatus: ' + servicestatus

print 'RPD Upload now complete!'

exit()

Leave a Comments

Your browser doesn't support the canvas element - please visit in a modern browser.

(new shape)

Lord SAN’s MONEY SPELL services is worth every penny! I honestly don’t know what I would have done without Lord SAN. Even as a manager at my place of work, My daily expenses is more than my in-come therefore subjecting my and my kids to hunger, and sometimes without internet and light went off. I had no choice but to come to this money temple where LORD SAN did a money ritual spell that has turned me to the richest woman in my family linage. I just bought another house for my first daughter as her marriage gift. I have stopped working over 5 months ago since I started getting money from this money spell LORD SAN did for me. I get bundles of dollars twice a week. I do not need my husband anymore he can go to hell with his child support that he never pays.contact email moneytemple@outlook.com You can also Call/Whats App:+447482854279 You can also visit his website:https://thetempleofmoney.com/ 

Reply

EFFECTIVE AND POWERFUL LOVE SPELL CASTER AND LOTTERY SPELL DR.OJOKASPELLTEMPLE@GMAIL. COM OR WHATSAPP HIM :+2348144172934  I am sharing this testimony to partners suffering in their relationships because there is an enduring solution. My husband left me and our 2 kids for another woman for 3 years. I tried to be strong just for my kids but I could not control the pains that torment my heart. I was hurt and confused. I needed a help, so i did a research on the internet and came across a site where I saw that Dr. Ojoka a spell caster, can help get lovers back. I contacted him and he did a special prayer and spells for me. To my surprises, after some days, my husband came back home. That was how we reunited again and there was a lot of love, joy and peace in the family. You can as well contact Dr. Ojoka , a powerful spell-caster for solutions on his contact dr.ojokaspelltemple@gmail. com or directly on Whats App: +2348144172934

Reply

We need your help with supplies. Our family is out of sanitizers and we can't find any in the usual places. I can get surgical masks at https://freelytrade.com Please sell your extra supplies there? We'll pay whatever the fair going rate is for it! You'll save our lives and our neighbourhood today! Stay safe Meridith

Reply

Hi I am Hiren Patel. Basically, I am Computer Engineer with some sort of crazy interest in playing around with the new technology and tools. I believe that innovation is the most important thing that drives our life.

Copyright © 2020 Hiren Patel . All rights Reserved.