
ɪWc           @   s!  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 d  d k	 l
 Z
 d  d k l Z d  d k l Z d  d k l Z d  d k Z d  d	 k l Z d
 e f d     YZ d e f d     YZ d   Z d e
 f d     YZ d e f d     YZ d S(   iN(   t   remove_tree(   t	   copy_file(   t   InstallHelper(   t   Install(   t   Backup(   t   InstallComponentCollector(   t   PrepackInstalledDecider(   t   UnittestBaset   InstallTestBasec           B   s  e  Z d  Z g  Z d Z d   Z d   Z d   Z g  d  Z d   Z	 d   Z
 e e e e d  Z d	   Z d
   Z d   Z d   Z d 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 RS(   i    s   /tmp/test_tempc         C   s   t  i |   t i i |  i  p/ t i |  i  t i |  i t i d  n t i i t i i	 t
   } t i i | d  p t i | d  n t i i | d  p! d } | d } t | |  n |  i |  i  |  i   |  i   d  S(   Nt   logs   /rpmss-   /rpms/prepack-license-manager-4.1.000.001.jars|   /var/lib/jenkins/.m2/repository/com/ericsson/cms/prepack-license-manager/4.1.000.001/prepack-license-manager-4.1.000.001.jar(   R   t   setUpt   ost   patht   existst   TEST_TEMP_DIRt   makedirst   sept   dirnamet   realpatht   __file__t   mkdirR   t   _resetPrepackDirt   _resetVariablest   _initComponentSelection(   t   selft   cwdt   jart   distfile(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR
      s    

c         C   s;   t  i i |  i  o t |  i  n t i i |   d  S(   N(   R   R   R   R   R    t   unittestt   TestCaset   tearDown(   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR   $   s    c         C   sb   h d d 6| d 6h d d 6d d 6d d	 6d
 d 6g d 6} |  i  t i d } t i | |  | S(   Ns   CMS AIO PrePackt   namet   versions	   127.0.0.1t   ipt   cmst   usert   cmspwdt   passwordt   rootpwdt
   rootPasswdt   cluster_service_nodess   sysinfo.json(   R   R   R   R   t   writeJsonToFile(   R   R    t   configObjectt   sysInfoPath(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _constructSysInfoFile)   s    )c         C   s   | | i  d <d  S(   Nt   upgradePath(   t   config(   R   t	   installert   paths(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _defineUpgradePaths5   s    c         C   sJ   |  i  t i | t i d t i d } t i | |  |  i  t _ d  S(   Nt
   componentss   upgrade-components.json(   R   R   R   R   R)   R   t   COMPONENTS_PATH_PREFIX(   R   R    t   availableUpgradest   availableUpgradeConfigPath(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _initUpgradeComponents8   s    *c      	   C   s  h d d g d 6h d d 6d d d d	 g d
 6d 6h d d 6d d d g d
 6d 6h d d 6d d d d d g d
 6d 6h d d 6d g d
 6d 6h d d 6d	 6h d d 6d 6h d d 6d 6h d d 6d 6h d d 6d 6h d d 6d 6h d d 6d 6h d d 6d 6h d d 6d 6h d d 6d 6h d  d 6d! d" d# d$ d% d& d' g d
 6d 6h d! d 6d( g d) 6d! 6h d* d 6d" 6h d# d 6d# 6h d+ d 6d$ 6h d, d 6d% 6h d& d 6d- d( d. g d/ 6d- d( g d0 6t  d1 6d& 6h d' d 6d' 6h d2 d 6d3 6} |  i t i d4 } t i | |  | t _ d  S(5   Nt   DOWNSTREAMSt   DEVICESt   selectionItemst   Devicest   displayNamet   QCt	   TRANSCODEt
   ENCRYPTIONt   COMBINERt
   selectionst   BATONt   CERIFYt   VERIFIERt
   Transcodert   ENVIVIOt	   ELEMENTALt   TITANt   RHOZETt   DIGITALRAPIDt	   Encryptort
   VERIMATRIXt   Combinert   Batont   Cerifyt   Verifiert   Enviviot	   Elementalt   Titant   Rhozett   DigitalRapidt
   Verimatrixt   Downstreamst   AMSt	   MEDIAROOMt   OTTt	   MSMW_MDMSt   MSMW_OSt   XPMPt   FABRIXs   DEVICES/COMBINERt   unAvailableComponentst	   Mediarooms   Msmw with MDMSs   Msmw with Openstreams   DEVICES/QC/VERIFIERs   DEVICES/QC/BATONt   availableComponentst   autoSelectComponentst   singleSelections   Back To Lastt   BACKs   component-selections.json(   t   TrueR   R   R   R   R)   R   t   COMPONENT_SELECTION_CONFIG(   R   R@   t   selectionFilePath(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR   =   s    


c   	      C   sH   |  i  |  } t | | | | | |  } |  i |  |  i |  | S(   N(   R,   t   InstallMockt   _mockPrepackDecidert   _mockRawInputForInstaller(	   R   t   modeR    t   backupStartt   backupFinisht   deployStartt   deployFinisht   sysInfoFileR/   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _createInstaller   s
    c         C   s9   t  t d  } | | i _ y | | i _ Wn n Xd  S(   Nt    (   t   PrepackInstalledDeciderMockt   Falset   helpert   decidert   installComponentCollector(   R   R/   t   mockDecider(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyRh      s    c         C   s!   |  i  |  |  i  | i  d  S(   N(   t   _mockRawInputForHelperRv   (   R   R/   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyRi      s    c         C   s   t  | i _ d  S(   N(   t   rawInputMockRt   t   getRawInput(   R   t   object(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyRx      s    c         C   s   d t  _ | t  _ d  S(   Ni    (   R   t   sequencet   inputsBySequence(   R   t   inputs(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _resetInputs   s    	c         C   sw   d  } d } | o |  i   } t | d  } n | i |  |  i t i t t i  d  | o | i	   n | S(   NRq   t   as/   Expected user input not match the really input.(
   t   Nonet   _getInstallLogFileNamet
   InstallOutt   installt   assertEqualR   R|   t   lenR}   t   _restore_standard_output_(   R   R/   t   preConfiguredFilet   outputToFilet   logFilet   logFileName(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt
   _doInstall   s    c         C   sk   t  i i |  oT t | d  i   } x7 t d t |   D]  } | | i d d  | | <q> W| Sd  S(   Nt   ri    s   
Rq   (	   R   R   R   t   opent	   readlinest   rangeR   t   replaceR   (   R   t   filePatht   alllinest   i(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt
   _readLines   s     c         C   ss   t  i i |  } t  i i |  p t  i |  n t | d  i i   } z | ~ } | i |  Wd  QXd  S(   Nt   w(	   R   R   R   t   isdirR   R   t   __exit__t	   __enter__t   write(   R   t   textR   t   dt   _[1]t   f(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _writeToFile   s
    &c         C   s   | t  _ d  S(   N(   R   t   PREPACK_DIR(   R   t	   directory(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR     s    c         C   s  t  i t i d t  _ t  i t i d t  _ t  i t i d t  _ t  i t i d t  _ t  i t i d t  _ t  i t i d t  _	 t  i t i d t  _
 t  i t i d t  _ t  i t i d	 t  _ t  i t i d
 t  _ t  i t i d t  _ d  S(   Ns   backup-restoret	   abandonedt   rollbacks   prepackVersion.dats   patchVersion.dats   backupVersion.dats   lastHandledBackupVersion.dats   installAction.logs   selected-component-temp.jsons   installedcomponent.jsont   installation_temp(   R   R   R   R   t
   BACKUP_DIRt   BACKUP_ABANDON_DIRt   ROLLBACK_DIRt   PREPACK_VERSION_FILEt   PATCH_VERSION_FILEt   BACKUP_VERSION_FILEt    LAST_HANDLED_BACKUP_VERSION_FILEt   INSTALL_ACTION_LOGt   SELECTED_COMPONENTS_TEMPt   INSTALLED_COMPONENTSt   INSTALLATION_TEMP(   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR     s    c         C   sP   |  i  t i d t i d t i d  t t i d   } t i	 |  | S(   NR	   s   install.log.s   %Y%m%d%H%M%Si   (
   R   R   R   t   timet   strftimet   strt   randomt   getrandbitsR   t   mkdirForFile(   R   t   logFilePath(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR     s    ?c         C   s   g  } t  i i |  ou t | d  i   } x] | D]Q } t } x. | D]& } | | i d  j o
 t } qH qH W|  i | d |  q5 Wn | S(   NR   s   
	 s   Log is not found: (	   R   R   R   R   R   Rs   t   stripRd   t
   assertTrue(   R   R   t   logst   foundRecordst
   allRecordsR	   t   foundt   record(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _verifyLogFromLogFile  s      c         C   s   g  } t  i i t i  oa x^ t  i t  i i t i   D]: } | i d  } | d j o | i | d | ! q; q; Wn | S(   Nt   @ii    (	   R   R   R   R   R   t   listdirt   abspatht   findt   append(   R   t
   backupDirst   dirNamet   index(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _getBackupFolders'  s      c         C   s6   g  } |  i    D] } | | j o | | q q ~ S(   N(   R   (   R   R    R   t	   backupDir(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _getBackupFolderForVersion0  s    c         C   s   g  } t  i i t i  oa x^ t  i t  i i t i   D]: } | i d  } | d j o | i | d | ! q; q; Wn | S(   NR   ii    (	   R   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _getBackupAbandonFolders3  s      c         C   s6   g  } |  i    D] } | | j o | | q q ~ S(   N(   R   (   R   R    R   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt!   _getBackupAbandonFolderForVersion<  s    c         C   s   g  } t  i i t i  oa x^ t  i t  i i t i   D]: } | i d  } | d j o | i | d | ! q; q; Wn | S(   NR   ii    (	   R   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _getRollbackFolders?  s      c         C   s6   g  } |  i    D] } | | j o | | q q ~ S(   N(   R   (   R   R    R   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   _getRollbackFolderForVersionH  s    N(    t   __name__t
   __module__R|   R}   R   R
   R   R,   R1   R6   R   Rd   Rp   Rh   Ri   Rx   R   R   Rs   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR      s6   																							R   c           B   s&   e  Z e d   Z d   Z d   Z RS(   c         C   sD   | o | d t  i d  } n | |  _ t i |  _ |  t _ d  S(   Nt   .s   %Y%m%d%H%M%S(   R   R   t   filet   syst   stdout(   R   R   Rj   t   withTimeStamp(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   __init__L  s
    	c         C   s   |  i  t _  d  S(   N(   R   R   (   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR   S  s    c         C   sP   t  |  i d  i i   } z | ~ } | i |  Wd  QX|  i i |  d  S(   NR   (   R   R   R   R   R   R   (   R   t   dataR   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR   V  s    )(   R   R   Rs   R   R   R   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR   K  s   	c         C   s)   |  GHt  i t  i } t  i d t  _ | S(   Ni   (   R   R}   R|   (   t   promptt   returnInput(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyRy   [  s    Rg   c           B   sS   e  Z e e e e d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s;   t  i |  | |  | |  _ | |  _ | |  _ | |  _ d  S(   N(   R   R   Rk   Rl   Rm   Rn   (   R   Ro   Rj   Rk   Rl   Rm   Rn   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR   b  s
    			c         C   s   |  i  i |  i  i    t S(   N(   Rt   t   rollBackToLastVersiont   getLatestBackupVersionRd   (   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   rollbackFirsti  s    c         C   s   d  S(   N(    (   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt
   initPolicym  s    c         C   s#   |  i  o t i |  |  St Sd  S(   N(   Rk   R   t   backupRs   (   R   t   inputfileOrObject(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR   p  s    
c         C   sA   |  i  o/ t |  } | i   | i   | i   t St Sd  S(   N(   Rl   R   t   copyInfoToRollBackJsont   backupPrepackVersionInfot   generateRollBackJsonRd   Rs   (   R   R   t   bak(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   doBackupv  s    



c         C   s#   |  i  o t i |  |  St Sd  S(   N(   Rm   R   t   deployRs   (   R   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR     s    
c         C   s   |  i  o t St Sd  S(   N(   Rn   Rd   Rs   (   R   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   doDeploy  s    
(
   R   R   Rd   R   R   R   R   R   R   R   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyRg   a  s   				
	Rr   c           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s#   | |  _  | |  _ t i |   d  S(   N(   t   prepackInstalledt   installedPrepackNameR   R   (   R   R   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyR     s    		c         C   s   |  i  S(   N(   R   (   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   isAnyPrepackInstalled  s    c         C   s   |  i  S(   N(   R   (   R   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   getInstalledPrepackName  s    (   R   R   R   R   R   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyRr     s   		(   R   R   R   R   t   distutils.dir_utilR    t   distutils.file_utilR   R   R   R   R   R   R   R   R   R   R   R{   R   Ry   Rg   Rr   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/InstallTestBase.pyt   <module>   s$    =	+