Ignore stderr and use return code

Ganesh Pal ganesh1pal at gmail.com
Sun Oct 25 02:05:47 EDT 2015


Hi Teamm

In the below code, we found that the command i.e  cmd = "mount
/filesystem1" succeeded. But  the test failed due to the weaker stderr

    def mount_me():
        cmd = "mount /filesystem1"
        proc = subprocess.Popen(shlex.split(cmd),
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        out, err = proc.communicate()
        if err != "":
            logging.error("Can't run %s got %s!" % (cmd, err))
            return False

Verification:
>> print err
10/25/2015 12:10:28 PM ERROR:Can't run mount /filesystem1 got  :
mount_err: Reading GUID from 1213: No such file or directory

#df -kh
Filesystem            Size  Used Avail Use% Mounted on
Filesystem              38G  5.5G   30G  16% /filesystem1

 - To handle this case, Iam planning to use return code and modify the
above code as below ( Any other suggestions please let me know)

  def mount_me():

        cmd = ("mount /filesystem1")
        out, err, ret = run(cmd, timeout=60) # run is the wrapper,
returns (stdout, stderr, returncode)
        if ret != 0: #  zero means succeeded
        logging.error("Can't run %s got %s (%d)!" % (cmd, err, ret))
            return False
-  Do I need to add more check to ensure the mount actually succeeds,
may be a function?

        if ret != 0 and check_df_output():
          logging.error("Can't run %s got %s (%d)!" % (cmd, err, ret))

 Iam using python 2.7 on Linux

Regards,
Ganesh



More information about the Python-list mailing list