Instantiating and executing the JLI
The following sample code shows how to instantiate and execute the Jython Line Interface (JLI):
01 #!/usr/bin/env jython 02 import bladelogic.cli.CLI as blcli 03 jli = blcli.CLI() 04 jli.setServiceProfileName("defaultProfile") 05 jli.setRoleName("BLAdmins") 06 jli.connect() 07 cmd = [NameSpace,blcliCmd,Arg1,...,ArgN] 08 returnObject = jli.run(cmd) 09 # returnObject has various methods and properties. 10 # The following 'if' statement demonstrates the important three 11 if(returnObject.success()): 12 print returnObject.returnValue 13 else: 14 print returnObject.getError()
Here is a brief analysis of the preceding lines. See Basic Jython programming principles for more information about underlying concepts.
Line 1: Specify the Jython interpreter.
Line 2: Import the CLI class from the
Line 3: Create an instance of the CLI class named
Line 4 & 5: Set the profile and role for a BLCLI connection to the application server. This connection is used by the script until it finishes running.
Line 6: Call the
jli.connect function to establish a connection to the application server using the credentials acquired using
blcred for making CLI calls.
Line 7: The JLI accepts BLCLI commands as arrays (lists). This line demonstrates a pseudo-command in the JLI.
Line 8: The
jli.run(cmd) statement accepts the array variable
cmd and returns a BLCLI return object to the
Line 9 & 10: Comments.
Line 11: Test for the successful execution of the JLI command processor. If the command executed successfully,
returnObject.success() returns 1; if unsuccessful,
returnObject.success() returns 0.
Line 12: If
.success() equals 1, this line executes, printing the return value of the executed command.
Line 13: If
.success() equals 0, this line begins the
else suite of the
Line 14: If
.success() equals 0, executing the
else suite, this line prints the error retrieved from the unsuccessful execution of the JLI processor.
Although the BLCLI API indicates that some commands accept an integer, the JLI requires that a script pass all commands as strings. Therefore, a script must cast all non-string values to a string before passing their values in an array to the JLI processor. This includes numbers and DB keys.