daemon: moved service boot error to core.errors with all other core specific errors
This commit is contained in:
parent
5300eef27e
commit
f6992e7545
2 changed files with 18 additions and 9 deletions
|
@ -38,3 +38,11 @@ class CoreServiceError(Exception):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class CoreServiceBootError(Exception):
|
||||||
|
"""
|
||||||
|
Used when there is an error booting a service.
|
||||||
|
"""
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
|
@ -25,7 +25,12 @@ from typing import (
|
||||||
from core import utils
|
from core import utils
|
||||||
from core.emulator.data import FileData
|
from core.emulator.data import FileData
|
||||||
from core.emulator.enumerations import ExceptionLevels, MessageFlags, RegisterTlvs
|
from core.emulator.enumerations import ExceptionLevels, MessageFlags, RegisterTlvs
|
||||||
from core.errors import CoreCommandError, CoreError, CoreServiceError
|
from core.errors import (
|
||||||
|
CoreCommandError,
|
||||||
|
CoreError,
|
||||||
|
CoreServiceBootError,
|
||||||
|
CoreServiceError,
|
||||||
|
)
|
||||||
from core.nodes.base import CoreNode
|
from core.nodes.base import CoreNode
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
@ -34,10 +39,6 @@ if TYPE_CHECKING:
|
||||||
CoreServiceType = Union["CoreService", Type["CoreService"]]
|
CoreServiceType = Union["CoreService", Type["CoreService"]]
|
||||||
|
|
||||||
|
|
||||||
class ServiceBootError(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class ServiceMode(enum.Enum):
|
class ServiceMode(enum.Enum):
|
||||||
BLOCKING = 0
|
BLOCKING = 0
|
||||||
NON_BLOCKING = 1
|
NON_BLOCKING = 1
|
||||||
|
@ -453,7 +454,7 @@ class CoreServices:
|
||||||
funcs.append((self._boot_service_path, args, {}))
|
funcs.append((self._boot_service_path, args, {}))
|
||||||
result, exceptions = utils.threadpool(funcs)
|
result, exceptions = utils.threadpool(funcs)
|
||||||
if exceptions:
|
if exceptions:
|
||||||
raise ServiceBootError(*exceptions)
|
raise CoreServiceBootError(*exceptions)
|
||||||
|
|
||||||
def _boot_service_path(self, node: CoreNode, boot_path: List["CoreServiceType"]):
|
def _boot_service_path(self, node: CoreNode, boot_path: List["CoreServiceType"]):
|
||||||
logging.info(
|
logging.info(
|
||||||
|
@ -467,7 +468,7 @@ class CoreServices:
|
||||||
self.boot_service(node, service)
|
self.boot_service(node, service)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.exception("exception booting service: %s", service.name)
|
logging.exception("exception booting service: %s", service.name)
|
||||||
raise ServiceBootError(e)
|
raise CoreServiceBootError(e)
|
||||||
|
|
||||||
def boot_service(self, node: CoreNode, service: "CoreServiceType") -> None:
|
def boot_service(self, node: CoreNode, service: "CoreServiceType") -> None:
|
||||||
"""
|
"""
|
||||||
|
@ -504,7 +505,7 @@ class CoreServices:
|
||||||
wait = service.validation_mode == ServiceMode.BLOCKING
|
wait = service.validation_mode == ServiceMode.BLOCKING
|
||||||
status = self.startup_service(node, service, wait)
|
status = self.startup_service(node, service, wait)
|
||||||
if status:
|
if status:
|
||||||
raise ServiceBootError(
|
raise CoreServiceBootError(
|
||||||
"node(%s) service(%s) error during startup" % (node.name, service.name)
|
"node(%s) service(%s) error during startup" % (node.name, service.name)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -529,7 +530,7 @@ class CoreServices:
|
||||||
time.sleep(service.validation_period)
|
time.sleep(service.validation_period)
|
||||||
|
|
||||||
if status:
|
if status:
|
||||||
raise ServiceBootError(
|
raise CoreServiceBootError(
|
||||||
"node(%s) service(%s) failed validation" % (node.name, service.name)
|
"node(%s) service(%s) failed validation" % (node.name, service.name)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue