Fix for handling CalledProcessError in authconfig

NIS configuration error should be hidden from user
while running ipa-client-install

Fixes https://fedorahosted.org/freeipa/ticket/5244

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
Reviewed-By: Tomas Krizek <tkrizek@redhat.com>
Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
This commit is contained in:
Abhijeet Kasurde 2016-10-24 10:50:03 +05:30 committed by Martin Babinsky
parent 49855ca9de
commit 6d52c0fe6a
2 changed files with 16 additions and 3 deletions

View File

@ -18,11 +18,14 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from ipaplatform.paths import paths
from ipapython import ipautil
from ipapython.admintool import ScriptError
import os
FILES_TO_NOT_BACKUP = ['passwd', 'group', 'shadow', 'gshadow']
class RedHatAuthConfig(object):
"""
AuthConfig class implements system-independent interface to configure
@ -85,10 +88,16 @@ class RedHatAuthConfig(object):
self.add_option("update")
args = self.build_args()
ipautil.run(["/usr/sbin/authconfig"] + args)
try:
ipautil.run([paths.AUTHCONFIG] + args)
except ipautil.CalledProcessError:
raise ScriptError("Failed to execute authconfig command")
def backup(self, path):
ipautil.run(["/usr/sbin/authconfig", "--savebackup", path])
try:
ipautil.run([paths.AUTHCONFIG, "--savebackup", path])
except ipautil.CalledProcessError:
raise ScriptError("Failed to execute authconfig command")
# do not backup these files since we don't want to mess with
# users/groups during restore. Authconfig doesn't seem to mind about
@ -101,4 +110,7 @@ class RedHatAuthConfig(object):
pass
def restore(self, path):
ipautil.run(["/usr/sbin/authconfig", "--restorebackup", path])
try:
ipautil.run([paths.AUTHCONFIG, "--restorebackup", path])
except ipautil.CalledProcessError:
raise ScriptError("Failed to execute authconfig command")

View File

@ -33,6 +33,7 @@ class RedHatPathNamespace(BasePathNamespace):
if sys.maxsize > 2**32:
LIBSOFTHSM2_SO = BasePathNamespace.LIBSOFTHSM2_SO_64
PAM_KRB5_SO = BasePathNamespace.PAM_KRB5_SO_64
AUTHCONFIG = '/usr/sbin/authconfig'
paths = RedHatPathNamespace()