Bug 1441493

Summary: ipa cert-show raises stack traces when --certificate-out=/tmp
Product: Red Hat Enterprise Linux 7 Reporter: Abhijeet Kasurde <akasurde>
Component: ipaAssignee: IPA Maintainers <ipa-maint>
Status: CLOSED ERRATA QA Contact: Abhijeet Kasurde <akasurde>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: ksiddiqu, pvoborni, rcritten, tkrizek, tscherf
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ipa-4.5.0-12.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 09:48:56 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:
Embargoed:
Attachments:
Description Flags
console.log none

Description Abhijeet Kasurde 2017-04-12 06:04:36 UTC
Description of problem:
When user specifies directory to cert-show command instead of file name, command raises stack trace.

[root@vm-idm-010 ~]# ipa cert-show --certificate-out=/tmp
Serial number: 1
ipa: ERROR: non-public: IOError: [Errno 21] Is a directory: u'/tmp'
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ipalib/backend.py", line 139, in execute
    result = self.Command[_name](*args, **options)
  File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 447, in __call__
    return self.__do_call(*args, **options)
  File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 475, in __do_call
    ret = self.run(*args, **options)
  File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 798, in run
    return self.forward(*args, **options)
  File "/usr/lib/python2.7/site-packages/ipaclient/plugins/cert.py", line 96, in forward
    return super(cert_show, self).forward(*args, **options)
  File "/usr/lib/python2.7/site-packages/ipaclient/plugins/cert.py", line 59, in forward
    with open(certificate_out, 'w') as f:
IOError: [Errno 21] Is a directory: u'/tmp'
ipa: ERROR: an internal error has occurred


Version-Release number of selected component (if applicable):
# rpm -qa ipa-server
ipa-server-4.5.0-5.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. ipa cert-show 1 --certificate-out=/tmp

Actual results:
Stack trace with IOError

Expected results:
Notify user with error/warn message rather than stack trace.

"Directory specified instead of file name"

Comment 2 Petr Vobornik 2017-04-20 15:44:01 UTC
Upstream ticket:
https://pagure.io/freeipa/issue/6883

Comment 5 Abhijeet Kasurde 2017-05-24 12:41:28 UTC
Verified using IPA version :: ipa-server-4.5.0-13.el7.x86_64

Marking BZ as verified. See attachment for console log.

Comment 6 Abhijeet Kasurde 2017-05-24 12:42:08 UTC
Created attachment 1281949 [details]
console.log

Comment 7 errata-xmlrpc 2017-08-01 09:48:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2304