Skip to main content
Glama
exceptions.py3.71 kB
"""Custom exception classes for Jenkins MCP server.""" from typing import Optional class JenkinsError(Exception): """Base exception for Jenkins operations.""" def __init__(self, message: str, status_code: Optional[int] = None) -> None: """Initialize Jenkins exception. Args: message: Error message status_code: HTTP status code (if applicable) """ super().__init__(message) self.status_code = status_code class JenkinsServerNotFoundError(JenkinsError): """Exception for Jenkins server not found.""" def __init__(self, server_name: str) -> None: """Initialize server not found exception. Args: server_name: Server name """ super().__init__(f"Jenkins server '{server_name}' not found") self.server_name = server_name class JenkinsJobNotFoundError(JenkinsError): """Exception for Jenkins job not found.""" def __init__(self, job_name: str, server_name: str) -> None: """Initialize job not found exception. Args: job_name: Job name server_name: Server name """ super().__init__( f"Jenkins job '{job_name}' not found on server '{server_name}'" ) self.job_name = job_name self.server_name = server_name class JenkinsBuildNotFoundError(JenkinsError): """Exception for Jenkins build not found.""" def __init__(self, build_number: int, job_name: str, server_name: str) -> None: """Initialize build not found exception. Args: build_number: Build number job_name: Job name server_name: Server name """ super().__init__( f"Jenkins build #{build_number} for job '{job_name}' " f"not found on server '{server_name}'" ) self.build_number = build_number self.job_name = job_name self.server_name = server_name class JenkinsPermissionError(JenkinsError): """Exception for Jenkins permission error.""" def __init__(self, operation: str, resource: str) -> None: """Initialize permission error exception. Args: operation: Operation type resource: Resource name """ super().__init__(f"Permission denied for {operation} on {resource}") self.operation = operation self.resource = resource class JenkinsConfigurationError(JenkinsError): """Exception for Jenkins configuration error.""" def __init__(self, message: str) -> None: """Initialize configuration error exception. Args: message: Error message """ super().__init__(f"Jenkins configuration error: {message}") class JenkinsParameterError(JenkinsError): """Exception for Jenkins parameter error.""" def __init__(self, message: str, missing_params: Optional[list] = None) -> None: """Initialize parameter error exception. Args: message: Error message missing_params: List of missing parameters """ super().__init__(message) self.missing_params = missing_params or [] class JenkinsTimeoutError(JenkinsError): """Exception for Jenkins operation timeout.""" def __init__(self, operation: str, timeout_seconds: int) -> None: """Initialize timeout exception. Args: operation: Operation type timeout_seconds: Timeout in seconds """ super().__init__( f"Operation '{operation}' timed out after {timeout_seconds} seconds" ) self.operation = operation self.timeout_seconds = timeout_seconds

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xhuaustc/jenkins-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server