Package osh :: Package command :: Module remote
[frames] | no frames]

Source Code for Module osh.command.remote

 1  # osh 
 2  # Copyright (C) Jack Orenstein <jao@geophile.com> 
 3  # 
 4  # This program is free software; you can redistribute it and/or modify 
 5  # it under the terms of the GNU General Public License as published by 
 6  # the Free Software Foundation; either version 2 of the License, or 
 7  # (at your option) any later version. 
 8  # 
 9  # This program is distributed in the hope that it will be useful, 
10  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
11  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
12  # GNU General Public License for more details. 
13  # 
14  # You should have received a copy of the GNU General Public License 
15  # along with this program; if not, write to the Free Software 
16  # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
17   
18  """For API usage only, (for CLI use C{osh @CLUSTER [ ... ]} syntax instead.) 
19  """ 
20   
21  import fork 
22   
23  # API 
24 -def remote(cluster, command, merge_key = None):
25 """Executes C{command} remotely on each node of C{cluster}. Execution on all nodes is 26 done in parallel. If C{merge_key} is specified, then 27 the inputs of each thread are expected to be ordered by the C{merge_key}. The sequences 28 from the threads 29 are then merged into a single sequence using the C{merge_key}. 30 (This function is identical to C{fork}, except that the first argument is required to 31 identify a cluster.) 32 """ 33 op = fork.fork(cluster, command, merge_key) 34 op._set_cluster_required(True) 35 return op
36