Coverage for frappe_manager / services_manager / services_exceptions.py: 42%

72 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-07-02 18:13 +0530

1class ServicesComposeNotExist(Exception): 

2 """Exception raised when services Docker Compose file does not exist.""" 

3 

4 def __init__(self, message): 

5 message = message 

6 super().__init__(message) 

7 

8 

9class ServicesSecretsDBRootPassNotExist(Exception): 

10 """Exception raised when database root password secret does not exist.""" 

11 

12 def __init__(self, message): 

13 message = message 

14 super().__init__(message) 

15 

16 

17class ServicesDBNotStart(Exception): 

18 """Exception raised when database service fails to start.""" 

19 

20 def __init__(self, message): 

21 message = message 

22 super().__init__(message) 

23 

24 

25class ServicesException(Exception): 

26 """Base exception for all services-related errors.""" 

27 

28 def __init__(self, message): 

29 message = message 

30 super().__init__(message) 

31 

32 

33class ServicesNotCreated(ServicesException): 

34 """Exception raised when services compose file generation fails.""" 

35 

36 def __init__(self, message: str = "Not able to generate services compose file."): 

37 message = message 

38 super().__init__(message) 

39 

40 

41class DatabaseServiceException(Exception): 

42 """Base exception for database service operations.""" 

43 

44 def __init__(self, service_name: str, message: str): 

45 self.message: str = f"Service {service_name} db server : {message}" 

46 super().__init__(self.message) 

47 

48 

49class DatabaseServiceQueryAccessDenied(Exception): 

50 """Exception raised when database query access is denied.""" 

51 

52 def __init__(self, query: str, message="Access denied for query {}") -> None: 

53 self.query = query 

54 self.message = message.format(query) 

55 super().__init__(self.message) 

56 

57 

58class DatabaseServicePasswordNotFound(DatabaseServiceException): 

59 """Exception raised when database root password cannot be determined.""" 

60 

61 def __init__(self, service_name: str, message="Failed to determine root password.") -> None: 

62 self.service_name = service_name 

63 self.message = message.format(self.service_name) 

64 super().__init__(self.service_name, self.message) 

65 

66 

67class DatabaseServiceUserRemoveFailError(DatabaseServiceException): 

68 """Exception raised when database user removal fails.""" 

69 

70 def __init__(self, username: str, service_name: str, message="Failed to remove user {}.") -> None: 

71 self.service_name = service_name 

72 self.username = username 

73 self.message = message.format(self.username) 

74 super().__init__(self.service_name, self.message) 

75 

76 

77class DatabaseServiceDBRemoveFailError(DatabaseServiceException): 

78 """Exception raised when database removal fails.""" 

79 

80 def __init__(self, db_name: str, service_name: str, message="Failed to remove db {}.") -> None: 

81 self.service_name = service_name 

82 self.db_name = db_name 

83 self.message = message.format(db_name) 

84 super().__init__(self.service_name, self.message) 

85 

86 

87class DatabaseServiceDBNotFoundError(DatabaseServiceException): 

88 """Exception raised when database is not found.""" 

89 

90 def __init__(self, db_name: str, service_name: str, message="DB not found {}.") -> None: 

91 self.service_name = service_name 

92 self.db_name = db_name 

93 self.message = message.format(db_name) 

94 super().__init__(self.service_name, self.message) 

95 

96 

97class DatabaseServiceStartTimeout(DatabaseServiceException): 

98 """Exception raised when database fails to start within timeout period.""" 

99 

100 def __init__(self, timeout: int, service_name: str, message="DB failed to start, waited for {}s.") -> None: 

101 self.service_name = service_name 

102 self.message = message.format(timeout) 

103 super().__init__(self.service_name, self.message) 

104 

105 

106class DatabaseServiceDBExportFailed(DatabaseServiceException): 

107 """Exception raised when database export fails.""" 

108 

109 def __init__(self, service_name: str, db_name: str, message="DB export failed for db name {}.") -> None: 

110 self.service_name = service_name 

111 self.message = message.format(db_name) 

112 super().__init__(self.service_name, self.message) 

113 

114 

115class DatabaseServiceDBImportFailed(DatabaseServiceException): 

116 """Exception raised when database import fails.""" 

117 

118 def __init__(self, service_name: str, db_dump_path: str, message="DB import failed for db dump {}.") -> None: 

119 self.service_name = service_name 

120 self.message = message.format(db_dump_path) 

121 super().__init__(self.service_name, self.message) 

122 

123 

124class DatabaseServiceDBCreateFailed(DatabaseServiceException): 

125 """Exception raised when database creation fails.""" 

126 

127 def __init__(self, service_name: str, db_name: str, message="DB create failed for db name {}.") -> None: 

128 self.service_name = service_name 

129 self.message = message.format(db_name) 

130 super().__init__(self.service_name, self.message)