Figuring out how to script WebSphere app server with Jython

A single, comprehensive reference document for WebSphere application server's Jython API is doubtless hidden away in the dark, tangled thicket that is IBM's web site. I am as certain of this fact as I am certain that I will never find it. When, long ago, I wrote a script to automate deployments to a WebSphere app server, I cobbled it together using both the odd blog post here and there as well as the vague samples scattered through IBM's documentation -- and some of those samples were written in JACL, not Jython. It almost goes without saying that there has always been an easier way to find this information.

It helps, first of all, to know that four objects are available as global variables to any Jython process that has been created by wsadmin. Those objects are:

  • AdminConfig
  • AdminControl
  • AdminApp
  • AdminTask

You can look at these wsadmin objects if you fire up the interactive Jython interpreter: $WASHOME/bin/wsadmin.sh -lang jython, but if you're familiar with Python's built-in introspection commands, like dir() and help(), you'll quickly see that they're of no use to you. Fortunately, the four wsadmin objects implement their own help() methods. To use them, print the output of AdminObject.help(). For example, print AdminApp.help() prints out the following:

WASX7095I: The AdminApp object allows application objects to be manipulated -- this includes installing, uninstalling, editing, and listing. Most of the commands supported by AdminApp operate in two modes: the default mode is one in which AdminApp communicates with theWebSphere server to accomplish its tasks. A local mode is also possible, in which no server communication takes place. The local mode of operation is invoked by bringing up the scripting client with no server connected using the command line "-conntype NONE" option or setting the "com.ibm.ws.scripting.connectionType=NONE" property in the wsadmin.properties...

deleteUserAndGroupEntries    Deletes all the user/group information for all the roles and all the user name/password information for RunAs roles for a given application.
edit    Edit the properties of an application
editInteractive    Edit the properties of an application interactively...

Calling help() with the name of a command provides details on that command. So print AdminApp.help("edit") prints out:

WASX7104I: Method: edit

Arguments: application name, options

Description: Modifies the application specified by "application name" using the options specified by "options". The user is not prompted for any information.

This is absolutely basic stuff, but it took me forever to find it. Later, I'll cover the basics of scripting a deployment, which will exhaust my knowledge of this subject.

Comments:

Post a Comment:
Comments are closed for this entry.
About

A weblog about identity management and testing. See here.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today