
    Hmd-                     r    d dl mZ d dlZd dlmZ d dlZd dlZd dlmZ d dl	m
Z
 d Zd Zd Zd	 Zd
 Zd ZdS )    )print_functionN)ArgumentParser)GsyncdError)GLUSTERD_WORKDIRc                     	 t          j        |           S # t           j        $ r4 t          j                    d         }t          d| d|j                  w xY w)zgethostbyname wrapper   zfailed to resolve z: )socketgethostbynamegaierrorsysexc_infor   strerror)hnamexs     D/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/argsupgrade.pyr
   r
      sk    /#D)))? / / /\^^Ak44. / / 	//s
    AAc                     |                      dd          } |                     d          \  }}|                    d          d         }|d|S )Nssh:// :::r   )replacesplit)urldatahostvols      r   secondary_urlr   !   sO    ooh++Gd##ID#
))C..
CttSS!!    c                     t           dz   } t          j                            |           }t          j                            |          s&	 t          j        |           n# t          $ r Y nw xY wt          j                            |           sBt          j        | t          j        t          j	        z            }t          j
        |           d S d S )Nz%/geo-replication/gsyncd_template.conf)r   ospathdirnameexistsmkdirOSErroropenO_CREATO_RDWRcloser    dnamefds      r   init_gsyncd_template_confr,   (   s    EEDGOOD!!E7>>%   	HUOOOO 	 	 	D	 7>>$ WT2:	122
 s   
A 
A,+A,c                    t          |          }|                     d          } |                    d          \  }}|                    d          d         }t          d| d|d|d}t          j                            t          j                            |                    rat          j                            |          sDt	          j        |t          j	        t          j
        z            }t	          j        |           d S d S d S )Nr   r   @z/geo-replication/_z/gsyncd.conf)r   stripr   r   r   r    r"   r!   r%   r&   r'   r(   )primary	secondarysecondaryhostsecondaryvolr    r+   s         r   init_gsyncd_session_confr6   6   s    i((ImmC  G"+//$"7"7M<!'',,R0M 	'''===,,,@D 
w~~bgood++,, RW^^D5I5I WT2:	122
   r   c                    t           j                            |           }t           j                            |          s&	 t          j        |           n# t
          $ r Y nw xY wt           j                            |          rat           j                            |           sDt          j        | t           j        t           j        z            }t          j	        |           d S d S d S )N)
r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   s      r   init_gsyncd_confr8   E   s    GOOD!!E7>>%   	HUOOOO 	 	 	D	 
w~~e RW^^D%9%9 WT2:	122
   s    A 
A"!A"c                     t                       d} dt          j        v rd} dt          j        v r(t                      }|                    d           |                    d           |                    d           |                    d           |                    d	           |                    d
d           |                    t          j        dd                    d         }t          |j        |j                   t          j        d         d|j        	                    d          t          |j                  d|j        gt          _        n|dt          j        v rt                      }|                    d           |                    d           |                    d           |                    d
           |                    d	           |                    t          j        dd                    d         }t          |j        |j                   t          j        d         d|j        	                    d          t          |j                  d|j        gt          _        n\dt          j        v rt                      }|                    dd           |                    t          j        dd                    d         }|j        D ]|}|                    d          \  }}|                    dd          }|}d|vrd|z   }|                    d          \  }}| st!          |          }t#          d|d|d|           }t          j        d           
nbdt          j        v rt                      }|                    d           |                    t          j        dd                    d         }t#          dt          |j                  z             t          j        d           	nd t          j        v rt                      }|                    d           |                    d           |                    d           |                    d	           |                    t          j        dd                    d         }t          |j        |j                   t          j        d         d!|j        	                    d          t          |j                  d"d#gt          _        nd$t          j        v r$d%t          j        v rt          j        d           nd&t          j        v rt                      }|                    d&           |                    d           |                    d	           |                    t          j        dd                    d         }|j                            d          \  }}t          j        d         d'||gt          _        nd(t          j        v rt                      }|                    dd)*           |                    t          j        dd                    d         }|j                            d+          rt/          |j                   t          j        d           n(d,t          j        v rt                      }|                    d,           |                    d           |                    d           |                    d           |                    d	           |                    t          j        dd                    d         }t          |j        |j                   t          j        d         d-|j        	                    d          t          |j                  |j        gt          _        n	d.t          j        v r't                      }|                    d.           |                    d           |                    d           |                    d           |                    d	           |                    t          j        dd                    d         }t          |j        |j                   t          j        d         d!|j        	                    d          t          |j                  d/d"d0|j                            d1d2          gt          _        nd3t          j        v rUd4t          j        v rt          j        d           t                      }|                    d           |                    d           |                    d3d5           |                    d6           |                    d7           |                    d           |                    t          j        dd                    d         }t          |j        |j                   t          j        d         d8|j        	                    d          t          |j                  d9|j        z  d:|j        z  gt          _        nod;t          j        v rt                      }|                    d;           |                    d           |                    t          j        dd                    d         }t          j        d         d<|j                            d1d2          gt          _        nd=t          j        v r$t                      }|                    d=           |                    d           |                    d           |                    d           |                    d	           |                    t          j        dd                    d         }t          |j        |j                   t          j        d         d>|j        	                    d          t          |j                  |j                            d1d2          gt          _        nd?t          j        v rt                      }|                    d@d5           |                    dA           |                    d           |                    d           |                    d	           |                    d           |                    t          j        dd                    d         }t          |j        |j                   |j                            dB          }	dC |	D             }	t          j        d         dD|j        	                    d          t          |j                  gt          _        t          xj        |	z  c_        |j        rt          j                             d@           | r5t          j        d         dgt          j        dd          z   t          _        d S d S )ENFz--inet6Tz	--monitorr2   r3   z--glusterd-uuidz-cz	--iprefixz--pathappend)actionr   r   monitorr   z--local-node-idz--status-getstatusz--local-pathz--canonicalize-url+)nargsr   r   r   r.   zroot@z:gluster://127.0.0.1:z--normalize-urlzssh://%sz--config-get-allz
config-getz--show-defaultsz--use-underscorez--verifyspawningz--secondaryvoluuid-get
voluuidgetz--config-set-rxconfig_file)destzgsyncd.confz--createzmonitor-statusz--config-getz--only-valuez--namer0   -z--config-setzsession-owner
store_truenamez--valuez
config-setz	--name=%sz
--value=%sz--config-checkzconfig-checkz--config-delzconfig-resetz--deletez--reset-sync-timez--path-listz--path=c                 l    g | ]1}|                                 d k    d|                                 z  2S )r   z	--path=%s)r1   ).0xs     r   
<listcomp>zupgrade.<locals>.<listcomp>W  s2    KKKQ17799??qwwyy(???r   delete)!r,   r   argvr   add_argumentparse_known_argsr6   r2   r3   r1   r   glusterd_uuidr    canonicalize_urlr   r   r
   printexitnormalize_urlsecondaryvoluuid_getrB   endswithr8   create
config_getrF   valueconfig_check
config_del	path_listreset_sync_timer:   )
inet6ppargsurlr   r   remote_addruserhnamepathss
             r   upgradere   R   s    ECHch 	y!!!	{###	()))	t	{###	x111""38ABB<003 	!@@@HQKM$$%/**
 
38	#	# 	y!!!	{###	t	x   	{###""38ABB<003 @@@ HQKM$$%/**J
 
	)	) 	+3777""38ABB<003) 	$ 	$C		$ID#<<"--DK+%%%3%++C00KD% -%e,,EeeeSS" $ $ $ $ 		ch	&	& 	()))""38ABB<003zM%*=>>>@@@	sx	'	'	y!!!	{###	t	{###""38ABB<003 @@@ HQKM$$%/**
 
sx		J#($:$:	!SX	-	-	/000	t	{###""38ABB<003.44T::	c HQK	
 
ch	&	& 	t-000""38ABB<003 %%m44 	0U.///	sx		 	z"""	y!!!	{###	t	{###""38ABB<003 @@@ HQKM$$%/**L
 
38	#	#	~&&&	y!!!	{###	t	{###""38ABB<003 @@@ HQKM$$%/**$$S#..	
 
38	#	#ch&&HQKKK 	y!!!	{###	~l;;;	v	y!!!	t""38ABB<003 @@@ HQKM$$%/**%*$5;&
 
SX	%	%	'(((	t""38ABB<003 HQK&&sC00

 
38	#	#	~&&&	y!!!	{###	t	{###""38ABB<003 @@@ HQKM$$%/**$$S#..
 
sx		 	*<@@@	}%%%	y!!!	{###	{###	t""38ABB<003 @@@%%i00KK%KKK HQKM$$%/**	
 	E  	1HOO/000 ;HQK+chqrrl:; ;r   )
__future__r   r   argparser   r	   r   
syncdutilsr   confr   r
   r   r,   r6   r8   re    r   r   <module>rk      s    & % % % % % 



 # # # # # #  				 " " " " " " ! ! ! ! ! !/ / /" " "    
 
 
U; U; U; U; U;r   