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

Reply via email to