Bug 1383645

Summary: NameError: global name 'readline' is not defined
Product: Red Hat Enterprise Linux 7 Reporter: Jaroslav Kortus <jkortus>
Component: targetcliAssignee: Maurizio Lombardi <mlombard>
Status: CLOSED WONTFIX QA Contact: Filip Suba <fsuba>
Severity: high Docs Contact:
Priority: medium    
Version: 7.3CC: ddiss, fsuba, tgill
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-12-15 07:47:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Jaroslav Kortus 2016-10-11 10:55:19 UTC
Description of problem:
When running targetcli via non-interactive shell, following traceback occurs.
    #  File "/usr/bin/targetcli", line 121, in <module>
    #   main()
    #  File "/usr/bin/targetcli", line 111, in main
    #    shell.run_interactive()
    #  File "/usr/lib/python2.7/site-packages/configshell_fb/shell.py", line 899, in run_interactive
    #    readline.set_completer(old_completer)
    # NameError: global name 'readline' is not defined

Version-Release number of selected component (if applicable):
targetcli-2.1.fb41-3.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1. run targetcli < commands.txt with non-interactive shell
2.
3.

Actual results:
traceback

Expected results:
successful execution

Additional info:
Example of python code that will run an non-interactive shell:

def shell(cmd,complain_only=False):
    ''' runs a shell command and returns stdout '''
    log.debug("SHELL: %s" % cmd)
    p = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE, bufsize=99999)
    stdout, stderr = p.communicate()
    p.wait()
    if p.returncode > 0:
        if complain_only:
            log.error("SHELL ERROR: %s" % stderr)
        else:
            raise Exception("Command failed(EC=%s): %s\nOutput: %s\nError-Output:%s" % (p.returncode, cmd, stdout, stderr))
    return stdout

Comment 3 ddiss 2019-08-01 12:46:17 UTC
This is fixed via:

commit 82f79eb2f967ecd820d531488d0b64d6015b1aaf
Author: Chongshi Zhang <zhangcho.com>
Date:   Tue Dec 13 10:56:27 2016 -0600

    Fix the readline not defined bug

Comment 5 RHEL Program Management 2020-12-15 07:47:00 UTC
After evaluating this issue, there are no plans to address it further or fix it in an upcoming release.  Therefore, it is being closed.  If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened.