Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

# 

# errors.py: Kickstart error handling. 

# 

# Chris Lumens <clumens@redhat.com> 

# 

# This copyrighted material is made available to anyone wishing to use, modify, 

# copy, or redistribute it subject to the terms and conditions of the GNU 

# General Public License v.2. This program is distributed in the hope that it 

# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the 

# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

# See the GNU General Public License for more details. 

# 

# You should have received a copy of the GNU General Public License along with 

# this program; if not, write to the Free Software Foundation, Inc., 51 

# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Any Red Hat 

# trademarks that are incorporated in the source code or documentation are not 

# subject to the GNU General Public License and may only be used or replicated 

# with the express permission of Red Hat, Inc. 

# 

""" 

Error handling classes and functions. 

 

This module exports several exception classes: 

 

KickstartError - A generic exception class. 

 

KickstartParseError - An exception for errors occurring during parsing. 

 

KickstartValueError - No longer raised by pykickstart, but kept around for 

backwards compatibility. 

 

KickstartVersionError - An exception for errors relating to unsupported 

syntax versions. 

""" 

import warnings 

from pykickstart.i18n import _ 

 

 

def formatErrorMsg(lineno, msg=""): 

"""This function is deprecated. KickstartError formats the error message now, 

so this function returns a tuple that can be formatted by KickstartError. 

 

You should call: 

KickstartError(message, lineno=lineno) 

 

But the deprecated way is still supported: 

KickstartError(formatErrorMsg(message, lineno=lineno)) 

 

""" 

warnings.warn("Function formatErrorMsg is deprecated. The error messages " 

"are formatted by KickstartError now.", DeprecationWarning) 

 

return lineno, msg 

 

def _format_error_message(lineno, msg=""): 

"""Properly format the error message msg in an exception. 

This function should be called only in exceptions to format the error messages. 

""" 

if msg: 

return _("The following problem occurred on line %(lineno)s of the kickstart file:" 

"\n\n%(msg)s\n") % {"lineno": lineno, "msg": msg} 

 

return _("There was a problem reading from line %s of the kickstart file") % lineno 

 

class KickstartError(Exception): 

"""A generic exception class for unspecific error conditions.""" 

 

def __init__(self, msg="", lineno=None, formatting=True): 

"""Create a new KickstartError exception instance with the descriptive 

message msg. The msg will be formatted if formatting is allowed and 

the line number lineno is set. 

""" 

Exception.__init__(self) 

self.message = msg 

self.lineno = lineno 

 

# Accept tuples from formatErrorMsg for backwards compatibility. 

if isinstance(msg, tuple) and len(msg) == 2: 

self.lineno, self.message = msg 

 

# Keep the value attribute for backwards compatibility. 

self.value = self.message 

 

# Format the error message if it is allowed. 

if formatting and self.lineno is not None: 

self.value = _format_error_message(self.lineno, self.message) 

 

def __str__(self): 

return self.value 

 

class KickstartParseError(KickstartError): 

"""An exception class for errors when processing the input file, such as 

unknown options, commands, or sections. 

""" 

pass 

 

class KickstartValueError(KickstartError): 

"""This exception class is no longer raised by pykickstart but is kept 

for backwards compatibility. 

""" 

pass 

 

class KickstartVersionError(KickstartError): 

"""An exception class for errors related to using an incorrect version of 

kickstart syntax. 

""" 

pass