
    b                         d dl Zd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlZd dlZ G d d	ej        j                  ZdS )
    N)StringIO)
get_string)cmd_sambatool)Credentials)system_session)SamDBc                   4     e Zd ZdZ fdZd Zd Zd Z xZS )SambaDnsUpdateTestsz'Blackbox test case for samba_dnsupdate.c                 0   t           j                            d          | _        t	          t
          |                                            	 |                     d          }|                     d|v |           d S # t           j        j	        $ r Y d S w xY w)NDNS_SERVER_IPsamba_dnsupdate --verboses   Looking for DNS entry)
sambatestsenv_get_var_value	server_ipsuperr
   setUpcheck_output
assertTrueBlackboxProcessError)selfout	__class__s     F/usr/lib/python3/dist-packages/samba/tests/blackbox/samba_dnsupdate.pyr   zSambaDnsUpdateTests.setUp!   s    66GG!4((..000	##$?@@COO4;SAAAAA{/ 	 	 	DD	s   -A= =BBc                     	 |                      d          }n9# t          j        j        $ r"}|                     d|z             Y d }~nd }~ww xY w|                     d|v |           d S )Nr   !Error calling samba_dnsupdate: %s   No DNS updates needed)r   r   r   r   failr   )r   r   es      r   test_samba_dnsupate_no_changez1SambaDnsUpdateTests.test_samba_dnsupate_no_change*   s    	?##$?@@CC{/ 	? 	? 	?II9A=>>>>>>>>	?0C7=====s    AA		Ac                    	 |                      d          }|                     d|v |           |                     d|v |           n# t          j        j        $ r Y nw xY w	 |                      d          }n9# t          j        j        $ r"}|                     d|z             Y d }~nd }~ww xY w|                     d|v |           	 |                      d| j        z            }n9# t          j        j        $ r"}|                     d|z             Y d }~nd }~ww xY w|                     d|v |           |                     d|v |           |                      d          }|                     d|v ||z              d S )	Nz/samba_dnsupdate --verbose --current-ip=10.0.0.1s    DNS updates ands    DNS deletes neededz>samba_dnsupdate --verbose --use-nsupdate --current-ip=10.0.0.1r   r   z=samba_dnsupdate --verbose --use-samba-tool --rpc-server-ip=%sr   )r   r   r   r   r   r   r   )r   r   r   rpc_outs       r   test_samba_dnsupate_set_ipz.SambaDnsUpdateTests.test_samba_dnsupate_set_ip1   s   	##$UVVCOO/36<<<OO2c93????{/ 	 	 	D		?##$deeCC{/ 	? 	? 	?II9A=>>>>>>>>	? 	0C7===	?''(gjnjx(xyyGG{/ 	? 	? 	?II9A=>>>>>>>>	? 	+w6@@@.'97CCC ;<<0C7wGGGGGsB   AA AA#A9 9B/B**B/C) )D=DDc                 .   d}t           j        |         }t                      |_        t                      |_        d}|                    d|z  d|           |                    d|z  d|          }||                     d           t          j        	                                | _
        t                      | _        | j                            | j
                   t                      | _        | j
                            d          }|dz   }t#          j        ||           t'          | j        | j        | j
        	          | _        t+          j                    }t+          j        | j        d
                    | j                                                            |_        t+          j        d                    || j                                                  t*          j        d          |d<   d                    |          }t;          |                     |                    }	|                     |                                 |	           | j        !                    |           t#          j        ||           t;          |                     |                    }	|                     d|	           | "                    |                                 |	           |                    d|z  d|          }||                     d           d S d S )NsitesABCDEFGHIJKLMNOPQRSTUVWXYZzsamba-tool %sremovecreatezError creating new sitedns_update_cache_tmp)session_infocredentialslpz@CN=DEFAULTIPSITELINK,CN=IP,CN=Inter-Site Transports,CN=Sites,{0}zCN={0},CN=Sites,{1}siteListz(samba_dnsupdate --verbose --use-file={0}zNo DNS updates neededzError deleting site)#r   subcommandsr   outferrf_runr   r   r   env_loadparmr-   r   credsguessr   sessionprivate_pathshutilcopyfiler   samdbldbMessageDnformatget_config_basedndnMessageElementFLAG_MOD_ADDr   r   assertNotInlowermodifyassertIn)
r   namecmd	site_nameresultuc_fntmp_ucmdns_cr   s
             r   test_add_new_uncovered_sitez/SambaDnsUpdateTests.test_add_new_uncovered_siteI   s   '-::::0	 	4'9===/D0(IFFII/000+**,, ]]

!!!%''$$%788v&&&'+z"g' ' '
 KMMvdj #>>Df*6688?: ?:; ; *+@+G+GJ((**,, ,, j* **
 ;AA&II**51122**C000
!v&&&**511220#666ioo''---/D0(IFFII+,,,,,     )	__name__
__module____qualname____doc__r   r    r#   rO   __classcell__)r   s   @r   r
   r
      sn        11    > > >H H H02- 2- 2- 2- 2- 2- 2-rP   r
   )samba.testsr   ior   samba.commonr   samba.netcmd.mainr   samba.credentialsr   
samba.authr   samba.samdbr   r;   r8   r   BlackboxTestCaser
    rP   r   <module>r_      s   &           # # # # # # + + + + + + ) ) ) ) ) ) % % % % % %       



 ]- ]- ]- ]- ]-%+6 ]- ]- ]- ]- ]-rP   