Ñò
ýÉªWc           @   s¥   d  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 e	 f d „  ƒ  YZ
 d „  Z e d j o e ƒ  n d S(   s*   
Created on Jan 3, 2013

@author: ebracox
iÿÿÿÿN(   t   HttpRequestDecoratort   ReportPublisherc           B   sq   e  Z d  Z d d d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z	 e
 e d
 d d d „ ƒ Z RS(   s'   https://%s:8443/jreport/admin/index.jspt	   localhostt   adminc         C   sW  | |  _  |  i | |  _ d | |  _ d | |  _ d | |  _ d | |  _ d |  _ d |  _ t	 i
 ƒ  |  _ t i t i |  i ƒ t i ƒ  ƒ |  _ t i |  i ƒ t i |  i ƒ } d t i d | | f ƒ } | i d	 | ƒ y t i | ƒ i ƒ  WnU t j
 oI y t i | ƒ i ƒ  d
 GHWqSt j
 o } | GHt d ‚ qSXn Xd  S(   NsP   https://%s:8443/jreport/admin/saveNodeProperties.jsp?jrs.cmd=jrs.import_resources1   https://%s:8443/jreport/admin/savePermissions.jsps(   https://%s:8443/jreport/admin/logout.jsps-   https://%s:8443/jreport/admin/deleteNode.jsp?s   jrs.paths   jrs.page_styles   Basic %ss   %s:%st   Authorizations   Report Server Authorization OKs!   Failed to correctly authenticate.(   t   hostt   REPORT_SERVER_ROOTURLt   rootUrlt   postUrlt   permUrlt	   logoutUrlt	   deleteUrlt   TAG_PATHt   TAG_PAGE_STYLEt	   cookielibt	   CookieJart   cjt   urllib2t   build_openert   HTTPCookieProcessort   HTTPSHandlert   openert   install_openert   Requestt   base64t	   b64encodet
   add_headert   urlopent   readt	   ExceptionR    (   t   selfR   t   usernamet   passwordt   requestt   autht   e(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt   __init__   s.    			'	c         C   sì   h | d 6| d 6| d 6d d 6d d 6d d 6d	 d
 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d  6} t  i |  i t i | ƒ ƒ } t i | ƒ } | i ƒ  |  i d | ƒ | S(!   Ns   jrs.deploy_from_files   jrs.node_names   jrs.node_desct   falses   jrs.only_deploy_filest    s   jrs.deploy_from_rpts   jrs.node_real_pathi   s   jrs.node_typet   trues   jrs.need_maxversions   jrs.import_resources   jrs.cmdt   autoConvertR   s   jrs.auth_uids$   jrs.only_deploy_files_and_subfolderss   jrs.folder_with_contentss   jrs.archive_new_versiont   /s   jrs.paths   jrs.deploy_local_font_diri    s   jrs.maxversiont   cmdt   userPermissiont   permission1357655588494t   permission_keyi   s   jrs.page_styles   jrs.deploy_local_style_dir(	   R   R   R   t   urllibt	   urlencodeR    R   R   t   setPermissions(   R   t
   reportPatht
   reportNamet
   reportDesct   valuest   reqt   resp(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt   publish0   s8    

c         G   s$   | d } d | } |  i  | | ƒ S(   s    delete category from jreporti    R)   (   t
   deleteNode(   R   t   datat   categoryNamet   categoryPath(    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt   unPublishCategoryR   s    

c         G   s0   | d } t  i i | ƒ d } |  i | | ƒ S(   s    delete report from jreporti    i   (   t   ost   patht   splitR8   (   R   R9   R1   R2   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt   unPublishReportX   s    
c         C   sh   d | d |  i  d | d |  i d } |  i | } t i | d ƒ } t i | ƒ } | i ƒ  t	 S(   s%   delete the category or report from jreport server
		delete category:
			nodeName: category name(prepack-catalog)
			tagPath: category path(/prepack-catalog)
		delete report:
			data[0]: reportName(/prepack-catalog/PrePackContentIngestionRep.cls)
			nodeName: report name(PrePackContentIngestionRep.cls)
			tagPath: report path(/prepack-catalog/PrePackContentIngestionRep.cls)
		Limitations: 
	    1. Support deleting report, catalog
		2. only support in CMS3.0
		3. make sure corresponding reports are deleted from report-config.xml(restart CMS)
		s   delNodeName=t   &t   =s   =1N(
   R   R   R   R   R   t   NoneR    R   R   t   True(   R   t   nodeNamet   tagPatht
   parameterst
   requestUrlR5   R6   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyR8   ^   s    ,
c         C   sâ   h | d 6d d 6d d 6d d 6d d 6d d	 6d d
 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6} t  i |  i t i | ƒ ƒ } t i | ƒ } | i ƒ  | S(   Ns   jrs.pathR&   t   rolecommt   nulls   jrs.version_numberR'   s
   r$everyones$   jrs.role_permission$everyone.visiblet   is_propt   removedRoless   r$everyone;t   role1t	   currgroups!   jrs.role_permission$everyone.reads$   jrs.role_permission$everyone.executet   currroleR%   t	   isVersiont   permissionsValuet   hidePathInfot   removedUserst   currusert   is_schedules   jrs.define_permissionR*   R-   t	   temprole1t   removedGroups(   R   R   R	   R.   R/   R    R   R   (   R   R2   R4   R5   R6   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyR0   v   s8    

c         C   s/   t  i |  i ƒ } t i | ƒ } | i ƒ  d  S(   N(   R   R   R
   R    R   R   (   R   R5   R6   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt   logout—   s    i   i<   c         C   sÊ   | } xª |  o¢ | d j o• yd t  i t i | d ƒ } | d d d j p | d d d j o
 d GHt Sd t | ƒ d GHWn t j
 o n Xt i | ƒ | | } q	 Wd	 t | ƒ d
 GHt	 S(   Ni    t   GETt   statust   401t   400s   Report Server is ups&   Report Server is not up yet, wait for s    seconds to check again.s$   Report Server is still not up after s#    seconds. Please check the network.(
   R    R!   R   R   RD   t   strR   t   timet   sleept   False(   t	   waitForUpt   intervalt   timeoutR   t
   timeToWaitR6   (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt!   checkAndWaitReportServerAvailableœ   s     *(   t   __name__t
   __module__R   R$   R7   R<   R@   R8   R0   RX   t   staticmethodRD   Re   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyR      s   	"				!	c           C   s   t  i d d ƒ d  S(   NR   s   10.116.5.99(   R   Re   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt   main®   s    t   __main__(   t   __doc__R   R   t   sysR.   R   R=   R^   R    t   objectR   Ri   Rf   (    (    (    si   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/ReportPublisher.pyt   <module>   s   ž	