]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Record Remote in RemoteProcess.remote, for caller convenience.
authorTommi Virtanen <tommi.virtanen@dreamhost.com>
Fri, 3 Jun 2011 21:44:29 +0000 (14:44 -0700)
committerTommi Virtanen <tommi.virtanen@dreamhost.com>
Fri, 3 Jun 2011 21:44:29 +0000 (14:44 -0700)
orchestra/remote.py
orchestra/run.py
orchestra/test/test_remote.py

index 2a583f0181be73bf93f65377b1e531ec999d0c28..cdf401684372fa38440ce68e5def54cea5cce910 100644 (file)
@@ -31,4 +31,6 @@ class Remote(object):
 
         TODO refactor to move run.run here?
         """
-        return self._runner(client=self.ssh, **kwargs)
+        r = self._runner(client=self.ssh, **kwargs)
+        r.remote = self
+        return r
index b6e862088a4760ef678619616f0f38e85b8f7430..cc38793915fce5fb118a65f45ff0b73b6d21347d 100644 (file)
@@ -9,7 +9,11 @@ import shutil
 log = logging.getLogger(__name__)
 
 class RemoteProcess(object):
-    __slots__ = ['command', 'stdin', 'stdout', 'stderr', 'exitstatus']
+    __slots__ = [
+        'command', 'stdin', 'stdout', 'stderr', 'exitstatus',
+        # for orchestra.remote.Remote to place a backreference
+        'remote',
+        ]
     def __init__(self, command, stdin, stdout, stderr, exitstatus):
         self.command = command
         self.stdin = stdin
index c9fc6be96c1005e742f638b357f4959ff9db14cd..039f7cf0933103abb55553ef009ce75ab962ae09 100644 (file)
@@ -5,6 +5,7 @@ import fudge.inspector
 import nose
 
 from .. import remote
+from ..run import RemoteProcess
 
 
 def test_shortname():
@@ -36,7 +37,13 @@ def test_run():
         'more',
         ]
     foo = object()
-    ret = object()
+    ret = RemoteProcess(
+        command='fakey',
+        stdin=None,
+        stdout=None,
+        stderr=None,
+        exitstatus=None,
+        )
     run.expects_call().with_args(
         client=fudge.inspector.arg.passes_test(lambda v: v is ssh),
         args=fudge.inspector.arg.passes_test(lambda v: v is args),
@@ -50,3 +57,4 @@ def test_run():
         foo=foo,
         )
     assert got is ret
+    assert got.remote is r