
%[c           @   s  d  d l  j Z d  d l Z d  d l Z d  d l Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d    Z$ d!   Z% d"   Z& d#   Z' d$   Z( d%   Z) d&   Z* d'   Z+ d(   Z, d)   Z- d*   Z. e/ d+ k rd, Z0 e1 e j2  d- k re j2 d- Z0 n  e. e0  n  d S(.   iNc         C   s^   y, t  j d t  } t  j |  |  } | SWn+ t k
 rY } t |  GHt j d  n Xd  S(   Nt   remove_blank_texti   (   t   ETt	   XMLParsert   Truet   parset	   Exceptiont   strt   syst   exit(   t   filet   parsert   Tt   ex(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt	   parse_xml
   s    c         C   sn   y< t  |  d  } t j | j    j   } | j   | SWn+ t k
 ri } t |  GHt j	 d  n Xd  S(   Nt   rbi   (
   t   opent   hashlibt   md5t   readt	   hexdigestt   closeR   R   R   R   (   R	   t   fpt   hR   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   file_md5   s    
c         C   s   y | d } | d } |  j  | d t d t d d t |  } t |  } | | k r} t j | |  t j | |  n t j |  Wn7 t k
 r } d | d t |  GHt j	 d	  n Xd  S(
   Ns   .news   .bakt   pretty_printt   xml_declarationt   encodings   UTF-8s   ERROR: Could not save file 's   ': i   (
   t   writeR   R   t   ost   renamet   removeR   R   R   R   (   t   treeR	   t   new_filet   bak_filet   old_md5t   new_md5R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   save_xml(   s    

c         C   s7   |  j  d d | } t |  d k r+ d  S| d Sd  S(   Ns   *[local-name() = $name]t   namei    (   t   xpatht   lent   None(   t   parentt   tag_namet   L(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   find_elementH   s    c         C   s   d GHt  |   t |   d  S(   Ns     Upgrading WEB(   t   upgrade_web_sslt   upgrade_web_virtsrv(   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   upgrade_webT   s    
c         C   s_   |  j  d d d } t |  d k r0 d GHd  Sx( | D]  } d | j d <d | j d	 <q7 Wd  S(
   Ns   //*[local-name() = $name]R%   t   ssli    s0   WARNING: Could not find 'connector/ssl' element.s   TLSv1.2t   protocolt%   TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384s   cipher-suite(   R&   R'   t   attrib(   R   R+   R0   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyR-   \   s    c         C   s   |  j  d d d } t |  d k r0 d GHd  Sx | D] } t | d  } | d  k r7 t j d  } d | j d <d	 | j d
 <d | j d <| j |  t j d  } d | j d <d | j d <d | j d <| j |  q7 q7 Wd  S(   Ns   //*[local-name() = $name]R%   s   virtual-serveri    s1   WARNING: Could not find 'virtual-server' element.t   rewrites   .*t   patternt   -t   substitutiont   Ft   flagst	   conditions   %{REQUEST_METHOD}t   tests&   ^(TRACE|PATCH|CONNECT|PROPFIND|MKCOL)$t   NC(   R&   R'   R,   R(   R   t   ElementR3   t   append(   R   R+   t   el_vst
   el_rewritet   el_condition(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyR.   h   s"    c         C   sV   |  j  d d k r) |  j   j |   n  |  j  d d k rR |  j   j |   n  d  S(   Ns	   jndi-names!   java:jboss/datasources/datasources   java:/RcsDB(   R3   t	   getparentR   (   t   el_ds(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   ds_remove_unused   s    c         C   sR   t  |  d  } | d  k r' d | _ n  t  |  d  } | d  k rN d | _ n  d  S(   Ns   connection-urls#   jdbc:postgresql://dbserver:5432/ttvt   drivers   postgres.Driver(   R,   R(   t   text(   RC   t   el_cont   el_drv(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   ds_upgrade_con   s    c         C   sq   t  |  d  } | d  k r d  St  | d  } | d  k rF d | _ n  t  | d  } | d  k rm d | _ n  d  S(   Nt   pools   min-pool-sizet   5s   max-pool-sizet   250(   R,   R(   RF   (   RC   t   el_poolt   el_mint   el_max(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   ds_set_pool_size   s    c         C   s   t  |  d  } | d  k r: t j d  } |  j |  n  t  | d  } | d  k rt t j d  } | j |  n  d | _ d  S(   Nt   timeouts   idle-timeout-minutest   10(   R,   R(   R   R=   R>   RF   (   RC   t
   el_timeoutt   el_timeout_idle(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   ds_set_timeout   s    c         C   s   t  |  d  } | d  k r: t j d  } |  j |  n  | j d d d } xW | D]O } | j d d k s | j d d k s | j d d k rV | j |  qV qV Wt j d  } d	 | _ t j d d d d
 d } | j |  | j |  d  S(   Nt   driverss   *[local-name() = $name]R%   RE   s   com.edb.Drivers   postgress.Drivers   postgres.Drivers   xa-datasource-classs    org.postgresql.xa.PGXADataSourcet   modules   org.postgresql(	   R,   R(   R   R=   R>   R&   R3   R   RF   (   t   el_dsst
   el_driversR+   RH   t   el_ds_class(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   ds_upgrade_drivers   s    9	c         C   s   d GH|  j  d d d } t |  d k r5 d GHd  St | d  |  j  d d d } t |  d k rs d GHd  Sx6 | D]. } t |  t |  t |  t |  qz Wd  S(	   Ns     Upgrading datasourcess   //*[local-name() = $name]R%   t   datasourcesi    s.   WARNING: Could not find 'datasources' element.t
   datasources-   WARNING: Could not find 'datasource' element.(   R&   R'   R[   RD   RI   RP   RU   (   R   R+   RC   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   upgrade_datasources   s    


c         C   s'   d GHt  |   t |   t |   d  S(   Ns     Upgrading EJB(   t   ejb_upgrade_pool_sizet   add_new_ejbt
   update_ejb(   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   upgrade_ejb   s    

c         C   sW   d GH|  j  d d d } t |  d k r5 d GHd  Sx | D] } d | j d <q< Wd  S(	   Ns     Upgrading EJBs   //*[local-name() = $name]R%   s   strict-max-pooli    sF   WARNING: Could not find 'bean-instance-pools/strict-max-pool' element.t   80s   max-pool-size(   R&   R'   R3   (   R   R+   t   el(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyR_      s    c         C   s   d GH|  j  d d d } t |  d k r5 d GHd  St |  d k rP d GHd  S| d } x* | D]" } | j d d	 k ra d
 GHd  Sqa Wt j d  } d	 | j d <d | j d <| j |  d  S(   Ns     Adding new EJBss   //*[local-name() = $name]R%   t   bindingsi    s+   WARNING: Could not find 'bindings' element.i   s4   WARNING: There are more than one 'bindings' element.s&   java:global/cms/SiteTitleManager/locals2   The new EJB for SiteTitleManager is already there.t   lookups]   java:global/cms/cms_sites_impl/SiteTitleManager!com.ericsson.cms.sites.core.ISiteTitleManager(   R&   R'   R3   R   R=   R>   (   R   R+   t   el_bindingsRd   t   el_lkp(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyR`     s"    
c         C   s   |  j  d d | } t |  d k r8 d | d GHd  Sx | D]{ } | j j d |  r? | j   } t j t j |  j | |   } | d  k r |  j
 |  q | j | |  q? q? Wd  S(   Ns   //*[local-name() = $name]R%   i    s   WARNING: Could not find 's
   ' element.u   {%s}(   R&   R'   t   tagt
   startswithRB   R   t
   fromstringt   tostringt   replaceR(   t   _setroot(   R   t   elnamet   oldnst   newnsR+   Rd   t	   el_parentt   el_new(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   change_namespace$  s    $c         C   s   d GHt  |  d d d  d  S(   Ns     Upgrading server jboss domaint   serveru   urn:jboss:domain:1.4s   urn:jboss:domain:1.8(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   update_server_jboss_domain6  s    c         C   s   d GH|  j    } t | d  } | d  k r t j d  } t j d  } d | j d <d | j d <| j | j t | d   d	 |  | j |  n  d  S(
   Ns     Add system propertiess   system-propertiest   propertys0   org.apache.tomcat.util.http.Parameters.MAX_COUNTR%   t   5000t   valuet
   extensionsi   (	   t   getrootR,   R(   R   R=   R3   t   insertt   indexR>   (   R   t   el_roott   el_system_propertiest   el_property(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   add_system_properties=  s    &c         C   s   d GHt  |  d d d  d  S(   Ns'     Upgrading server jboss domain loggingt	   subsystemu   urn:jboss:domain:logging:1.2s   urn:jboss:domain:logging:1.5(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt%   update_subsystem_jboss_domain_loggingL  s    c         C   s   d GH|  j  d d d } t |  d k r5 d GHd  Sx7 | D]/ } | j d d k r< | j   j |  q< q< Wd GH|  j  d d d	 } t |  d k r d
 GHd  Sx7 | D]/ } | j d d k r | j   j |  q q Wd  S(   Ns0     Remove cmsrappender size-rotating-file-handlers   //*[local-name() = $name]R%   s   size-rotating-file-handleri    s=   WARNING: Could not find 'size-rotating-file-handler' element.t   cmsrappenders#     Remove com.tandbergtv.tstv loggert   loggers)   WARNING: Could not find 'logger' element.t   categorys   com.tandbergtv.tstv(   R&   R'   R3   RB   R   (   R   R+   Rd   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   remove_logger_cmsrappenderS  s     c         C   s   d GHt  |  d d d  d  S(   Ns.     Upgrading subsustem jboss domain datasourcesR   u    urn:jboss:domain:datasources:1.1s    urn:jboss:domain:datasources:1.2(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt)   update_subsystem_jboss_domain_datasourcesk  s    c         C   s   d GHt  |  d d d  d  S(   Ns%     Upgrading subsystem jboss domain eeR   u   urn:jboss:domain:ee:1.1s   urn:jboss:domain:ee:1.2(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt    update_subsystem_jboss_domain_eer  s    c         C   s   d GH|  j  d d d d } | j  d d d } x* | D]" } | j d d k r: d GHd  Sq: Wt j d  } d | j d <d	 | j d
 <| j |  d  S(   Ns     Add postgresql modules   //*[local-name() = $name]R%   s   global-modulesi    RW   s   org.postgresqls+   The new postgresql module is already there.t   maint   slot(   R&   R3   R   R=   R>   (   R   t   global_modulest   modulesRd   t   postgresql_el(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   add_postgresql_moduley  s    c         C   s   d GHt  |  d d d  d  S(   Ns'     Upgrading subsystem jboss domain ejb3R   u   urn:jboss:domain:ejb3:1.4s   urn:jboss:domain:ejb3:1.5(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt"   update_subsystem_jboss_domain_ejb3  s    c         C   s	  d GH|  j  d d d } t |  d k r5 d GHd  Sx | D] } | j d d k r< t | d	  st d
 | j d	 <n  t | d  } | d  k r| j |  t j d  } | j	 |  t j d  } d
 | j d <d | j d <d | j d <| j	 |  qq< q< Wd  S(   Ns     Upgrading time services   //*[local-name() = $name]R%   s   timer-servicei    s0   WARNING: Could not find 'timer-service' element.s   thread-pool-namet   defaults   default-data-stores   default-file-stores
   data-stores   data-storess   file-data-stores   timer-service-datat   paths   jboss.server.data.dirs   relative-to(
   R&   R'   R3   t   hasattrR,   R(   R   R   R=   R>   (   R   R+   Rd   t   el_data_storet   el_data_storest   el_file_data_store(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   update_timer_service  s&    c         C   s   d GHt  |  d d d  d  S(   Ns-     Upgrading subsystem jboss domain infinispanR   u   urn:jboss:domain:infinispan:1.4s   urn:jboss:domain:infinispan:1.5(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt(   update_subsystem_jboss_domain_infinispan  s    c         C   s   d GH|  j  d d d } t |  d k r5 d GHd  Sxr | D]j } t | d  sa d | j d <n  | j  d d d	 } x- | D]% } t | d  s} d | j d <q} q} Wq< Wd  S(
   Ns     Upgrading cache containers   //*[local-name() = $name]R%   s   cache-containeri    s2   WARNING: Could not find 'cache-container' element.s   statistics-enabledt   trues   local-cache(   R&   R'   R   R3   (   R   R+   Rd   t   local_cachest   local_cache(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   update_cache_container  s    c         C   s   d GHt  |  d d d  d  S(   Ns)     Upgrading subsystem jboss domain jacorbR   u   urn:jboss:domain:jacorb:1.3s   urn:jboss:domain:jacorb:1.4(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt$   update_subsystem_jboss_domain_jacorb  s    c         C   s   d GHt  |  d d d  d  S(   Ns&     Upgrading subsystem jboss domain jmxR   u   urn:jboss:domain:jmx:1.2s   urn:jboss:domain:jmx:1.3(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt!   update_subsystem_jboss_domain_jmx  s    c         C   s   d GHt  |  d d d  d  S(   Ns'     Upgrading subsystem jboss domain mailR   u   urn:jboss:domain:mail:1.1s   urn:jboss:domain:mail:1.2(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt"   update_subsystem_jboss_domain_mail  s    c         C   sN   d GH|  j  d d d d } | d  k rJ t | d  rJ d | j d <n  d  S(   Ns     Update mail sessions   //*[local-name() = $name]R%   s   mail-sessioni    s   java:jboss/mail/Default(   R&   R(   R   R3   (   R   t   mail_session(    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   update_mail_session  s    c         C   s   d GHt  |  d d d  d  S(   Ns,     Upgrading subsystem jboss domain messagingR   u   urn:jboss:domain:messaging:1.3s   urn:jboss:domain:messaging:1.4(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt'   update_subsystem_jboss_domain_messaging  s    c         C   s   d GHt  |  d d d  d  S(   Ns)     Upgrading subsystem jboss domain namingR   u   urn:jboss:domain:naming:1.3s   urn:jboss:domain:naming:1.4(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt$   update_subsystem_jboss_domain_naming  s    c         C   s   d GHt  |  d d d  d  S(   Ns+     Upgrading subsystem jboss domain remotingR   u   urn:jboss:domain:remoting:1.1s   urn:jboss:domain:remoting:1.2(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt&   update_subsystem_jboss_domain_remoting  s    c         C   s   d GHt  |  d d d  d  S(   Ns/     Upgrading subsystem jboss domain transactionsR   u!   urn:jboss:domain:transactions:1.3s!   urn:jboss:domain:transactions:1.5(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt*   update_subsystem_jboss_domain_transactions  s    c         C   s   d GHt  |  d d d  d  S(   Ns&     Upgrading subsystem jboss domain webR   u   urn:jboss:domain:web:1.4s   urn:jboss:domain:web:2.2(   Rt   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt!   update_subsystem_jboss_domain_web  s    c         C   s   t  |   t |   t |   t |   t |   t |   t |   t |   t |   t	 |   t
 |   t |   t |   t |   d  S(   N(   Rv   R   R   R   R   R   R   R   R   R   R   R   R   R   (   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   upgrade_jboss_domain  s    












c         C   s   d GHt  |   d  S(   Ns     Update EJB(   t   update_partnerusermanager_name(   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyRa     s    c         C   sh   |  j  d d d } | s# d GHn  x> | D]6 } | j d d k r* d | j d <d | j d <q* q* Wd  S(   Ns   //*[local-name() = $name]R%   Rf   s)   WARNING: Could not find 'lookup' element.s.   java:global/PartnerServices/PartnerUserManagers(   java:global/cms/PartnerUserManager/locals7   java:global/cms/cms_contentmgmt/PartnerUserManagerProxy(   R&   R3   (   R   t   lookupsRf   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyR     s    c         C   s   d |  GHt  |   } t |  t |  t |  t |  t |  t |  t |  t |  t	 |  t
 |  t | |   d GHd  S(   Ns
   Upgrading t   Done(   R   R^   Rb   R/   R   R   R   R   R   R   R   R$   (   R	   R   (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyR   '  s    	









t   __main__s-   /opt/tandbergtv/cms/conf/jboss/standalone.xmli   (3   t
   lxml.etreet   etreeR   R   R   R   R   R   R$   R,   R/   R-   R.   RD   RI   RP   RU   R[   R^   Rb   R_   R`   Rt   Rv   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   Ra   R   R   t   __name__t	   file_pathR'   t   argv(    (    (    sA   /opt/tandbergtv/cms/scripts/upgrade/cms-standalone-xml-upgrade.pyt   <module>   sb   			 					
					"																													