Lucrul cu Interfaţa de scriptare portal (PSI)

Aflaţi mai multe despre diferitele moduri pe care le puteţi folosi cu Interfaţa de scriptare portal (PSI).

Informaţii preliminare

Interfaţa de scriptare portal (PSI) furnizat de IBM® WebSphere Portal Express este bazat pe unealta de scriptare wsadmin, care este furnizată de IBM WebSphere Application Server. De aceea, înainte de a folosi Interfaţa de scriptare portal (PSI), familiarizaţi-vă cu modul de utilizare a uneltei wsadmin WebSphere Application Server.

Mod interactiv

Folosiţi modul interactiv dacă doriţi să interacţionaţi direct şi dinamic cu portalul pentru a realiza operaţii administrative simple care ar trebui executate numai odată. De exemplu, administratorul doreşte să modifice permisiunile unei pagini pentru un anumit principal, sau administratorul doreşte să adauge un portlet la o pagină. Folosiţi modul interactiv dacă nu intenţionaţi să repetaţi operaţia.

Înainte de a iniţia o sesiune în mod interactiv, asiguraţi-vă că WebSphere Portal Express rulează. Clientul script portal este localizat în directorul de instalare WebSphere Portal Express:
Logaţi-vă folosind ID-ul de utilizator administrativ şi invocaţi clientul scriptului de portal folosind următoarele comenzi:
  • Linux:./wpscript.sh
  • IBM i:wpscript.sh
  • Windows:wpscript.bat
Următoarele proceduri oferă exemple:
  1. Dacă securitatea WebSphere Application Server este activată, specificaţi un ID utilizator şi o parolă în timpul înregistrării cum se arată în următorul exemplu:
    • Linux:./wpscript.sh -port port_number -user user_id -password password
    • IBM i:wpscript.sh -port port_number -user user_id -password password
    • Windows:wpscript.bat -port port_number -user user_id -password password

    Parametrii de bază sunt explicaţi pe scurt în următorul tabel.

    Tabela 1. Descriere a parametrilor de bază utilizaţi cu taskul wpscript.bat|sh
    Parametru Descriere
    -lang
    Specifică limba fişierului script, a comenzii, sau a shell-ului interactiv. Specifică una din următoarele valori pentru parametrul -lang:
    • jacl
    • jython

    Acest parametru este opţional şi nu are nicio valoare implicită. Această opţiune înlocuieşte determinările de limbă care se bazează pe nume de fişiere script, nume de fişiere script de profil sau proprietatea com.ibm.ws.scripting.defaultLang.

    Important: Dacă nu specificaţi limba scriptului în linia de comandă sau ca parametru şi utilitarul wsadmin nu poate determina limba scriptului, apare o eroare. Dacă nu specificaţi limba scriptului ca valoare pentru -lang, utilitarul wsadmin determină limba scriptului după cum urmează:
    • Dacă specificaţi argumentul -f script_file_name , utilitarul wsadmin determină limba din numele fişierului script destinaţie.
    • Dacă specificaţi argumentul -profile profile_script_name , utilitarul wsadmin determină limba din numele scriptului de profiluri.
    -conntype
    Tipul de conexiune care ar trebui stabilit între scripturi. Tipurile valide de conexiune includ:
    • SOAP
    • RMI
    • NONE

    Valoarea implicită este SOAP. Acest parametru este opţional. Folosiţi opţiunea -conntype NONE pentru a rula în mod local. Rezultatul este că clientul de script nu este conectat la un server în rulare. Dacă se selectează tipul de conexiune NONE, bean-urile de script sunt inactive şi nu se pot folosi pentru administrare, cu excepţia comenzii help.

    -port Numărul de port al conexiunii. Acest parametru este opţional.
    Numărul portului depinde de valorile alese în timpul instalării. Puteţi verifica valoarea care este setată pentru proprietatea WasSoapPort în fişierul wkplc.properties care se află în directorul corespunzător dat aici:
    Dacă rulaţi wpscript pe un server care face parte dintr-o celulă gestionată de un manager de implementare, port_number poate varia în funcţie de ce porturi sunt în uz pe sistem când este creat managerul de imlementare. Pentru a verifica valoarea, verificaţi setarea pentru SOAP_CONNECTOR_ADDRESS în serverindex.xml care se află în directorul corespunzător dat aici:
    • Linux:dmgr_profile_root/config/cells/cell_name/nodes/node_name
    • IBM i:dmgr_profile_root/config/cells/cell_name/nodes/node_name
    • Windows:dmgr_profile_root\config\cells\cell_name\nodes\node_name
    -user

    ID-ul de utilizator sub care stabiliţi conexiunea. Acest parametru poate fi obligatoriu, în funcţie de configuraţia de securitate.

    -password

    Parola pentru ID-ul de utilizator sub care stabiliţi conexiunea.

  2. Lagaţi-vă în portal utilizând una din următoarele comenzi de script:

    Jython: Portal.login("user_ID", "password")

    JACL: $Portal login user_ID password

  3. Lansaţi comenzile script portal aşa cum se cer.
  4. După ce aţi terminat toate operaţiile interfeţei de script portal, închideţi şi ieşiţi din procesorul de script. Toate modificările comise sunt aplicate la configuraţia portal.

Mod script

Folosiţi modul script pentru a aplica modificări predefinite la configuraţia unui portal.

Utilitarul wpscript execută un script Jython sau JACL care conţine operaţiile administrative. Clientul de scriptare moşteneşte procesorul de script din wsadmin, astfel încât un administrator poate exploata limbajul de script Jython sau JACL, pentru a scrie scripturi de administrare reutilizabile, extensibile. Acest mod este preferat în mod tipic dacă sunt create taskuri de administrare reproductibile: De exemplu, administratorul poate scrie un script care produce un subarbore complet de pagină şi adaugă dispuneri în pagină individuale şi portleturi pe fiecare pagină.

Utilizatorii care au permisiune de acces pentru a realiza cereri de interfaţă de configurare XML pot schimba configuraţiile tuturor resurselor. Portal Scripting Interface este cel mai consistent cu modelul de administrare expus de interfaţa de utilizator Portal.

Înainte de a folosi modul script, asiguraţi-vă că WebSphere Portal Express rulează şi că un fişier de script portal este disponibil. Trebuie să fiţi înregistrat folosind ID-ul de utilizator administrativ WebSphere. Utilizaţi procedura următoare:

  1. Actualizaţi fişierul script cu acreditările corespunzătoare, dacă este necesar.
  2. Utilizaţi una dintre următoarele comenzi pentru a lansa utilitarul procesor al scriptului:

    Jython: wpscript.sh -port port_number -f script_file_name.py

    JACL: wpscript.sh -port port_number -f script_file_name.jacl

    Aceasta iniţializează mediul script interactiv al procesorului de script JACL sau Jython al portalului.
  3. Verificaţi ieşirea din procesorul script pentru a vă asigura că nu au apărut erori în timpul execuţiei scriptului.

Toate modificările comise de script sunt imediat aplicate la configuraţia portal.

Următorul exemplu de script crează o pagină nouă cu titlul A page. Această pagină se află sub eticheta Home. Această pagină conţine două portleturi care sunt aranjate orizontal.
Exemplu de script portal Jython
Următorul exemplu este un fişier script Jython numit testme.py:
# Scripting bean example: create a simple page (multi-column Layout)
#

# Procedure: create a multi-column page under the page that is currently
# selected, and place the given portlets into the layout.
#
# parameters:
#   name The name of the page
#   portlet_names A list of portlet names.
# returns:
#   oid The id of the page that has been created
def create_multi_col_page(name, portlet_names):
    thePage = Content.create("page", name, "html")
    Content.select(thePage)
    lyt0 = Layout.create("container", "horizontal", "select")
    for pn in portlet_names:
        pid = Portlet.find("portlet", "cn", pn)
        Layout.create("control", pid)

    return thePage


# main code starts here

# set User ID/ pwd for portal Login command
# Hint: User ID and passwords should normally not be placed inside a
# configuration script; better use property files or command line arguments
user = "user_ID"
pwd = "password"
Portal.login(user, pwd)

# determine and select the parent of the page to be created.
# In this example, This is the "Home" label.
Content.select(Content.find("all", "uniquename", "ibm.portal.Home")
# Invoke the page creation procedure. The label of the page is "My test page",
# portlets to be added are the reminder portlet and the welcome portlet.
newbie = create_multi_col_page("A Page", ["Reminder", "Welcome_to_WebSphere_Portal"])

print "ok, we are done."
Exemplu script portal JACL
Următorul exemplu este un script JACL numit testme.jacl:
# Scripting bean example: create a simple page (multi-column Layout)           
#                                                                              

# Procedure: create a multi-column page under the page that is currently       
# selected, and place the given portlets into the layout.                      
#                                                                              
# parameters:                                                                  
#   name              The name of the page                                     
#   portlet_names     A list of portlet names.                                 
# returns:
#   oid               The id of the page that has been created                 
proc create_multi_col_page { name portlet_names } {                            
  global Content Layout Portlet                                                
    set thePage [$Content create page $name html]                              
    $Content select $thePage                                                   
    set lyt0 [$Layout create container horizontal select]                      
    foreach pn $portlet_names {                                                
      set pid [$Portlet find portlet cn $pn]                                   
      $Layout create control $pid                                              
    }                                                                          
  return $thePage                                                              
}                                                                              
                                                                               
# main code starts here                                                        
                                                                               
# set User ID/ pwd for portal Login command                                    
# Hint: User ID and passwords should normally not be placed inside a           
# configuration script; better use property files or command line arguments    
set user user_ID                                                           
set pwd  password                                                              
$Portal login $user $pwd                                                       
                                                                               
# determine and select the parent of the page to be created.                   
# In this example, This is the "Home" label.                              
$Content select [$Content find all uniquename "ibm.portal.Home"]                 
                                                                               
# Invoke the page creation procedure. The label of the page is "My test page", 
# portlets to be added are the reminder portlet, and the welcome portlet.   
set newbie [create_multi_col_page "A Page" { "Reminder" "Welcome_to_WebSphere_Portal" } ]
                                                                               
puts "ok, we are done."       
Scripturile pot primi informaţii referitoare la parametri în mod extern, prin utilizarea uneia din următoarele caracteristici:
  • Profiluri.
  • Argumente în linie de comandă.
Scripturile pot accesa argumentele liniei de comandă cu următoarele variabile:
argc
Utilizaţi această variabilă în scripturile JACL pentru a specifica numărul argumentelor de la linia de comandă.
argv
Utilizaţi această variabilă în scripturile JACL şi Jython pentru a specifica numărul argumentelor de la linia de comandă.
Jython: În exemplul de script precedent, testme.py, ştergeţi următoarele instrucţiuni:
user = "portaladmin"
pwd = "adminpwd"
şi înlocuiţi-le cu insrucţiunile următoare:
if len(sys.argv) != 2:
   print "invocation syntax: wpscript testme.py <user> <pwd>"
   sys.exit(1)

user = argv[0]
pwd = argv[1]
JACL: În exemplul precedent de script, testme.jacl, ştergeţi următoarele instrucţiuni:
set user portaladmin                                                           
set pwd  adminpwd 
şi înlocuiţi-le cu insrucţiunile următoare:
if { $argc != 2 }  {
    puts "invocation syntax: wpscript testme.jacl <user> <pwd>"
	  exit
  }
  set user [lindex $argv 0]
  set pwd [lindex $argv 1]
Numele de utilizator şi parola, care sunt sensibile la securitate sunt şterse din script. Codul modificat aşteaptă ca ID-ul de utilizator şi parola să fie specificate ca şi argumente linie de comandă, de exemplu:
Jython: wpscript.sh -port port_number -f testme.py user_IDpassword
JACL: wpscript.sh -port port_number -f testme.jacl user_ID password

Rulare comenzi script într-un profil

Un profil este un script care rulează înaintea scriptului principal sau înaintea introducerii modului interactiv. Profilurile pot fi folosite pentru a seta comportament specific de mediu sau date specifice de utilizator. Profilurile sunt specificate când se invocă wpscript, folosind parametrul -profile. De exemplu, comanda login poate fi pusă într-un profil.

Exemplu de script profil Jython
Următorul exemplu este un script Jython de profile numit mylogin.py:
# scripting profile
# contains log-in procedure on portal with disabled security
if len(sys.argv) != 2:
   print "invocation syntax: wpscript -f testme.jacl -profile
mylogin.py user_ID password"
   sys.exit(1)

user = argv[0]
pwd = argv[1]
Portal.login(user, pwd)
Ştergeţi sau comentaţi următoarele instrucţiuni în fişierul script testme.py:
if len(sys.argv) != 2:
   print "invocation syntax: wpscript testme.py user_ID password"
   sys.exit(1)

user = argv[0]
pwd = argv[1]
Portal.login(user, pwd)

Pentru a invoca mylogin.py, introduceţi următoarea comandă: wpscript.sh -port port_number -profile mylogin.py -f testme.py user_ID password

Exemplu de script profil JACL
Următorul exemplu este un script de profiluri JACL numit mylogin.jacl:
# scripting profile 
  # contains log-in procedure on portal with disabled security
  if { $argc != 2 }  {
    puts "invocation syntax: wpscript -f testme.jacl -profile mylogin.jacl user_ID password"
	  exit
  }
  set user [lindex $argv 0]
  set pwd [lindex $argv 1]
  $Portal login $user $pwd
Înlăturaţi sau puneţi în comentariu următoarele instrucţiuni în fişierul script testme.jacl:
  if { $argc != 2 }  {
    puts "invocation syntax: wpscript testme.jacl user_ID password"
    exit
  }
  set user [lindex $argv 0]
  set pwd [lindex $argv 1]
  $Portal login $user $pwd 

Pentru a invoca mylogin.jacl, introduceţi următoarea comandă: wpscript.sh -port port_number -profile mylogin.jacl -f testme.jacl user_ID password

Beneficiul acestei modificări este că procedura de logare specifică pe mediu este înlăturată din scriptul de administrare. Pentru sisteme cu securitate WebSphere Application Server activată, procedura de logare este:
Scripturi Jython
  # scripting profile 
  # contains log-in procedure on portal with enabled security
  Portal.login()
Scripturi JACL
  # scripting profile 
  # contains log-in procedure on portal with enabled security
  $Portal login