Ñò
ýÉªWc           @   sv   d  d k  Z  d  d k Z d  d k l Z d  d k l Z d e  i  f d „  ƒ  YZ d „  Z e d j o e ƒ  n d S(   iÿÿÿÿN(   t   parseString(   t   CMSVersionDeploymentPolicyt   CustomFieldsc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   s&   t  i  i |  ƒ d |  _ d |  _ d  S(   Nst   NAME, GROUP_NAME, ASSET_PATH, DATA_TYPE, JOB_PARAMETER, JOB_SCHEDULE_PARAMETER, DISPLAY_NAME, MULTIVALUE, FIELD_TYPEs  SELECT CF.NAME, CFG.DISPLAY_NAME AS GROUP_NAME, CFG.ASSET_PATH, CF.DATA_TYPE, CF.JOB_PARAMETER, CF.JOB_SCHEDULE_PARAMETER, CF.DISPLAY_NAME, CF.MULTIVALUE, CF.FIELD_TYPE FROM MDM_CUSTOM_FIELD CF JOIN MDM_CUSTOM_FIELD_GROUP CFG ON (CF.GROUP_ID = CFG.GROUP_ID)(   t	   BaseClasst   __init__t   columnst   selectStatement(   t   self(    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR      s    	c   	   
      s±  y t  i ƒ  } Wn t  i d ƒ n Xt  i ƒ  d j o| ˆ  d } |  i ˆ  d ˆ  d ƒ |  _ |  i t j o t S|  i i d | |  i f ƒ t |  i i	 ƒ  ƒ o t
 St Snø |  i ˆ  d ˆ  d ƒ |  _ t d d ƒ i ƒ  } t | ƒ } ˆ  d ‰ ˆ d	 j o ˆ i d
 d ƒ ‰ n t ‡ f d †  | i d ƒ ƒ d ‰ t d „  ˆ i ƒ d } t d „  | i ƒ d } t ‡  ‡ f d †  | i ƒ } y | d SWn t SXd  S(   Ns   3.0g      @i    i   i   sL   SELECT CUSTOM_FIELD_ID FROM MDM_CUSTOM_FIELD WHERE NAME='%s' AND GROUP_ID=%ss\   /opt/tandbergtv/cms/plugins/content/com.tandbergtv.metadata.ecmf.ui/resources/definition.xmlt   rt   PACKAGEs   PACKAGE/t    c            s   |  i  i i  i ˆ  j S(    (   t
   firstChildt   nextSiblingt	   nodeValue(   t   element(   t	   assetName(    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   <lambda>1   s    t   titlec         S   s   |  i  d  j S(   t   metadata(   t   nodeName(   R   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR   2   s    c         S   s#   |  i  d  j o |  i d ƒ d j S(   t   variablet   nameR   (   R   t   getAttribute(   R   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR   3   s    c            s.   |  i  ˆ i j o |  i d  ƒ d ˆ  d j S(   R   s   CustomField[@name=%s]i    (   t   nodeTypet   ELEMENT_NODER   (   R   (   t   datat   asset(    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR   5   s    (   R   t   getCMSVersiont   setCMSVersiont
   getGroupIdt   groupIdt   Falset   cursort   executet   lent   fetchallt   Truet   filet   readR    t   replacet   filtert   getElementsByTagNamet
   childNodes(	   R   R   t   versiont	   fieldNamet   ft   domR   t
   cfVariablet   customFields(    (   R   R   R   sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   checkExistence   s6    

%c         C   sA   t  i ƒ  d j o& |  i i d ƒ |  i i ƒ  d d Sd Sd  S(   Ng      @s1   SELECT WFS.MDM_CUSTOM_FIELD_SEQ.NEXTVAL FROM DUALi    i   (   R   R   R    R!   R#   (   R   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt	   getNextId<   s    c      	      sÉ  t  i ƒ  d j o| yT d |  i | | d |  i g t | d ƒ ƒ } | GH|  i i | ƒ |  i ƒ  SWqÅt j
 o } | GH|  i	 ƒ  SXn7d | d GHt
 d d ƒ i ƒ  } t | ƒ } | d ‰  ˆ  d	 j o ˆ  i d
 d ƒ ‰  n t ‡  f d †  | i d ƒ ƒ d } t d „  | i ƒ d } t d „  | i ƒ d }	 | i d ƒ }
 |
 i d d | d ƒ |
 i d | d ƒ |
 i d d ƒ |
 i d d ƒ | i d ƒ } | i d d ƒ | i d | d ƒ | i d d ƒ | i d d | d i ƒ  ƒ |
 i | ƒ |	 i |
 ƒ t
 d d ƒ } | i | d d ƒ| i ƒ  t
 d d ƒ i ƒ  } | i d  | d ƒ d! j oO d" | d GHt
 d d ƒ } | i d# | d | d i ƒ  f ƒ | i ƒ  n d  S($   Ng      @s    INSERT INTO MDM_CUSTOM_FIELD (CUSTOM_FIELD_ID, NAME, GROUP_ID, DATA_TYPE, JOB_PARAMETER, JOB_SCHEDULE_PARAMETER, DISPLAY_NAME, MULTIVALUE, FIELD_TYPE) VALUES %si    i   s-   Adding custom field '%s' to definition.xml...s\   /opt/tandbergtv/cms/plugins/content/com.tandbergtv.metadata.ecmf.ui/resources/definition.xmlR   i   R	   s   PACKAGE/R
   c            s   |  i  i i  i ˆ  j S(    (   R   R   R   (   R   (   R   (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR   X   s    R   c         S   s   |  i  d  j S(   R   (   R   (   R   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR   Y   s    c         S   s#   |  i  d  j o |  i d ƒ d j S(   R   R   R   (   R   R   (   R   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR   Z   s    R   R   s   CustomField[@name=%s]t   displayNamei   t   showCollapsedt   trues   xsi:typet   complexVariableTypet	   attributet   values   %sVariableTypet   wt   encodings   UTF-8s[   /opt/tandbergtv/cms/plugins/content/com.tandbergtv.metadata/resources/cfDataTypeMapping.dats1   /Fields/CustomFields/CustomField[@name=%s]/@valueiÿÿÿÿs4   Adding custom field '%s' to cfDataTypeMapping.dat...s6   
/Fields/CustomFields/CustomField[@name=%s]/@value, %s(   R   R   t
   tupleToStrR   t   listR    R!   t   committ	   Exceptiont   rollbackR%   R&   R    R'   R(   R)   R*   t   createElementt   setAttributet   lowert   appendChildt   writexmlt   closet   findt   write(   R   t   id_R   t	   statementt   et   finR.   R   R   R/   t	   cfElementt   cfChildElementt   fout(    (   R   sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   insertC   sP    .
%
%c         C   s£   t  i ƒ  d j oŒ yd d | d | d | d | d | d | d | d	 |  i f } | GH|  i i | ƒ |  i ƒ  SWqŸ t j
 o } | GH|  i ƒ  SXn d  S(
   Ng      @s°   UPDATE MDM_CUSTOM_FIELD SET DATA_TYPE='%s', JOB_PARAMETER='%s', JOB_SCHEDULE_PARAMETER='%s', DISPLAY_NAME='%s', MULTIVALUE='%s', FIELD_TYPE='%s' WHERE NAME='%s' AND GROUP_ID=%si   i   i   i   i   i   i    (   R   R   R   R    R!   R=   R>   R?   (   R   R   RI   RJ   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   updatex   s    >c         C   sÏ   |  i  | ƒ o» y“ | d } d | |  i f } | GH|  i i | ƒ |  i i ƒ  } t | ƒ d j o1 | d d } d | } | GH|  i i | ƒ n |  i ƒ  SWqË t j
 o } | GH|  i ƒ  SXn d S(   s€   Delete custom fields if exists. Only work for CMS3.0 or higher
		data[0]: fieldName
		data[1]: groupName
		data[2]: assetPath
		i    sO   SELECT CUSTOM_FIELD_ID FROM MDM_CUSTOM_FIELD WHERE NAME='%s' AND GROUP_ID='%s' i   s7   DELETE FROM MDM_CUSTOM_FIELD WHERE CUSTOM_FIELD_ID='%s'N(	   R1   R   R    R!   R#   R"   R=   R>   R?   (   R   R   R,   RI   t   rowt   fieldIdRJ   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   delete‰   s     

c         G   s   t  i  ƒ  i | ƒ S(   s    getGroupId(groupName, assetPath)(   t   CustomFieldsGroupsR1   (   R   R   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR   ¡   s    c         C   s   d S(   s
  select cf.name, cfg.display_name as GROUP_NAME, cfg.asset_path, cf.data_type, cf.job_parameter, cf.JOB_SCHEDULE_PARAMETER, cf.display_name, cf.multivalue, cf.field_type
		from mdm_custom_field cf
		join mdm_custom_field_group cfg
  			on (cf.group_id = cfg.group_id)N(    (   R   (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   getCustomFields¥   s    c         C   so   d } t  | ƒ d j oM |  i | ƒ o9 |  i i | | d |  i f ƒ |  i i ƒ  } | d Sn d GHd S(   sA   
		args[0]: NAME
		args[1]: DISPLAY_NAME
		args[2]: ASSET_PATH
		s™   SELECT NAME, DATA_TYPE, JOB_PARAMETER, JOB_SCHEDULE_PARAMETER, DISPLAY_NAME, MULTIVALUE, FIELD_TYPE  FROM MDM_CUSTOM_FIELD WHERE NAME='%s'AND GROUP_ID=%si   i    sD   CustomFields::backUpExisting:The number of parameters is not correctR
   (   R"   R1   R    R!   R   R#   (   R   t   argsRI   t   rows(    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   backUpExisting¬   s    !c         C   s  g  } d d d d d d d g } d } t  | ƒ d	 j oØ t i ƒ  } | i | ƒ } |  i i | | ƒ |  i i ƒ  } x— | D]‹ } t  | ƒ t  | ƒ j ol h  }	 xR t d
 t  | ƒ ƒ D]; }
 | |
 d j o d |	 | |
 <qº | |
 |	 | |
 <qº W| i |	 ƒ q q Wn | S(   s2   
		args[0]: DISPLAY_NAME	
		args[1]: ASSET_PATH
		t   NAMEt	   DATA_TYPEt   JOB_PARAMETERt   JOB_SCHEDULE_PARAMETERt   DISPLAY_NAMEt
   MULTIVALUEt
   FIELD_TYPEsŒ   SELECT NAME, DATA_TYPE, JOB_PARAMETER, JOB_SCHEDULE_PARAMETER, DISPLAY_NAME, MULTIVALUE, FIELD_TYPE  FROM MDM_CUSTOM_FIELD WHERE GROUP_ID=%si   i    R
   N(	   R"   RT   R1   R    R!   R#   t   ranget   Nonet   append(   R   RV   t   itemst
   fieldArrayRI   t   customFieldGrpR   RW   RQ   t   customFieldObjt   i(    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   backUpAllExisting¾   s&      (   t   __name__t
   __module__R   R1   R2   RO   RP   RS   R   RU   RX   Rh   (    (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyR      s   		#		5					c          C   s-   t  i d ƒ t ƒ  }  |  i d d d ƒ d  S(   Ns   3.0t   Encryption_Requireds   Custom Fieldss   PACKAGE/TITLE(   R   R   R   RS   (   t   cf(    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   mainÛ   s    	t   __main__(   R   RT   t   xml.dom.minidomR    R   R   Rm   Ri   (    (    (    sf   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/scripts/CustomFields.pyt   <module>   s   Ó	