
ɪWc        "   @   s  d  d k  Z  e e   e  i d  d  d k l Z l Z d  d k Z d  d k Z d  d k l Z d  d k	 Z	 d  d k
 Z
 d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z d  d k  l  Z  d  d k! l! Z! l" Z" d  d k# Td	 e$ f d
     YZ% d S(   iNs   utf-8(   t	   copy_treet   remove_tree(   t	   BaseClass(   t   InstallHelper(   t   HttpRequestDecorator(   t   CMSVersionDeploymentPolicyt   PrepackDeploymentPolicy(   t   *t   Commonc           B   s  e  Z d  Z d Z d d d d d d d d	 d
 d d d g Z d Z d Z d Z h h d d d d g d 6d g d 6d d 6d 6h g  d 6g  d 6d d 6d d 6e	 d 6d 6h d d d d d d  d! d" d# d$ d% g d 6d g d 6d& d 6d' 6h d d( g d 6d g d 6d% d 6d' d 6d) 6h d* d+ g d 6d* d+ g d 6d, d 6d- 6h d d. d/ d0 d1 d2 d3 d4 g d 6d g d 6d5 d 6d6 6h d7 d8 d9 d: g d 6d7 d8 g d 6d; d 6d< 6h d d= d> d? d7 d@ dA g d 6d g d 6d: d 6d< d 6e	 d 6dB 6h dC dD dE g d 6dC g d 6dF d 6dG 6h dH dI dJ dK dL dM dN g d 6dH g d 6dE d 6dG d 6dO 6h d dP dQ g d 6d g d 6dR d 6dS 6h dT g d 6dT g d 6dQ d 6dS d 6e	 d 6dQ 6h d dP dQ g d 6d g d 6dU d 6dV 6h dT g d 6dT g d 6dQ d 6dV d 6e	 d 6dW 6h d d( g d 6d g d 6dX d 6dY 6h dZ d[ d\ d] d^ d_ d` da db dc dd de g d 6dZ d[ g d 6df d 6dg 6h d dh g d 6d g d 6di d 6dj 6h dk dl dm g d 6dk g d 6dn d 6do 6h d d( g d 6d g d 6dp d 6dq 6h dr ds g d 6dr g d 6dt d 6du 6h dv dw dx g d 6dv g d 6ds d 6du d 6e	 d 6dy 6h dr ds g d 6dr g d 6dz d 6d{ 6h dv dw dx g d 6dv g d 6ds d 6d{ d 6e	 d 6d| 6h d d} d~ d d g d 6d g d 6d d 6d 6h d d d d d d g d 6d g d 6d~ d 6d d 6e	 d 6d~ 6h d d d d g d 6d g d 6d d 6d d 6e	 d 6d 6h d d( g d 6d g d 6d d 6d d 6e	 d 6d 6Z
 d   Z d   Z e e 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  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   Z0 d   Z1 d   Z2 d   Z3 d   Z4 d   Z5 d   Z6 d   Z7 d   Z8 d   Z9 d   Z: d   Z; d   Z< d   Z= d   Z> d   Z? d   Z@ d   ZA eB d    ZC eB d    ZD eB d    ZE d   ZF d   ZG d d  ZH e	 d d  ZI e	 d d  ZJ d   ZK e	 d  ZL d   ZM d   ZN d   ZO d   ZP d   ZQ d   ZR d   ZS RS(   t    s   /data/backupFiless/   /opt/tandbergtv/cms/workflow/plugins/subsystemss+   /opt/tandbergtv/cms/workflow/plugins/groupss    /opt/tandbergtv/cms/workflow/libs(   /opt/tandbergtv/cms/workflow/preferencess0   /opt/tandbergtv/watchpoint/tomcat/webapps/ffmpegs   /opt/tandbergtv/cms/conf/ffmpegs5   /opt/tandbergtv/watchpoint/tomcat/webapps/filemanagers$   /opt/tandbergtv/cms/conf/filemanagers5   /opt/tandbergtv/watchpoint/tomcat/webapps/imagemagicks$   /opt/tandbergtv/cms/conf/imagemagicks5   /opt/tandbergtv/watchpoint/tomcat/webapps/watchfolders$   /opt/tandbergtv/cms/conf/watchfolders   rollback.jsons	   base.jsont
   PROVIDERIDt   NAMEt   PARTNERTYPEt   CONTENTCLASSNAMEt   keyst
   uniqueKeyst   partnerst   jsonKeyt   PARTNERt   parentt   mergeNeededt   PARTNER_CONTENTCLASSt
   EXTERNALIDt   ACTIVEt   DISTRIBUTION_OPTIONt   METADATA_FORMATt   FILE_LOOKUP_KEYSt   DIST_TEMPLATE_NAMEt   ALERT_DELAY_PERIODt   TYPEt   ASSOCIATE_RESOURCEt
   PARAMETERSt   sitest   SITEt   VALUEt   SITE_PARAMETERt   SELECTIONKEYt   TEMPLATEt   selectorKeyst   SELECOTRKEYt   RESOURCETYPENAMEt   RESOURCEGROUPNAMEt   CONNECTIONSTRINGt   MAXCONCURRENTUSERSt   HEARTBEATCONNECTIONSTRINGt   HEARTBEATFREQUENCYt   USERNAMEt	   resourcest   RESOURCEt   DISPLAY_NAMEt
   ASSET_PATHt   UUIDt   FIELDSt   customFieldst   CUSTOMFIELDGROUPt	   DATA_TYPEt   JOB_PARAMETERt   JOB_SCHEDULE_PARAMETERt
   MULTIVALUEt
   FIELD_TYPEt   CUSTOMFIELDt
   ALERT_NAMEt   PATTERNt   ALERTSt   alertst	   ALERTNAMEt
   IDENTIFIERt   THRESH_COUNTt   THRESH_SECSt
   FREQ_COUNTt	   FREQ_SECSt	   SNMP_TRAPt   EMAILt   ALERTt   DESCRIPTIONt   CONTENTCLASSFILESt   contentClassest   CONTENTCLASSESt   FILENAMEt   contentClassesToDeletet   CONTENTCLASSESTODELETEt   CONTENTCLASSFILESTODELETEt   resourceHostst   RESOURCEHOSTSt   patht   filtert	   frequencyt   processClasst
   messageUIDt   commandParametert   messageParametert
   routingDirt
   failureDirt   looseFileNamePatternt   eventst   threadst   watchfolderst   WATCHFOLDERt   GROUPSt   distTemplatest   DISTTEMPLATEt   HOSTt   USERt   PASSWORDt	   ftpConfigt	   FTPCONFIGt   paramst   PARAMSt   CATEGORYt   REPORTSs   3.0_reportss   3.0_REPORTCONFIG_CATEGORYt   TITLEt   CATALOGNAMEt
   REPORTNAMEs   3.0_REPORTCONFIGs   above_3.0_reportss   ABOVE_3.0_REPORTCONFIG_CATEGORYs   ABOVE_3.0_REPORTCONFIGt   PLUGIN_NAMEt   CRITERIAt   ENHANCEDFIELDt	   PARAMETERt
   meprofilest   MESUBSPROFILEt   MAPPINGt   DATATYPEt   PATHt
   ASSET_TYPEt   VALUE_FIELD_PATHc         C   s=   d |  _  d |  _ d |  _ d |  _ h  |  _ t   |  _ d  S(   NR	   (   t   configt   namet   installerVersiont   backupVersiont   handleItemObjectsR   t   helper(   t   self(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   __init__g   s    					c         C   s  |  i  i |  p| d j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t	 i	   |  i  | <n | d	 j o t
 i   |  i  | <n | d
 j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t i   |  i  | <n | d j o t i   |  i  | <qn |  i  | S(   NR   R!   R#   R'   R0   R6   R<   RA   RI   Rv   Rr   Rs   Rt   (   R   t   has_keyt   Partnerst   Sitest   SiteParameterst   SelectorKeyst	   Resourcest   CustomFieldsGroupst   CustomFieldst
   AlertNamest   Alertst   AlertPolicyForCMS3Xt   MeSubsProfilet   MeIdentifierCriteriat   MeEnhancedFieldt   MeSubsProfileParameter(   R   t   itemType(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   getHandleItemObjo   s8    c         C   s   |  i  d |  t |  } t i |  } | i   | o |  i |  i |  |  _ n
 | |  _ | og t i   oZ t	 i
 i t i  oD t t i  } t i |  } | i   |  i |  i |  |  _ n d  S(   Ns   Config File: (   t   outputt   opent   jsont   loadt   closet   mergeConfigR|   R   t   isFreshInstallt   osRT   t   existst	   BASE_JSON(   R   t	   inputfilet   mergeBaseConfigt   mergeWithExistingt	   json_datat	   tmpConfigt	   base_datat   base_config(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   loadJsonConfig   s    
	*
c         C   s   t  i |  i    d  } t  i   d j  o |  i d  } n |  i d  } | p t d   n t  i   i | d | d | d | d | d	  d  S(
   Ng      @t   oraclet
   postgresqls#   No database configuration is found!t   sidt   usert   passwordt   hostt   port(	   R   t   setCMSVersiont   getCMSWathpointVersiont   Nonet   getCMSVersiont	   getConfigt	   Exceptiont   getPrepackDepolymentPolicyt   initDbProvider(   R   t   dbconfig(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt
   initPolicy   s    c         C   sV   |  i    |  i d  |  _ |  i d  |  _ |  i d  |  _ |  i d  t _ d  S(   NR}   t   versionR   t   mode(   t   wrapAllConfigWithFullAttributesR   R}   R~   R   R   t   installMode(   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   initParameters   s
    
c         C   sB   x; |  i  D]0 } | |  i  | d j o | |  i  | f Sq
 Wd S(   NR   (   NN(   t	   ITEM_KEYSR   (   R   R   t   keyType(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   findItemKeyByJsonKey   s
    
 c         C   sk   g  } x^ |  i  D]S } |  i  | i d  o6 | |  i  | d j o | i | |  i  | f  q q W| S(   NR   (   R   R   t   append(   R   R   t   itemKeyListR   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   findItemKeysByParent   s    
 /"c         C   se   |  i  |  \ } } d  } | o | d } n | } x( | D]  } | | | | j o t Sq= Wt S(   NR   (   R   R   t   Falset   True(   R   t   attrt   item1t   item2R   t   itemKeyst	   keyColumnt   column(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   compareItemWithKey   s     	c         C   ss   t  |  t  t    j o0 xP | D]! } |  i | | |  o | Sq# Wn$ x  | D] } | | j o | SqS Wd  S(   N(   t   typet   dictR   R   (   R   R   t   itemt   itemListt   eachItem(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   findItemInList   s      	c         C   s   x | D] } | i  |  p | | | | <q | | o t | |  t t    j o g  } xj | | D]^ } |  i | | | |  } | o+ |  i | |  o |  i | |  q qk | i |  qk W| | | | | <q q q W| S(   N(   R   R   t   listR   t   getChildMergeNeededR   R   (   R   t   config1t   config2R   t   newItemListR   t   matchedItem(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR      s        c         C   s   t  |  t  t    j o t S|  i |  \ } } | o x | D] } x |  i D]x } |  i | i d  o[ | |  i | d j oC | |  i | d j o' |  i | i d  o |  i | d SqT qT WqD Wn t S(   NR   R   R   (   R   R   R   R   R   R   (   R   R   t	   childNodeR   R   t	   childAttrt   eachKeyType(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR      s     
 /7c         C   s   |  i  i |  i  S(   N(   R   t   getBackupDirR   (   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR      s    c         C   s   |  i  i |  i  S(   N(   R   t   getFileBackupDirR   (   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR      s    c         C   s   |  i  i |  i  S(   N(   R   t   getPrepackInfoBackupDirR   (   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR      s    c         C   s<   t  i i |  o% t i | | d t i d   n d  S(   Nt   _ORIG_s   %Y%m%d%H%M%S(   R   RT   R   t   shutilt   copyt   timet   strftime(   R   t   fileName(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt
   backupFile   s    c         C   s}   g  } | ol xi | D]] } t  i i |  oD | d t i d  } t i | |  | | g } | i |  q q Wn | S(   Nt   _ORIG_RESTORE_s   %Y%m%d%H%M%S(   R   RT   R   R   R   R   R   R   (   R   t   filesToBackupAndRestoret   backupFilePairsR   t   backupFilePatht   backupFilePair(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   backupFilesToRestore  s     c         C   s8   | o- x* | D] } t  i | d | d  q Wn d  S(   Ni   i    (   R   t   move(   R   R   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   restoreBackupFiles  s     c         C   s9   t  i i |  p" t  i |  |  i d |  n d  S(   Ns&   Directory not exists, make directory: (   R   RT   R   t   makedirsR   (   R   t	   directory(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   makeDir  s    c         C   s+   t  i d d d g | | | | f  d  S(   Ns   chown %s%s:%s %sR	   s   -R (   R   t   popen(   R   R   t   groupRT   t	   recursive(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   chown  s    c         C   s<   | i  d  o$ | d i   d j o t St Sn t Sd  S(   Nt	   IS_DELETEt   true(   R   t   lowerR   R   (   R   t   rc(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   checkDelVer  s
    c         C   s+   t  i i |  p t  i | |  n d  S(   N(   R   RT   R   t   symlink(   R   t   sourcet   target(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   createSymlink#  s    c      
   C   s   | d  j p t |  o d  St i   } xT | D]L } xC | d D]7 } | i | | d | d d | d |  i |   qD Wq3 Wd  S(   NR
   R   R   i   R   (   R   t   lenR   t   handlet   getIsDelete(   R   R   t   partnert   pt   provider(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   insertPartners'  s      c         C   s  | d  j p t |  o d  St i   } t i   } x | D] } |  i |  } | i | d | d | d | d | d | d | d | d | d	 | d
 |  | oe | i d  oU | d d  j	 oD xA | d D]1 } | i | d | d | d |  i |   q Wq? q? Wd  S(   NR   R   R   R   R   R   R   R   R   R   R   R"   (   R   R   R   R   R   R   R   (   R   R    t   sitet   spt   st
   deleteSiteR  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   insertSites/  s     S) c         C   se   | d  j p t |  o d  St i   } x2 | D]* } | i | d | d |  i |   q3 Wd  S(   NR$   R%   (   R   R   R   R   R   (   R   R&   t   selectorKeyt   sk(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   insertSelectorKeys<  s     c         C   s   | d  j p t |  o d  St i   } xi | D]a } |  i |  } | i | d | d | d |  | p# |  i | d | d | d  q3 q3 Wd  S(   NR1   R2   R3   R4   (   R   R   R   R   R   t   insertCustomFields(   R   t   cfgst   customFieldsGroupst   cfgt   isDelete(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   insertCustomFieldsGroupsE  s     "c         C   s   | d  j p t |  o d  St i   } x[ | D]S } | i | d | | | d | d | d | d | d | d |  i |  
 q3 Wd  S(   NR   R7   R8   R9   R1   R:   R;   (   R   R   R   R   R   (   R   t	   groupNamet	   assetPatht   cfsR5   t   cf(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR  O  s     c         C   s   | d  j p t |  o d  St i   } xk | D]c } | i | d | d | d | d | d d d | d | d d	 d	 | d
 d |  i |   q3 Wd  S(   NR   R(   R)   R*   R+   i   R,   R-   i   R.   R	   (   R   R   R   R   R   (   R   t   rsR/   t   r(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   insertResourcesV  s     c         C   sY   | d  j p t |  o d  St i   } x& | D] } | i | d | d  q3 Wd  S(   NR   t   ISALLOCATABLE(   R   R   t   ResourceGroupst   updateRGAllocation(   R   t   rgsAllocationt   resourceGroupst   rg(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   updateResourceGroupsAllocation^  s     c         C   s:   | d  j p t |  o d  St i   i | |   d  S(   N(   R   R   R   R   t   insertAlerts(   R   R@   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR   e  s    c         C   s   | d  j p t |  o d  St i   } x | D] } |  i |  pp | i | d | d |  i |   |  i | d | d  |  i | d | d  |  i | d | d  q3 | i | d | d t  q3 Wd  S(   NR   Rq   Rr   Rs   Rt   (	   R   R   R   R   R   t   handleMeIdentifirerCriteriat   handleMeEnhancedFieldt   handleMeSubsProfileParameterR   (   R   Ru   t   profilet	   meProfile(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   handleMeSubsProfilesk  s     $c         C   s   | d  j p t |  o d  St i   } xQ | D]I } | i | d | | d | d | d | d | d |  i |   q3 Wd  S(   NR   Rw   Rx   Ry   Rz   R{   (   R   R   R   R   R   (   R   t   meProfileNamet	   criteriast   criteriat   c(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR!  y  s     c      	   C   sv   | d  j p t |  o d  St i   } xC | D]; } | i | d | | d | d | d |  i |   q3 Wd  S(   NR   Rw   Rx   Ry   (   R   R   R   R   R   (   R   R'  t   enhancedFieldst   enhancedFieldt   ef(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR"    s     c         C   sh   | d  j p t |  o d  St i   } x5 | D]- } | i | d | | d |  i |   q3 Wd  S(   NR   R"   (   R   R   R   R   R   (   R   R'  t
   parameterst	   parameterR  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR#    s     c         C   s,   t  i   i   } | i | | | |  d S(   s  
        ruleSetId     The id of ruleSet
                      export all rules if ruleSetId == '-101'
        outputPath    The rules XML output path
        username      login user name of rest service 
        password      login password of rest service 
        N(   R   R   t   getRuleServiceProvidert   exportRulesetById(   R   t	   ruleSetIdt
   outputPatht   usernameR   t	   rsService(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   exportRules  s    c         C   s   | d  j p t |  o d  St i   } xa | D]Y } | d } |  i d |  | i |  o | i |  n |  i | d | |  q3 Wd  S(   NRN   s   import ruleSets (   R   R   t   EnhancementRulesetR   t   hasMetadataEnhancementRulesett   replaceWithProfileIdt   importRulesFromXml(   R   t   ruleSetsR4  R   t   enhancementRulesetR  t   filePath(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   importRules  s     
c         C   s)   t  i   i   } | i | | |  d  S(   N(   R   R   R0  t   importRulesets(   R   RT   R4  R   R5  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR:    s    c         C   sX   t  i  |  i d d |  i d d  } g  } | i | i d d   | i |  d  S(   Nt   cmsR   R   t   's   ''(   t   RulesetsR|   R   t   replacet   enable(   R   t   rulenamet   rulesetst   tempList(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   enableRuleset  s    (c   	      C   s   d GHt  i i t  i i t   } t  i i |  d } t  i i |  p t St |  } t i	 |  } | i
   g  } | d D] } | | d q ~ } t i |  i d d |  i d d  } | i |  S(   Ns   Sorting rulesets*   /components/BASE/ruleset_order_config.jsont   sorted_ruleset_uuidst   uuidR@  R   R   (   R   RT   t   dirnamet   realpatht   __file__R   R   R   R   R   R   RB  R|   t   sortByUuids(	   R   t   cwdR   R   t   ruleset_configt   _[1]R  t   uuidsRF  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   sortRuleSet  s    
)(c         C   s   | ou t  i  |  i d d |  i d d  } xJ | D]> } | i |  i | d   } | i |  p d G| GHq6 q6 Wn d  S(   NR@  R   R   RN   s   Failed to delete rule set: (   RB  R|   t   getUuidsFromXmlt   getItemConfigValuet   deleteRulSetsByUuid(   R   t   ruleSetFilesRF  t   ruleSetFileRR  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   deleteRuleSets  s    ( c         C   sN   | d  j p t |  o d  St i   } x | D] } | i |  q3 Wd  S(   N(   R   R   t   ProcessDefinitionst   disable(   R   t	   templatest   pdst   tpl(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   disableProcessDefinitions  s     c         C   s   | d  j p t |  o d  St i   i   } x | D] } y` | d GH| i   i | d  | d d  j	 o+ t | d  i   d j o | i	   n Wq9 t
 j
 o } | GH| i   q9 Xq9 Wt i d  d  S(   Nt   QUERYt   COMMITR   g?(   R   R   R   R   t   getDatabaseConnectiont   cursort   executet   strR   t   commitR   t   rollbackR   t   sleep(   R   t   queriest
   connectiont   queryt   e(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   configureDatabase  s     	.c         C   sB   d } | o1 x. | D]" } | | } | GHt  i |  q Wn t S(   Ns   rpm -ev (   R   t   systemR   (   R   t   rpmst   CMD_UNINSTALLt   rpmt   CMD(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   unstallRpms  s     
c         C   sK  g  } |  i  i |  o |  i  | } n x\ | D]T } d | GHt i i |  o t |  q1 t i i |  o t i |  q1 q1 Wt i i |  ox t i	 |  D] } t i
 | } | | } t i i |  o_ d | d | GHy- d | t i
 f } d | GHt i |  Wq;t j
 o }	 |	 GHq;Xq q Wy x t i t i i | t i
 d   D] \ }
 } } xU | D]M } d t i i |
 |
 i d d  d	 |  d } |  i d
 d
 | t  qWxU | D]M } d t i i |
 |
 i d d  d	 |  d } |  i d
 d
 | t  qWqiWWqGt j
 o qGXn d S(   s7   
        roll back files (including directory)
        s   Deleting file or directory: s   Copying s    --> s   rsync -K -a -I "%s" "%s"s	   command: t   opts   "i   i   t   nobodyN(   R|   R   R   RT   t   isdirR   t   isfilet   removeR   t   listdirt   sepR   R   t   walkt   abspatht   joint   indexR   R   (   R   t   fileOrDirToDeleteConfigNamet   targetBackupDirt   filest   filet   ft   destt   srct   cp_cmdRl  RT   t   dirst   dirt   absDirt   absFile(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   _rollbackFiles  sJ     	 
	'  1 1"c         C   s    |  i    } |  i d |  d  S(   Nt   fileOrDirToDelete(   R   R  (   R   t   fileBackupDir(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   rollbackFiles  s    c         C   sP   | d  j p t |  o d  Sx) | D]! } t i d | d  i   GHq' Wd  S(   Ns   sh R  (   R   R   R   R   t   read(   R   t   scriptst   script(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   executeScripts  s
     c         C   s	   | GHd S(   s3   Writes print statements to log as well as to screenN(    (   R   t	   outputstr(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR   #  s    c         C   s   t  i |  S(   N(   t   sockett   gethostbyname(   R   t   hostname(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   ip)  s    c         C   s#   |  i  i |  o |  i  | Sd  S(   N(   R|   R   (   R   R}   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR   ,  s    c         C   s>   x7 |  i  | d D]$ } | i |  p d  | | <q q W| S(   NR   (   R   R   R   (   R   t
   configItemR   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   wrapConfigWithFullAttributes0  s
     c         C   s7   | d  j o d  Sx | D] } |  i | |  q Wd  S(   N(   R   R  (   R   t
   configListR   R  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt    wrapConfigListWithFullAttributes6  s
     c         C   s   x |  i  D] } |  i  | } | i d  ot |  i |  i  | d d  } | d  j	 oE xB | D]6 } | i | d  o |  i | | d |  q_ q_ Wq q
 |  i |  i | d  |  q
 Wd  S(   NR   R   (   R   R   R   R   R  (   R   t   itemKeyt
   itemKeyObjt   parentConfigt   parentConfigItem(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR   <  s    
  (c         C   s   |  i  | d S(   NR   (   R   (   R   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   getItemKeyArrayH  s    c         C   s   |  i  | d S(   NR   (   R   (   R   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   getItemJsonKeyK  s    c         C   s   |  i  | d S(   NR   (   R   (   R   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   getItemUniqueKeyArrayN  s    c           C   s#   t  i d  j	 o t  i i   d j S(   Nt   UPGRADE(   R   R   R   t   upper(    (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   isUpgradeModeQ  s    c           C   s#   t  i d  j	 o t  i i   d j S(   Nt   PATCH(   R   R   R   R  (    (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   isPatchModeU  s    c           C   s   t  i   o t  i   S(   N(   R   R  R  (    (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR   Y  s    c         C   s  |  i  d  t i   d j  o t i d d  n d d k l } d } |  i d  } x | D] } d	 | d
 GHd  } zy y\ | | d
 | d | d  } | i | | d  \ } } | d j o d | d
 GHn Wn t	 j
 o
   n XWd  | o | i
   n Xq` Wd  S(   Ns   restarting alertsg      @s   service alerts restartR  i(   t   SSHCommandersB   su root -c 'nohup /sbin/service logstash restart > /dev/null 2>&1't   cluster_service_nodess   restarting logstash on R  R   R   t
   rootPasswdi    s   failed to restart logstash on (   R   R   R   R   R   R  R   R   t   execute_interactiveR   t   logout(   R   R  t   cmdstrt   csnodest   ndt   clientt   statusR   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   restartAlerts]  s(      c         C   s  |  i  |  } g  } | d  j o | Sx| D]w} d  } | i d  o | d } n d  } | d j o% t | d | d | d |  } n | d j o% t | d | d | d |  } n | d j o% t | d | d | d |  } n | d j o8 t i   d	 j o% t | d | d | d |  } nO | d j o t i   d	 j  o
 d  } n% t	 | | d | d | d |  } | d  j	 o | i
 |  q. q. W| S(
   NR  R@  R  R   R   t   tomcatt   vsftpdt   workflowg      @(   R   R   R   t
   CMSServicet   TomcatServicet
   FTPServiceR   R   t   WorkflowServicet   GenericServiceR   (   R   t   serviceNamet   nodes_conf_namet	   arr_nodest   clusterServicest   nodet   rootPasswordt   service(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   buildServiceObjectsByNamew  s0     %%% % 
$t   cluster_app_nodesc         C   sB   x; | D]3 } |  i  | |  } x | D] } | i   q& Wq Wd  S(   N(   R  t   stop(   R   t   servicesR  R  t   clusterServiceObjectsR  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   stopServiceInClusterNodes  s      c         C   s   x | D]} } |  i  | |  } x) | D]! } | d  j	 o | i   q& q& W| o2 x/ | D]# } | i   p t d   qY qY Wq q Wd  S(   Ns   Failed to startup a service.(   R  R   t   startt   waitforServiceUpR   (   R   R  t	   waitForUpR  R  R  R  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   startServiceInClusterNodes  s       c         C   s   x | D]} } |  i  | |  } x) | D]! } | d  j	 o | i   q& q& W| o2 x/ | D]# } | i   p t d   qY qY Wq q Wd  S(   Ns   Failed to startup a service.(   R  R   t   restartR  R   (   R   R  R  R  R  R  R  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   restartServiceInClusterNodes  s       c         C   sK   xD | D]< } |  i  |  } | d  j o q n d | GH| i   q Wd  S(   Ns    stopping %s service on localhost(   t   _getLocalServiceObjectR   R  (   R   R  R  R  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   stopLocalServices  s     	c         C   sa   xZ | D]R } |  i  |  } | d  j o q n d | GH| i   | p t S| i   q Wd  S(   Ns?   restarting %s service on localhost, this can take a few minutes(   R  R   R  R   R  (   R   R  R  R  R  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   restartLocalServices  s     	
c         C   s   d  } | d j o t d t  } n | d j o t d t  } n | d j o t d t  } ns | d j o& t i   d j o t d t  } n@ | d j o t i   d j  o
 d  } n t d | d t  } | S(   NR@  t   isNativeR  R  R  g      @t   svcname(	   R   R  R   R  R  R   R   R  R  (   R   R  R  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR    s      
c         C   s-   t  i  i   o t i i   o t i i   S(   N(   t   ReportPublishert!   checkAndWaitReportServerAvailableRB  t    checkAndWaitRullServiceAvailableR   t    checkAndWaitSiteServiceAvailable(   R   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   waitForOtherServersAvailable  s    c         C   s   t  i d d  i   i   } | d  j	 o2 t |  d j o | i d  o
 d } n | St  i d d  i   i   } | Sd  S(   Ns9   rpm -qi watchpoint-cms  | grep Version | awk '{print $3}'R  i    s   5.1.100s   5.2.0sB   conary q | grep watchpoint-cms | awk '{print $1}' | cut -d '=' -f2(   R   R   R  t   stripR   R   t
   startswith(   R   t   versionString(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR     s     
c         C   s   g  } t  i |  D] } | t  i i |  q ~ } g  } | D]= } t  i i |  d | j o | t  i i | |  qA qA ~ } | S(   Ni   (   R   Ry  RT   t   normcaset   splitextR}  (   R   R   t   fileExtListRQ  R  t   fileListt   _[2](    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   listDirectory  s    /
@c         C   s!   | i  |  p d  S| | Sd  S(   N(   R   R   (   R   R   R}   (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyRU    s    c         C   s5   |  i  | d  } | d  j	 o t |  i   d j S(   NR   R   (   RU  R   Re  R   (   R   R   R  (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR      s    c         C   s   |  i  | d  } | S(   Nt   RENAME(   RU  (   R   R   t   rename(    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt	   getRaname  s    N(T   t   __name__t
   __module__t   COMPONENTS_PATH_PREFIXt   COMMON_SHARED_FOLDERt   BACKUP_FULL_DIRSt   ROLLBACK_JSONR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R  R  R   R&  R!  R"  R#  R6  R>  R:  RH  RS  RY  R_  Rm  Rs  R  R  R  R   R  R   R  R  R   R  R  R  t   staticmethodR  R  R   R  R  R  R  R  R  R  R  R  R   R  RU  R   R  (    (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyR   3   s   	+*@,(7.B(;(0(0%F%(%%6%6.?96																									
								
												.													 								(&   t   syst   reloadt   setdefaultencodingt   distutils.dir_utilR    R   R   R   R   R   R   R   RZ  R  R   R   t   MeFieldDefinitionR   R   R7  R   R  RB  R   R   R   R   R   R   R  R   R   R   R   R   t
   APPServicet   objectR   (    (    (    s`   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/Common.pyt   <module>   sB   

