def _ssh_run_with_recursion(ssh_bin, address, ec2_key_pair_file, keyfile, cmd_args):
 if ('!' in address):
  if (keyfile is None):
   raise ValueError('SSH key file path cannot be None')
  (host1, host2) = address.split('!')
  more_args = ['ssh', '-i', keyfile, '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', ('hadoop@%s' % (host2,))]
  return _ssh_run(ssh_bin, host1, ec2_key_pair_file, (more_args + list(cmd_args)))
 else:
  return _ssh_run(ssh_bin, address, ec2_key_pair_file, cmd_args)

def _ssh_run_with_recursion ( ssh_bin , address , ec2_key_pair_file , keyfile , cmd_args ) : if ( '!' in address ) : if ( keyfile is None ) : raise ValueError ( 'SSH key file path cannot be None' ) ( host1 , host2 ) = address . split ( '!' ) more_args = [ 'ssh' , '-i' , keyfile , '-o' , 'StrictHostKeyChecking=no' , '-o' , 'UserKnownHostsFile=/dev/null' , ( 'hadoop@%s' % ( host2 , ) ) ] return _ssh_run ( ssh_bin , host1 , ec2_key_pair_file , ( more_args + list ( cmd_args ) ) ) else : return _ssh_run ( ssh_bin , address , ec2_key_pair_file , cmd_args )
some files exist on the master and can be accessed directly via ssh .