#!/opt/thinlinc/libexec/python3
# -*-mode: python; coding: utf-8 -*-
#
# Copyright 2002-2014 Cendio AB.
# For more information, see http://www.cendio.com
if 82 - 82: Iii1i
import os
import sys
import locale
import subprocess
if 87 - 87: Ii % i1i1i1111I . Oo / OooOoo * I1Ii1I1 - I1I
from thinlinc import hiveconf
from thinlinc import prefix
from thinlinc . vsm . subcluster import SubCluster
if 81 - 81: i1 + ooOOO / oOo0O00 * i1iiIII111 * IiIIii11Ii
if 84 - 84: ooo000 - Ooo0Ooo + iI1iII1I1I1i . IIiIIiIi11I1
def iI111iiIi11i ( ) :
 print ( "Copy files to all machines in ThinLinc cluster, using rsync" , file = sys . stderr )
 print ( "Usage:" , sys . argv [ 0 ] , "[OPTION]... SRC [SRC]..." , file = sys . stderr )
 print ( "[OPTION] can be any rsync option" , file = sys . stderr )
 print ( "All specified sources will be converted to absolute paths." , file = sys . stderr )
 print ( file = sys . stderr )
 print ( "Example: Synchronize directory tree:" , file = sys . stderr )
 print ( "tl-rsync-all -a --delete /some/tree" , file = sys . stderr )
 sys . exit ( 1 )
 if 77 - 77: iIiii1i - ooo0O0oO00 . o00o0OO00O
 if 57 - 57: iiIi1 - i1 % i1 % i1i1i1111I . Ii
def iI ( ) :
 locale . setlocale ( locale . LC_ALL , "" )
 if 10 - 10: ooOOO / IIiIIiIi11I1 * ooo0O0oO00 / o00o0OO00O / o00o0OO00O
 oOooo0OOO = hiveconf . open_hive ( os . path . join ( prefix . get_tl_prefix ( ) ,
 "etc" , "thinlinc.hconf" ) )
 if 53 - 53: Ii * Oo * ooo000 . i1iiIII111
 ii1Ii = SubCluster ( oOooo0OOO , None )
 oOooO0 = ii1Ii . get_all_agents ( )
 if oOooO0 is None :
  print ( "Cannot find any agent servers" , file = sys . stderr )
  print ( "Unless you synchronize /opt/thinlinc/etc/conf.d/vsmserver.hconf," , file = sys . stderr )
  print ( "tl-rsync-all will only work on the master host" , file = sys . stderr )
  sys . exit ( 1 )
  if 13 - 13: ooo0O0oO00
 if len ( sys . argv ) < 2 :
  iI111iiIi11i ( )
  if 2 - 2: i1
 IIiIiiIiI = os . path . join ( prefix . get_tl_prefix ( ) , "libexec" , "rsync" )
 OO0000 = [ IIiIiiIiI ,
 "-rR" ,
 "--rsh=ssh" ,
 "--rsync-path=/opt/thinlinc/libexec/rsync" ]
 if 92 - 92: I1I / I1I + o00o0OO00O . ooo0O0oO00
 if 8 - 8: Ii + o00o0OO00O . iIiii1i - I1Ii1I1 % iIiii1i . i1i1i1111I
 if 24 - 24: iiIi1
 if 9 - 9: ooo000 / o00o0OO00O . o00o0OO00O / Ii % i1i1i1111I % Ooo0Ooo
 if 85 - 85: iIiii1i % ooOOO + i1iiIII111 / ooOOO / ooo000
 IIiiI11ii = 0
 for IIii in sys . argv [ 1 : ] :
  if not IIii . startswith ( "-" ) :
   IIiiI11ii = 1
   IIii = os . path . abspath ( IIii )
  OO0000 . append ( IIii )
  if 48 - 48: iI1iII1I1I1i / oOo0O00 % iiIi1
 if not IIiiI11ii :
  iI111iiIi11i ( )
  if 84 - 84: ooo0O0oO00 . Oo + ooOOO / Oo . ooo0O0oO00
 for I1i1Ii in oOooO0 :
  Ooo0OO = OO0000 [ : ]
  Ooo0OO . append ( "root@%s:/" % I1i1Ii )
  print ( "syncing with host" , I1i1Ii , file = sys . stderr )
  ii1Ii1I = subprocess . call ( Ooo0OO )
  if ii1Ii1I != 0 :
   print ( " **** rsync for host %s failed ****" % I1i1Ii , file = sys . stderr )
   if 71 - 71: ooo0O0oO00 - Oo . OooOoo . Ii % o00o0OO00O + ooo0O0oO00
   if 19 - 19: Ii / IiIIii11Ii + IiIIii11Ii . I1I
if __name__ == "__main__" :
 iI ( )
# dd678faae9ac167bc83abf78e5cb2f3f0688d3a3
