On Mon, Aug 24, 2015 at 07:01:17PM +0200, 'Bhimanavajjula Aditya' via ganeti-devel wrote: > repair_command takes two strings as input cmd, and inp. > This patch generalizes RunRestrictedCmd to RunCmd. RunCmd > can now pass a string as stdin input to the command that > will rull. > > Signed-off-by: Bhimanavajjula Aditya <[email protected]> > --- > lib/backend.py | 41 ++++++++++++++++++++++---------- > lib/pathutils.py | 4 ++++ > lib/rpc_defs.py | 4 ++++ > lib/server/noded.py | 18 +++++++++++++- > test/py/ganeti.backend_unittest.py | 48 > +++++++++++++++++++------------------- > 5 files changed, 78 insertions(+), 37 deletions(-) > > diff --git a/lib/backend.py b/lib/backend.py > index cc96689..6ed07e6 100644 > --- a/lib/backend.py > +++ b/lib/backend.py > @@ -5473,18 +5473,25 @@ def _PrepareRestrictedCmd(path, cmd, > return _verify_cmd(path, cmd) > > > -def RunRestrictedCmd(cmd, > - _lock_timeout=_RCMD_LOCK_TIMEOUT, > - _lock_file=pathutils.RESTRICTED_COMMANDS_LOCK_FILE, > - _path=pathutils.RESTRICTED_COMMANDS_DIR, > - _sleep_fn=time.sleep, > - _prepare_fn=_PrepareRestrictedCmd, > - _runcmd_fn=utils.RunCmd, > - _enabled=constants.ENABLE_RESTRICTED_COMMANDS): > - """Executes a restricted command after performing strict tests. > +def RunCmd(cmd,
Why rename RunRestrictedCmd to RunCmd? The method still verifies restrictions, and hence is fundamentally different then RunCmd from utils---a difference that gets blurred by your renaming. > if status: > + if inp: > + input_fd = tempfile.TemporaryFile() > + input_fd.write(inp) > + input_fd.flush() > + input_fd.seek(0) > + else: > + input_fd = None Why generate a real file, if all we need is a file-like object? Can't we use an in-memory file-like object, like StringIO? -- Klaus Aehlig Google Germany GmbH, Dienerstr. 12, 80331 Muenchen Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschaeftsfuehrer: Graham Law, Christine Elizabeth Flores
