Ejemplo: listado de módulos de un servidor de aplicaciones

Este ejemplo lista todos los módulos de todas las aplicaciones empresariales que están instaladas en el servidor servidor1 de un nodo denominado nodo1.

Un asterisco (*) significa que el módulo está instalado en server1 y node1 y otros nodos o servidores. Un signo más (+) significa que el módulo está instalado únicamente en server1 y node1.

 1  #-----------------------------------------------------------------------------------------------
       2  # establecer variables para mantener el nombre de nodo y el nombre de servidor 
       3  #----------------------------------------------------------------------------------
       4  set  serverName  server1
       5  set  nodeName  node1
       6  #----------------------------------------------------------------------------------
       7  # establecer dos listas globales para mantener los módulos
       8  #----------------------------------------------------------------------------------
       9  set  ejbList {}
      10 set webList {}
11
12 #------------------------------------------------------------------------------------------------
13 # obtiene todos los objetos de despliegue y los asigna a la variables deployments
14 #------------------------------------------------------------------------------------------------
15 set deployments [$AdminConfig getid /Deployment:/]
16
17 #------------------------------------------------------------------------------------------------
18 # líneas 22-148. Se itera en todos los objetos de despliegue para obtener los módulos
19 # y realizar el filtrado para listar la aplicación que tenga al menos un módulo instalado
20 # en el servidor server1 en el nodo myNode
21 #------------------------------------------------------------------------------------------------
22 foreach deployment $deployments {
23
24     # -------------------------------------------------------------------------------------------
25     # restablecer las listas que mantienen módulos para cada aplicación
26     #--------------------------------------------------------------------------------------------
27     set webList {}
28     set ejbList {}
29
30     #------------------------------------------
31     # obtener el nombre de la aplicación
32     #------------------------------------------
33     set appName [lindex [split $deployment (] 0]
34
35     #------------------------------------------          
36     # obtener deployedObjects
37     #------------------------------------------
38     set depObject [$AdminConfig showAttribute $deployment deployedObject]
39
40     #--------------------------------------------    
41     # obtener todos los módulos de la aplicación
42     #---------------------------------------------
43     set modules [lindex [$AdminConfig showAttribute $depObject modules] 0] 
44
45     #--------------------------------------------------------------------------------------------
46     # inicializar listas para guardar todos los módulos en la lista correspondiente a la
que pertenecen
47     #--------------------------------------------------------------------------------------------
48     set modServerMatch {}  
49     set modServerMoreMatch {}
50     set modServerNotMatch {}
51
52         #----------------------------------------------------------------------------------------
53         # líneas 55-112. Se itera en todos los módulos para obtener targetMappings
54         #----------------------------------------------------------------------------------------
55         foreach module $modules {
56             #------------------------------------------------------------------------------------
57             # configurar un distintivo para realizar el filtrado y obtener módulos para
server1 en node1
58             #------------------------------------------------------------------------------------
59             set sameNodeSameServer "false"
60            set diffNodeSameServer "false"
61             set sameNodeDiffServer "false"
62             set diffNodeDiffServer "false"
63
64             #--------------------------------------------
65             # obtener targetMappings
66             #--------------------------------------------
67             set targetMaps [lindex [$AdminConfig showAttribute $module targetMappings] 0]
68
69             #------------------------------------------------------------------------------------
70            # líneas 72-111 Se itera en todas las targetMappings para obtener el destino
71             #------------------------------------------------------------------------------------
72             foreach targetMap $targetMaps { 
73                 #------------------------------
74                # obtener el destino
75                 #------------------------------
76                 set target [$AdminConfig showAttribute $targetMap target]
77
78                 #--------------------------------------------------
79                 # realizar el filtrado para omitir ClusteredTargets  
80                 #--------------------------------------------------
81                 set targetName [lindex [split $target #] 1]
82                if {[regexp "ClusteredTarget" $targetName] != 1} { 
83                     set sName [$AdminConfig showAttribute $target name]
84                     set nName [$AdminConfig showAttribute $target nodeName]
85              
86                     #----------------------------------------------
87                     # realizar la coincidencia de nombres de servidor
88                     #----------------------------------------------
89                     if {$sName == $serverName} {
90                       if {$nName == $nodeName} {
91                 set sameNodeSameServer "true"
92                         } else {
93                 set diffNodeSameServer "true"
94                         }
95                    } else {
96                          #--------------------------------------- 
97                          # realizar la coincidencia de nombres de nodo
98                          #---------------------------------------
99                          if {$nName == $nodeName} {
100                 set sameNodeDiffServer "true"
101                        } else {
102                            set diffNodeDiffServer "true"
103                        }
104                  }
105 
106                  if {$sameNodeSameServer == "true"} {
107                      if {$sameNodeDiffServer == "true" || $diffNodeDiffServer == "true" || 
																														$diffNodeSameServer == "true"} {
108                          break
109                      }
110                 }
111            }
112      }
113
114      #---------------------------------------------
115      # colocar en la lista correspondiente
116      #---------------------------------------------   
117      if {$sameNodeSameServer == "true"} {
118          if {$diffNodeDiffServer == "true" || $diffNodeSameServer == "true" || $sameNodeDiffServer == "true"} {
119               set modServerMoreMatch [linsert $modServerMoreMatch end [$AdminConfig showAttribute $module uri]]
120           } else {
121               set modServerMatch [linsert $modServerMatch end [$AdminConfig showAttribute $module uri]]
122          }      
123     } else {
124          set modServerNotMatch [linsert $modServerNotMatch end [$AdminConfig showAttribute $module uri]]
125     }
126  }  
127
128
129  #----------------------------------------------------------------
130  # imprimir la salida con alguna notación como marca
131  #----------------------------------------------------------------
132  if {$modServerMatch != {} || $modServerMoreMatch != {}} {
133      puts stdout "\tApplication name: $appName"
      134  }
      135
      136  #---------------------------------------------------------
      137  # realizar la agrupación para el módulo correspondiente e imprimir
      138  #---------------------------------------------------------
      139  if {$modServerMatch != {}} {
      140      filterAndPrint $modServerMatch "+"
      141  }
      142  if {$modServerMoreMatch != {}} {
      143      filterAndPrint $modServerMoreMatch "*"
      144  }
      145  if {($modServerMatch != {} || $modServerMoreMatch != {}) "" $modServerNotMatch != {}} {
      146      filterAndPrint $modServerNotMatch ""
      147  }
      148}
      149
      150   
      151  proc filterAndPrint {lists flag} {
      152     global webList
      153     global ejbList
      154     set webExists "false"
      155     set ejbExists "false"
      156
      157     #-------------------------------------------------------------------------------------
      158     # Si ya existe la lista, destacar para que no imprima el título más de una vez
      159     # y restablecer la lista
      160     #-------------------------------------------------------------------------------------
      161     if {$webList != {}} {
      162         set webExists "true"
      163         set webList {}
      164     }   
      165     if {$ejbList != {}} {
      166         set ejbExists "true"
      167         set ejbList {}
      168     }
      169
      170     #------------------------------------------------------------------
      171     # realizar el filtrado de los módulos Web y los módulos de ejb
      172     #------------------------------------------------------------------
      173     foreach list $lists {
      174          set temp [lindex [split $list .] 1]
      175          if {$temp == "war"} {
      176               set webList [linsert $webList end $list]
      177          } elseif {$temp == "jar"} {
      178               set ejbList [linsert $ejbList end $list]
      179          }
      180     }
      181
      182     #---------------------------------------
      183     # clasificar la lista antes de imprimir
      184     #---------------------------------------
      185     set webList [lsort -dictionary $webList]
      186     set ejbList [lsort -dictionary $ejbList]
      187
      188     #----------------------------------------------------------------
      189     # imprimir todos los módulos Web instalados en server1
      190     #----------------------------------------------------------------
      191     if {$webList != {}} {
      192         if {$webExists == "false"} {
      193              puts stdout "\t\tWeb Modules:"
      194         }
      195         foreach web $webList {
      196             puts stdout "\t\t\t$web  $flag"
      197         }
      198     }
      199
      200     #--------------------------------------------------------------
      201     # imprimir todos los módulos de ejb instalados en server1
      202     #--------------------------------------------------------------
      203     if {$ejbList != {}} {
      204          if {$ejbExists == "false"} {
      205                puts stdout "\t\tEJB Modules:"
      206          }
      207          foreach ejb $ejbList {
      208                puts stdout "\t\t\t$ejb  $flag"
      209          }
      210     }
      211}
      
Salida de ejemplo para el servidor server1 en el nodo node1:
       Nombre de aplicación: TEST1
                Módulos de EJB:
                        deplmtest.jar  +
                Módulos Web:
                        mtcomps.war  *
        Nombre de aplicación: TEST2
                Módulos Web:
                        mtcomps.war  +
                Módulos de EJB:
                        deplmtest.jar  +
        Nombre de aplicación: TEST3
                Módulos Web:
                        mtcomps.war  *
                Módulos de EJB:
                        deplmtest.jar  *
        Nombre de aplicación: TEST4
                Módulos de EJB:
                        deplmtest.jar  *
                Módulos Web:
                        mtcomps.war

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rxml_module
File name: rxml_module.html